use axum::{ http::StatusCode, response::{IntoResponse, Response}, }; use serde::Serialize; use utoipa::ToSchema; #[derive(Serialize, ToSchema)] enum SuccessStatus { #[serde(rename = "success")] Success, } #[derive(Serialize, ToSchema)] pub struct SuccessResponse { status: SuccessStatus, data: T, } impl SuccessResponse { pub fn ok(data: T) -> Self { Self { status: SuccessStatus::Success, data, } } } impl IntoResponse for SuccessResponse { fn into_response(self) -> Response { (StatusCode::OK, axum::Json(self)).into_response() } }