[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
{
case unknown
case unknown(Any?)
case string(String)
case number(Int)
case error(NSError)
@@ -33,7 +33,7 @@ extension CodableError
var value: Any? {
switch self
{
case .unknown: return nil
case .unknown(let value): return value
case .string(let string): return string
case .number(let number): return number
case .error(let error): return error
@@ -66,7 +66,7 @@ extension CodableError
case let error as NSError: self = .codableError(CodableError(error: error))
case let array as [Any]: self = .array(array.compactMap(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
@@ -101,7 +101,7 @@ extension CodableError
}
else
{
self = .unknown
self = .unknown(nil)
}
}