moshi_server_db/
protocol.rs1use anyhow::Result;
6
7#[derive(Debug, Clone, Copy)]
8pub enum MsgType {
9 Handshake,
10 Audio,
11 Text,
12 Control,
13 Metadata,
14 Error,
15 Ping,
16 ColoredText,
17 Image,
18 Codes,
19}
20
21impl MsgType {
22 pub fn from_u8(v: u8) -> Result<Self> {
23 let s = match v {
24 0 => MsgType::Handshake,
25 1 => MsgType::Audio,
26 2 => MsgType::Text,
27 3 => MsgType::Control,
28 4 => MsgType::Metadata,
29 5 => MsgType::Error,
30 6 => MsgType::Ping,
31 7 => MsgType::ColoredText,
32 8 => MsgType::Image,
33 9 => MsgType::Codes,
34 _ => anyhow::bail!("unexpected msg type {v}"),
35 };
36 Ok(s)
37 }
38
39 pub fn to_u8(self) -> u8 {
40 match self {
41 MsgType::Handshake => 0,
42 MsgType::Audio => 1,
43 MsgType::Text => 2,
44 MsgType::Control => 3,
45 MsgType::Metadata => 4,
46 MsgType::Error => 5,
47 MsgType::Ping => 6,
48 MsgType::ColoredText => 7,
49 MsgType::Image => 8,
50 MsgType::Codes => 9,
51 }
52 }
53}