Struct memo_cache::MemoCache
source · pub struct MemoCache<K, V, const SIZE: usize> { /* private fields */ }Expand description
A small, fixed-size, heap-allocated key/value cache with retention management.
Implementations§
source§impl<K, V, const SIZE: usize> MemoCache<K, V, SIZE>
impl<K, V, const SIZE: usize> MemoCache<K, V, SIZE>
sourcepub fn new() -> Self
pub fn new() -> Self
Create a new cache.
§Examples
use memo_cache::MemoCache;
let c = MemoCache::<u32, String, 4>::new();sourcepub const fn capacity(&self) -> usize
pub const fn capacity(&self) -> usize
Get the (fixed) capacity of the cache.
§Examples
use memo_cache::MemoCache;
let c = MemoCache::<u32, String, 8>::new();
assert_eq!(c.capacity(), 8);sourcepub fn insert(&mut self, k: K, v: V)
pub fn insert(&mut self, k: K, v: V)
Insert a key/value pair.
§Examples
use memo_cache::MemoCache;
let mut c = MemoCache::<u32, &str, 4>::new();
assert_eq!(c.get(&42), None);
c.insert(42, "The Answer");
assert_eq!(c.get(&42), Some(&"The Answer"));sourcepub fn get<Q>(&self, k: &Q) -> Option<&V>
pub fn get<Q>(&self, k: &Q) -> Option<&V>
Lookup a cache entry by key.
§Examples
use memo_cache::MemoCache;
let mut c = MemoCache::<u32, &str, 4>::new();
assert_eq!(c.get(&42), None);
c.insert(42, "The Answer");
assert_eq!(c.get(&42), Some(&"The Answer"));sourcepub fn get_mut<Q>(&mut self, k: &Q) -> Option<&mut V>
pub fn get_mut<Q>(&mut self, k: &Q) -> Option<&mut V>
Lookup a cache entry by key (for mutation).
§Examples
use memo_cache::MemoCache;
let mut c = MemoCache::<u32, &str, 4>::new();
c.insert(42, "The Answer");
if let Some(v) = c.get_mut(&42) {
*v = "Another Answer";
}
assert_eq!(c.get(&42), Some(&"Another Answer"));Trait Implementations§
Auto Trait Implementations§
impl<K, V, const SIZE: usize> Freeze for MemoCache<K, V, SIZE>
impl<K, V, const SIZE: usize> RefUnwindSafe for MemoCache<K, V, SIZE>where
K: RefUnwindSafe,
V: RefUnwindSafe,
impl<K, V, const SIZE: usize> Send for MemoCache<K, V, SIZE>
impl<K, V, const SIZE: usize> Sync for MemoCache<K, V, SIZE>
impl<K, V, const SIZE: usize> Unpin for MemoCache<K, V, SIZE>
impl<K, V, const SIZE: usize> UnwindSafe for MemoCache<K, V, SIZE>where
K: UnwindSafe,
V: UnwindSafe,
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