cove/cove-core/src/message.rs

29 lines
805 B
Rust

use serde::{Deserialize, Serialize};
use crate::{Identity, MessageId};
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct Message {
pub time: u128,
pub pred: MessageId,
pub parent: Option<MessageId>,
pub identity: Identity,
pub nick: String,
pub content: String,
}
impl Message {
pub fn id(&self) -> MessageId {
let time = self.time;
let pred = self.pred;
let parent = match self.parent {
Some(id) => format!("{id}"),
None => "none".to_string(),
};
let identity = self.identity;
let nick = MessageId::of(&self.nick);
let content = MessageId::of(&self.content);
let str = format!("message {time} {pred} {parent} {identity} {nick} {content}");
MessageId::of(&str)
}
}