use std::fmt;
#[derive(Debug)]
pub enum HttpError {
BufTooShort,
HeaderName,
HeaderValue,
NewLine,
Status,
Token,
Version,
Method,
Partial,
InvalidStatusCode,
SchemeTooLong,
}
impl HttpError {
#[inline]
pub fn description_str(&self) -> &'static str {
match *self {
HttpError::BufTooShort => "buf too short",
HttpError::HeaderName => "invalid header name",
HttpError::HeaderValue => "invalid header value",
HttpError::NewLine => "invalid new line",
HttpError::Status => "invalid response status",
HttpError::Token => "invalid token",
HttpError::Version => "invalid HTTP version",
HttpError::Method => "invalid HTTP Method",
HttpError::Partial => "invalid HTTP length",
HttpError::InvalidStatusCode => "invalid status code",
HttpError::SchemeTooLong => "scheme too long",
}
}
}
impl fmt::Display for HttpError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
f.write_str(self.description_str())
}
}