pub mod reference; pub use reference::*; #[derive(Debug, Clone)] pub enum ChatAttachment { Online { media_type: Option, url: String, }, InMemory { media_type: Option, file_name: String, data: Vec, }, } #[derive(Debug, Clone)] pub struct ChatAuthor { pub reference: ChatReference, pub display_name: String, pub display_color: Option<[u8; 3]>, pub avatar: ChatAttachment, } mod content; pub use content::*; #[derive(Debug, Clone)] pub struct ChatMessage { pub origin: ChatMessageReference, pub author: ChatAuthor, pub content: ChatMessageContent, pub attachments: Vec, pub replying: Option, } #[derive(Debug, Clone)] pub struct ChatMessageEdit { pub origin: ChatMessageReference, pub author: ChatAuthor, pub new_content: ChatMessageContent, } pub mod event;