pub struct UnifiedAppState {
pub shared_state: Arc<SharedSystemState>,
pub context_orchestrator: Arc<RwLock<Option<ContextOrchestrator>>>,
pub llm_worker: Arc<LLMWorker>,
pub auth_state: Option<Arc<AuthState>>,
pub http_client: Client,
}Expand description
Unified application state for all API handlers. This is the single state type used by the Axum router, providing access to all subsystems through shared memory (Arc) rather than network hops.
Fields§
§context_orchestrator: Arc<RwLock<Option<ContextOrchestrator>>>§llm_worker: Arc<LLMWorker>§auth_state: Option<Arc<AuthState>>§http_client: ClientShared HTTP client — one TLS pool reused across all outbound requests (OpenRouter, HuggingFace, etc.) instead of creating a new client per call.
Implementations§
Source§impl UnifiedAppState
impl UnifiedAppState
pub fn new(shared_state: Arc<SharedSystemState>) -> Self
Sourcepub async fn get_openrouter_api_key(&self) -> Option<String>
pub async fn get_openrouter_api_key(&self) -> Option<String>
Get API key from all sources in priority order:
- Database stored keys (persisted)
- Environment variables
- Config file
This ensures ultimate synchronicity - keys stored in DB are available to both backend and frontend immediately after saving.
Sourcepub async fn get_huggingface_token(&self) -> Option<String>
pub async fn get_huggingface_token(&self) -> Option<String>
Get HuggingFace token from all sources in priority order:
- Database stored keys (persisted)
- Environment variables
- Config file
Trait Implementations§
Source§impl Clone for UnifiedAppState
impl Clone for UnifiedAppState
Source§fn clone(&self) -> UnifiedAppState
fn clone(&self) -> UnifiedAppState
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for UnifiedAppState
impl !RefUnwindSafe for UnifiedAppState
impl Send for UnifiedAppState
impl Sync for UnifiedAppState
impl Unpin for UnifiedAppState
impl UnsafeUnpin for UnifiedAppState
impl !UnwindSafe for UnifiedAppState
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,
Source§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>
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