bitwrap 2.0.2

pack/unpack data into byte array
Documentation
#![no_std]

use {
    bitwrap::{
        BitWrap,
        BitWrapExt,
    },
};


#[test]
fn test_array() {
    #[derive(Default, BitWrap)]
    struct Packet {
        #[bitfield(8, name = _reserved, value = 0)]
        #[bitfield]
        data: [u8; 4],
    }

    const DATA: &[u8] = &[0x00, 0xF0, 0x9F, 0xA6, 0x80];

    let mut packet = Packet::default();
    let result = packet.unpack(DATA).unwrap();

    assert_eq!(result, DATA.len());
    assert_eq!(packet.data, &DATA[1 ..]);

    let mut buffer: [u8; 5] = [0; 5];
    let result = packet.pack(&mut buffer).unwrap();

    assert_eq!(result, DATA.len());
    assert_eq!(buffer, DATA);
}