pub struct TokenUsage {
pub input_tokens: u64,
pub output_tokens: u64,
pub total_tokens: u64,
pub cache_creation_input_tokens: Option<u64>,
pub cache_read_input_tokens: Option<u64>,
pub cached_input_tokens: Option<u64>,
}Expand description
Token usage reported by a provider.
Fields§
§input_tokens: u64Number of input tokens.
output_tokens: u64Number of output tokens.
total_tokens: u64Total token count.
cache_creation_input_tokens: Option<u64>Number of input tokens written to cache by this call.
Populated by Anthropic when the request created a new cache entry.
None for providers that do not report cache writes or when no
caching occurred.
cache_read_input_tokens: Option<u64>Number of input tokens served from cache by this call.
Populated by Anthropic (cache_read_input_tokens) and DeepSeek
(prompt_cache_hit_tokens). None when the provider does not
report cache reads or no cache was hit.
cached_input_tokens: Option<u64>Number of input tokens served from cache by this call.
Populated by OpenAI’s prompt_tokens_details.cached_tokens.
None for providers that do not report this field.
Implementations§
Source§impl TokenUsage
impl TokenUsage
Sourcepub const fn new(input_tokens: u64, output_tokens: u64) -> Self
pub const fn new(input_tokens: u64, output_tokens: u64) -> Self
Creates token usage and computes the total.
Cache fields default to None; use TokenUsage::with_cache_stats to
populate them or TokenUsage::merge to combine two usages.
Sourcepub const fn with_cache_stats(
self,
cache_creation_input_tokens: Option<u64>,
cache_read_input_tokens: Option<u64>,
cached_input_tokens: Option<u64>,
) -> Self
pub const fn with_cache_stats( self, cache_creation_input_tokens: Option<u64>, cache_read_input_tokens: Option<u64>, cached_input_tokens: Option<u64>, ) -> Self
Returns a copy of this usage with the cache fields populated.
Sourcepub fn cache_tokens(&self) -> u64
pub fn cache_tokens(&self) -> u64
Returns the total number of cache-related input tokens.
Sums cache_creation_input_tokens, cache_read_input_tokens, and
cached_input_tokens when present. Returns 0 when no provider
reported any cache stats.
Trait Implementations§
Source§impl Clone for TokenUsage
impl Clone for TokenUsage
Source§fn clone(&self) -> TokenUsage
fn clone(&self) -> TokenUsage
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for TokenUsage
Source§impl Debug for TokenUsage
impl Debug for TokenUsage
Source§impl<'de> Deserialize<'de> for TokenUsage
impl<'de> Deserialize<'de> for TokenUsage
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>,
impl Eq for TokenUsage
Source§impl PartialEq for TokenUsage
impl PartialEq for TokenUsage
Source§fn eq(&self, other: &TokenUsage) -> bool
fn eq(&self, other: &TokenUsage) -> bool
self and other values to be equal, and is used by ==.