use thiserror::Error;
#[derive(Error, Debug)]
pub enum AeroError {
#[error("Authentication failed: {0}")]
AuthFailed(String),
#[error("Protocol error: {0}")]
ProtocolError(String),
#[error("I/O error: {0}")]
Io(#[from] std::io::Error),
#[error("Out of order sequence number")]
OutOfOrder,
#[error("Broker connection disconnected")]
Disconnected,
#[error("Operation timed out: {0}")]
Timeout(String),
#[error("Invalid configuration: {0}")]
InvalidConfiguration(String),
}