#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(u8)]
pub enum Role {
Publisher = 1,
Subscriber = 2,
PubSub = 3,
}
impl Role {
pub fn from_u8(v: u8) -> Option<Self> {
match v {
1 => Some(Role::Publisher),
2 => Some(Role::Subscriber),
3 => Some(Role::PubSub),
_ => None,
}
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(u8)]
pub enum ObjectStatus {
Normal = 0,
ObjectDoesNotExist = 1,
EndOfGroup = 3,
EndOfTrackAndGroup = 4,
EndOfSubgroup = 5,
}
impl ObjectStatus {
pub const ALL: &[ObjectStatus] = &[
ObjectStatus::Normal,
ObjectStatus::ObjectDoesNotExist,
ObjectStatus::EndOfGroup,
ObjectStatus::EndOfTrackAndGroup,
ObjectStatus::EndOfSubgroup,
];
pub fn from_u64(v: u64) -> Option<Self> {
match v {
0 => Some(ObjectStatus::Normal),
1 => Some(ObjectStatus::ObjectDoesNotExist),
3 => Some(ObjectStatus::EndOfGroup),
4 => Some(ObjectStatus::EndOfTrackAndGroup),
5 => Some(ObjectStatus::EndOfSubgroup),
_ => None,
}
}
pub fn as_u64(self) -> u64 {
self as u64
}
}