use super::*;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(default)]
pub struct MemoryCacheOptions {
pub ttl: u64,
pub cleanup_interval: u64,
pub max_capacity: u64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(default)]
pub struct CacheConfig {
pub driver: CacheDriver,
pub redis: RedisConfig,
pub memory: MemoryCacheOptions,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(default)]
pub struct RedisConfig {
pub prefix: Option<String>,
pub url_override: Option<String>,
pub cluster_mode: bool,
}
impl Default for MemoryCacheOptions {
fn default() -> Self {
Self {
ttl: 300,
cleanup_interval: 60,
max_capacity: 10000,
}
}
}
impl Default for CacheConfig {
fn default() -> Self {
Self {
driver: CacheDriver::default(),
redis: RedisConfig {
prefix: Some("sockudo_cache:".to_string()),
url_override: None,
cluster_mode: false,
},
memory: MemoryCacheOptions::default(),
}
}
}