pub struct QuickManager { /* private fields */ }
Expand description
HTTP cache manager implementation using QuickCache.
This manager provides in-memory caching using the QuickCache library and implements
the CacheManager
trait for HTTP caching support.
§Examples
§Basic Usage
use http_cache_quickcache::QuickManager;
use quick_cache::sync::Cache;
// Create a cache with 1000 entry limit
let cache = Cache::new(1000);
let manager = QuickManager::new(cache);
§Default Configuration
The default configuration creates a cache with 42 entries:
use http_cache_quickcache::QuickManager;
let manager = QuickManager::default();
Implementations§
Source§impl QuickManager
impl QuickManager
Sourcepub fn new(cache: Cache<String, Arc<Vec<u8>>>) -> Self
pub fn new(cache: Cache<String, Arc<Vec<u8>>>) -> Self
Creates a new QuickManager from a pre-configured QuickCache.
This allows you to customize the cache configuration, such as setting the maximum number of entries.
§Arguments
cache
- A configured QuickCache instance
§Examples
use http_cache_quickcache::QuickManager;
use quick_cache::sync::Cache;
// Create a cache with 10,000 entry limit
let cache = Cache::new(10_000);
let manager = QuickManager::new(cache);
§Cache Size Considerations
Choose your cache size based on:
- Available memory
- Expected number of unique cacheable requests
- Average response size
- Cache hit rate requirements
use http_cache_quickcache::QuickManager;
use quick_cache::sync::Cache;
// For an application with many unique endpoints
let large_cache = QuickManager::new(Cache::new(50_000));
// For an application with few cacheable responses
let small_cache = QuickManager::new(Cache::new(100));
Trait Implementations§
Source§impl CacheManager for QuickManager
impl CacheManager for QuickManager
Source§fn get<'life0, 'life1, 'async_trait>(
&'life0 self,
cache_key: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<(HttpResponse, CachePolicy)>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get<'life0, 'life1, 'async_trait>(
&'life0 self,
cache_key: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<(HttpResponse, CachePolicy)>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Attempts to pull a cached response and related policy from cache.
Source§fn put<'life0, 'async_trait>(
&'life0 self,
cache_key: String,
response: HttpResponse,
policy: CachePolicy,
) -> Pin<Box<dyn Future<Output = Result<HttpResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn put<'life0, 'async_trait>(
&'life0 self,
cache_key: String,
response: HttpResponse,
policy: CachePolicy,
) -> Pin<Box<dyn Future<Output = Result<HttpResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Attempts to cache a response and related policy.
Source§impl Clone for QuickManager
impl Clone for QuickManager
Source§fn clone(&self) -> QuickManager
fn clone(&self) -> QuickManager
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for QuickManager
impl Debug for QuickManager
Source§impl Default for QuickManager
impl Default for QuickManager
Source§fn default() -> Self
fn default() -> Self
Creates a new QuickManager with a default cache size of 42 entries.
For production use, consider using QuickManager::new
with a
cache size appropriate for your use case.
Auto Trait Implementations§
impl Freeze for QuickManager
impl !RefUnwindSafe for QuickManager
impl Send for QuickManager
impl Sync for QuickManager
impl Unpin for QuickManager
impl !UnwindSafe for QuickManager
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more