From 31599f4d18de987554fcc364cd35cd2e8073f0ce Mon Sep 17 00:00:00 2001 From: syn Date: Sat, 16 Jan 2021 02:51:10 +0300 Subject: move `include!` to mod & some enhances in generate --- src/client_ext/mod.rs | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) (limited to 'src/client_ext/mod.rs') 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 { @@ -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.timestamp(date as i64, 0); + format!("{}", dt) +} impl ClientExt for Client {} -- cgit v1.2.1-18-gbd029