Struct caches::TwoQueueCacheBuilder
source · pub struct TwoQueueCacheBuilder<RH = DefaultHashBuilder, FH = DefaultHashBuilder, GH = DefaultHashBuilder> { /* private fields */ }Expand description
TwoQueueCacheBuilder is used to help build a TwoQueueCache with custom configuration.
Implementations
sourceimpl TwoQueueCacheBuilder
impl TwoQueueCacheBuilder
sourcepub fn new(size: usize) -> Self
pub fn new(size: usize) -> Self
Returns a default TwoQueueCacheBuilder.
Example
use caches::{TwoQueueCacheBuilder, TwoQueueCache, Cache};
use rustc_hash::FxHasher;
use std::hash::BuildHasherDefault;
let mut cache = TwoQueueCacheBuilder::new(3)
.set_recent_ratio(0.3)
.set_ghost_ratio(0.4)
.set_recent_hasher(BuildHasherDefault::<FxHasher>::default())
.set_frequent_hasher(BuildHasherDefault::<FxHasher>::default())
.set_ghost_hasher(BuildHasherDefault::<FxHasher>::default())
.finalize::<u64, u64>()
.unwrap();
cache.put(1, 1);sourceimpl<RH: BuildHasher, FH: BuildHasher, GH: BuildHasher> TwoQueueCacheBuilder<RH, FH, GH>
impl<RH: BuildHasher, FH: BuildHasher, GH: BuildHasher> TwoQueueCacheBuilder<RH, FH, GH>
sourcepub fn set_ghost_ratio(self, ratio: f64) -> Self
pub fn set_ghost_ratio(self, ratio: f64) -> Self
Set the ghost LRU size ratio
sourcepub fn set_recent_ratio(self, ratio: f64) -> Self
pub fn set_recent_ratio(self, ratio: f64) -> Self
Set the recent LRU size ratio
sourcepub fn set_recent_hasher<NRH: BuildHasher>(
self,
hasher: NRH
) -> TwoQueueCacheBuilder<NRH, FH, GH>
pub fn set_recent_hasher<NRH: BuildHasher>(
self,
hasher: NRH
) -> TwoQueueCacheBuilder<NRH, FH, GH>
Set the recent LRU’s hash builder
sourcepub fn set_frequent_hasher<NFH: BuildHasher>(
self,
hasher: NFH
) -> TwoQueueCacheBuilder<RH, NFH, GH>
pub fn set_frequent_hasher<NFH: BuildHasher>(
self,
hasher: NFH
) -> TwoQueueCacheBuilder<RH, NFH, GH>
Set the frequent LRU’s hash builder
sourcepub fn set_ghost_hasher<NGH: BuildHasher>(
self,
hasher: NGH
) -> TwoQueueCacheBuilder<RH, FH, NGH>
pub fn set_ghost_hasher<NGH: BuildHasher>(
self,
hasher: NGH
) -> TwoQueueCacheBuilder<RH, FH, NGH>
Set the ghost LRU’s hash builder
sourcepub fn finalize<K: Hash + Eq, V>(
self
) -> Result<TwoQueueCache<K, V, RH, FH, GH>, CacheError>
pub fn finalize<K: Hash + Eq, V>(
self
) -> Result<TwoQueueCache<K, V, RH, FH, GH>, CacheError>
Finalize the builder to TwoQueueCache
Trait Implementations
Auto Trait Implementations
impl<RH, FH, GH> RefUnwindSafe for TwoQueueCacheBuilder<RH, FH, GH>where
FH: RefUnwindSafe,
GH: RefUnwindSafe,
RH: RefUnwindSafe,
impl<RH, FH, GH> Send for TwoQueueCacheBuilder<RH, FH, GH>where
FH: Send,
GH: Send,
RH: Send,
impl<RH, FH, GH> Sync for TwoQueueCacheBuilder<RH, FH, GH>where
FH: Sync,
GH: Sync,
RH: Sync,
impl<RH, FH, GH> Unpin for TwoQueueCacheBuilder<RH, FH, GH>where
FH: Unpin,
GH: Unpin,
RH: Unpin,
impl<RH, FH, GH> UnwindSafe for TwoQueueCacheBuilder<RH, FH, GH>where
FH: UnwindSafe,
GH: 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