pub struct ModelUsage {
pub input_tokens: u32,
pub output_tokens: u32,
pub cache_read_input_tokens: u32,
pub cache_creation_input_tokens: u32,
pub web_search_requests: u32,
pub web_fetch_requests: u32,
pub cost_usd: f64,
pub context_window: u32,
}Expand description
Per-model usage statistics tracking.
This tracks API usage for each model separately, enabling accurate cost attribution when multiple models are used (e.g., Haiku for tool summarization, Opus for main agent).
Fields§
§input_tokens: u32Input tokens consumed by this model.
output_tokens: u32Output tokens generated by this model.
cache_read_input_tokens: u32Cache read tokens.
cache_creation_input_tokens: u32Cache creation tokens.
web_search_requests: u32Number of local web search requests made by this model.
web_fetch_requests: u32Number of local web fetch requests made by this model.
cost_usd: f64Estimated cost in USD for this model’s usage.
context_window: u32Context window size for this model.
Implementations§
Source§impl ModelUsage
impl ModelUsage
pub fn from_usage(usage: &Usage, model: &str) -> Self
pub fn add(&mut self, other: &ModelUsage)
pub fn add_usage(&mut self, usage: &Usage, model: &str)
pub fn total_tokens(&self) -> u32
Trait Implementations§
Source§impl Clone for ModelUsage
impl Clone for ModelUsage
Source§fn clone(&self) -> ModelUsage
fn clone(&self) -> ModelUsage
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 moreSource§impl Debug for ModelUsage
impl Debug for ModelUsage
Source§impl Default for ModelUsage
impl Default for ModelUsage
Source§fn default() -> ModelUsage
fn default() -> ModelUsage
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for ModelUsage
impl<'de> Deserialize<'de> for ModelUsage
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for ModelUsage
impl RefUnwindSafe for ModelUsage
impl Send for ModelUsage
impl Sync for ModelUsage
impl Unpin for ModelUsage
impl UnwindSafe for ModelUsage
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<D> DeserializeWith<JsonFormat> for Dwhere
D: DeserializeOwned,
impl<D> DeserializeWith<JsonFormat> for Dwhere
D: DeserializeOwned,
Source§fn deserialize_with(body: ResponseBody) -> Result<D, Error>
fn deserialize_with(body: ResponseBody) -> Result<D, Error>
Deserialize the response body using the specified format. Read more
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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 moreCreates a shared type from an unshared type.