this repo has no description
at main 132 lines 4.3 kB view raw
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}