Struct cached::stores::ExpiringValueCache

source ·
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§

source§

impl<K: Clone + Hash + Eq, V: CanExpire> ExpiringValueCache<K, V>

source

pub fn with_size(size: usize) -> ExpiringValueCache<K, V>

Creates a new ExpiringValueCache with a given size limit and pre-allocated backing data.

source

pub fn flush(&mut self)

Remove any expired values from the cache

Trait Implementations§

source§

impl<K: Hash + Eq + Clone, V: CanExpire> Cached<K, V> for ExpiringValueCache<K, V>

source§

fn cache_get<Q>(&mut self, k: &Q) -> Option<&V>
where K: Borrow<Q>, Q: Hash + Eq + ?Sized,

Attempt to retrieve a cached value Read more
source§

fn cache_get_mut<Q>(&mut self, k: &Q) -> Option<&mut V>
where K: Borrow<Q>, Q: Hash + Eq + ?Sized,

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

Get or insert a key, value pair
source§

fn cache_set(&mut self, k: K, v: V) -> Option<V>

Insert a key, value pair and return the previous value
source§

fn cache_remove<Q>(&mut self, k: &Q) -> Option<V>
where K: Borrow<Q>, Q: Hash + Eq + ?Sized,

Remove a cached value Read more
source§

fn cache_clear(&mut self)

Remove all cached values. Keeps the allocated memory for reuse.
source§

fn cache_reset(&mut self)

Remove all cached values. Free memory and return to initial state
source§

fn cache_size(&self) -> usize

Return the current cache size (number of elements)
source§

fn cache_hits(&self) -> Option<u64>

Return the number of times a cached value was successfully retrieved
source§

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)

Reset misses/hits counters
source§

fn cache_capacity(&self) -> Option<usize>

Return the cache capacity
source§

fn cache_lifespan(&self) -> Option<u64>

Return the lifespan of cached values (time to eviction)
source§

fn cache_set_lifespan(&mut self, _seconds: u64) -> Option<u64>

Set the lifespan of cached values, returns the old value
source§

fn cache_unset_lifespan(&mut self) -> Option<u64>

Remove the lifespan for cached values, returns the old value. Read more
source§

impl<K: Clone + Hash + Eq, V: Clone + CanExpire> Clone for ExpiringValueCache<K, V>

source§

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)

Performs copy-assignment from source. Read more
source§

impl<K: Hash + Eq + Clone, V: CanExpire + Clone> CloneCached<K, V> for ExpiringValueCache<K, V>

source§

fn cache_get_expired<Q>(&mut self, k: &Q) -> (Option<V>, bool)
where K: Borrow<Q>, Q: Hash + Eq + ?Sized,

Attempt to retrieve a cached value and indicate whether that value was evicted.
source§

impl<K: Debug + Hash + Eq, V: Debug + CanExpire> Debug for ExpiringValueCache<K, V>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<K, V> Freeze for ExpiringValueCache<K, V>

§

impl<K, V> RefUnwindSafe for ExpiringValueCache<K, V>

§

impl<K, V> Send for ExpiringValueCache<K, V>
where K: Send, V: Send,

§

impl<K, V> Sync for ExpiringValueCache<K, V>
where K: Sync, V: Sync,

§

impl<K, V> Unpin for ExpiringValueCache<K, V>
where K: Unpin, V: Unpin,

§

impl<K, V> UnwindSafe for ExpiringValueCache<K, V>
where K: UnwindSafe, V: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more