Struct caches::AdaptiveCacheBuilder
source · pub struct AdaptiveCacheBuilder<RH = DefaultHashBuilder, REH = DefaultHashBuilder, FH = DefaultHashBuilder, FEH = DefaultHashBuilder> { /* private fields */ }Expand description
AdaptiveCacheBuilder is used to help build a AdaptiveCache with custom configuration.
Implementations
sourceimpl AdaptiveCacheBuilder
impl AdaptiveCacheBuilder
sourcepub fn new(size: usize) -> Self
pub fn new(size: usize) -> Self
Returns a default AdaptiveCacheBuilder.
Example
use rustc_hash::FxHasher;
use std::hash::BuildHasherDefault;
use caches::{Cache, AdaptiveCacheBuilder};
let mut cache = AdaptiveCacheBuilder::new(3)
.set_recent_hasher(BuildHasherDefault::<FxHasher>::default())
.set_recent_evict_hasher(BuildHasherDefault::<FxHasher>::default())
.set_frequent_hasher(BuildHasherDefault::<FxHasher>::default())
.set_frequent_evict_hasher(BuildHasherDefault::<FxHasher>::default())
.finalize::<u64, u64>()
.unwrap();
cache.put(1, 1);sourceimpl<RH: BuildHasher, REH: BuildHasher, FH: BuildHasher, FEH: BuildHasher> AdaptiveCacheBuilder<RH, REH, FH, FEH>
impl<RH: BuildHasher, REH: BuildHasher, FH: BuildHasher, FEH: BuildHasher> AdaptiveCacheBuilder<RH, REH, FH, FEH>
sourcepub fn set_recent_hasher<NRH: BuildHasher>(
self,
hasher: NRH
) -> AdaptiveCacheBuilder<NRH, REH, FH, FEH>
pub fn set_recent_hasher<NRH: BuildHasher>(
self,
hasher: NRH
) -> AdaptiveCacheBuilder<NRH, REH, FH, FEH>
Set the recent LRU’s hash builder
sourcepub fn set_frequent_hasher<NFH: BuildHasher>(
self,
hasher: NFH
) -> AdaptiveCacheBuilder<RH, REH, NFH, FEH>
pub fn set_frequent_hasher<NFH: BuildHasher>(
self,
hasher: NFH
) -> AdaptiveCacheBuilder<RH, REH, NFH, FEH>
Set the frequent LRU’s hash builder
sourcepub fn set_recent_evict_hasher<NREH: BuildHasher>(
self,
hasher: NREH
) -> AdaptiveCacheBuilder<RH, NREH, FH, FEH>
pub fn set_recent_evict_hasher<NREH: BuildHasher>(
self,
hasher: NREH
) -> AdaptiveCacheBuilder<RH, NREH, FH, FEH>
Set the recent evict LRU’s hash builder
sourcepub fn set_frequent_evict_hasher<NFEH: BuildHasher>(
self,
hasher: NFEH
) -> AdaptiveCacheBuilder<RH, REH, FH, NFEH>
pub fn set_frequent_evict_hasher<NFEH: BuildHasher>(
self,
hasher: NFEH
) -> AdaptiveCacheBuilder<RH, REH, FH, NFEH>
Set the frequent evict LRU’s hash builder
sourcepub fn finalize<K: Hash + Eq, V>(
self
) -> Result<AdaptiveCache<K, V, RH, REH, FH, FEH>, CacheError>
pub fn finalize<K: Hash + Eq, V>(
self
) -> Result<AdaptiveCache<K, V, RH, REH, FH, FEH>, CacheError>
Finalize the builder to TwoQueueCache
Trait Implementations
Auto Trait Implementations
impl<RH, REH, FH, FEH> RefUnwindSafe for AdaptiveCacheBuilder<RH, REH, FH, FEH>where
FEH: RefUnwindSafe,
FH: RefUnwindSafe,
REH: RefUnwindSafe,
RH: RefUnwindSafe,
impl<RH, REH, FH, FEH> Send for AdaptiveCacheBuilder<RH, REH, FH, FEH>where
FEH: Send,
FH: Send,
REH: Send,
RH: Send,
impl<RH, REH, FH, FEH> Sync for AdaptiveCacheBuilder<RH, REH, FH, FEH>where
FEH: Sync,
FH: Sync,
REH: Sync,
RH: Sync,
impl<RH, REH, FH, FEH> Unpin for AdaptiveCacheBuilder<RH, REH, FH, FEH>where
FEH: Unpin,
FH: Unpin,
REH: Unpin,
RH: Unpin,
impl<RH, REH, FH, FEH> UnwindSafe for AdaptiveCacheBuilder<RH, REH, FH, FEH>where
FEH: UnwindSafe,
FH: UnwindSafe,
REH: UnwindSafe,
RH: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more