summaryrefslogtreecommitdiff
path: root/src/extract.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/extract.rs')
-rw-r--r--src/extract.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/extract.rs b/src/extract.rs
new file mode 100644
index 0000000..d1adffb
--- /dev/null
+++ b/src/extract.rs
@@ -0,0 +1,15 @@
+use axum::extract::{FromRequest, FromRequestParts};
+
+use crate::error::AppError;
+
+#[derive(FromRequest)]
+#[from_request(via(axum::Json), rejection(AppError))]
+pub struct AppJson<T>(pub T);
+
+#[derive(FromRequestParts)]
+#[from_request(via(axum::extract::Query), rejection(AppError))]
+pub struct AppQuery<T>(pub T);
+
+#[derive(FromRequestParts)]
+#[from_request(via(axum::extract::Path), rejection(AppError))]
+pub struct AppPath<T>(pub T);