From 1aae70048e2b6607a155e4033d1ca5bdb958f1a8 Mon Sep 17 00:00:00 2001 From: p0lunin Date: Sun, 19 Jan 2020 16:05:45 +0200 Subject: [PATCH] added is_{private, group, supergroup, channel, chat} for type Chat --- src/types/chat.rs | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/src/types/chat.rs b/src/types/chat.rs index 15e6dafd..3ba52d10 100644 --- a/src/types/chat.rs +++ b/src/types/chat.rs @@ -1,8 +1,6 @@ use serde::{Deserialize, Serialize}; -use crate::{ - types::{ChatPermissions, ChatPhoto, Message}, -}; +use crate::types::{ChatPermissions, ChatPhoto, Message}; /// This object represents a chat. /// @@ -158,6 +156,36 @@ where des.deserialize_str(PrivateChatKindVisitor) } +impl Chat { + pub fn is_private(&self) -> bool { + match self.kind { + ChatKind::Private {..} => true, + _ => false + } + } + pub fn is_group(&self) -> bool { + match self.kind { + ChatKind::NonPrivate { kind: NonPrivateChatKind::Group {..}, .. } => true, + _ => false + } + } + pub fn is_supergroup(&self) -> bool { + match self.kind { + ChatKind::NonPrivate { kind: NonPrivateChatKind::Supergroup {..}, .. } => true, + _ => false + } + } + pub fn is_channel(&self) -> bool { + match self.kind { + ChatKind::NonPrivate { kind: NonPrivateChatKind::Channel {..}, .. } => true, + _ => false + } + } + pub fn is_chat(&self) -> bool { + self.is_private() || self.is_group() || self.is_supergroup() + } +} + #[cfg(test)] mod tests { use serde_json::from_str;