1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
//! Intelligent caching system for rez-core
//!
//! This crate provides a unified, intelligent caching system that integrates
//! with existing rez-core caches (SolverCache, RepositoryCache, RexCache).
//! It features multi-level caching, predictive preheating, and adaptive tuning
//! to achieve >90% cache hit rates.
//!
//! # Features
//!
//! - **Unified Cache Interface**: Common trait for all cache types
//! - **Multi-level Caching**: L1 memory cache + L2 disk cache
//! - **Predictive Preheating**: ML-based access pattern prediction
//! - **Adaptive Tuning**: Real-time parameter optimization
//! - **Performance Monitoring**: Comprehensive statistics and metrics
//!
//! # Architecture
//!
//! The caching system is built on top of existing rez-core cache implementations,
//! reusing proven patterns and components while adding intelligent features.
//!
//! ```text
//! ┌─────────────────────────────────────────────────────────────┐
//! │ IntelligentCacheManager │
//! ├─────────────────────────────────────────────────────────────┤
//! │ L1 Cache (DashMap) │ L2 Cache (RepositoryCache) │
//! ├─────────────────────────────────────────────────────────────┤
//! │ PredictivePreheater │ AdaptiveTuner │
//! ├─────────────────────────────────────────────────────────────┤
//! │ SolverCache │ RepositoryCache │ RexCache │
//! └─────────────────────────────────────────────────────────────┘
//! ```
// Re-export core types
pub use *;
pub use *;
pub use *;
pub use *;
pub use *;
pub use *;
pub use *;
pub use *;
pub use *;
/// Cache eviction strategies (copied from SolverCache for now)
/// Version information for the cache system
pub const CACHE_VERSION: &str = env!;
/// Default cache configuration
pub const DEFAULT_L1_CAPACITY: usize = 10000;
pub const DEFAULT_L2_CAPACITY: usize = 100000;
pub const DEFAULT_TTL_SECONDS: u64 = 3600;
pub const DEFAULT_MEMORY_LIMIT_MB: u64 = 100;