use std::time::Duration;
#[derive(Debug, Clone)]
pub struct QueryConfig {
pub stale_time: Duration,
pub cache_time: Duration,
}
impl Default for QueryConfig {
fn default() -> Self {
Self {
stale_time: Duration::from_secs(0), cache_time: Duration::from_secs(5 * 60), }
}
}
impl QueryConfig {
#[must_use]
pub const fn new(stale_time: Duration, cache_time: Duration) -> Self {
Self {
stale_time,
cache_time,
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_default_config() {
let config = QueryConfig::default();
assert_eq!(config.stale_time, Duration::from_secs(0));
assert_eq!(config.cache_time, Duration::from_secs(5 * 60));
}
#[test]
fn test_new_config() {
let config = QueryConfig::new(Duration::from_secs(30), Duration::from_secs(300));
assert_eq!(config.stale_time, Duration::from_secs(30));
assert_eq!(config.cache_time, Duration::from_secs(300));
}
}