1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-01-15 18:00:59 +00:00
trezor-firmware/rust/trezor-client/src/transport/error.rs
2023-07-11 13:50:33 +02:00

50 lines
1.5 KiB
Rust

//! # Error Handling
/// Trezor error.
#[derive(Debug, thiserror::Error)]
pub enum Error {
/// [rusb] error.
#[error(transparent)]
Usb(#[from] rusb::Error),
/// [std::io] error.
#[error(transparent)]
IO(#[from] std::io::Error),
/// The device to connect to was not found.
#[error("the device to connect to was not found")]
DeviceNotFound,
/// The device is no longer available.
#[error("the device is no longer available")]
DeviceDisconnected,
/// The device produced a data chunk of unexpected size.
#[error("the device produced a data chunk of unexpected size")]
UnexpectedChunkSizeFromDevice(usize),
/// Timeout expired while reading from device.
#[error("timeout expired while reading from device")]
DeviceReadTimeout,
/// The device sent a chunk with a wrong magic value.
#[error("the device sent a chunk with a wrong magic value")]
DeviceBadMagic,
/// The device sent a message with a wrong session id.
#[error("the device sent a message with a wrong session id")]
DeviceBadSessionId,
/// The device sent an unexpected sequence number.
#[error("the device sent an unexpected sequence number")]
DeviceUnexpectedSequenceNumber,
/// Received a non-existing message type from the device.
#[error("received a non-existing message type from the device")]
InvalidMessageType(u32),
/// Unable to determine device serial number.
#[error("unable to determine device serial number")]
NoDeviceSerial,
}