1use crate::protocol::nios::NiosPacketError;
2pub type Result<T> = std::result::Result<T, Error>;
3#[derive(thiserror::Error, Debug)]
4pub enum Error {
5 #[error("I/O error")]
6 Io(#[from] std::io::Error),
7 #[error("USB error")]
8 Nusb(#[from] nusb::Error),
9 #[error("USB transfer error")]
10 Transfer(#[from] nusb::transfer::TransferError),
11 #[error("{0}")]
12 Argument(&'static str),
13 #[error("invalid state or value")]
14 Invalid,
15 #[error("device not found")]
16 NotFound,
17 #[error("operation timed out")]
18 Timeout,
19 #[error("NIOS packet error: {0}")]
20 NiosPacket(#[from] NiosPacketError),
21 #[error("endpoint busy")]
22 EndpointBusy,
23 #[error("FPGA tuning failed")]
24 TuningFailed,
25 #[error("FPGA retune queue is full")]
26 RetuneQueueFull,
27 #[error("NIOS write failed")]
28 NiosWriteFailed,
29}