use serde::{Deserialize, Serialize}; use crate::{channels::ChannelReference, message_ast::MessageContent}; #[derive(Serialize, Deserialize, Clone, PartialEq, Eq)] pub enum MessageReference { Discord(u64, u64), Matrix(String, String), } pub struct MessageAuthor { pub display_name: String, } pub struct SentMessage { pub source: MessageReference, pub content: MessageContent, pub author: MessageAuthor, pub replies_to: Option, } pub struct EditedMessage { pub replacing: MessageReference, pub content: MessageContent, pub author: MessageAuthor, } pub enum MessageEvent { AdminLinkChannels(Vec), Send(SentMessage), Edit(EditedMessage), }