ios/BitwardenWatchShared/MessagePack/AnyCodingKey.swift
2024-01-16 10:01:12 -07:00

25 lines
562 B
Swift

struct AnyCodingKey: CodingKey, Equatable {
var stringValue: String
var intValue: Int?
init?(stringValue: String) {
self.stringValue = stringValue
intValue = nil
}
init?(intValue: Int) {
stringValue = "\(intValue)"
self.intValue = intValue
}
init<Key>(_ base: Key) where Key: CodingKey {
if let intValue = base.intValue {
self.init(intValue: intValue)!
} else {
self.init(stringValue: base.stringValue)!
}
}
}
extension AnyCodingKey: Hashable {}