aboutsummaryrefslogtreecommitdiffstats
path: root/filamento/src/chat.rs
diff options
context:
space:
mode:
authorLibravatar cel 🌸 <cel@bunny.garden>2025-04-28 19:53:11 +0100
committerLibravatar cel 🌸 <cel@bunny.garden>2025-04-28 19:53:11 +0100
commit42c7423667a2d6acdebca75250ad30c5d475081b (patch)
tree65faaac42cf3f8ef83715ee7f66db1af45dd39d6 /filamento/src/chat.rs
parent66cd4d48142124d920e5cc57f685555d279b8c7a (diff)
downloadluz-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.rs14
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,