Mac: use typed GatewayFrame + forward-compatible Swift generator

This commit is contained in:
Peter Steinberger
2025-12-09 15:26:31 +01:00
parent f244aba03d
commit a7737912b0
5 changed files with 83 additions and 47 deletions

View File

@@ -341,6 +341,7 @@ public enum GatewayFrame: Codable {
case req(RequestFrame)
case res(ResponseFrame)
case event(EventFrame)
case unknown(type: String, raw: [String: AnyCodable])
public init(from decoder: Decoder) throws {
let container = try decoder.singleValueContainer()
@@ -362,7 +363,7 @@ public enum GatewayFrame: Codable {
case "event":
self = .event(try decodePayload(EventFrame.self, from: raw))
default:
throw DecodingError.dataCorruptedError(in: container, debugDescription: "unknown type (type)")
self = .unknown(type: type, raw: raw)
}
}
@@ -374,6 +375,9 @@ public enum GatewayFrame: Codable {
case .req(let v): try v.encode(to: encoder)
case .res(let v): try v.encode(to: encoder)
case .event(let v): try v.encode(to: encoder)
case .unknown(_, let raw):
var container = encoder.singleValueContainer()
try container.encode(raw)
}
}