Skip to main content

aggregate_token_usage

Function aggregate_token_usage 

Source
pub fn aggregate_token_usage(entries: &[TokenUsage]) -> Vec<TokenUsage>
Expand description

Sums per-call TokenUsage entries into one entry per (provider, model) pair, in order of first appearance.

A count stays None when no member of a group reported it, keeping “not reported” distinct from zero.

let calls = vec![
    TokenUsage { model: Some("m".into()), input_tokens: Some(10), ..Default::default() },
    TokenUsage { model: Some("m".into()), input_tokens: Some(5), ..Default::default() },
];
let total = aggregate_token_usage(&calls);
assert_eq!(total.len(), 1);
assert_eq!(total[0].input_tokens, Some(15));
assert_eq!(total[0].output_tokens, None);