         }
     }
     
+    /// Checks if the key exists in this row
     func contains(_ key: Key) -> Bool {
         return (try? decoder.either.getKeyed().fields.contains { pair in
             return pair.field.name == key.stringValue

    }
}

struct ColumnContainer: SingleValueDecodingContainerHelper {
    var codingPath: [CodingKey]
    let decoder: RowDecoder
    
    init(decoder: RowDecoder) {
        self.decoder = decoder
        self.codingPath = decoder.codingPath
    }
    
    public func decode<T>(_ type: T.Type) throws -> T where T : Decodable {
        let value = try decoder.either.getValue()
        

        }
    }
    
    /// Stores the current decoding context
    var either: Either<Column, Row, NSNull>
    
    /// Convert Int8, UInt8, Int16, UInt16, Int32, UInt32, Int64, UInt64, UInt and Int automatically when possible
    ///
    /// Also converts Double and Float automatically
    var lossyIntegers: Bool
    
    /// Convert Strings and Numbers automatically when possible
    var lossyStrings: Bool
    
    /// Decodes a column to a String
    public func decode(_ type: Column) throws -> String {
        let value = try either.getValue()
        
