# QueryableAttributeType

    public protocol QueryableAttributeType : SelectResultType, Hashable

Types supported by CoreStore for querying, especially as generic type for `Select` clauses. Supported default types:

- `Bool`
- `CGFloat`
- `Data`
- `Date`
- `Double`
- `Float`
- `Int`
- `Int8`
- `Int16`
- `Int32`
- `Int64`
- `NSData`
- `NSDate`
- `NSDecimalNumber`
- `NSManagedObjectID`
- `NSNull`
- `NSNumber`
- `NSString`
- `NSURL`
- `NSUUID`
- `String`
- `URL`
- `UUID`

In addition, `RawRepresentable` types whose `RawValue` already implements `QueryableAttributeType` only need to declare conformance to `QueryableAttributeType`.

- `QueryableNativeType`

  The `CoreDataNativeType` for this type when used in `Select` clauses.

  #### Declaration

  Swift

      associatedtype QueryableNativeType

- `cs_rawAttributeType`

  The `NSAttributeType` for this type when used in `Select` clauses.

  #### Declaration

  Swift

      static var cs_rawAttributeType: NSAttributeType { get }

- `cs_fromQueryableNativeType(_:)`

  Creates an instance of this type from its `QueryableNativeType` value.

  #### Declaration

  Swift

      @inline(__always)
      static func cs_fromQueryableNativeType(_ value: QueryableNativeType) -> Self?

- `cs_toQueryableNativeType()`

  Creates `QueryableNativeType` value from this instance.

  #### Declaration

  Swift

      @inline(__always)
      func cs_toQueryableNativeType() -> QueryableNativeType