pub struct Cache<K, V, E, R>where
K: Clone + Eq + Hash + Send + Sync + 'static,
V: Clone + Send + Sync + 'static,
E: Clone + Send + Sync + 'static,
R: Send + 'static,{ /* private fields */ }Expand description
Memoizing cache: one shared load per key in flight; optional TTL and LRU capacity.
Implementations§
Source§impl<K, V, E, R> Cache<K, V, E, R>
impl<K, V, E, R> Cache<K, V, E, R>
Sourcepub fn make<F>(
capacity: usize,
ttl: Option<Duration>,
load: F,
) -> Effect<Self, Never, ()>
pub fn make<F>( capacity: usize, ttl: Option<Duration>, load: F, ) -> Effect<Self, Never, ()>
capacity == 0 disables LRU eviction (unbounded entries). ttl: None disables expiry.
Sourcepub fn get(&self, key: K) -> Effect<V, Cause<E>, R>
pub fn get(&self, key: K) -> Effect<V, Cause<E>, R>
Look up key, coalescing concurrent misses on the same key.
Trait Implementations§
Auto Trait Implementations§
impl<K, V, E, R> Freeze for Cache<K, V, E, R>
impl<K, V, E, R> !RefUnwindSafe for Cache<K, V, E, R>
impl<K, V, E, R> Send for Cache<K, V, E, R>
impl<K, V, E, R> Sync for Cache<K, V, E, R>
impl<K, V, E, R> Unpin for Cache<K, V, E, R>
impl<K, V, E, R> UnsafeUnpin for Cache<K, V, E, R>
impl<K, V, E, R> !UnwindSafe for Cache<K, V, E, R>
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