sockudo_core/options/
cache.rs1use 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}