import Foundation public struct ChannelDef: Equatable { public init( name: String, description: String, salt: Data, pubKey: Data ) { self.name = name self.description = description self.salt = salt self.pubKey = pubKey } public var name: String public var description: String public var salt: Data public var pubKey: Data } extension ChannelDef: Codable { enum CodingKeys: String, CodingKey { case name = "Name" case description = "Description" case salt = "Salt" case pubKey = "PubKey" } public static func decode(_ data: Data) throws -> Self { try JSONDecoder().decode(Self.self, from: data) } public func encode() throws -> Data { try JSONEncoder().encode(self) } }