diff options
Diffstat (limited to 'src/client_ext/mod.rs')
-rw-r--r-- | src/client_ext/mod.rs | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/src/client_ext/mod.rs b/src/client_ext/mod.rs index 0693d99..2d5b23c 100644 --- a/src/client_ext/mod.rs +++ b/src/client_ext/mod.rs @@ -1,11 +1,7 @@ use serde::Deserializer; -use tdlib_rs::client::ClientLike; use serde::Deserialize; -use serde_derive::{Serialize, Deserialize}; -use serde_json::{json, Value as SerdeJsonValue}; use tdlib_rs::Client; -use tdlib_rs::client::ResponseFuture; #[allow(unused)] pub fn deserialize_i64_0<'de, D: Deserializer<'de>>(deserializer: D) -> std::result::Result<i64, D::Error> { @@ -21,6 +17,28 @@ pub fn deserialize_i64_1<'de, D: Deserializer<'de>>(deserializer: D) -> std::res .map_err(serde::de::Error::custom) } -include!("generated.rs"); +//include!("generated.rs"); +pub mod generated; + +pub use generated::*; + +impl std::fmt::Display for UserStatus { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + UserStatus::UserStatusEmpty => write!(f, "seen never"), + UserStatus::UserStatusOnline(online) => write!(f, "online. expires: {}", fmt_date(online.expires)), + UserStatus::UserStatusOffline(offline) => write!(f, "online. expires: {}", fmt_date(offline.was_online)), + UserStatus::UserStatusRecently => write!(f, "seen recently"), + UserStatus::UserStatusLastWeek => write!(f, "seen last week"), + UserStatus::UserStatusLastMonth => write!(f, "seen last month"), + } + } +} + +fn fmt_date(date: i32) -> String { + use chrono::TimeZone; + let dt: chrono::DateTime<chrono::Local> = chrono::Local.timestamp(date as i64, 0); + format!("{}", dt) +} impl ClientExt for Client {} |