//! Cache abstractions and a default in-memory backend.

pub mod aside;
pub mod config;
pub mod error;
pub mod key;
pub mod lru;
mod lru_list;
pub mod memory;
pub mod stats;
pub mod store;
pub mod ttl;
pub mod two_level;

pub use aside::{CacheAside, CacheAsideConfig};
pub use config::CacheConfig;
pub use error::{CacheError, CacheResult};
pub use key::CacheKey;
pub use lru::{LruCacheSnapshot, LruCacheStore};
pub use memory::MemoryCacheStore;
pub use stats::{CacheStats, CacheStatsSnapshot};
pub use store::CacheStore;
pub use ttl::jitter_ttl;
pub use two_level::{TwoLevelCacheSnapshot, TwoLevelCacheStats, TwoLevelCacheStore};

#[cfg(feature = "cache-redis")]
pub use crate::cache_redis as redis;
