use axum::{ async_trait, extract::{ rejection::{FailedToDeserializeQueryString, QueryRejection}, FromRequest, RequestParts, }, }; 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::Form` /// /// 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 `