From 6672855337ba1bab848956c57ca370ed028b1ef4 Mon Sep 17 00:00:00 2001 From: syn Date: Wed, 13 Jan 2021 10:17:13 +0300 Subject: [WIP] checkpoint --- src/lossy.rs | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/lossy.rs (limited to 'src/lossy.rs') diff --git a/src/lossy.rs b/src/lossy.rs new file mode 100644 index 0000000..7992c6a --- /dev/null +++ b/src/lossy.rs @@ -0,0 +1,51 @@ +pub enum LossyUsername { + Username(String), + NoUsername(String, String), + Unknown, +} + +impl LossyUsername { + pub fn from_user_ref(from: &paperplane::types::User) -> Self { + if from.username.len() > 0 { + LossyUsername::Username(from.username.clone()) + } else { + LossyUsername::NoUsername(from.first_name.clone(), from.last_name.clone()) + } + } +} + +impl std::fmt::Display for LossyUsername { + fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { + match self { + LossyUsername::Username(username) => write!(f, "@{}", username), + LossyUsername::NoUsername(first, last) => { + if last.len() > 0 { + write!(f, "{} {}", first, last) + } else { + write!(f, "{}", first) + } + } + LossyUsername::Unknown => write!(f, "unknown"), + } + } +} + +pub enum LossyChatTitle { + Title(String), + Unknown, +} + +impl LossyChatTitle { + pub fn from_chat_ref(from: &paperplane::types::Chat) -> Self { + Self::Title(from.title.clone()) + } +} + +impl std::fmt::Display for LossyChatTitle { + fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { + match self { + LossyChatTitle::Title(title) => write!(f, "{}", title), + LossyChatTitle::Unknown => write!(f, "unknown"), + } + } +} -- cgit v1.2.1-18-gbd029