Macro bit_struct::enums[][src]

macro_rules! enums {
    ($($(#[doc = $struct_doc : expr]) * $(#[derive($($struct_der : ident), +)]) ?
   $enum_vis : vis enum $name : ident
   {
       $($(#[doc = $field_doc : expr]) * $field : ident = $value : literal), *
       $(,) ?
   }) *) => { ... };
}
Expand description

Create enums which have convenient TryFrom/From implementations. This makes using them with the bit_struct macro much easier.

enums!(
    /// Mode
    #[derive(Debug, PartialOrd, PartialEq)]
    enum Mode {
        /// zero
        Zero = 0b0,
        /// one
        One = 0b1,
    }
);

bit_struct!(
    struct Abc(u16){
        mode(15,15): Mode,
        count(1,5): u8,
    }

    struct FullCount(u16){
        count(0,15): u16,
    }

    struct TooManyBits(u16) {
        count(0,15): u8
    }

);