#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum SocketError {
NotConnected,
ConnectionRefused,
TimedOut,
WouldBlock,
Interrupted,
InvalidAddress,
Unsupported,
DnsResolutionFailed(i32),
OsError(i32),
}
impl core::fmt::Display for SocketError {
fn fmt(
&self,
f: &mut core::fmt::Formatter<'_>,
) -> core::fmt::Result {
match self {
Self::NotConnected => write!(f, "socket not connected"),
Self::ConnectionRefused => write!(f, "connection refused"),
Self::TimedOut => write!(f, "operation timed out"),
Self::WouldBlock => write!(f, "operation would block"),
Self::Interrupted => write!(f, "operation interrupted"),
Self::InvalidAddress => write!(f, "invalid address"),
Self::Unsupported => write!(f, "operation not supported"),
Self::DnsResolutionFailed(code) => write!(f, "DNS resolution failed: {code}"),
Self::OsError(code) => write!(f, "OS error: {code}"),
}
}
}