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); } ```