MCPcopy Create free account
hub / github.com/ccusage/ccusage / parse_token_usage

Function parse_token_usage

rust/crates/ccusage/src/adapter/droid/parser.rs:93–121  ·  view source on GitHub ↗
(value: Option<&Value>)

Source from the content-addressed store, hash-verified

91}
92
93pub(super) fn parse_token_usage(value: Option<&Value>) -> Option<DroidTokenUsage> {
94 let usage = value?.as_object()?;
95 let raw_usage = TokenUsageRaw {
96 input_tokens: json_value_u64(usage.get("inputTokens")),
97 output_tokens: json_value_u64(usage.get("outputTokens")),
98 cache_creation_input_tokens: json_value_u64(usage.get("cacheCreationTokens")),
99 cache_read_input_tokens: json_value_u64(usage.get("cacheReadTokens")),
100 speed: None,
101 cache_creation: None,
102 };
103 let thinking_tokens = json_value_u64(usage.get("thinkingTokens"));
104 let total_tokens = json_value_u64(usage.get("totalTokens"));
105 let (raw_usage, thinking_tokens) =
106 apply_total_token_fallback(raw_usage, thinking_tokens, total_tokens);
107 let tokens = DroidTokenUsage {
108 input_tokens: raw_usage.input_tokens,
109 output_tokens: raw_usage.output_tokens,
110 cache_creation_tokens: raw_usage.cache_creation_input_tokens,
111 cache_read_tokens: raw_usage.cache_read_input_tokens,
112 thinking_tokens,
113 };
114 (tokens.input_tokens
115 + tokens.output_tokens
116 + tokens.cache_creation_tokens
117 + tokens.cache_read_tokens
118 + tokens.thinking_tokens
119 > 0)
120 .then_some(tokens)
121}
122
123fn settings_timestamp(
124 settings: &serde_json::Map<String, Value>,

Calls 2

json_value_u64Function · 0.85