pub struct CacheBuilder<K, V, S>{ /* private fields */ }Expand description
In-memory cache builder.
Implementations§
Source§impl<K, V> CacheBuilder<K, V, DefaultHasher>
impl<K, V> CacheBuilder<K, V, DefaultHasher>
Source§impl<K, V, S> CacheBuilder<K, V, S>
impl<K, V, S> CacheBuilder<K, V, S>
Sourcepub fn with_name(self, name: impl Into<Cow<'static, str>>) -> Self
pub fn with_name(self, name: impl Into<Cow<'static, str>>) -> Self
Set the name of the foyer in-memory cache instance.
foyer will use the name as the prefix of the metric names.
Default: foyer.
Sourcepub fn with_shards(self, shards: usize) -> Self
pub fn with_shards(self, shards: usize) -> Self
Set in-memory cache sharding count. Entries will be distributed to different shards based on their hash. Operations on different shard can be parallelized.
Sourcepub fn with_eviction_config(
self,
eviction_config: impl Into<EvictionConfig>,
) -> Self
pub fn with_eviction_config( self, eviction_config: impl Into<EvictionConfig>, ) -> Self
Set in-memory cache eviction algorithm.
The default value is a general-used w-TinyLFU algorithm.
Sourcepub fn with_hash_builder<OS>(self, hash_builder: OS) -> CacheBuilder<K, V, OS>where
OS: HashBuilder,
pub fn with_hash_builder<OS>(self, hash_builder: OS) -> CacheBuilder<K, V, OS>where
OS: HashBuilder,
Set in-memory cache hash builder.
Sourcepub fn with_weighter(self, weighter: impl Weighter<K, V>) -> Self
pub fn with_weighter(self, weighter: impl Weighter<K, V>) -> Self
Set in-memory cache weighter.
Sourcepub fn with_filter(self, filter: impl Filter<K, V>) -> Self
pub fn with_filter(self, filter: impl Filter<K, V>) -> Self
Set the filter for the in-memory cache.
The filter is used to decide whether to admit or reject an entry based on its key and value.
If the filter returns true, the key value can be inserted into the in-memory cache; otherwise, the key value cannot be inserted.
To ensure API consistency, the in-memory cache will still return a cache entry, but it will not count towards the in-memory cache usage, and it will be immediately reclaimed when the cache entry is dropped.
Sourcepub fn with_event_listener(
self,
event_listener: Arc<dyn EventListener<Key = K, Value = V>>,
) -> Self
pub fn with_event_listener( self, event_listener: Arc<dyn EventListener<Key = K, Value = V>>, ) -> Self
Set event listener.
Sourcepub fn with_metrics_registry(
self,
registry: BoxedRegistry,
) -> CacheBuilder<K, V, S>
pub fn with_metrics_registry( self, registry: BoxedRegistry, ) -> CacheBuilder<K, V, S>
Set metrics registry.
Default: NoopMetricsRegistry.
Sourcepub fn build<P>(self) -> Cache<K, V, S, P>where
P: Properties,
pub fn build<P>(self) -> Cache<K, V, S, P>where
P: Properties,
Build in-memory cache with the given configuration.
Auto Trait Implementations§
impl<K, V, S> Freeze for CacheBuilder<K, V, S>where
S: Freeze,
impl<K, V, S> !RefUnwindSafe for CacheBuilder<K, V, S>
impl<K, V, S> Send for CacheBuilder<K, V, S>
impl<K, V, S> Sync for CacheBuilder<K, V, S>
impl<K, V, S> Unpin for CacheBuilder<K, V, S>where
S: Unpin,
impl<K, V, S> !UnwindSafe for CacheBuilder<K, V, S>
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
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>
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>
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