mirror of
https://github.com/JohnEstropia/CoreStore.git
synced 2026-04-20 07:51:21 +02:00
added queryBuilder utilities for clause sequences
This commit is contained in:
@@ -161,6 +161,11 @@ public extension From {
|
|||||||
return self.fetchChain(appending: clause)
|
return self.fetchChain(appending: clause)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public func appending<S: Sequence>(_ clauses: S) -> FetchChainBuilder<D> where S.Element: FetchClause {
|
||||||
|
|
||||||
|
return self.fetchChain(appending: clauses)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// MARK: Private
|
// MARK: Private
|
||||||
|
|
||||||
@@ -168,6 +173,11 @@ public extension From {
|
|||||||
|
|
||||||
return .init(from: self, fetchClauses: [clause])
|
return .init(from: self, fetchClauses: [clause])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private func fetchChain<S: Sequence>(appending clauses: S) -> FetchChainBuilder<D> where S.Element: FetchClause {
|
||||||
|
|
||||||
|
return .init(from: self, fetchClauses: Array(clauses))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public extension From where D: NSManagedObject {
|
public extension From where D: NSManagedObject {
|
||||||
@@ -293,6 +303,11 @@ public extension FetchChainBuilder {
|
|||||||
return self.fetchChain(appending: clause)
|
return self.fetchChain(appending: clause)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public func appending<S: Sequence>(_ clauses: S) -> FetchChainBuilder<D> where S.Element: FetchClause {
|
||||||
|
|
||||||
|
return self.fetchChain(appending: clauses)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// MARK: Private
|
// MARK: Private
|
||||||
|
|
||||||
@@ -303,6 +318,14 @@ public extension FetchChainBuilder {
|
|||||||
fetchClauses: self.fetchClauses + [clause]
|
fetchClauses: self.fetchClauses + [clause]
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private func fetchChain<S: Sequence>(appending clauses: S) -> FetchChainBuilder<D> where S.Element: FetchClause {
|
||||||
|
|
||||||
|
return .init(
|
||||||
|
from: self.from,
|
||||||
|
fetchClauses: self.fetchClauses + Array(clauses)
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public extension QueryChainBuilder {
|
public extension QueryChainBuilder {
|
||||||
@@ -352,6 +375,11 @@ public extension QueryChainBuilder {
|
|||||||
return self.queryChain(appending: clause)
|
return self.queryChain(appending: clause)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public func appending<S: Sequence>(_ clauses: S) -> QueryChainBuilder<D, R> where S.Element: QueryClause {
|
||||||
|
|
||||||
|
return self.queryChain(appending: clauses)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// MARK: Private
|
// MARK: Private
|
||||||
|
|
||||||
@@ -363,6 +391,15 @@ public extension QueryChainBuilder {
|
|||||||
queryClauses: self.queryClauses + [clause]
|
queryClauses: self.queryClauses + [clause]
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private func queryChain<S: Sequence>(appending clauses: S) -> QueryChainBuilder<D, R> where S.Element: QueryClause {
|
||||||
|
|
||||||
|
return .init(
|
||||||
|
from: self.from,
|
||||||
|
select: self.select,
|
||||||
|
queryClauses: self.queryClauses + Array(clauses)
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public extension QueryChainBuilder where D: NSManagedObject {
|
public extension QueryChainBuilder where D: NSManagedObject {
|
||||||
@@ -429,6 +466,11 @@ public extension SectionMonitorChainBuilder {
|
|||||||
return self.sectionMonitorChain(appending: clause)
|
return self.sectionMonitorChain(appending: clause)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public func appending<S: Sequence>(_ clauses: S) -> SectionMonitorChainBuilder<D> where S.Element: FetchClause {
|
||||||
|
|
||||||
|
return self.sectionMonitorChain(appending: clauses)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// MARK: Private
|
// MARK: Private
|
||||||
|
|
||||||
@@ -440,4 +482,13 @@ public extension SectionMonitorChainBuilder {
|
|||||||
fetchClauses: self.fetchClauses + [clause]
|
fetchClauses: self.fetchClauses + [clause]
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private func sectionMonitorChain<S: Sequence>(appending clauses: S) -> SectionMonitorChainBuilder<D> where S.Element: FetchClause {
|
||||||
|
|
||||||
|
return .init(
|
||||||
|
from: self.from,
|
||||||
|
sectionBy: self.sectionBy,
|
||||||
|
fetchClauses: self.fetchClauses + Array(clauses)
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user