#[derive(Clone, Debug, PartialEq, Eq)]
pub enum NetError {
MalformedUrl(String),
UnsupportedScheme(String),
UnexpectedScheme {
expected: String,
found: String,
},
InvalidPort(String),
InvalidHead(String),
InvalidChunkSize(String),
TruncatedChunk,
InvalidChunkDelimiter,
OversizeBody(usize),
}
impl core::fmt::Display for NetError {
fn fmt(&self, formatter: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
match self {
Self::MalformedUrl(url) => write!(formatter, "malformed url {url}"),
Self::UnsupportedScheme(scheme) => write!(formatter, "unsupported url scheme {scheme}"),
Self::UnexpectedScheme { expected, found } => {
write!(formatter, "expected url scheme {expected}, found {found}")
}
Self::InvalidPort(url) => write!(formatter, "invalid port in url {url}"),
Self::InvalidHead(detail) => write!(formatter, "invalid http head: {detail}"),
Self::InvalidChunkSize(detail) => write!(formatter, "invalid chunk size: {detail}"),
Self::TruncatedChunk => write!(formatter, "truncated chunked body"),
Self::InvalidChunkDelimiter => write!(formatter, "invalid chunked body delimiter"),
Self::OversizeBody(limit) => {
write!(formatter, "payload exceeded size limit of {limit} bytes")
}
}
}
}
impl core::error::Error for NetError {}