bitfields 1.0.3

Macro for generating flexible bitfields. Useful for low-level code (embedded or emulators).
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use bitfields::bitfield;

#[bitfield(u64)]
pub struct Bitfield {
    #[bits(4, default = 0x1)]
    a: u8,
    #[bits(60, default = 0xFFFF_FFFF_FFFF)]
    _padding: u64
}

fn main() {
    let bitfield = Bitfield::new();
    assert_eq!(bitfield.a(), 0x1);
    assert_eq!(bitfield.into_bits(), 0xF_FFFF_FFFF_FFF1);
    assert_eq!(bitfield._padding(), 0x1);
}