use std::time::Duration;
#[derive(Debug, Clone)]
pub struct MemoryConfig {
pub max_capacity: u64,
pub initial_capacity: usize,
pub default_ttl: Duration,
pub ttl_random_range: Option<Duration>,
pub time_to_idle: Option<Duration>,
pub system_name: String,
}
impl Default for MemoryConfig {
fn default() -> Self {
Self {
max_capacity: 10_000,
initial_capacity: 100,
default_ttl: Duration::from_secs(3600), ttl_random_range: Some(Duration::from_secs(300)), time_to_idle: Some(Duration::from_secs(1800)), system_name: "secra".to_string(),
}
}
}
impl MemoryConfig {
pub fn new(
max_capacity: u64,
default_ttl: Duration,
ttl_random_range: Option<Duration>,
) -> Self {
Self {
max_capacity,
initial_capacity: 100,
default_ttl,
ttl_random_range,
time_to_idle: Some(Duration::from_secs(1800)),
system_name: "secra".to_string(),
}
}
pub fn with_system_name(mut self, system_name: String) -> Self {
self.system_name = system_name;
self
}
pub fn with_initial_capacity(mut self, initial_capacity: usize) -> Self {
self.initial_capacity = initial_capacity;
self
}
pub fn with_time_to_idle(mut self, time_to_idle: Option<Duration>) -> Self {
self.time_to_idle = time_to_idle;
self
}
}