@@ -9,25 +9,28 @@ import Foundation
99
1010/// Required for encoding/decoding an observable object class. Refer to:
1111/// https://www.hackingwithswift.com/books/ios-swiftui/encoding-an-observableobject-class
12- extension ObservableWebSocketClient : Codable {
12+ extension ObservableWebSocketClient {
1313 public enum CodingKeys : String , CodingKey {
14+ case id
1415 case websocketURL
1516 case message
1617 case error
1718 }
1819
1920 public func encode( to encoder: Encoder ) throws {
2021 var container = encoder. container ( keyedBy: CodingKeys . self)
22+ try container. encode ( id, forKey: . id)
2123 try container. encode ( websocketURL, forKey: . websocketURL)
2224 try container. encodeIfPresent ( message, forKey: . message)
2325 try container. encodeIfPresent ( error, forKey: . error)
2426 }
2527
2628 public convenience init ( from decoder: Decoder ) throws {
2729 let container = try decoder. container ( keyedBy: CodingKeys . self)
30+ let id = try container. decode ( UUID . self, forKey: . id)
2831 let websocketURL = try container. decode ( URL . self, forKey: . websocketURL)
2932 let message = try container. decodeIfPresent ( CodableWebSocketMessage . self, forKey: . message)
3033 let error = try container. decodeIfPresent ( ObservableWebSocketClientError . self, forKey: . error)
31- self . init ( websocketURL: websocketURL, message: message, error: error)
34+ self . init ( id : id , websocketURL: websocketURL, message: message, error: error)
3235 }
3336}
0 commit comments