oximedia_proxy/cache/
strategy.rs1#[derive(Debug, Clone, Copy, PartialEq, Eq)]
5pub enum CacheStrategy {
6 Lru,
8
9 Lfu,
11
12 Fifo,
14}
15
16impl CacheStrategy {
17 #[must_use]
19 pub const fn name(&self) -> &'static str {
20 match self {
21 Self::Lru => "LRU",
22 Self::Lfu => "LFU",
23 Self::Fifo => "FIFO",
24 }
25 }
26}
27
28impl Default for CacheStrategy {
29 fn default() -> Self {
30 Self::Lru
31 }
32}
33
34#[cfg(test)]
35mod tests {
36 use super::*;
37
38 #[test]
39 fn test_cache_strategy() {
40 assert_eq!(CacheStrategy::Lru.name(), "LRU");
41 assert_eq!(CacheStrategy::Lfu.name(), "LFU");
42 assert_eq!(CacheStrategy::Fifo.name(), "FIFO");
43 }
44
45 #[test]
46 fn test_default_strategy() {
47 assert_eq!(CacheStrategy::default(), CacheStrategy::Lru);
48 }
49}