#[derive(Debug, Clone, Hash, PartialEq, Eq)] pub struct ChatReference { pub service: &'static str, pub id: String, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct ChatMessageReference { pub channel: ChatReference, pub message_id: String, } impl ChatMessageReference { pub fn new(channel: ChatReference, message_id: impl ToString) -> Self { Self { channel, message_id: message_id.to_string(), } } }