use crate::TransportErrorClass;
#[non_exhaustive]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum NetworkErrorKind {
Timeout,
Connect,
Decode,
HttpStatus(u16),
Cancelled,
Request,
Builder,
ResponseTooLarge,
Other,
}
impl NetworkErrorKind {
#[must_use]
pub const fn from_transport_error_class(class: TransportErrorClass) -> Self {
match class {
TransportErrorClass::Timeout => Self::Timeout,
TransportErrorClass::Connect => Self::Connect,
TransportErrorClass::Decode | TransportErrorClass::Body => Self::Decode,
TransportErrorClass::Status => Self::HttpStatus(0),
TransportErrorClass::Request => Self::Request,
TransportErrorClass::Builder => Self::Builder,
TransportErrorClass::ResponseTooLarge => Self::ResponseTooLarge,
_ => Self::Other,
}
}
}