use super::defaults::{
default_dedup_cache_capacity, default_dedup_cache_cleanup_interval_secs,
default_dedup_cache_ttl_secs, default_membership_snapshot_interval_secs,
};
use serde::{Deserialize, Serialize};
#[derive(Debug, Deserialize, Serialize, Clone, Default)]
pub struct CoordinationConfig {
#[serde(default)]
pub dedup_cache: DedupCacheConfig,
#[serde(default = "default_membership_snapshot_interval_secs")]
pub membership_snapshot_interval_secs: u64,
}
#[derive(Debug, Deserialize, Serialize, Clone)]
pub struct DedupCacheConfig {
#[serde(default = "default_dedup_cache_capacity")]
pub capacity: usize,
#[serde(default = "default_dedup_cache_ttl_secs")]
pub ttl_secs: u64,
#[serde(default = "default_dedup_cache_cleanup_interval_secs")]
pub cleanup_interval_secs: u64,
}
impl Default for DedupCacheConfig {
fn default() -> Self {
Self {
capacity: default_dedup_cache_capacity(),
ttl_secs: default_dedup_cache_ttl_secs(),
cleanup_interval_secs: default_dedup_cache_cleanup_interval_secs(),
}
}
}