use axum_macros::FromRequestParts; use axum::{ extract::{FromRef, State, Query}, Router, routing::get, }; use std::collections::HashMap; fn main() { let _: Router = Router::with_state(AppState::default()) .route("/b", get(|_: Extractor| async {})); } #[derive(FromRequestParts)] #[from_request(state(AppState))] struct Extractor { inner_state: State, other: Query>, } #[derive(Default, Clone)] struct AppState { inner: InnerState, } #[derive(Clone, Default)] struct InnerState {} impl FromRef for InnerState { fn from_ref(input: &AppState) -> Self { input.inner.clone() } }