bit-by-bit 0.1.0

Convenient proc-macro for defining structs with bitfields
Documentation
use bit_by_bit::bit_by_bit;
use quickcheck_macros::quickcheck;

trait Primitive: Eq {}

macro_rules! gen_test {
    ($f:ident, $t:ty, $width:literal) => {
        #[quickcheck]
        fn $f(x: $t) {
            #[bit_by_bit]
            #[derive(Default)]
            struct T {
                #[bit($width)]
                x: $t,
            }

            let mut t = T::default();
            t.set_x(x);
            assert_eq!(t.x(), x);
        }
    };
}

gen_test!(field_max_width_u8, u8, 8);
gen_test!(field_max_width_u16, u16, 16);
gen_test!(field_max_width_u32, u32, 32);
gen_test!(field_max_width_u64, u64, 64);
gen_test!(field_max_width_u128, u128, 128);