use http::HeaderName;
#[derive(Clone, Debug, PartialEq, Eq, thiserror::Error)]
#[non_exhaustive]
pub enum Error {
#[error("invalid header {name}")]
InvalidHeader {
name: HeaderName,
},
#[error("header {name} occurs more than once")]
DuplicateHeader {
name: HeaderName,
},
#[error("unsupported header {name}")]
UnsupportedHeaderName {
name: String,
},
}
impl Error {
#[cfg(feature = "client-ip")]
pub(crate) fn unsupported_header_name(name: &str) -> Self {
Self::UnsupportedHeaderName {
name: name.to_string(),
}
}
pub(crate) const fn invalid_header(name: HeaderName) -> Self {
Self::InvalidHeader { name }
}
pub(crate) const fn duplicate_header(name: HeaderName) -> Self {
Self::DuplicateHeader { name }
}
}