spatio_types/
stats.rs

1use serde::{Deserialize, Serialize};
2
3/// Database statistics
4#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5pub struct DbStats {
6    /// Number of items that have expired
7    pub expired_count: u64,
8    /// Total number of operations performed
9    pub operations_count: u64,
10    /// Total size in bytes (approximate)
11    pub size_bytes: usize,
12    /// Total number of objects currently tracked in hot state
13    pub hot_state_objects: usize,
14    /// Number of trajectories stored in cold state
15    pub cold_state_trajectories: usize,
16    /// Bytes used in cold state buffer
17    pub cold_state_buffer_bytes: usize,
18    /// Approximate total memory usage in bytes
19    pub memory_usage_bytes: usize,
20}
21
22impl DbStats {
23    pub fn new() -> Self {
24        Self::default()
25    }
26
27    pub fn record_operation(&mut self) {
28        self.operations_count += 1;
29    }
30
31    pub fn record_expired(&mut self, count: u64) {
32        self.expired_count += count;
33    }
34
35    pub fn set_size_bytes(&mut self, bytes: usize) {
36        self.size_bytes = bytes;
37    }
38}