pub struct StateStore { /* private fields */ }Implementations§
Source§impl StateStore
impl StateStore
Sourcepub fn new_empty() -> Self
pub fn new_empty() -> Self
Create a fresh in-memory store with no backing file (useful for tests).
pub fn load(path: &Path) -> Self
pub fn is_available(&self, name: &str) -> bool
Sourcepub fn account_states(&self) -> HashMap<String, AccountState>
pub fn account_states(&self) -> HashMap<String, AccountState>
Returns a snapshot of all account states for the status endpoint.
pub fn set_cooldown(&self, name: &str, duration_ms: u64)
pub fn disable_account(&self, name: &str)
pub fn set_auth_failed(&self, name: &str)
Sourcepub fn clear_auth_failed(&self, name: &str)
pub fn clear_auth_failed(&self, name: &str)
Clear auth_failed + disabled for an account after a successful token refresh.
Sourcepub fn auth_failed_accounts<'a>(&self, names: &[&'a str]) -> Vec<&'a str>
pub fn auth_failed_accounts<'a>(&self, names: &[&'a str]) -> Vec<&'a str>
Returns names of accounts (from the given list) that have auth_failed set.
pub fn get_sticky(&self, fingerprint: &str) -> Option<String>
pub fn set_sticky(&self, fingerprint: &str, account_name: &str, ttl_ms: u64)
Sourcepub fn window_start_ms(&self, name: &str) -> u64
pub fn window_start_ms(&self, name: &str) -> u64
Epoch-ms when the account’s current window started. Returns u64::MAX for accounts with no window (sorts last in earliest-expiry).
Sourcepub fn reset_5h_secs(&self, name: &str) -> Option<u64>
pub fn reset_5h_secs(&self, name: &str) -> Option<u64>
Unix epoch seconds when this account’s 5h window resets. Returns None if unknown or already past.
Sourcepub fn utilization_5h(&self, name: &str) -> f64
pub fn utilization_5h(&self, name: &str) -> f64
5-hour utilization 0.0–1.0 from the last upstream response headers. Returns 0.0 for fresh accounts or when the reset window has already passed.
Sourcepub fn record_usage(&self, name: &str, input_tokens: u64, output_tokens: u64)
pub fn record_usage(&self, name: &str, input_tokens: u64, output_tokens: u64)
Record token usage from a completed request. Lazily resets the window if the 5-hour period has elapsed.
Sourcepub fn quota_snapshot(&self) -> HashMap<String, QuotaWindow>
pub fn quota_snapshot(&self) -> HashMap<String, QuotaWindow>
Snapshot of all quota windows for the status endpoint.
pub fn update_rate_limits(&self, name: &str, info: RateLimitInfo)
pub fn rate_limit_snapshot(&self) -> HashMap<String, RateLimitInfo>
pub fn get_pinned(&self) -> Option<String>
pub fn set_pinned(&self, name: Option<String>)
pub fn get_last_used(&self) -> Option<String>
pub fn set_last_used(&self, name: &str)
pub fn record_request(&self, log: RequestLog)
Sourcepub fn recent_requests_snapshot(&self) -> Vec<RequestLog>
pub fn recent_requests_snapshot(&self) -> Vec<RequestLog>
Most-recent first snapshot for the monitor / status endpoint.
Sourcepub fn record_global(&self, model: &str, input_tokens: u64, output_tokens: u64)
pub fn record_global(&self, model: &str, input_tokens: u64, output_tokens: u64)
Record tokens + API cost globally (across all accounts) for the savings display.
Sourcepub fn savings_snapshot(&self) -> SavingsSnapshot
pub fn savings_snapshot(&self) -> SavingsSnapshot
Snapshot of daily and all-time savings for the status endpoint and CLI.
Trait Implementations§
Source§impl Clone for StateStore
impl Clone for StateStore
Source§fn clone(&self) -> StateStore
fn clone(&self) -> StateStore
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for StateStore
impl RefUnwindSafe for StateStore
impl Send for StateStore
impl Sync for StateStore
impl Unpin for StateStore
impl UnsafeUnpin for StateStore
impl UnwindSafe for StateStore
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> 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 more