zwave 0.0.1

Control Z-Wave networks with Rust.
#[derive(Debug,Hash,PartialEq,Eq)]
#[repr(u8)]
pub enum PreambleId {
    Frame = 0x01,
    Ack = 0x06,
    Nack = 0x15,
    Cancel = 0x18,
}

impl PreambleId {
    pub fn from_u8(value: u8) -> Option<PreambleId> {
        match value {
            0x01 => Some(PreambleId::Frame),
            0x06 => Some(PreambleId::Ack),
            0x15 => Some(PreambleId::Nack),
            0x18 => Some(PreambleId::Cancel),

            _ => None,
        }
    }
}

#[derive(Debug,Hash,PartialEq,Eq)]
#[repr(u8)]
pub enum MessageTypeId {
    Request = 0x00,
    Response = 0x01,
}

impl MessageTypeId {
    pub fn from_u8(value: u8) -> Option<MessageTypeId> {
        match value {
            0x00 => Some(MessageTypeId::Request),
            0x01 => Some(MessageTypeId::Response),

            _ => None,
        }
    }
}

#[derive(Debug,Hash,PartialEq,Eq)]
#[repr(u8)]
pub enum FunctionId {
    SendData = 0x13,
}

impl FunctionId {
    pub fn from_u8(value: u8) -> Option<FunctionId> {
        match value {
            0x13 => Some(FunctionId::SendData),

            _ => None,
        }
    }
}

pub type CommandClassId = u8;
pub type CommandId = u8;