use arcbox_error::CommonError;
use thiserror::Error;
pub type Result<T> = std::result::Result<T, TransportError>;
#[derive(Debug, Error)]
pub enum TransportError {
#[error(transparent)]
Common(#[from] CommonError),
#[error("not connected")]
NotConnected,
#[error("already connected")]
AlreadyConnected,
#[error("connection refused: {0}")]
ConnectionRefused(String),
#[error("connection reset")]
ConnectionReset,
#[error("invalid address: {0}")]
InvalidAddress(String),
#[error("protocol error: {0}")]
Protocol(String),
}
impl From<std::io::Error> for TransportError {
fn from(err: std::io::Error) -> Self {
Self::Common(CommonError::from(err))
}
}
impl TransportError {
#[must_use]
pub fn io(err: std::io::Error) -> Self {
Self::Common(CommonError::from(err))
}
}