mirror of
https://github.com/JohnEstropia/CoreStore.git
synced 2026-01-18 06:57:15 +01:00
added queryBuilder utilities for clause sequences
This commit is contained in:
@@ -161,6 +161,11 @@ public extension From {
|
||||
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
|
||||
|
||||
@@ -168,6 +173,11 @@ public extension From {
|
||||
|
||||
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 {
|
||||
@@ -293,6 +303,11 @@ public extension FetchChainBuilder {
|
||||
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
|
||||
|
||||
@@ -303,6 +318,14 @@ public extension FetchChainBuilder {
|
||||
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 {
|
||||
@@ -352,6 +375,11 @@ public extension QueryChainBuilder {
|
||||
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
|
||||
|
||||
@@ -363,6 +391,15 @@ public extension QueryChainBuilder {
|
||||
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 {
|
||||
@@ -429,6 +466,11 @@ public extension SectionMonitorChainBuilder {
|
||||
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
|
||||
|
||||
@@ -440,4 +482,13 @@ public extension SectionMonitorChainBuilder {
|
||||
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