diff --git a/grammers-client/src/peer/channel.rs b/grammers-client/src/peer/channel.rs index 633e282d..02a00cdb 100644 --- a/grammers-client/src/peer/channel.rs +++ b/grammers-client/src/peer/channel.rs @@ -214,6 +214,11 @@ impl Channel { None => None, } } + + /// Return whether this channel requires join requests. + pub fn requires_join_request(&self) -> bool { + self.raw.join_request + } } impl TryFrom for ChannelKind { diff --git a/grammers-client/src/peer/group.rs b/grammers-client/src/peer/group.rs index 4570f913..e0589d02 100644 --- a/grammers-client/src/peer/group.rs +++ b/grammers-client/src/peer/group.rs @@ -201,6 +201,18 @@ impl Group { C::Channel(_) | C::ChannelForbidden(_) => true, } } + + /// Return whether this group requires join requests. + pub fn requires_join_request(&self) -> bool { + use tl::enums::Chat; + + match &self.raw { + Chat::Empty(_) | Chat::Chat(_) | Chat::Forbidden(_) | Chat::ChannelForbidden(_) => { + false + } + Chat::Channel(channel) => channel.join_request, + } + } } impl From for PeerInfo {