use anyhow::Result;
#[derive(Debug, Clone, Copy)]
pub enum MsgType {
Handshake,
Audio,
Text,
Control,
Metadata,
Error,
Ping,
ColoredText,
Image,
Codes,
}
impl MsgType {
pub fn from_u8(v: u8) -> Result<Self> {
let s = match v {
0 => MsgType::Handshake,
1 => MsgType::Audio,
2 => MsgType::Text,
3 => MsgType::Control,
4 => MsgType::Metadata,
5 => MsgType::Error,
6 => MsgType::Ping,
7 => MsgType::ColoredText,
8 => MsgType::Image,
9 => MsgType::Codes,
_ => anyhow::bail!("unexpected msg type {v}"),
};
Ok(s)
}
pub fn to_u8(self) -> u8 {
match self {
MsgType::Handshake => 0,
MsgType::Audio => 1,
MsgType::Text => 2,
MsgType::Control => 3,
MsgType::Metadata => 4,
MsgType::Error => 5,
MsgType::Ping => 6,
MsgType::ColoredText => 7,
MsgType::Image => 8,
MsgType::Codes => 9,
}
}
}