use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq)]
pub enum CacheMode {
Local,
Redis,
Multi,
}
impl Default for CacheMode {
fn default() -> Self {
Self::Multi
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MultilevelConfig {
pub mode: CacheMode,
pub write_through: bool,
pub read_through: bool,
pub enable_circuit_breaker: bool,
pub failure_threshold: u32,
pub failure_window_secs: u64,
pub reset_timeout_secs: u64,
}
impl Default for MultilevelConfig {
fn default() -> Self {
Self {
mode: CacheMode::Multi,
write_through: true,
read_through: true,
enable_circuit_breaker: true,
failure_threshold: 5,
failure_window_secs: 60,
reset_timeout_secs: 300,
}
}
}