Something went wrong. Try again.
This repository has no description
Something went wrong. Try again.
swift-urlqueryitem-coder Sources URLQueryItemCoder Decoder Generic Implementation DecodingContainer.swift
1.9 kB · 64 lines
Swift
at main
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465//// DecodingContainer.swift// URLQueryItemCoder//// Created by Kyle Hughes on 1/19/23.//
import Foundation
internal enum DecodingContainer<PrimitiveValue> where PrimitiveValue: DecodingPrimitiveValue { case multiValue(MultiValue) case singleValue(SingleValue) // MARK: Internal Static Interface @inlinable internal static func empty( at codingPath: [any CodingKey], using configuration: DecodingStrategies ) -> Self { .multiValue(at: codingPath, using: configuration) } @inlinable internal static func multiValue( at codingPath: [any CodingKey], using configuration: DecodingStrategies ) -> Self { .multiValue(MultiValue(codingPath: codingPath, configuration: configuration)) } @inlinable internal static func singleValue( at codingPath: [any CodingKey], using configuration: DecodingStrategies ) -> Self { .singleValue(SingleValue(codingPath: codingPath, configuration: configuration)) } // MARK: Internal Instance Interface internal var configuration: DecodingStrategies { switch self { case let .multiValue(multiValueContainer): return multiValueContainer.configuration case let .singleValue(singleValueContainer): return singleValueContainer.configuration } } internal func expectedSingleValueContainer(at codingPath: [any CodingKey]) throws -> SingleValue { switch self { case .multiValue: throw DecodingError.dataCorrupted( DecodingError.Context( codingPath: codingPath, debugDescription: "Expected date to be encoded as a single value conatiner." ) ) case let .singleValue(singleValueContainer): return singleValueContainer } }}