use std::time::Duration;
#[derive(Debug, Clone)]
pub struct CacheConfig {
pub enabled: bool,
pub max_entries: usize,
pub default_ttl: Duration,
pub strategy: CacheStrategy,
pub cache_empty_results: bool,
pub key_prefix: Option<String>,
}
impl Default for CacheConfig {
fn default() -> Self {
Self {
enabled: false,
max_entries: 1000,
default_ttl: Duration::from_secs(60),
strategy: CacheStrategy::LRU,
cache_empty_results: true,
key_prefix: None,
}
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum CacheStrategy {
LRU,
FIFO,
TTL,
}
impl std::fmt::Display for CacheStrategy {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
CacheStrategy::LRU => write!(f, "LRU"),
CacheStrategy::FIFO => write!(f, "FIFO"),
CacheStrategy::TTL => write!(f, "TTL"),
}
}
}