Expression

public struct Expression<T, V> : CustomStringConvertible, DynamicKeyPath where T : WhereExpressionTrait

Type-safe keyPath chain usable in query/fetch expressions.

let expression: Where<Pet>.Expression = (\.master ~ \.name)
let owner = CoreStore.fetchOne(
   From<Pet>().where(expression == "John")
)
  • Declaration

    Swift

    public typealias ObjectType = D
  • Declaration

    Swift

    public typealias ValueType = V
  • Declaration

    Swift

    public var description: String { get }
  • Creates a Where.Expression clause for COUNT

    let dogsWithPlaymates = CoreStore.fetchAll(From<Dog>().where((\.master ~ \.pets).count() > 1))
    

    Declaration

    Swift

    public func count() -> Where<D>.Expression<T, Int>
  • Creates a Where.Expression clause for ANY

    let dogsWithBadNamingSense = CoreStore.fetchAll(From<Dog>().where((\.master ~ \.pets ~ \.name).any() > "Spot"))
    

    Declaration

    Swift

    public func any() -> Where<D>.Expression<T, V>
  • Creates a Where.Expression clause for ALL

    let allPlaymatePuppies = CoreStore.fetchAll(From<Dog>().where((\.master ~ \.pets ~ \.age).all() > 5))
    

    Declaration

    Swift

    public func all() -> Where<D>.Expression<T, V>
  • Creates a Where.Expression clause for NONE

    let dogs = CoreStore.fetchAll(From<Dog>().where((\.master ~ \.pets ~ \.name).any() > "Spot"))
    

    Declaration

    Swift

    public func none() -> Where<D>.Expression<T, V>
  • Creates a Where.Expression clause for COUNT

    let dogsWithPlaymates = CoreStore.fetchAll(From<Dog>().where((\.master ~ \.pets).count() > 1))
    

    Declaration

    Swift

    public func count() -> Where<D>.Expression<T, Int>
  • Creates a Where.Expression clause for ANY

    let dogsWithBadNamingSense = CoreStore.fetchAll(From<Dog>().where((\.master ~ \.pets ~ \.name).any() > "Spot"))
    

    Declaration

    Swift

    public func any() -> Where<D>.Expression<T, V>
  • Creates a Where.Expression clause for ALL

    let allPlaymatePuppies = CoreStore.fetchAll(From<Dog>().where((\.master ~ \.pets ~ \.age).all() > 5))
    

    Declaration

    Swift

    public func all() -> Where<D>.Expression<T, V>
  • Creates a Where.Expression clause for NONE

    let dogs = CoreStore.fetchAll(From<Dog>().where((\.master ~ \.pets ~ \.name).any() > "Spot"))
    

    Declaration

    Swift

    public func none() -> Where<D>.Expression<T, V>