Skip to main content

api/
extracted_server_state.rs

1use dioxus::fullstack::{FullstackContext, extract::FromRef};
2use server::ServerState;
3
4/// A wrapper around [`ServerState`] used for extracting the state
5/// in contexts such as HTTP request handlers or middleware.
6#[derive(Clone)]
7pub struct ExtractedServerState(pub ServerState);
8
9impl FromRef<FullstackContext> for ExtractedServerState {
10    fn from_ref(context: &FullstackContext) -> Self {
11        ExtractedServerState(
12            context
13                .extension::<ServerState>()
14                .expect("ServerState Axum extension not set")
15                .clone(),
16        )
17    }
18}
19
20/// Alias for [`ExtractedServerState`] used in HTTP request handlers
21/// to extract the current server state.
22pub use ExtractedServerState as ServerStateExtractor;