1use thiserror::Error;
4
5#[derive(Error, Debug)]
7pub enum ServerError {
8 #[error("could not initialize HID API: {0}")]
10 HidApi(#[from] hidapi::HidError),
11 #[error("failed to clone UdpSocket: {0}")]
13 UdpSocketCloneFailed(std::io::Error),
14 #[error("UdpSocket operation error: {0}")]
16 UdpSocketOperationError(std::io::Error),
17}
18
19#[derive(Error, Debug)]
21pub enum DeviceError {
22 #[error("Failed to open Device")]
24 NoDeviceFound,
25 #[error("Failed to open specefied device: {0}")]
27 NoDeviceFoundAtPath(String),
28 #[error("IO Error: {0}")]
30 IO(#[from] std::io::Error),
31 #[error("HID Error: {0}")]
33 Hid(#[from] hidapi::HidError),
34 #[error("Short read: got {0} bytes, expected at least {1}")]
36 ShortRead(usize, usize),
37 #[error("Invalid report (first byte: 0x{0:02x})")]
39 InvalidReport(u8),
40}