pub struct ExpiringValueCache<K: Hash + Eq, V: CanExpire> { /* private fields */ }
Expand description
Expiring Value Cache
Stores values that implement the CanExpire
trait so that expiration
is determined by the values themselves. This is useful for caching
values which themselves contain an expiry timestamp.
Note: This cache is in-memory only.
Implementations§
Trait Implementations§
source§impl<K: Hash + Eq + Clone, V: CanExpire> Cached<K, V> for ExpiringValueCache<K, V>
impl<K: Hash + Eq + Clone, V: CanExpire> Cached<K, V> for ExpiringValueCache<K, V>
source§fn cache_get_mut<Q>(&mut self, k: &Q) -> Option<&mut V>
fn cache_get_mut<Q>(&mut self, k: &Q) -> Option<&mut V>
Attempt to retrieve a cached value with mutable access Read more
source§fn cache_get_or_set_with<F: FnOnce() -> V>(&mut self, k: K, f: F) -> &mut V
fn cache_get_or_set_with<F: FnOnce() -> V>(&mut self, k: K, f: F) -> &mut V
Get or insert a key, value pair
source§fn cache_try_get_or_set_with<F: FnOnce() -> Result<V, E>, E>(
&mut self,
k: K,
f: F,
) -> Result<&mut V, E>
fn cache_try_get_or_set_with<F: FnOnce() -> Result<V, E>, E>( &mut self, k: K, f: F, ) -> Result<&mut V, E>
Get or insert a key, value pair with error handling
source§fn cache_set(&mut self, k: K, v: V) -> Option<V>
fn cache_set(&mut self, k: K, v: V) -> Option<V>
Insert a key, value pair and return the previous value
source§fn cache_clear(&mut self)
fn cache_clear(&mut self)
Remove all cached values. Keeps the allocated memory for reuse.
source§fn cache_reset(&mut self)
fn cache_reset(&mut self)
Remove all cached values. Free memory and return to initial state
source§fn cache_size(&self) -> usize
fn cache_size(&self) -> usize
Return the current cache size (number of elements)
source§fn cache_hits(&self) -> Option<u64>
fn cache_hits(&self) -> Option<u64>
Return the number of times a cached value was successfully retrieved
source§fn cache_misses(&self) -> Option<u64>
fn cache_misses(&self) -> Option<u64>
Return the number of times a cached value was unable to be retrieved
source§fn cache_reset_metrics(&mut self)
fn cache_reset_metrics(&mut self)
Reset misses/hits counters
source§fn cache_capacity(&self) -> Option<usize>
fn cache_capacity(&self) -> Option<usize>
Return the cache capacity
source§fn cache_lifespan(&self) -> Option<u64>
fn cache_lifespan(&self) -> Option<u64>
Return the lifespan of cached values (time to eviction)
source§impl<K: Clone + Hash + Eq, V: Clone + CanExpire> Clone for ExpiringValueCache<K, V>
impl<K: Clone + Hash + Eq, V: Clone + CanExpire> Clone for ExpiringValueCache<K, V>
source§fn clone(&self) -> ExpiringValueCache<K, V>
fn clone(&self) -> ExpiringValueCache<K, V>
Returns a copy 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<K: Hash + Eq + Clone, V: CanExpire + Clone> CloneCached<K, V> for ExpiringValueCache<K, V>
impl<K: Hash + Eq + Clone, V: CanExpire + Clone> CloneCached<K, V> for ExpiringValueCache<K, V>
Auto Trait Implementations§
impl<K, V> Freeze for ExpiringValueCache<K, V>
impl<K, V> RefUnwindSafe for ExpiringValueCache<K, V>where
K: RefUnwindSafe,
V: RefUnwindSafe,
impl<K, V> Send for ExpiringValueCache<K, V>
impl<K, V> Sync for ExpiringValueCache<K, V>
impl<K, V> Unpin for ExpiringValueCache<K, V>
impl<K, V> UnwindSafe for ExpiringValueCache<K, V>where
K: UnwindSafe,
V: UnwindSafe,
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)