http_global_cache/
lib.rs

1// Base imports when request caching is enabled
2#[cfg(feature = "cache_request")]
3use http_cache_reqwest::{Cache, CacheMode, HttpCache, HttpCacheOptions, CacheManager};
4
5// Disallow enabling both `cache` and `cache_mem` at the same time.
6#[cfg(all(feature = "cache_request", feature = "cache", feature = "cache_mem"))]
7compile_error!("Features `cache` and `cache_mem` are mutually exclusive. Enable at most one.");
8
9// ---------- disk cache: CACacheManager (cache flag) ----------
10
11#[cfg(all(feature = "cache_request", feature = "cache", not(feature = "cache_mem")))]
12use http_cache_reqwest::CACacheManager;
13
14#[cfg(all(feature = "cache_request", feature = "cache", not(feature = "cache_mem")))]
15type RequestCacheManager = CACacheManager;
16
17// ---------- in-memory cache: MokaManager (cache_mem flag) ----------
18
19#[cfg(all(feature = "cache_request", feature = "cache_mem", not(feature = "cache")))]
20use http_cache_reqwest::MokaManager;
21
22#[cfg(all(feature = "cache_request", feature = "cache_mem", not(feature = "cache")))]
23type RequestCacheManager = MokaManager;
24
25// ---------- default: CACacheManager when neither cache nor cache_mem is set ----------
26
27#[cfg(all(feature = "cache_request", not(feature = "cache"), not(feature = "cache_mem")))]
28use http_cache_reqwest::CACacheManager;
29
30#[cfg(all(feature = "cache_request", not(feature = "cache"), not(feature = "cache_mem")))]
31type RequestCacheManager = CACacheManager;
32
33// ---------- global cache manager ----------
34
35#[cfg(feature = "cache_request")]
36lazy_static::lazy_static! {
37    /// Cache manager for requests.
38    pub static ref CACACHE_MANAGER: RequestCacheManager = RequestCacheManager::default();
39}