impl Error for ValidRejection
This commit is contained in:
42
src/lib.rs
42
src/lib.rs
@@ -137,30 +137,36 @@ impl<E> From<ValidationErrors> for ValidError<E> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<E: IntoResponse> IntoResponse for ValidError<E> {
|
|
||||||
fn into_response(self) -> Response {
|
|
||||||
match self {
|
|
||||||
ValidError::Valid(validate_error) => {
|
|
||||||
#[cfg(feature = "into_json")]
|
|
||||||
{
|
|
||||||
(VALIDATION_ERROR_STATUS, axum::Json(validate_error)).into_response()
|
|
||||||
}
|
|
||||||
#[cfg(not(feature = "into_json"))]
|
|
||||||
{
|
|
||||||
(VALIDATION_ERROR_STATUS, validate_error.to_string()).into_response()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ValidError::Inner(json_error) => json_error.into_response(),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Validation Rejection
|
/// Validation Rejection
|
||||||
pub struct ValidRejection<E> {
|
pub struct ValidRejection<E> {
|
||||||
error: ValidError<E>,
|
error: ValidError<E>,
|
||||||
response_builder: fn(ValidationErrors) -> Response,
|
response_builder: fn(ValidationErrors) -> Response,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl<E: Display> Display for ValidRejection<E> {
|
||||||
|
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
|
||||||
|
match &self.error {
|
||||||
|
ValidError::Valid(errors) => write!(f, "{errors}"),
|
||||||
|
ValidError::Inner(error) => write!(f, "{error}"),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<E: Debug> Debug for ValidRejection<E> {
|
||||||
|
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
|
||||||
|
Debug::fmt(&self.error, f)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<E: Error + 'static> Error for ValidRejection<E> {
|
||||||
|
fn source(&self) -> Option<&(dyn Error + 'static)> {
|
||||||
|
match &self.error {
|
||||||
|
ValidError::Valid(ve) => Some(ve),
|
||||||
|
ValidError::Inner(e) => Some(e),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl<E: IntoResponse> IntoResponse for ValidRejection<E> {
|
impl<E: IntoResponse> IntoResponse for ValidRejection<E> {
|
||||||
fn into_response(self) -> Response {
|
fn into_response(self) -> Response {
|
||||||
match self.error {
|
match self.error {
|
||||||
|
|||||||
Reference in New Issue
Block a user