use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Default, Deserialize, Serialize)]
#[serde(tag = "kind")]
#[non_exhaustive]
pub enum CacheConfig {
#[cfg(feature = "cache_inmem")]
InMem(InMemCacheConfig),
#[cfg(feature = "cache_redis")]
Redis(RedisCacheConfig),
#[default]
Null,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct InMemCacheConfig {
#[serde(default = "cache_in_mem_max_capacity")]
pub max_capacity: u64,
}
fn cache_in_mem_max_capacity() -> u64 {
32 * 1024 * 1024
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct RedisCacheConfig {
pub uri: String,
pub max_size: u32,
}