//! # Implementation of the `HasValidate` trait for the `TypedHeader` extractor. //! use crate::HasValidate; use axum::TypedHeader; use validator::Validate; impl HasValidate for TypedHeader { type Validate = T; fn get_validate(&self) -> &T { &self.0 } } #[cfg(test)] mod tests { use crate::tests::{ValidTest, ValidTestParameter}; use axum::headers::{Header, HeaderMapExt}; use axum::http::StatusCode; use axum::TypedHeader; use reqwest::header::HeaderMap; use reqwest::RequestBuilder; impl ValidTest for TypedHeader { const ERROR_STATUS_CODE: StatusCode = StatusCode::BAD_REQUEST; fn set_valid_request(builder: RequestBuilder) -> RequestBuilder { let mut headers = HeaderMap::default(); headers.typed_insert(T::valid().clone()); builder.headers(headers) } fn set_error_request(builder: RequestBuilder) -> RequestBuilder { builder } fn set_invalid_request(builder: RequestBuilder) -> RequestBuilder { let mut headers = HeaderMap::default(); headers.typed_insert(T::invalid().clone()); builder.headers(headers) } } }