diff options
Diffstat (limited to 'src/client_ext/mod.rs')
-rw-r--r-- | src/client_ext/mod.rs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/client_ext/mod.rs b/src/client_ext/mod.rs new file mode 100644 index 0000000..0693d99 --- /dev/null +++ b/src/client_ext/mod.rs @@ -0,0 +1,26 @@ +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> { + String::deserialize(deserializer)?.parse::<i64>().map_err(serde::de::Error::custom) +} +#[allow(unused)] +pub fn deserialize_i64_1<'de, D: Deserializer<'de>>(deserializer: D) -> std::result::Result<Vec<i64>, D::Error> { + use std::str::FromStr; + Vec::<&'de str>::deserialize(deserializer)? + .into_iter() + .map(i64::from_str) + .collect::<std::result::Result<Vec<_>, _>>() + .map_err(serde::de::Error::custom) +} + +include!("generated.rs"); + +impl ClientExt for Client {} |