Struct generational_cache::cache::lru_cache::LRUCache
source · pub struct LRUCache<V, K, T, M> { /* private fields */ }Expand description
A generational-arena powered LRUCache implementation.
This Cache implementation always evicts the least-recently-used (LRU) key/value pair.
Implementations§
source§impl<V, K, T, M> LRUCache<V, K, T, M>
impl<V, K, T, M> LRUCache<V, K, T, M>
sourcepub fn least_recent(&self) -> Option<(&K, &T)>
pub fn least_recent(&self) -> Option<(&K, &T)>
Returns the least recently used key/value pair.
sourcepub fn most_recent(&self) -> Option<(&K, &T)>
pub fn most_recent(&self) -> Option<(&K, &T)>
Returns the most recently used key/value pair.
source§impl<V, K, T, M> LRUCache<V, K, T, M>
impl<V, K, T, M> LRUCache<V, K, T, M>
sourcepub fn with_backing_vector_and_map(vector: V, map: M) -> Self
pub fn with_backing_vector_and_map(vector: V, map: M) -> Self
Trait Implementations§
source§impl<V, K, T, M> Cache<K, T> for LRUCache<V, K, T, M>
impl<V, K, T, M> Cache<K, T> for LRUCache<V, K, T, M>
§type Error = LRUCacheError<<V as Vector<Entry<Node<Block<K, T>>>>>::Error, <M as Map<K, Link>>::Error>
type Error = LRUCacheError<<V as Vector<Entry<Node<Block<K, T>>>>>::Error, <M as Map<K, Link>>::Error>
Associated error type.
source§fn insert(&mut self, key: K, value: T) -> Result<Eviction<K, T>, Self::Error>
fn insert(&mut self, key: K, value: T) -> Result<Eviction<K, T>, Self::Error>
Inserts the given key/value pair into this cache.
source§fn remove(&mut self, key: &K) -> Result<Lookup<T>, Self::Error>
fn remove(&mut self, key: &K) -> Result<Lookup<T>, Self::Error>
Removes the key/value pair associated with the given key from this cache.
source§fn shrink(&mut self, new_capacity: usize) -> Result<(), Self::Error>
fn shrink(&mut self, new_capacity: usize) -> Result<(), Self::Error>
Removes
(self.len() - new_capacity) cache blocks to fit the new capacity. If the
difference is non-positive no cache blocks are removed.source§fn reserve(&mut self, additional: usize) -> Result<(), Self::Error>
fn reserve(&mut self, additional: usize) -> Result<(), Self::Error>
Reserves additional memory to accomodate the given number of additional cache blocks.
source§fn query(&mut self, key: &K) -> Result<Lookup<&T>, Self::Error>
fn query(&mut self, key: &K) -> Result<Lookup<&T>, Self::Error>
Queries this cache to find the value associated with given key.
Auto Trait Implementations§
impl<V, K, T, M> RefUnwindSafe for LRUCache<V, K, T, M>
impl<V, K, T, M> Send for LRUCache<V, K, T, M>
impl<V, K, T, M> Sync for LRUCache<V, K, T, M>
impl<V, K, T, M> Unpin for LRUCache<V, K, T, M>
impl<V, K, T, M> UnwindSafe for LRUCache<V, K, T, M>
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