1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
use super::{ChatMap, Message};
use crate::Client;
use grammers_tl_types as tl;
use std::sync::Arc;
#[non_exhaustive]
pub enum Update {
NewMessage(Message),
}
impl Update {
pub(crate) fn new(
client: &Client,
update: tl::enums::Update,
chats: &Arc<ChatMap>,
) -> Option<Self> {
match update {
tl::enums::Update::NewMessage(tl::types::UpdateNewMessage { message, .. }) => {
Message::new(client, message, chats).map(Self::NewMessage)
}
tl::enums::Update::NewChannelMessage(tl::types::UpdateNewChannelMessage {
message,
..
}) => Message::new(client, message, chats).map(Self::NewMessage),
_ => None,
}
}
}