Attribute Macro abstract_bits

Source
#[abstract_bits]
Expand description

§Warning

  • When applied to an enum (which does not contain values) that enum must be Copy.
  • Any derives should be applied after the abstract_bits macro.

§Example:

#[derive(Debug, Eq, PartialEq, TryFromPrimitive, Clone, Copy)]
#[abstract_bits(bits=2)]
#[repr(u8)]
pub enum NwkRouteRequestManyToOne {
    NotManyToOne = 0,
    ManyToOneSenderSupportsRouteRecordTable = 1,
    ManyToOneSenderDoesntSupportRouteRecordTable = 2,
    Reserved = 3,
}

#[abstract_bits]
#[derive(Debug, Clone, PartialEq)]
pub struct NwkRouteRequestCommand {
    reserved: u3,
    pub many_to_one: NwkRouteRequestManyToOne,
    #[abstract_bits(presence_of = destination_eui64)]
    reserved: bool,
    reserved: u2,
    pub route_request_identifier: u8,
    pub destination_address: Nwk,
    pub path_cost: u8,
    pub destination_eui64: Option<Eui64>,
    pub tlvs: Vec<u8>,
}