#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[non_exhaustive]
#[repr(u8)]
pub enum MessageType {
Announce = 0x01,
Heartbeat = 0x02,
Data = 0x03,
Query = 0x04,
Ack = 0x05,
Leave = 0x06,
Document = 0x07,
OtaOffer = 0x10,
OtaAccept = 0x11,
OtaData = 0x12,
OtaAck = 0x13,
OtaComplete = 0x14,
OtaResult = 0x15,
OtaAbort = 0x16,
}
impl MessageType {
pub fn from_u8(v: u8) -> Option<Self> {
match v {
0x01 => Some(Self::Announce),
0x02 => Some(Self::Heartbeat),
0x03 => Some(Self::Data),
0x04 => Some(Self::Query),
0x05 => Some(Self::Ack),
0x06 => Some(Self::Leave),
0x07 => Some(Self::Document),
0x10 => Some(Self::OtaOffer),
0x11 => Some(Self::OtaAccept),
0x12 => Some(Self::OtaData),
0x13 => Some(Self::OtaAck),
0x14 => Some(Self::OtaComplete),
0x15 => Some(Self::OtaResult),
0x16 => Some(Self::OtaAbort),
_ => None,
}
}
}