[go: up one dir, main page]

http-global-cache 0.1.4

A global cache to use for http.
Documentation
// Base imports when request caching is enabled
#[cfg(feature = "cache_request")]
use http_cache_reqwest::{Cache, CacheMode, HttpCache, HttpCacheOptions, CacheManager};

// Disallow enabling both `cache` and `cache_mem` at the same time.
#[cfg(all(feature = "cache_request", feature = "cache", feature = "cache_mem"))]
compile_error!("Features `cache` and `cache_mem` are mutually exclusive. Enable at most one.");

// ---------- disk cache: CACacheManager (cache flag) ----------

#[cfg(all(feature = "cache_request", feature = "cache", not(feature = "cache_mem")))]
use http_cache_reqwest::CACacheManager;

#[cfg(all(feature = "cache_request", feature = "cache", not(feature = "cache_mem")))]
type RequestCacheManager = CACacheManager;

// ---------- in-memory cache: MokaManager (cache_mem flag) ----------

#[cfg(all(feature = "cache_request", feature = "cache_mem", not(feature = "cache")))]
use http_cache_reqwest::MokaManager;

#[cfg(all(feature = "cache_request", feature = "cache_mem", not(feature = "cache")))]
type RequestCacheManager = MokaManager;

// ---------- default: CACacheManager when neither cache nor cache_mem is set ----------

#[cfg(all(feature = "cache_request", not(feature = "cache"), not(feature = "cache_mem")))]
use http_cache_reqwest::CACacheManager;

#[cfg(all(feature = "cache_request", not(feature = "cache"), not(feature = "cache_mem")))]
type RequestCacheManager = CACacheManager;

// ---------- global cache manager ----------

#[cfg(feature = "cache_request")]
lazy_static::lazy_static! {
    /// Cache manager for requests.
    pub static ref CACACHE_MANAGER: RequestCacheManager = RequestCacheManager::default();
}