```rust #[binary_serde_bitfield(order = BitfieldBitOrder::LsbFirst)] pub struct LCDDashboardBitfield { #[bits(12)] battery: BatteryDisplay, #[bits(18)] speed: SpeedDisplay, #[bits(3)] drive_mode: DriveModeDisplay, #[bits(32)] trip1: TripDisplay1, #[bits(16)] trip2: TripDisplay2, #[bits(32)] clock: ClockDisplay, #[bits(7)] connection: ConnectionDisplay, #[bits(8)] indicators: Indicators, } pub struct LCDDashboard { i2c_device: Smbus, bitfield: LCDDashboardBitfield, } impl LCDDashboard where S: Smbus, { pub fn new(i2c_device: S) -> Self { LCDDashboard { i2c_device, bitfield: LCDDashboard::binary_deserialize(&[0u8; 16], Endianness::Big).unwrap(), } } }