pub struct AppState {
pub pool: SqlitePool,
pub active_run: ActiveRun,
pub config_store: Arc<RwLock<LoadedConfigStore>>,
pub allowed_origin: Option<String>,
pub trusted_proxy: Option<String>,
pub mode: ServerMode,
pub demo_policy: DemoPolicy,
pub demo_runtime: DemoRuntime,
}Expand description
Cheap to clone (an Arc-backed connection pool under the hood, per sqlx, and
ActiveRun is itself Arc<Mutex<..>>-backed) – axum’s State extractor just requires
Clone to hand a copy to each request.
Fields§
§pool: SqlitePool§active_run: ActiveRunThe in-flight tune registry and exclusive post-hoc write/revert reservation – see
ActiveRun’s own doc comment for the concurrency and shutdown behavior.
config_store: Arc<RwLock<LoadedConfigStore>>The live, revisioned TOML configuration. Route handlers take a fresh snapshot for every operation so a configuration-page save is visible without restarting the server.
allowed_origin: Option<String>§trusted_proxy: Option<String>§mode: ServerMode§demo_policy: DemoPolicy§demo_runtime: DemoRuntimeImplementations§
Source§impl AppState
impl AppState
pub fn config_snapshot(&self) -> Result<BhtuneConfig>
pub fn for_mode( pool: SqlitePool, config_store: Arc<RwLock<LoadedConfigStore>>, mode: ServerMode, demo_policy: DemoPolicy, ) -> Self
pub fn for_mode_with_network_config( pool: SqlitePool, config_store: Arc<RwLock<LoadedConfigStore>>, mode: ServerMode, demo_policy: DemoPolicy, allowed_origin: Option<String>, trusted_proxy: Option<String>, ) -> Self
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for AppState
impl !UnwindSafe for AppState
impl Freeze for AppState
impl Send for AppState
impl Sync for AppState
impl Unpin for AppState
impl UnsafeUnpin for AppState
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].