use num_derive::FromPrimitive;
use num_traits::FromPrimitive;
#[derive(Debug, Clone, Copy, Ord, PartialOrd, Eq, PartialEq, FromPrimitive)]
#[repr(u16)]
pub enum State {
None = 0x0000,
FactoryNew = 0x0001,
AddressAssignmentCapable = 0x0002,
LinkInitiator = 0x0010,
LinkPriorityRequest = 0x0020,
NonZllNetwork = 0x0100,
}
impl From<State> for u16 {
fn from(state: State) -> Self {
state as Self
}
}
impl TryFrom<u16> for State {
type Error = u16;
fn try_from(value: u16) -> Result<Self, Self::Error> {
Self::from_u16(value).ok_or(value)
}
}