use std::fmt;
#[derive(Debug)]
pub enum ServerError {
ConnectionClosedUnsupportedTransferEncoding,
ConnectionLost(std::io::Error),
}
impl std::error::Error for ServerError {
fn source(&self) -> Option<&(dyn std::error::Error + 'static)> {
use ServerError::*;
match self {
ConnectionClosedUnsupportedTransferEncoding => None,
ConnectionLost(err) => Some(err),
}
}
}
impl fmt::Display for ServerError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
use ServerError::*;
match self {
ConnectionClosedUnsupportedTransferEncoding => {
write!(f, "Connection closed: Unsupported Transfer Encoding")
}
ConnectionLost(err) => write!(f, "Connection lost: {}", err),
}
}
}