use axum::extract::{FromRequest, FromRequestParts}; use crate::error::AppError; #[derive(FromRequest)] #[from_request(via(axum::Json), rejection(AppError))] pub struct AppJson(pub T); #[derive(FromRequestParts)] #[from_request(via(axum::extract::Query), rejection(AppError))] pub struct AppQuery(pub T); #[derive(FromRequestParts)] #[from_request(via(axum::extract::Path), rejection(AppError))] pub struct AppPath(pub T);