use crate::wire::DeviceOutput;
#[derive(Debug, Clone, Default)]
pub struct KeyboardOutput {
pub leds: u8,
}
impl DeviceOutput for KeyboardOutput {
fn from_bytes(buf: &[u8]) -> Result<Self, crate::error::ViiperError> {
let mut offset = 0;
if offset + std::mem::size_of::<u8>() > buf.len() {
return Err(crate::error::ViiperError::UnexpectedResponse(
"buffer too short".into()
));
}
let leds = u8::from_le_bytes(
buf[offset..offset + std::mem::size_of::<u8>()]
.try_into()
.unwrap()
);
offset += std::mem::size_of::<u8>();
let _ = offset; Ok(Self {
leds,
})
}
}