[−][src]Derive Macro modular_bitfield_impl::BitfieldSpecifier
#[derive(BitfieldSpecifier)]
Derive macro for enums.
Generates code for enums to make them usable within #[bitfield]
structs.
Performs compile-time checks to validate that the enum is usable as bitfield specifier.
Example
use modular_bitfield::prelude::*; #[bitfield] struct Example { a: bool, // Uses 1 bit b: Mode, // Has 4 variants => uses 2 bits c: B5, // Uses 5 bits d: B24, // Uses 24 bits } #[derive(BitfieldSpecifier)] enum Mode { Sleep, Awake, Working, Lazy, } fn main() { let mut example = Example::new(); assert_eq!(example.get_a(), false); // `false as u8` is 0 assert_eq!(example.get_b(), Mode::Sleep); example.set_a(true); example.set_b(Mode::Awake); assert_eq!(example.get_a(), true); // `true as u8` is 1 assert_eq!(example.get_b(), Mode::Awake); }