Crate axum_enum_response
source ·Expand description
Simple way to use an enum as an Axum Response MSRV: 1.65.0
§Example Usage
#[derive(axum_enum_response::EnumIntoResponse)]
enum ErrorResponse {
#[status_code(UNAUTHORIZED)]
Unauthorized, // 401, empty body
#[status_code(FORBIDDEN)]
#[message("mew")]
Forbidden, // 403, body = {"message": "mew"}
#[status_code(INTERNAL_SERVER_ERROR)]
InternalServerError(#[key("error")] String), // 500, body = {"error": STRING}
}
You can also use any struct that implements serde::Serialize
as a field like this:
#[derive(serde::Serialize)]
struct SomeData {
meow: String,
}
#[derive(axum_enum_response::EnumIntoResponse)]
enum ErrorResponse {
#[status_code(BAD_REQUEST)]
BadRequest(SomeData), // 400, body = {"meow": STRING}
}