Struct pikadick::util::TimedCache
source · pub struct TimedCache<K, V>(Arc<TimedCacheInner<K, V>>);
Expand description
A cache with entries that “expire” after a per-cache time limit
Tuple Fields§
§0: Arc<TimedCacheInner<K, V>>
Implementations§
source§impl<K, V> TimedCache<K, V>where
K: Eq + Hash + 'static,
V: 'static,
impl<K, V> TimedCache<K, V>where K: Eq + Hash + 'static, V: 'static,
sourcepub fn get_if_fresh<Q>(&self, key: &Q) -> Option<Arc<TimedCacheEntry<V>>>where
K: Borrow<Q>,
Q: Hash + Eq + ?Sized,
pub fn get_if_fresh<Q>(&self, key: &Q) -> Option<Arc<TimedCacheEntry<V>>>where K: Borrow<Q>, Q: Hash + Eq + ?Sized,
Get a value if fresh, or None if it doesn’t exist or is expired
sourcepub fn get_random_if_fresh(&self) -> Option<Arc<TimedCacheEntry<V>>>
pub fn get_random_if_fresh(&self) -> Option<Arc<TimedCacheEntry<V>>>
Get a random fresh value
sourcepub fn insert_and_get(&self, key: K, value: V) -> Arc<TimedCacheEntry<V>>
pub fn insert_and_get(&self, key: K, value: V) -> Arc<TimedCacheEntry<V>>
Insert a K/V and return the data for the newly inserted value
sourcepub fn force_trim(&self)
pub fn force_trim(&self)
Trims expired entries, ignoring last trim time.
Trait Implementations§
Auto Trait Implementations§
impl<K, V> !RefUnwindSafe for TimedCache<K, V>
impl<K, V> Send for TimedCache<K, V>where K: Send + Sync, V: Send + Sync,
impl<K, V> Sync for TimedCache<K, V>where K: Send + Sync, V: Send + Sync,
impl<K, V> Unpin for TimedCache<K, V>
impl<K, V> !UnwindSafe for TimedCache<K, V>
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
§impl<T> CloneDebuggableStorage for Twhere
T: DebuggableStorage + Clone,
impl<T> CloneDebuggableStorage for Twhere T: DebuggableStorage + Clone,
fn clone_storage(&self) -> Box<dyn CloneDebuggableStorage>
§impl<T> CloneableStorage for Twhere
T: Any + Send + Sync + Clone,
impl<T> CloneableStorage for Twhere T: Any + Send + Sync + Clone,
fn clone_storage(&self) -> Box<dyn CloneableStorage>
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request