pub trait Cache<K, V> {
    type Error;

    // Required methods
    fn insert(
        &mut self,
        key: K,
        value: V
    ) -> Result<Eviction<K, V>, Self::Error>;
    fn remove(&mut self, key: &K) -> Result<V, Self::Error>;
    fn shrink(&mut self, new_capacity: usize) -> Result<(), Self::Error>;
    fn reserve(&mut self, additional: usize) -> Result<(), Self::Error>;
    fn query(&mut self, key: &K) -> Result<&V, Self::Error>;
    fn capacity(&self) -> usize;
    fn len(&self) -> usize;
    fn clear(&mut self) -> Result<(), Self::Error>;

    // Provided methods
    fn is_maxed(&self) -> bool { ... }
    fn is_empty(&self) -> bool { ... }
}
Expand description

A size bounded map, where certain existing entries are evicted to make space for new entires.

Required Associated Types§

Required Methods§

source

fn insert(&mut self, key: K, value: V) -> Result<Eviction<K, V>, Self::Error>

source

fn remove(&mut self, key: &K) -> Result<V, Self::Error>

source

fn shrink(&mut self, new_capacity: usize) -> Result<(), Self::Error>

source

fn reserve(&mut self, additional: usize) -> Result<(), Self::Error>

source

fn query(&mut self, key: &K) -> Result<&V, Self::Error>

source

fn capacity(&self) -> usize

source

fn len(&self) -> usize

source

fn clear(&mut self) -> Result<(), Self::Error>

Provided Methods§

source

fn is_maxed(&self) -> bool

source

fn is_empty(&self) -> bool

Implementors§

source§

impl<V, K, T, M> Cache<K, T> for LRUCache<V, K, T, M>where V: Vector<LRUCacheBlockArenaEntry<K, T>>, M: Map<K, Link>, K: Copy,

§

type Error = LRUCacheError<<V as Vector<Entry<Node<Block<K, T>>>>>::Error, <M as Map<K, Link>>::Error>