tuwunel_matrix/event/
msgtype.rs1use serde::Deserialize;
2
3use super::Event;
4
5#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq)]
10pub enum MsgType {
11 #[serde(rename = "m.audio")]
13 Audio,
14
15 #[serde(rename = "m.emote")]
17 Emote,
18
19 #[serde(rename = "m.file")]
21 File,
22
23 #[serde(rename = "m.image")]
25 Image,
26
27 #[serde(rename = "m.key.verification.request")]
29 KeyVerificationRequest,
30
31 #[serde(rename = "m.location")]
33 Location,
34
35 #[serde(rename = "m.notice")]
37 Notice,
38
39 #[serde(rename = "m.server_notice")]
41 ServerNotice,
42
43 #[serde(rename = "m.text")]
45 Text,
46
47 #[serde(rename = "m.video")]
49 Video,
50
51 #[serde(other)]
53 Other,
54}
55
56#[derive(Deserialize)]
57struct Content {
58 msgtype: Option<MsgType>,
59}
60
61pub(super) fn content_msgtype<E: Event>(event: &E) -> Option<MsgType> {
62 event
63 .get_content()
64 .ok()
65 .and_then(|content: Content| content.msgtype)
66}