1use schemars::JsonSchema;
4
5#[derive(
7 Debug, serde::Serialize, serde::Deserialize, Clone, Default, PartialEq, Eq, JsonSchema,
8)]
9pub struct ServerToolUsage {
10 #[serde(skip_serializing_if = "Option::is_none")]
11 pub code_execution_requests: Option<u32>,
12 #[serde(skip_serializing_if = "Option::is_none")]
13 pub tool_search_requests: Option<u32>,
14}
15
16#[derive(
18 Debug, serde::Serialize, serde::Deserialize, Clone, Default, PartialEq, Eq, JsonSchema,
19)]
20pub struct Usage {
21 pub input_tokens: u32,
22 pub output_tokens: u32,
23 #[serde(skip_serializing_if = "Option::is_none")]
24 pub prompt_cache_hit_tokens: Option<u32>,
25 #[serde(skip_serializing_if = "Option::is_none")]
26 pub prompt_cache_miss_tokens: Option<u32>,
27 #[serde(skip_serializing_if = "Option::is_none")]
28 pub reasoning_tokens: Option<u32>,
29 #[serde(skip_serializing_if = "Option::is_none")]
32 pub reasoning_replay_tokens: Option<u32>,
33 #[serde(skip_serializing_if = "Option::is_none")]
34 pub server_tool_use: Option<ServerToolUsage>,
35}