pub struct TokenTracker { /* private fields */ }Expand description
Token usage tracker for session and global usage
Implementations§
Source§impl TokenTracker
impl TokenTracker
Sourcepub fn new() -> TokenTracker
pub fn new() -> TokenTracker
Create a new token tracker
Sourcepub async fn set_session(&self, session_id: impl Into<String>)
pub async fn set_session(&self, session_id: impl Into<String>)
Set the current session ID
Sourcepub async fn set_daily_budget(&self, budget_usd: f64)
pub async fn set_daily_budget(&self, budget_usd: f64)
Set daily budget limit
Sourcepub async fn record_usage(&self, usage: TokenUsage)
pub async fn record_usage(&self, usage: TokenUsage)
Record a token usage event
Sourcepub async fn get_session_stats(&self) -> UsageStats
pub async fn get_session_stats(&self) -> UsageStats
Get session statistics
Sourcepub async fn get_global_stats(&self) -> UsageStats
pub async fn get_global_stats(&self) -> UsageStats
Get global statistics
Sourcepub async fn get_today_stats(&self) -> UsageStats
pub async fn get_today_stats(&self) -> UsageStats
Get today’s usage statistics
Sourcepub async fn check_budget(&self, estimated_cost: f64) -> BudgetStatus
pub async fn check_budget(&self, estimated_cost: f64) -> BudgetStatus
Check if daily budget would be exceeded by estimated usage
Sourcepub async fn get_recent_history(&self, count: usize) -> Vec<UsageRecord>
pub async fn get_recent_history(&self, count: usize) -> Vec<UsageRecord>
Get recent usage history
Sourcepub async fn reset_session(&self)
pub async fn reset_session(&self)
Reset session stats (for new session)
Trait Implementations§
Source§impl Debug for TokenTracker
impl Debug for TokenTracker
Source§impl Default for TokenTracker
impl Default for TokenTracker
Source§fn default() -> TokenTracker
fn default() -> TokenTracker
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl !Freeze for TokenTracker
impl !RefUnwindSafe for TokenTracker
impl Send for TokenTracker
impl Sync for TokenTracker
impl Unpin for TokenTracker
impl UnwindSafe for TokenTracker
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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§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].§impl<T> NoneValue for Twhere
T: Default,
impl<T> NoneValue for Twhere
T: Default,
type NoneType = T
§fn null_value() -> T
fn null_value() -> T
The none-equivalent value.
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian().