mirror of
https://github.com/tokio-rs/axum.git
synced 2026-09-08 00:00:24 +02:00
Move axum-debug into axum-macros (#724)
* Move axum-debug into axum-macros * fix ref to axum-macros in changelog * Apply suggestions from code review Co-authored-by: Jonas Platte <[email protected]> Co-authored-by: Jonas Platte <[email protected]>
This commit is contained in:
co-authored by
Jonas Platte
parent
28832ad8b1
commit
3d2f4e4a35
@@ -0,0 +1,58 @@
|
||||
use axum::{
|
||||
body::Body,
|
||||
extract::{
|
||||
rejection::{ExtensionRejection, TypedHeaderRejection},
|
||||
Extension, FromRequest, TypedHeader,
|
||||
},
|
||||
headers::{self, UserAgent},
|
||||
};
|
||||
use axum_macros::FromRequest;
|
||||
use std::convert::Infallible;
|
||||
|
||||
#[derive(FromRequest)]
|
||||
struct Extractor {
|
||||
#[from_request(via(Extension))]
|
||||
state: State,
|
||||
#[from_request(via(TypedHeader))]
|
||||
user_agent: UserAgent,
|
||||
#[from_request(via(TypedHeader))]
|
||||
content_type: headers::ContentType,
|
||||
#[from_request(via(TypedHeader))]
|
||||
etag: Option<headers::ETag>,
|
||||
#[from_request(via(TypedHeader))]
|
||||
host: Result<headers::Host, TypedHeaderRejection>,
|
||||
}
|
||||
|
||||
fn assert_from_request()
|
||||
where
|
||||
Extractor: FromRequest<Body, Rejection = ExtractorRejection>,
|
||||
{
|
||||
}
|
||||
|
||||
fn assert_rejection(rejection: ExtractorRejection)
|
||||
where
|
||||
ExtractorRejection: std::fmt::Debug + std::fmt::Display + std::error::Error,
|
||||
{
|
||||
match rejection {
|
||||
ExtractorRejection::State(inner) => {
|
||||
let _: ExtensionRejection = inner;
|
||||
}
|
||||
ExtractorRejection::UserAgent(inner) => {
|
||||
let _: TypedHeaderRejection = inner;
|
||||
}
|
||||
ExtractorRejection::ContentType(inner) => {
|
||||
let _: TypedHeaderRejection = inner;
|
||||
}
|
||||
ExtractorRejection::Etag(inner) => {
|
||||
let _: Infallible = inner;
|
||||
}
|
||||
ExtractorRejection::Host(inner) => {
|
||||
let _: Infallible = inner;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone)]
|
||||
struct State;
|
||||
|
||||
fn main() {}
|
||||
Reference in New Issue
Block a user