pub struct MokaCacheBackend { /* private fields */ }Expand description
Default CacheBackend backed by a moka cache.
Provides weighted-capacity eviction and concurrent-load deduplication
via moka’s built-in optionally_get_with.
Implementations§
Source§impl MokaCacheBackend
impl MokaCacheBackend
pub fn with_capacity(capacity: usize) -> Self
pub fn no_cache() -> Self
Trait Implementations§
Source§impl CacheBackend for MokaCacheBackend
impl CacheBackend for MokaCacheBackend
Source§fn get<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 InternalCacheKey,
_codec: Option<CacheCodec>,
) -> Pin<Box<dyn Future<Output = Option<CacheEntry>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 InternalCacheKey,
_codec: Option<CacheCodec>,
) -> Pin<Box<dyn Future<Output = Option<CacheEntry>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Look up an entry by its key. Read more
Source§fn insert<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 InternalCacheKey,
entry: CacheEntry,
size_bytes: usize,
_codec: Option<CacheCodec>,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn insert<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 InternalCacheKey,
entry: CacheEntry,
size_bytes: usize,
_codec: Option<CacheCodec>,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Store an entry.
size_bytes is used for eviction accounting. Read moreSource§fn get_or_insert<'a, 'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 InternalCacheKey,
loader: Pin<Box<dyn Future<Output = Result<(CacheEntry, usize)>> + Send + 'a>>,
_codec: Option<CacheCodec>,
) -> Pin<Box<dyn Future<Output = Result<(CacheEntry, bool)>> + Send + 'async_trait>>where
Self: 'async_trait,
'a: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_or_insert<'a, 'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 InternalCacheKey,
loader: Pin<Box<dyn Future<Output = Result<(CacheEntry, usize)>> + Send + 'a>>,
_codec: Option<CacheCodec>,
) -> Pin<Box<dyn Future<Output = Result<(CacheEntry, bool)>> + Send + 'async_trait>>where
Self: 'async_trait,
'a: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get an existing entry or compute it from
loader. Read moreSource§fn invalidate_prefix<'life0, 'life1, 'async_trait>(
&'life0 self,
prefix: &'life1 str,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn invalidate_prefix<'life0, 'life1, 'async_trait>(
&'life0 self,
prefix: &'life1 str,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Remove all entries whose prefix starts with the given string.
Source§fn clear<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn clear<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Remove all entries.
Source§fn num_entries<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = usize> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn num_entries<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = usize> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Number of entries currently stored (may flush pending operations).
Source§fn size_bytes<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = usize> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn size_bytes<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = usize> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Total weighted size in bytes of all stored entries (may flush pending operations).
Source§fn approx_num_entries(&self) -> usize
fn approx_num_entries(&self) -> usize
Approximate number of entries, callable from synchronous contexts.
Backends that cannot provide this cheaply should return 0.
Source§fn approx_size_bytes(&self) -> usize
fn approx_size_bytes(&self) -> usize
Approximate weighted size in bytes, callable from synchronous contexts.
Used by
DeepSizeOf to report cache memory usage.
Backends that cannot provide this cheaply should return 0. Read moreAuto Trait Implementations§
impl Freeze for MokaCacheBackend
impl !RefUnwindSafe for MokaCacheBackend
impl Send for MokaCacheBackend
impl Sync for MokaCacheBackend
impl Unpin for MokaCacheBackend
impl UnsafeUnpin for MokaCacheBackend
impl !UnwindSafe for MokaCacheBackend
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more