#![allow(dead_code)]
use packbits as _;
#[packbits::pack(bytes = 1)]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
struct LsbByte {
#[bits(1)]
b0: u8, #[bits(1)]
b1: u8, #[bits(1)]
b2: u8, #[bits(1)]
b3: u8, }
#[packbits::pack(bytes = 1, msb)]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
struct MsbByte {
#[bits(1)]
b0: u8, #[bits(1)]
b1: u8, #[bits(1)]
b2: u8, #[bits(1)]
b3: u8, }
#[test]
fn lsb_order_roundtrip() {
let s = LsbByte { b0: 1, b1: 0, b2: 1, b3: 0 };
let arr: [u8; 1] = s.into();
assert_eq!(arr[0], 0x05);
let back: LsbByte = arr.into();
assert_eq!(back, s);
}
#[test]
fn msb_order_roundtrip() {
let s = MsbByte { b0: 1, b1: 0, b2: 1, b3: 0 };
let arr: [u8; 1] = s.into();
assert_eq!(arr[0], 0xA0);
let back: MsbByte = arr.into();
assert_eq!(back, s);
}