Skip to main content

ds_api/raw/response/non_streaming/
usage.rs

1use serde::Deserialize;
2
3#[derive(Debug, Deserialize)]
4pub struct Usage {
5    pub completion_tokens: u32,
6    pub prompt_tokens: u32,
7    #[serde(default)]
8    pub prompt_cache_hit_tokens: Option<u32>,
9    #[serde(default)]
10    pub prompt_cache_miss_tokens: Option<u32>,
11    pub total_tokens: u32,
12    #[serde(default)]
13    pub completion_tokens_details: Option<CompletionTokensDetails>,
14    // Not mentioned in the API documentation
15    // #[serde(default)]
16    // pub prompt_tokens_details: Option<PromptTokensDetails>,
17}
18
19#[derive(Debug, Deserialize)]
20pub struct CompletionTokensDetails {
21    pub reasoning_tokens: u32,
22}
23
24// #[derive(Debug, Deserialize)]
25// pub struct PromptTokensDetails {
26//     pub cached_tokens: u32,
27// }