mirror of
https://github.com/hanzoai/swift-sdk.git
synced 2026-10-30 18:20:19 +00:00
The forge tree held the package scaffolding and none of the generated sources — 2,435 files of APIs, Models and Infrastructure, including BaseAPI, were simply absent, so anything depending on this copy had a package that compiled to nothing usable. Generated from the current API document rather than reconciled with the other copy: a client is a function of the spec, so regenerating answers "which history wins" without anyone having to choose. .spec-lock records which document, so the next reader can tell.
52 lines
1.6 KiB
Swift
52 lines
1.6 KiB
Swift
//
|
|
// CodableHelper.swift
|
|
//
|
|
// Generated by openapi-generator
|
|
// https://openapi-generator.tech
|
|
//
|
|
|
|
import Foundation
|
|
|
|
open class CodableHelper: @unchecked Sendable {
|
|
public init() {}
|
|
|
|
private var customDateFormatter: DateFormatter?
|
|
private var defaultDateFormatter: DateFormatter = OpenISO8601DateFormatter()
|
|
|
|
private var customJSONDecoder: JSONDecoder?
|
|
private lazy var defaultJSONDecoder: JSONDecoder = {
|
|
let decoder = JSONDecoder()
|
|
decoder.dateDecodingStrategy = .formatted(dateFormatter)
|
|
return decoder
|
|
}()
|
|
|
|
private var customJSONEncoder: JSONEncoder?
|
|
private lazy var defaultJSONEncoder: JSONEncoder = {
|
|
let encoder = JSONEncoder()
|
|
encoder.dateEncodingStrategy = .formatted(dateFormatter)
|
|
encoder.outputFormatting = .prettyPrinted
|
|
return encoder
|
|
}()
|
|
|
|
public var dateFormatter: DateFormatter {
|
|
get { return customDateFormatter ?? defaultDateFormatter }
|
|
set { customDateFormatter = newValue }
|
|
}
|
|
public var jsonDecoder: JSONDecoder {
|
|
get { return customJSONDecoder ?? defaultJSONDecoder }
|
|
set { customJSONDecoder = newValue }
|
|
}
|
|
public var jsonEncoder: JSONEncoder {
|
|
get { return customJSONEncoder ?? defaultJSONEncoder }
|
|
set { customJSONEncoder = newValue }
|
|
}
|
|
|
|
open func decode<T>(_ type: T.Type, from data: Data) -> Swift.Result<T, Error> where T: Decodable {
|
|
return Swift.Result { try jsonDecoder.decode(type, from: data) }
|
|
}
|
|
|
|
open func encode<T>(_ value: T) -> Swift.Result<Data, Error> where T: Encodable {
|
|
return Swift.Result { try jsonEncoder.encode(value) }
|
|
}
|
|
}
|