//import Foundation // //public struct Payload: Codable, Equatable, Hashable { // public var text: String // public var reply: Reply? // public var attachment: Attachment? // // public init(text: String, reply: Reply?, attachment: Attachment?) { // self.text = text // self.reply = reply // self.attachment = attachment // } // // public init(with marshaled: Data) throws { // let proto = try CMIXText(serializedData: marshaled) // // var reply: Reply? // // if proto.hasReply { // reply = Reply( // messageId: proto.reply.messageID, // senderId: proto.reply.senderID // ) // } // // self.init(text: proto.text, reply: reply, attachment: nil) // } // // public func asData() -> Data { // var protoModel = CMIXText() // protoModel.text = text // // if let reply = reply { // protoModel.reply = reply.asTextReply() // } // // return try! protoModel.serializedData() // } //}