From 939c29788233f7b3bcd88035662c059e51a2b2cd Mon Sep 17 00:00:00 2001 From: David Pedersen Date: Sat, 7 Jan 2023 20:17:13 +0100 Subject: Update to axum 0.6.0 (#73) --- Cargo.toml | 2 +- src/axum.rs | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index d9dab35..98aee5b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,7 +22,7 @@ serde = "1.0" thiserror = "1.0" tracing = { version = "0.1", optional = true } warp-framework = { package = "warp", version = "0.3", default-features = false, optional = true } -axum-framework = { package = "axum", version = "0.5", default-features = false, optional = true } +axum-framework = { package = "axum", version = "0.6", default-features = false, optional = true } [dev-dependencies] chrono = { version = "0.4", features = ["serde"] } diff --git a/src/axum.rs b/src/axum.rs index 90b69b8..2638b3c 100644 --- a/src/axum.rs +++ b/src/axum.rs @@ -10,7 +10,7 @@ use crate::de::Config as QsConfig; use crate::error::Error as QsError; use axum::{ - extract::{Extension, FromRequest, RequestParts}, + extract::{Extension, FromRequestParts}, http::StatusCode, response::{IntoResponse, Response}, BoxError, Error, @@ -69,20 +69,22 @@ impl std::fmt::Debug for QsQuery { } #[axum::async_trait] -impl FromRequest for QsQuery +impl FromRequestParts for QsQuery where T: serde::de::DeserializeOwned, - B: std::marker::Send, { type Rejection = QsQueryRejection; - async fn from_request(req: &mut RequestParts) -> Result { - let Extension(qs_config) = Extension::::from_request(req) + async fn from_request_parts( + parts: &mut axum::http::request::Parts, + state: &S, + ) -> Result { + let Extension(qs_config) = Extension::::from_request_parts(parts, state) .await .unwrap_or_else(|_| Extension(QsQueryConfig::default())); let error_handler = qs_config.error_handler.clone(); let config: QsConfig = qs_config.into(); - let query = req.uri().query().unwrap_or_default(); + let query = parts.uri.query().unwrap_or_default(); match config.deserialize_str::(query) { Ok(value) => Ok(QsQuery(value)), Err(err) => match error_handler { -- cgit v1.2.3