pub struct StatsCache {
pub version: u32,
pub last_computed_date: Option<String>,
pub daily_activity: Vec<DailyActivityEntry>,
pub daily_model_tokens: Vec<DailyModelTokens>,
pub model_usage: HashMap<String, ModelUsage>,
pub total_sessions: u64,
pub total_messages: u64,
pub longest_session: Option<LongestSession>,
pub first_session_date: Option<String>,
pub hour_counts: HashMap<String, u64>,
pub total_speculation_time_saved_ms: u64,
}Expand description
Top-level stats cache structure matching actual Claude Code format
Fields§
§version: u32Version of the stats format
last_computed_date: Option<String>Last computed date (YYYY-MM-DD)
daily_activity: Vec<DailyActivityEntry>Daily activity entries
daily_model_tokens: Vec<DailyModelTokens>Daily model token usage
model_usage: HashMap<String, ModelUsage>Model usage breakdown
total_sessions: u64Total sessions
total_messages: u64Total messages
longest_session: Option<LongestSession>Longest session info
first_session_date: Option<String>First session date
hour_counts: HashMap<String, u64>Hour counts for heatmap (0-23 as strings)
total_speculation_time_saved_ms: u64Total speculation time saved in ms
Implementations§
Source§impl StatsCache
impl StatsCache
Sourcepub const CONTEXT_WINDOW: u64 = 200_000
pub const CONTEXT_WINDOW: u64 = 200_000
Context window size for Sonnet 4.5 (200K tokens)
Sourcepub fn total_input_tokens(&self) -> u64
pub fn total_input_tokens(&self) -> u64
Calculate total input tokens across all models
Sourcepub fn total_output_tokens(&self) -> u64
pub fn total_output_tokens(&self) -> u64
Calculate total output tokens across all models
Sourcepub fn total_tokens(&self) -> u64
pub fn total_tokens(&self) -> u64
Calculate total tokens (input + output)
Sourcepub fn total_cache_read_tokens(&self) -> u64
pub fn total_cache_read_tokens(&self) -> u64
Calculate total cache read tokens
Sourcepub fn total_cache_write_tokens(&self) -> u64
pub fn total_cache_write_tokens(&self) -> u64
Calculate total cache write tokens
Sourcepub fn session_count(&self) -> u64
pub fn session_count(&self) -> u64
Get session count
Sourcepub fn message_count(&self) -> u64
pub fn message_count(&self) -> u64
Get message count
Sourcepub fn top_models(&self, n: usize) -> Vec<(&str, &ModelUsage)>
pub fn top_models(&self, n: usize) -> Vec<(&str, &ModelUsage)>
Get top N models by token usage
Sourcepub fn recent_daily(&self, n: usize) -> Vec<&DailyActivityEntry>
pub fn recent_daily(&self, n: usize) -> Vec<&DailyActivityEntry>
Get recent N days of activity
Sourcepub fn cache_ratio(&self) -> f64
pub fn cache_ratio(&self) -> f64
Calculate cache hit ratio
Sourcepub fn calculate_context_saturation(
session_metadata: &[&SessionMetadata],
last_n: usize,
) -> ContextWindowStats
pub fn calculate_context_saturation( session_metadata: &[&SessionMetadata], last_n: usize, ) -> ContextWindowStats
Calculate context window saturation from session metadata
NOTE: Requires session metadata to be passed from DataStore since StatsCache doesn’t have direct access to sessions.
Trait Implementations§
Source§impl Clone for StatsCache
impl Clone for StatsCache
Source§fn clone(&self) -> StatsCache
fn clone(&self) -> StatsCache
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more