this repo has no description
at main 48 lines 2.0 kB view raw
1// 2// DecodingStrategies.swift 3// URLQueryItemCoder 4// 5// Created by Kyle Hughes on 3/9/23. 6// 7 8/// The strategies for decoding `Decodable` values. 9public struct DecodingStrategies { 10 /// The collection initialized to all default values. 11 public static let `default` = Self() 12 13 /// The strategy to use for encoding `Data` values. 14 public var dataStrategy: DataDecodingStrategy 15 16 /// The strategy to use for encoding `Date` values. 17 public var dateStrategy: DateDecodingStrategy 18 19 /// The strategy to use for automatically changing the value of keys before decoding. 20 public var keyStrategy: KeyDecodingStrategy 21 22 /// The strategy to use for non-conforming floating-point values (IEEE 754 infinity and NaN). 23 public var nonConformingFloatStrategy: NonConformingFloatDecodingStrategy 24 25 // MARK: Public Initialization 26 27 /// Creates a new collection of decoding strategies for decoding `Decodable` values. 28 /// 29 /// The default decoding strategies are used if none are supplied. 30 /// 31 /// - Parameter dataStrategy: The strategy to use for decoding `Data` values. 32 /// - Parameter dateStrategy: The strategy to use for decoding `Date` values. 33 /// - Parameter keyStrategy: The strategy to use for decoding keys on keyed containers. 34 /// - Parameter nonConformingFloatStrategy: The strategy to use for decoding non-conforming floating-point values 35 /// (IEEE 754 infinity and NaN). 36 /// - Returns: Decoding strategies for decoding `Decodable` values. 37 public init( 38 dataStrategy: DataDecodingStrategy = .default, 39 dateStrategy: DateDecodingStrategy = .default, 40 keyStrategy: KeyDecodingStrategy = .default, 41 nonConformingFloatStrategy: NonConformingFloatDecodingStrategy = .default 42 ) { 43 self.dataStrategy = dataStrategy 44 self.dateStrategy = dateStrategy 45 self.keyStrategy = keyStrategy 46 self.nonConformingFloatStrategy = nonConformingFloatStrategy 47 } 48}