diff options
author | 2025-04-28 19:53:11 +0100 | |
---|---|---|
committer | 2025-04-28 19:53:11 +0100 | |
commit | 42c7423667a2d6acdebca75250ad30c5d475081b (patch) | |
tree | 65faaac42cf3f8ef83715ee7f66db1af45dd39d6 /filamento/src/chat.rs | |
parent | 66cd4d48142124d920e5cc57f685555d279b8c7a (diff) | |
download | luz-42c7423667a2d6acdebca75250ad30c5d475081b.tar.gz luz-42c7423667a2d6acdebca75250ad30c5d475081b.tar.bz2 luz-42c7423667a2d6acdebca75250ad30c5d475081b.zip |
feat: serde
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, |