diff options
Diffstat (limited to 'filamento/src/presence.rs')
-rw-r--r-- | filamento/src/presence.rs | 41 |
1 files changed, 1 insertions, 40 deletions
diff --git a/filamento/src/presence.rs b/filamento/src/presence.rs index a7a8965..e406cce 100644 --- a/filamento/src/presence.rs +++ b/filamento/src/presence.rs @@ -1,15 +1,12 @@ use chrono::{DateTime, Utc}; -use sqlx::Sqlite; use stanza::{client::presence::String1024, xep_0203::Delay}; use crate::caps; -#[derive(Debug, Default, sqlx::FromRow, Clone)] +#[derive(Debug, Default, Clone)] pub struct Online { pub show: Option<Show>, - #[sqlx(rename = "message")] pub status: Option<String>, - #[sqlx(skip)] pub priority: Option<i8>, } @@ -21,42 +18,6 @@ pub enum Show { ExtendedAway, } -impl sqlx::Type<Sqlite> for Show { - fn type_info() -> <Sqlite as sqlx::Database>::TypeInfo { - <&str as sqlx::Type<Sqlite>>::type_info() - } -} - -impl sqlx::Decode<'_, Sqlite> for Show { - fn decode( - value: <Sqlite as sqlx::Database>::ValueRef<'_>, - ) -> Result<Self, sqlx::error::BoxDynError> { - let value = <&str as sqlx::Decode<Sqlite>>::decode(value)?; - match value { - "away" => Ok(Self::Away), - "chat" => Ok(Self::Chat), - "do-not-disturb" => Ok(Self::DoNotDisturb), - "extended-away" => Ok(Self::ExtendedAway), - _ => unreachable!(), - } - } -} - -impl sqlx::Encode<'_, Sqlite> for Show { - fn encode_by_ref( - &self, - buf: &mut <Sqlite as sqlx::Database>::ArgumentBuffer<'_>, - ) -> Result<sqlx::encode::IsNull, sqlx::error::BoxDynError> { - let value = match self { - Show::Away => "away", - Show::Chat => "chat", - Show::DoNotDisturb => "do-not-disturb", - Show::ExtendedAway => "extended-away", - }; - <&str as sqlx::Encode<Sqlite>>::encode(value, buf) - } -} - #[derive(Debug, Default, Clone)] pub struct Offline { pub status: Option<String>, |