use serde::{Deserialize, Serialize}; use uuid::Uuid; #[derive(Debug, Clone, Serialize, Deserialize)] pub enum WsInbound { Auth { request_id: Uuid, token: String, }, Heartbeat { request_id: Uuid, }, JoinChannel { request_id: Uuid, channel_id: Uuid, }, LeaveChannel { request_id: Uuid, channel_id: Uuid, }, TypingStart { request_id: Uuid, channel_id: Uuid, thread_id: Option, }, TypingStop { request_id: Uuid, channel_id: Uuid, thread_id: Option, }, MessageSend { request_id: Uuid, channel_id: Uuid, body: String, #[serde(skip_serializing_if = "Option::is_none")] thread_id: Option, #[serde(skip_serializing_if = "Option::is_none")] reply_to: Option, #[serde(skip_serializing_if = "Option::is_none")] message_type: Option, }, MessageEdit { request_id: Uuid, channel_id: Uuid, message_id: Uuid, body: String, }, MessageDelete { request_id: Uuid, channel_id: Uuid, message_id: Uuid, }, PresenceUpdate { request_id: Uuid, status: String, #[serde(skip_serializing_if = "Option::is_none")] custom_status_text: Option, #[serde(skip_serializing_if = "Option::is_none")] custom_status_emoji: Option, }, ReadReceipt { request_id: Uuid, channel_id: Uuid, last_read_message_id: Uuid, #[serde(skip_serializing_if = "Option::is_none")] last_seq: Option, }, }