Impl StdError::source for HxError, closes #16

This commit is contained in:
imbolc 2024-05-07 06:46:33 +06:00
parent e8a0b94d03
commit 7a7c7e5ae9

View file

@ -29,14 +29,22 @@ impl From<serde_json::Error> for HxError {
impl fmt::Display for HxError { impl fmt::Display for HxError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self { match self {
HxError::InvalidHeaderValue(err) => write!(f, "Invalid header value: {err}"), HxError::InvalidHeaderValue(_) => write!(f, "Invalid header value"),
#[cfg(feature = "serde")] #[cfg(feature = "serde")]
HxError::Json(err) => write!(f, "Json: {err}"), HxError::Json(_) => write!(f, "Json"),
} }
} }
} }
impl error::Error for HxError {} impl error::Error for HxError {
fn source(&self) -> Option<&(dyn error::Error + 'static)> {
match self {
HxError::InvalidHeaderValue(ref e) => Some(e),
#[cfg(feature = "serde")]
HxError::Json(ref e) => Some(e),
}
}
}
impl IntoResponse for HxError { impl IntoResponse for HxError {
fn into_response(self) -> axum_core::response::Response { fn into_response(self) -> axum_core::response::Response {