state.rs
28 lignes · 935 octets
//! Shared state injected into federation handlers via Axum extensions. use std::sync::Arc; use crate::config::FediverseConfig; use super::resolver::LocalUserResolver; /// Injected into every federation handler via `Extension<FediverseState>`. /// Carries the runtime configuration and a handle to the user resolver. /// /// Cheap to clone — the resolver is behind `Arc`, the config is `Clone`. #[derive(Clone)] pub struct FediverseState { /// Runtime configuration loaded by the federation router builder. pub config: FediverseConfig, /// User store projection used by handlers. pub resolver: Arc<dyn LocalUserResolver>, } impl std::fmt::Debug for FediverseState { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { f.debug_struct("FediverseState") .field("config", &self.config) .field("resolver", &"<dyn LocalUserResolver>") .finish() } }
GitRust