rust-bitfield
BitField Supports for Rust
Examples
```rs
![allow(nonsnakecase)]
![allow(nonuppercase_globals)]
use bitfield::{bitfield_fields, BitRange, Bits};
// Define a BitField Type with 2 fields.
[derive(Copy, Clone, Debug, Default)]
struct tV56aIEy_Bi1(u16);
impl tV56aIEyBi1 {
bitfieldfields! {
IEDZ, setIEDZ : u16 [9..0];
_rb, set_rb : u16 [15..10];
}
}
[repr(C)]
[derive(Copy, Clone, Debug, Default)]
struct tV56aIEy {
IES0: u8,
IES1: u8,
IES2: u8,
IES3: u8,
bi1: tV56aIEy_Bi1,
}
fn main() {
let mut a = tV56aIEy::default();
asserteq!(6, std::mem::sizeof::());
println!("{:?}", a);
println!("{:?}", a);
println!("IEDZ = {}, rb = {}", a.bi1.IEDZ(), a.bi1.rb());
println!("{:?}", a);
println!(
"IEDZ = {}, rb = {}",
a.bi1.setIEDZ(512).IEDZ(),
a.bi1.rb()
);
println!("{:?}", a);
println!("IEDZ = {}, _rb = {}", a.bi1.IEDZ(), a.bi1.rb());
println!("{:?}", a);
println!("IEDZ = {}, rb = {}", a.bi1.IEDZ(), a.bi1.rb());
println!("{:?}", a);
}
```