diff options
author | syn <isaqtm@gmail.com> | 2021-01-13 10:17:13 +0300 |
---|---|---|
committer | syn <isaqtm@gmail.com> | 2021-01-13 10:17:13 +0300 |
commit | 6672855337ba1bab848956c57ca370ed028b1ef4 (patch) | |
tree | ace043be57f3a9a8e18397df3fe41b7cebe8c21e /src/lossy.rs | |
download | airception-6672855337ba1bab848956c57ca370ed028b1ef4.tar.gz |
[WIP] checkpoint
Diffstat (limited to 'src/lossy.rs')
-rw-r--r-- | src/lossy.rs | 51 |
1 files changed, 51 insertions, 0 deletions
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"), + } + } +} |