// Generated by scripts/protocol-gen-swift.ts — do not edit by hand
import Foundation
public struct ConnectParams: Codable, Sendable {
public let minProtocol: Int
public let maxProtocol: Int
public let client: Client // 嵌套 struct
public let caps: [String]?
public let commands: [String]?
public let permissions: [String: Bool]?
public let device: Device? // 嵌套 struct
public let auth: Auth? // 嵌套 struct
// ... init 和 CodingKeys 省略
}
public enum GatewayFrame: Codable, Sendable {
case req(RequestFrame)
case res(ResponseFrame)
case event(EventFrame)
case unknown(type: String, raw: [String: AnyCodable])
public init(from decoder: Decoder) throws {
let typeContainer = try decoder.container(keyedBy: CodingKeys.self)
let type = try typeContainer.decode(String.self, forKey: .type)
switch type {
case "req": self = .req(try RequestFrame(from: decoder))
case "res": self = .res(try ResponseFrame(from: decoder))
case "event": self = .event(try EventFrame(from: decoder))
default:
let raw = try decoder.singleValueContainer()
.decode([String: AnyCodable].self)
self = .unknown(type: type, raw: raw)
}
}
}