#![cfg_attr(coverage_nightly, coverage(off))]
use serde::{Deserialize, Serialize};
use std::time::Duration;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CacheConfig {
pub max_memory_mb: usize,
pub enable_watch: bool,
pub ast_ttl_secs: u64,
pub template_ttl_secs: u64,
pub dag_ttl_secs: u64,
pub churn_ttl_secs: u64,
pub git_stats_ttl_secs: u64,
pub warmup_on_startup: bool,
pub warmup_patterns: Vec<String>,
pub git_cache_by_branch: bool,
pub git_cache_max_age_days: u32,
pub parallel_warmup_threads: usize,
pub cache_compression: bool,
pub eviction_batch_size: usize,
}
impl Default for CacheConfig {
fn default() -> Self {
Self {
max_memory_mb: 100,
enable_watch: true,
ast_ttl_secs: 300, template_ttl_secs: 600, dag_ttl_secs: 180, churn_ttl_secs: 1800, git_stats_ttl_secs: 900,
warmup_on_startup: false,
warmup_patterns: vec![
"src/**/*.rs".to_string(),
"**/*.ts".to_string(),
"**/*.py".to_string(),
],
git_cache_by_branch: true,
git_cache_max_age_days: 7,
parallel_warmup_threads: 4,
cache_compression: false,
eviction_batch_size: 10,
}
}
}
include!("config_methods.rs");
include!("config_tests.rs");
include!("config_property_tests.rs");