pub enum Message {
Join {
id: String,
room: String,
user: String,
ts: DateTime<Utc>,
seq: Option<u64>,
},
Leave {
id: String,
room: String,
user: String,
ts: DateTime<Utc>,
seq: Option<u64>,
},
Message {
id: String,
room: String,
user: String,
ts: DateTime<Utc>,
seq: Option<u64>,
content: String,
},
Reply {
id: String,
room: String,
user: String,
ts: DateTime<Utc>,
seq: Option<u64>,
reply_to: String,
content: String,
},
Command {
id: String,
room: String,
user: String,
ts: DateTime<Utc>,
seq: Option<u64>,
cmd: String,
params: Vec<String>,
},
System {
id: String,
room: String,
user: String,
ts: DateTime<Utc>,
seq: Option<u64>,
content: String,
},
DirectMessage {
id: String,
room: String,
user: String,
ts: DateTime<Utc>,
seq: Option<u64>,
to: String,
content: String,
},
}Expand description
Wire format for all messages stored in the chat file and sent over the socket.
Uses #[serde(tag = "type")] internally-tagged enum without #[serde(flatten)]
to avoid the serde flatten + internally-tagged footgun that breaks deserialization.
Every variant carries its own id/room/user/ts fields.
Variants§
Join
Leave
Message
Reply
Fields
Command
Fields
System
DirectMessage
A private direct message. Delivered only to sender, recipient, and the broker host. Always written to the chat history file.
Implementations§
Source§impl Message
impl Message
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Message
impl<'de> Deserialize<'de> for Message
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl StructuralPartialEq for Message
Auto Trait Implementations§
impl Freeze for Message
impl RefUnwindSafe for Message
impl Send for Message
impl Sync for Message
impl Unpin for Message
impl UnsafeUnpin for Message
impl UnwindSafe for Message
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more