use axum::{http::StatusCode, response::IntoResponse, Json}; use serde_json::json; #[allow(dead_code)] #[derive(Debug)] pub enum AppError { WrongCredentials, InternalServerError, } impl IntoResponse for AppError { fn into_response(self) -> axum::response::Response { let (status, err_msg) = match self { Self::WrongCredentials => (StatusCode::BAD_REQUEST, "invalid credentials"), Self::InternalServerError => ( StatusCode::INTERNAL_SERVER_ERROR, "something went wrong with your request", ), }; (status, Json(json!({ "error": err_msg }))).into_response() } }