[Shared] Encodes all CodableError codable user info values, not just recognized types

This commit is contained in:
Riley Testut
2022-12-12 15:56:26 -06:00
committed by Magesh K
parent 2e987647dc
commit d2d90ab9da

View File

@@ -23,7 +23,7 @@ extension CodableError
{ {
enum UserInfoValue: Codable enum UserInfoValue: Codable
{ {
case unknown case unknown(Any?)
case string(String) case string(String)
case number(Int) case number(Int)
case error(NSError) case error(NSError)
@@ -33,7 +33,7 @@ extension CodableError
var value: Any? { var value: Any? {
switch self switch self
{ {
case .unknown: return nil case .unknown(let value): return value
case .string(let string): return string case .string(let string): return string
case .number(let number): return number case .number(let number): return number
case .error(let error): return error case .error(let error): return error
@@ -66,7 +66,7 @@ extension CodableError
case let error as NSError: self = .codableError(CodableError(error: error)) case let error as NSError: self = .codableError(CodableError(error: error))
case let array as [Any]: self = .array(array.compactMap(UserInfoValue.init)) case let array as [Any]: self = .array(array.compactMap(UserInfoValue.init))
case let dictionary as [String: Any]: self = .dictionary(dictionary.compactMapValues(UserInfoValue.init)) case let dictionary as [String: Any]: self = .dictionary(dictionary.compactMapValues(UserInfoValue.init))
default: self = .unknown default: self = .unknown(rawValue)
} }
} }
init(from decoder: Decoder) throws init(from decoder: Decoder) throws
@@ -101,7 +101,7 @@ extension CodableError
} }
else else
{ {
self = .unknown self = .unknown(nil)
} }
} }