# WhereClauseType

    public protocol WhereClauseType : AnyWhereClause

Abstracts the `Where` clause for protocol utilities. Typically used only for utility method generic constraints.

- `ObjectType`

  The `DynamicObject` type associated with the clause

  #### Declaration

  Swift

      associatedtype ObjectType : DynamicObject

### WhereClauseType

- `&&(_:_:)` Extension method

  Combines two `Where` predicates together using `AND` operator.

  Warning

  This operator overload is a workaround for Swift generics’ inability to constrain by inheritance (https://bugs.swift.org/browse/SR-5213). In effect, this is less type-safe than other overloads because it allows AND'ing clauses of unrelated `DynamicObject` types.

  #### Declaration

  Swift

      public static func && <TWhere>(left: Self, right: TWhere) -> Where<Self.ObjectType> where TWhere : WhereClauseType

- `&&(_:_:)` Extension method

  Combines two `Where` predicates together using `AND` operator.

  Warning

  This operator overload is a workaround for Swift generics’ inability to constrain by inheritance (https://bugs.swift.org/browse/SR-5213). In effect, this is less type-safe than other overloads because it allows AND'ing clauses of unrelated `DynamicObject` types.

  #### Declaration

  Swift

      public static func && <TWhere>(left: TWhere, right: Self) -> Where<Self.ObjectType> where TWhere : WhereClauseType

- `||(_:_:)` Extension method

  Combines two `Where` predicates together using `OR` operator.

  Warning

  This operator overload is a workaround for Swift generics’ inability to constrain by inheritance (https://bugs.swift.org/browse/SR-5213). In effect, this is less type-safe than other overloads because it allows OR'ing clauses of unrelated `DynamicObject` types.

  #### Declaration

  Swift

      public static func || <TWhere>(left: Self, right: TWhere) -> Where<Self.ObjectType> where TWhere : WhereClauseType

- `||(_:_:)` Extension method

  Combines two `Where` predicates together using `OR` operator.

  Warning

  This operator overload is a workaround for Swift generics’ inability to constrain by inheritance (https://bugs.swift.org/browse/SR-5213). In effect, this is less type-safe than other overloads because it allows OR'ing clauses of unrelated `DynamicObject` types.

  #### Declaration

  Swift

      public static func || <TWhere>(left: TWhere, right: Self) -> Where<Self.ObjectType> where TWhere : WhereClauseType