rust_logic_graph/cache/
policy.rs1use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
7pub enum EvictionPolicy {
8 LRU,
10 FIFO,
12 LFU,
14 None,
16}
17
18impl Default for EvictionPolicy {
19 fn default() -> Self {
20 Self::LRU
21 }
22}
23
24impl EvictionPolicy {
25 pub fn description(&self) -> &str {
27 match self {
28 Self::LRU => "Least Recently Used - evicts entries not accessed recently",
29 Self::FIFO => "First In First Out - evicts oldest entries first",
30 Self::LFU => "Least Frequently Used - evicts entries with lowest access count",
31 Self::None => "No automatic eviction",
32 }
33 }
34}