use thiserror::Error;
#[derive(Debug, Error)]
#[non_exhaustive]
pub enum NetSemError {
#[error("Invalid IP address format: {0}")]
InvalidIp(String),
#[error("Invalid socket address format: {0}")]
InvalidSocketAddr(String),
#[error("Invalid port: {0}")]
InvalidPort(u16),
#[error("Failed to bind to {addr}: {source}")]
BindFailed {
addr: String,
source: std::io::Error,
},
#[error("Failed to connect to {addr}: {source}")]
ConnectFailed {
addr: String,
source: std::io::Error,
},
}