viiper_client/devices/keyboard/
output.rs

1// This file is auto-generated by VIIPER codegen. DO NOT EDIT.
2
3use crate::wire::DeviceOutput;
4
5#[derive(Debug, Clone, Default)]
6pub struct KeyboardOutput {
7    pub leds: u8,
8}
9
10impl DeviceOutput for KeyboardOutput {
11    fn from_bytes(buf: &[u8]) -> Result<Self, crate::error::ViiperError> {
12        let mut offset = 0;
13        if offset + std::mem::size_of::<u8>() > buf.len() {
14            return Err(crate::error::ViiperError::UnexpectedResponse(
15                "buffer too short".into()
16            ));
17        }
18        let leds = u8::from_le_bytes(
19            buf[offset..offset + std::mem::size_of::<u8>()]
20                .try_into()
21                .unwrap()
22        );
23        offset += std::mem::size_of::<u8>();
24        let _ = offset; // Suppress unused warning for last field
25        Ok(Self {
26            leds,
27        })
28    }
29}