cherenkov/server/
stats.rs1use serde::Serialize;
4
5#[derive(Debug, Default, Clone, Copy, Serialize)]
6pub struct UsageStats {
7 pub prompt_tokens: u64,
8 pub cached_tokens: u64,
9 pub generated_tokens: u64,
10 pub prefill_seconds: f64,
11 pub decode_seconds: f64,
12}
13
14impl UsageStats {
15 pub(super) fn add(&mut self, other: Self) {
16 self.prompt_tokens = self.prompt_tokens.saturating_add(other.prompt_tokens);
17 self.cached_tokens = self.cached_tokens.saturating_add(other.cached_tokens);
18 self.generated_tokens = self.generated_tokens.saturating_add(other.generated_tokens);
19 self.prefill_seconds += other.prefill_seconds;
20 self.decode_seconds += other.decode_seconds;
21 }
22}