diff options
author | 2025-04-17 11:24:43 +0100 | |
---|---|---|
committer | 2025-04-17 11:24:43 +0100 | |
commit | 26d0ee51e232b793bc83ba565c0e9ab820d8d0db (patch) | |
tree | 26596552b1c7692fe9b4c95a9b254299273f2432 /filamento/src/chat.rs | |
parent | b9d75f38743113c054be3d97af36bdd2a7dd0d69 (diff) | |
download | luz-26d0ee51e232b793bc83ba565c0e9ab820d8d0db.tar.gz luz-26d0ee51e232b793bc83ba565c0e9ab820d8d0db.tar.bz2 luz-26d0ee51e232b793bc83ba565c0e9ab820d8d0db.zip |
feat(filamento): remove sqlx
Diffstat (limited to 'filamento/src/chat.rs')
-rw-r--r-- | filamento/src/chat.rs | 51 |
1 files changed, 3 insertions, 48 deletions
diff --git a/filamento/src/chat.rs b/filamento/src/chat.rs index 147c7f7..557b42b 100644 --- a/filamento/src/chat.rs +++ b/filamento/src/chat.rs @@ -1,13 +1,11 @@ use chrono::{DateTime, Utc}; use jid::JID; -use sqlx::Sqlite; use uuid::Uuid; -#[derive(Debug, sqlx::FromRow, Clone)] +#[derive(Debug, Clone)] pub struct Message { pub id: Uuid, // does not contain full user information - #[sqlx(rename = "from_jid")] // bare jid (for now) pub from: JID, pub delivery: Option<Delivery>, @@ -15,7 +13,6 @@ pub struct Message { // TODO: originally_from // TODO: message edits // TODO: message timestamp - #[sqlx(flatten)] pub body: Body, } @@ -30,61 +27,19 @@ pub enum Delivery { Queued, } -impl sqlx::Type<Sqlite> for Delivery { - fn type_info() -> <Sqlite as sqlx::Database>::TypeInfo { - <&str as sqlx::Type<Sqlite>>::type_info() - } -} - -impl sqlx::Decode<'_, Sqlite> for Delivery { - fn decode( - value: <Sqlite as sqlx::Database>::ValueRef<'_>, - ) -> Result<Self, sqlx::error::BoxDynError> { - let value = <&str as sqlx::Decode<Sqlite>>::decode(value)?; - match value { - "sending" => Ok(Self::Sending), - "written" => Ok(Self::Written), - "sent" => Ok(Self::Sent), - "delivered" => Ok(Self::Delivered), - "read" => Ok(Self::Read), - "failed" => Ok(Self::Failed), - "queued" => Ok(Self::Queued), - _ => unreachable!(), - } - } -} - -impl sqlx::Encode<'_, Sqlite> for Delivery { - fn encode_by_ref( - &self, - buf: &mut <Sqlite as sqlx::Database>::ArgumentBuffer<'_>, - ) -> Result<sqlx::encode::IsNull, sqlx::error::BoxDynError> { - let value = match self { - Delivery::Sending => "sending", - Delivery::Written => "written", - Delivery::Sent => "sent", - Delivery::Delivered => "delivered", - Delivery::Read => "read", - Delivery::Failed => "failed", - Delivery::Queued => "queued", - }; - <&str as sqlx::Encode<Sqlite>>::encode(value, buf) - } -} - // TODO: user migrations // pub enum Migrated { // Jabber(User), // Outside, // } -#[derive(Debug, sqlx::FromRow, Clone)] +#[derive(Debug, Clone)] pub struct Body { // TODO: rich text, other contents, threads pub body: String, } -#[derive(sqlx::FromRow, Debug, Clone)] +#[derive(Debug, Clone)] pub struct Chat { pub correspondent: JID, pub have_chatted: bool, |