pub struct AppState { /* private fields */ }Expand description
Shared application state passed to all request handler.
This struct is cloneable and cheap to clone since StandardEngine uses
Arc internally. Each handler receives a clone of this state.
§Example
let state = AppState::new(actor_system, engine, QueryConfig::default(), interceptors);
// In an axum handler:
async fn handle_query(State(state): State<AppState>, ...) {
let system = state.actor_system();
let engine = state.engine();
// ...
}Implementations§
Source§impl AppState
impl AppState
Sourcepub fn new(
actor_system: ActorSystem,
engine: StandardEngine,
auth_service: AuthService,
config: StateConfig,
request_interceptors: RequestInterceptorChain,
clock: Clock,
) -> Self
pub fn new( actor_system: ActorSystem, engine: StandardEngine, auth_service: AuthService, config: StateConfig, request_interceptors: RequestInterceptorChain, clock: Clock, ) -> Self
Create a new AppState with the given actor system, engine, configuration, and request interceptor chain.
Sourcepub fn clone_with_config(&self, config: StateConfig) -> Self
pub fn clone_with_config(&self, config: StateConfig) -> Self
Clone this state with a different configuration, preserving the interceptor chain and other shared resources.
Sourcepub fn actor_system(&self) -> ActorSystem
pub fn actor_system(&self) -> ActorSystem
Get a clone of the actor system.
This is cheap since ActorSystem uses Arc internally.
Sourcepub fn engine(&self) -> &StandardEngine
pub fn engine(&self) -> &StandardEngine
Get a reference to the database engine.
Sourcepub fn engine_clone(&self) -> StandardEngine
pub fn engine_clone(&self) -> StandardEngine
Get a clone of the database engine.
This is cheap since StandardEngine uses Arc internally.
Sourcepub fn config(&self) -> &StateConfig
pub fn config(&self) -> &StateConfig
Get a reference to the query configuration.
Sourcepub fn query_timeout(&self) -> Duration
pub fn query_timeout(&self) -> Duration
Get the query timeout from configuration.
Sourcepub fn request_timeout(&self) -> Duration
pub fn request_timeout(&self) -> Duration
Get the request timeout from configuration.
Sourcepub fn max_connections(&self) -> usize
pub fn max_connections(&self) -> usize
Get the maximum connections from configuration.
Sourcepub fn admin_enabled(&self) -> bool
pub fn admin_enabled(&self) -> bool
Get whether admin operations are enabled.
Sourcepub fn request_interceptors(&self) -> &RequestInterceptorChain
pub fn request_interceptors(&self) -> &RequestInterceptorChain
Get a reference to the request interceptor chain.
Sourcepub fn auth_service(&self) -> &AuthService
pub fn auth_service(&self) -> &AuthService
Get a reference to the authentication service.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for AppState
impl !RefUnwindSafe for AppState
impl Send for AppState
impl Sync for AppState
impl Unpin for AppState
impl UnsafeUnpin for AppState
impl !UnwindSafe 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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> GetSetFdFlags for T
impl<T> GetSetFdFlags for T
Source§fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
self file descriptor.Source§fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
Source§fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: AsFilelike,
fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: AsFilelike,
self file descriptor. Read moreSource§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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>
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>
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request