use grammers_session::updates::State;
use grammers_tl_types as tl;
#[derive(Debug, Clone)]
pub struct MessageDeletion {
pub raw: tl::enums::Update,
pub state: State,
}
impl MessageDeletion {
pub fn channel_id(&self) -> Option<i64> {
match &self.raw {
tl::enums::Update::DeleteMessages(_) => None,
tl::enums::Update::DeleteChannelMessages(update) => Some(update.channel_id),
_ => unreachable!(),
}
}
pub fn messages(&self) -> &[i32] {
match &self.raw {
tl::enums::Update::DeleteMessages(update) => update.messages.as_slice(),
tl::enums::Update::DeleteChannelMessages(update) => update.messages.as_slice(),
_ => unreachable!(),
}
}
pub fn into_messages(self) -> Vec<i32> {
match self.raw {
tl::enums::Update::DeleteMessages(update) => update.messages,
tl::enums::Update::DeleteChannelMessages(update) => update.messages,
_ => unreachable!(),
}
}
}