use thiserror::Error;
#[derive(Error, Debug)]
pub enum EtpError {
#[error("SerialPort error: {0}")]
SerialPort(String),
#[error("ETP firmware not found: {0}")]
EtpFirmwareNotFound(String),
#[error("ETP firmware version mismatch: {0}")]
EtpFirmwareMismatch(String),
#[error("Invalid ETP command: {0}")]
EtpInvalidCommand(String),
#[error("ETP command timed out: {0}")]
EtpCommandTimedOut(String),
#[error("TCP/IP error: {0}")]
TcpIp(String),
#[error("Transport send error: {0}")]
TransportSendError(String),
#[error("Transport receive error: {0}")]
TransportReceiveError(String),
#[error("Invalid byte length")]
InvalidByteLength,
#[error("Invalid ETP status code: {0}")]
InvalidEtpStatusCode(String),
}
pub type EtpResult<T> = std::result::Result<T, EtpError>;