keyPath utilities for Select queries

This commit is contained in:
John Rommel Estropia
2017-09-21 07:56:02 +09:00
parent 3e082d5ed4
commit 1bfb7451c3
12 changed files with 938 additions and 261 deletions

View File

@@ -103,6 +103,37 @@ public struct GroupBy<D: DynamicObject>: GroupByClause, QueryClause, Hashable {
}
}
public extension GroupBy where D: NSManagedObject {
public init<T>(_ keyPath: KeyPath<D, T>) {
self.init([keyPath._kvcKeyPathString!])
}
}
public extension GroupBy where D: CoreStoreObject {
public init<T>(_ keyPath: KeyPath<D, ValueContainer<D>.Required<T>>) {
self.init([D.meta[keyPath: keyPath].keyPath])
}
public init<T>(_ keyPath: KeyPath<D, ValueContainer<D>.Optional<T>>) {
self.init([D.meta[keyPath: keyPath].keyPath])
}
public init<T>(_ keyPath: KeyPath<D, TransformableContainer<D>.Required<T>>) {
self.init([D.meta[keyPath: keyPath].keyPath])
}
public init<T>(_ keyPath: KeyPath<D, TransformableContainer<D>.Optional<T>>) {
self.init([D.meta[keyPath: keyPath].keyPath])
}
}
// MARK: - GroupByClause