Field
public struct Field<T>Field represents a field extractor for database entries returned by the
server.
For example:
let nameField = Field<String>("data", "name")
let user = try! client.query(
    Get(
        Ref("classes/user/42")
    )
).await(timeout: .now() + 5)
let userName = user.get(field: nameField)
Every field has a path which is composed by a sequence of segments. A segment can be:
- String: when the desired field is contained in an object in which the segment will be used as the object key;
- Int: when the desired field is contained in an array in which the segment will be used as the array index.
Rules for field extraction and data conversion:
- If the field is not present, it returns nil;
- If the field can’t be converted to the expected type, it throws an
exception.  E.g.: Field<String>("data", "name")expects thename field to be aString. If the end result is not aString, it will fail;
- If the path assumes a type that is not correct, it throws an exception.
E.g.: Field<String>("data", "name")expects the target value to contain a nested object at the keydata in which there should be aStringfield at the keyname . Ifdata field is not an object, it will fail.
- 
                  
                  Creates a new nested field extractor based on its parent’s path. DeclarationSwift public func at(_ segments: Segment...) -> Field
- 
                  
                  Creates a new nested field extractor based on its parent’s path. DeclarationSwift public func at(path segments: [Segment]) -> Field
- 
                  
                  Combine two field extractors to create a nested field. DeclarationSwift public func at<A>(field: Field<A>) -> Field<A>
- 
                  
                  Combine two field extractors to create a nested array field. DeclarationSwift public func get<A>(asArrayOf field: Field<A>) -> Field<[A]>
- 
                  
                  Combine two field extractors to create a nested object field. DeclarationSwift public func get<A>(asDictionaryOf field: Field<A>) -> Field<[String: A]>
- 
                  
                  Creates a new field by mapping the result of its parent’s extracted value. DeclarationSwift public func map<A>(_ transform: @escaping (T) throws -> A) -> Field<A>
- 
                  
                  Creates a new field by flat mapping the result of its parent’s extracted value. DeclarationSwift public func flatMap<A>(_ transform: @escaping (T) throws -> A?) -> Field<A>
 Field Struct Reference
        Field Struct Reference