pub struct CacheStats {
pub size: usize,
pub capacity: usize,
pub hits: u64,
pub misses: u64,
pub hit_rate: f64,
}Expand description
Cache statistics.
Fields§
§size: usizeCurrent number of entries.
capacity: usizeMaximum capacity.
hits: u64Total cache hits.
misses: u64Total cache misses.
hit_rate: f64Hit rate (0.0 to 1.0).
Implementations§
Source§impl CacheStats
impl CacheStats
Sourcepub fn new(size: usize, capacity: usize, hits: u64, misses: u64) -> Self
pub fn new(size: usize, capacity: usize, hits: u64, misses: u64) -> Self
Create new cache statistics.
§Example
use chie_shared::types::cache::CacheStats;
let stats = CacheStats::new(750, 1000, 8500, 1500);
assert_eq!(stats.size, 750);
assert_eq!(stats.capacity, 1000);
assert_eq!(stats.hits, 8500);
assert_eq!(stats.misses, 1500);
assert_eq!(stats.hit_rate, 0.85);
assert_eq!(stats.total_requests(), 10000);
assert!((stats.miss_rate() - 0.15).abs() < 1e-10);
assert_eq!(stats.fill_percentage(), 0.75);Sourcepub fn fill_percentage(&self) -> f64
pub fn fill_percentage(&self) -> f64
Get the fill percentage (0.0 to 1.0).
Sourcepub fn total_requests(&self) -> u64
pub fn total_requests(&self) -> u64
Get total requests (hits + misses).
Sourcepub fn efficiency_score(&self) -> f64
pub fn efficiency_score(&self) -> f64
Calculate efficiency score (0.0 to 100.0).
Combines hit rate (70% weight) and capacity utilization (30% weight).
§Example
use chie_shared::types::cache::CacheStats;
// High efficiency: good hit rate and good utilization
let stats1 = CacheStats::new(900, 1000, 9000, 1000);
assert_eq!(stats1.efficiency_score(), 90.0 * 0.7 + 0.9 * 30.0);
// Medium efficiency: good hit rate but low utilization
let stats2 = CacheStats::new(300, 1000, 900, 100);
assert_eq!(stats2.efficiency_score(), 0.9 * 70.0 + 0.3 * 30.0);
// Low efficiency: poor hit rate
let stats3 = CacheStats::new(500, 1000, 300, 700);
assert_eq!(stats3.efficiency_score(), 0.3 * 70.0 + 0.5 * 30.0);Trait Implementations§
Source§impl Clone for CacheStats
impl Clone for CacheStats
Source§fn clone(&self) -> CacheStats
fn clone(&self) -> CacheStats
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for CacheStats
impl Debug for CacheStats
Source§impl Default for CacheStats
impl Default for CacheStats
Source§impl<'de> Deserialize<'de> for CacheStats
impl<'de> Deserialize<'de> for CacheStats
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for CacheStats
impl PartialEq for CacheStats
Source§impl Serialize for CacheStats
impl Serialize for CacheStats
impl StructuralPartialEq for CacheStats
Auto Trait Implementations§
impl Freeze for CacheStats
impl RefUnwindSafe for CacheStats
impl Send for CacheStats
impl Sync for CacheStats
impl Unpin for CacheStats
impl UnwindSafe for CacheStats
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more