Skip to main content

sockudo_core/options/
cache.rs

1use super::*;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, Serialize, Deserialize)]
5#[serde(default)]
6pub struct MemoryCacheOptions {
7    pub ttl: u64,
8    pub cleanup_interval: u64,
9    pub max_capacity: u64,
10}
11
12#[derive(Debug, Clone, Serialize, Deserialize)]
13#[serde(default)]
14pub struct CacheConfig {
15    pub driver: CacheDriver,
16    pub redis: RedisConfig,
17    pub memory: MemoryCacheOptions,
18}
19
20#[derive(Debug, Clone, Serialize, Deserialize, Default)]
21#[serde(default)]
22pub struct RedisConfig {
23    pub prefix: Option<String>,
24    pub url_override: Option<String>,
25    pub cluster_mode: bool,
26}
27
28impl Default for MemoryCacheOptions {
29    fn default() -> Self {
30        Self {
31            ttl: 300,
32            cleanup_interval: 60,
33            max_capacity: 10000,
34        }
35    }
36}
37
38impl Default for CacheConfig {
39    fn default() -> Self {
40        Self {
41            driver: CacheDriver::default(),
42            redis: RedisConfig {
43                prefix: Some("sockudo_cache:".to_string()),
44                url_override: None,
45                cluster_mode: false,
46            },
47            memory: MemoryCacheOptions::default(),
48        }
49    }
50}