in Sources/TwitterApacheThrift/ThriftDecoder.swift [176:189]
func decode<T>(_ type: T.Type) throws -> T where T : Decodable {
let value: ThriftObject
if case .keyedCollection(let collection) = decoder.value {
value = collection.value[currentIndex].value
} else if case .unkeyedCollection(let collection) = decoder.value {
value = collection.value[currentIndex]
} else if let decoderValue = self.decoder.value {
return try decoder.decodeType(type: type, value: decoderValue)
} else {
throw ThriftDecoderError.uninitializedDecodingData
}
return try decoder.decodeType(type: type, value: value)
}