use axum::{ async_trait, extract::{ rejection::{FailedToDeserializeQueryString, QueryRejection}, FromRequestParts, }, }; use http::request::Parts; use serde::de::DeserializeOwned; use std::ops::Deref; /// Extractor that deserializes query strings into some type. /// /// `T` is expected to implement [`serde::Deserialize`]. /// /// # Differences from `axum::extract::Query` /// /// This extractor uses [`serde_html_form`] under-the-hood which supports multi-value items. These /// are sent by multiple `` attributes of the same name (e.g. checkboxes) and `