pub struct TokenUsage {
pub input_tokens: Option<u64>,
pub output_tokens: Option<u64>,
pub cached_input_tokens: Option<u64>,
}Expand description
Raw token counts from a single LLM API response.
Contract: input_tokens is the total prompt size sent to the model
(every token the model saw, regardless of cache state).
cached_input_tokens is the subset of input_tokens that was served
from the prompt cache. So cached_input_tokens <= input_tokens, and the
billable uncached portion is input_tokens - cached_input_tokens.
Providers normalize to this shape:
- OpenAI/Compatible:
prompt_tokensis already total,cached_tokensis already a subset — used directly. - Anthropic: the API reports three DISJOINT buckets per
https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching:
total_input = cache_read_input_tokens + cache_creation_input_tokens + input_tokens, where Anthropic’sinput_tokensis only the tokens after the last cache breakpoint. The adapter sums all three to produce the total here.cached_input_tokensis set tocache_read_input_tokens(the discount-billed subset).
Fields§
§input_tokens: Option<u64>Total prompt size: uncached + cached input tokens.
output_tokens: Option<u64>§cached_input_tokens: Option<u64>Subset of input_tokens that was served from the model_provider’s
prompt cache (Anthropic cache_read_input_tokens,
OpenAI prompt_tokens_details.cached_tokens).
Trait Implementations§
Source§impl Clone for TokenUsage
impl Clone for TokenUsage
Source§fn clone(&self) -> TokenUsage
fn clone(&self) -> TokenUsage
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 TokenUsage
impl Debug for TokenUsage
Source§impl Default for TokenUsage
impl Default for TokenUsage
Source§fn default() -> TokenUsage
fn default() -> TokenUsage
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for TokenUsage
impl RefUnwindSafe for TokenUsage
impl Send for TokenUsage
impl Sync for TokenUsage
impl Unpin for TokenUsage
impl UnsafeUnpin for TokenUsage
impl UnwindSafe for TokenUsage
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