diff options
Diffstat (limited to 'filamento/src/chat.rs')
-rw-r--r-- | filamento/src/chat.rs | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/filamento/src/chat.rs b/filamento/src/chat.rs index 2aa2282..936613e 100644 --- a/filamento/src/chat.rs +++ b/filamento/src/chat.rs @@ -1,12 +1,13 @@ use chrono::{DateTime, Utc}; use jid::JID; use rusqlite::{ - ToSql, types::{FromSql, ToSqlOutput, Value}, + ToSql, }; use uuid::Uuid; -#[derive(Debug, Clone)] +#[derive(Debug, Clone, PartialEq, Eq)] +#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))] pub struct Message { pub id: Uuid, // does not contain full user information @@ -20,7 +21,8 @@ pub struct Message { pub body: Body, } -#[derive(Debug, Clone, Copy)] +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))] pub enum Delivery { Sending, Written, @@ -67,13 +69,15 @@ impl FromSql for Delivery { // Outside, // } -#[derive(Debug, Clone)] +#[derive(Debug, Clone, PartialEq, Eq)] +#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))] pub struct Body { // TODO: rich text, other contents, threads pub body: String, } -#[derive(Debug, Clone)] +#[derive(Debug, Clone, PartialEq, Eq)] +#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))] pub struct Chat { pub correspondent: JID, pub have_chatted: bool, |