use std::error::Error;
use std::fmt;
use std::io;
pub use is::StunError;
#[derive(Debug)]
pub enum NetError {
Stun(StunError),
Io(io::Error),
}
impl fmt::Display for NetError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
NetError::Stun(err) => write!(f, "{}", err),
NetError::Io(err) => write!(f, "{}", err),
}
}
}
impl Error for NetError {
fn source(&self) -> Option<&(dyn Error + 'static)> {
match self {
NetError::Stun(err) => Some(err),
NetError::Io(err) => Some(err),
}
}
}
impl From<StunError> for NetError {
fn from(err: StunError) -> Self {
NetError::Stun(err)
}
}
impl From<io::Error> for NetError {
fn from(err: io::Error) -> Self {
NetError::Io(err)
}
}