         case single
         case dictionary
     }
+    
     var storageType: StorageType = .dictionary
     
     func container<Key>(keyedBy type: Key.Type) -> KeyedEncodingContainer<Key> where Key : CodingKey {

    }
}

/*
struct QueryParameterOptional: QueryParameter {
    private let val: QueryParameter?
    init(_ val: QueryParameter?) {
        self.val = val
    }
    func queryParameter(option: QueryParameterOption) throws -> QueryParameterType {
        guard let val = self.val else {
            return QueryParameterNull.null.queryParameter(option: option)
        }
        return try val.queryParameter(option: option)
    }
    var omitOnQueryParameter: Bool {
        return val?.omitOnQueryParameter ?? false
    }
}*/

struct EscapedQueryParameter: QueryParameterType {
    private let value: String
    private let idParameter: String?
    init(_ val: String, idParameter: String? = nil) {

    var timeZone: TimeZone { get }
}

internal struct QueryParameterNull: QueryParameter {
    
    private init() {
    }
    
    static let null = QueryParameterNull()
