this repo has no description
1//
2// EncodingContainer+Keyed+Wrapper.swift
3// URLQueryItemCoder
4//
5// Created by Kyle Hughes on 1/15/23.
6//
7
8extension EncodingContainer.Keyed {
9 internal struct Wrapper<Key> where Key: CodingKey {
10 internal let base: EncodingContainer.Keyed
11
12 // MARK: Internal Initialization
13
14 internal init(_ base: EncodingContainer.Keyed) {
15 self.base = base
16 }
17 }
18}
19
20// MARK: - KeyedEncodingContainerProtocol Extension
21
22extension EncodingContainer.Keyed.Wrapper: KeyedEncodingContainerProtocol {
23 // MARK: Internal Instance Interface
24
25 @inlinable
26 internal var codingPath: [CodingKey] {
27 base.codingPath
28 }
29
30 @inlinable
31 internal func encode(_ value: Bool, forKey key: Key) throws {
32 try base.encode(value, forKey: StringCodingKey(stringValue: key.stringValue))
33 }
34
35 @inlinable
36 internal func encode(_ value: Double, forKey key: Key) throws {
37 try base.encode(value, forKey: StringCodingKey(stringValue: key.stringValue))
38 }
39
40 @inlinable
41 internal func encode(_ value: Float, forKey key: Key) throws {
42 try base.encode(value, forKey: StringCodingKey(stringValue: key.stringValue))
43 }
44
45 @inlinable
46 internal func encode(_ value: Int, forKey key: Key) throws {
47 try base.encode(value, forKey: StringCodingKey(stringValue: key.stringValue))
48 }
49
50 @inlinable
51 internal func encode(_ value: Int8, forKey key: Key) throws {
52 try base.encode(value, forKey: StringCodingKey(stringValue: key.stringValue))
53 }
54
55 @inlinable
56 internal func encode(_ value: Int16, forKey key: Key) throws {
57 try base.encode(value, forKey: StringCodingKey(stringValue: key.stringValue))
58 }
59
60 @inlinable
61 internal func encode(_ value: Int32, forKey key: Key) throws {
62 try base.encode(value, forKey: StringCodingKey(stringValue: key.stringValue))
63 }
64
65 @inlinable
66 internal func encode(_ value: Int64, forKey key: Key) throws {
67 try base.encode(value, forKey: StringCodingKey(stringValue: key.stringValue))
68 }
69
70 @inlinable
71 internal func encode(_ value: String, forKey key: Key) throws {
72 try base.encode(value, forKey: StringCodingKey(stringValue: key.stringValue))
73 }
74
75 @inlinable
76 internal func encode(_ value: UInt, forKey key: Key) throws {
77 try base.encode(value, forKey: StringCodingKey(stringValue: key.stringValue))
78 }
79
80 @inlinable
81 internal func encode(_ value: UInt8, forKey key: Key) throws {
82 try base.encode(value, forKey: StringCodingKey(stringValue: key.stringValue))
83 }
84
85 @inlinable
86 internal func encode(_ value: UInt16, forKey key: Key) throws {
87 try base.encode(value, forKey: StringCodingKey(stringValue: key.stringValue))
88 }
89
90 @inlinable
91 internal func encode(_ value: UInt32, forKey key: Key) throws {
92 try base.encode(value, forKey: StringCodingKey(stringValue: key.stringValue))
93 }
94
95 @inlinable
96 internal func encode(_ value: UInt64, forKey key: Key) throws {
97 try base.encode(value, forKey: StringCodingKey(stringValue: key.stringValue))
98 }
99
100 @inlinable
101 internal func encode<T>(_ value: T, forKey key: Key) throws where T : Encodable {
102 try base.encode(value, forKey: StringCodingKey(stringValue: key.stringValue))
103 }
104
105 @inlinable
106 internal func encodeNil(forKey key: Key) throws {
107 try base.encodeNil(forKey: StringCodingKey(stringValue: key.stringValue))
108 }
109
110 @inlinable
111 internal func nestedContainer<NestedKey>(
112 keyedBy keyType: NestedKey.Type,
113 forKey key: Key
114 ) -> KeyedEncodingContainer<NestedKey> where NestedKey: CodingKey {
115 base.nestedContainer(keyedBy: keyType, forKey: StringCodingKey(stringValue: key.stringValue))
116 }
117
118 @inlinable
119 internal func nestedUnkeyedContainer(forKey key: Key) -> UnkeyedEncodingContainer {
120 base.nestedUnkeyedContainer(forKey: StringCodingKey(stringValue: key.stringValue))
121 }
122
123 @inlinable
124 internal func superEncoder() -> Encoder {
125 base.superEncoder()
126 }
127
128 @inlinable
129 internal func superEncoder(forKey key: Key) -> Encoder {
130 base.superEncoder(forKey: StringCodingKey(stringValue: key.stringValue))
131 }
132}