this repo has no description
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}