pub struct HashCache<'f, I, O, S = RandomState>where
I: Eq + Hash,{ /* private fields */ }Expand description
A cache for a function which uses a HashMap.
The cache takes ownership of all inputs, but only passes a reference to the function, allowing it to store the input in the cache without any copies or clones.
The requirements for a HashMap must be met,
specifically the keys must implement Eq and
Hash, and the following propery must hold:
k1 == k2 -> hash(k1) == hash(k2)
Implementations§
source§impl<'f, I, O> HashCache<'f, I, O, RandomState>where
I: Eq + Hash,
impl<'f, I, O> HashCache<'f, I, O, RandomState>where
I: Eq + Hash,
source§impl<'f, I, O, S> HashCache<'f, I, O, S>where
I: Eq + Hash,
S: BuildHasher,
impl<'f, I, O, S> HashCache<'f, I, O, S>where
I: Eq + Hash,
S: BuildHasher,
sourcepub fn with_hasher<F>(hash_builder: S, f: F) -> Selfwhere
F: Fn(&I) -> O + 'f + Send + Sync,
pub fn with_hasher<F>(hash_builder: S, f: F) -> Selfwhere
F: Fn(&I) -> O + 'f + Send + Sync,
Create a HashCache which will use the given hash builder to hash keys.
See the documentation on HashMap::with_hasher for more details.
sourcepub fn recursive_with_hasher<F>(hash_builder: S, f: F) -> Selfwhere
F: Fn(&mut Self, &I) -> O + 'f + Send + Sync,
pub fn recursive_with_hasher<F>(hash_builder: S, f: F) -> Selfwhere
F: Fn(&mut Self, &I) -> O + 'f + Send + Sync,
Create a recursive HashCache which will use the given hash builder to hash keys.
See the documentation on HashMap::with_hasher for more details.
sourcepub fn clear(&mut self)
pub fn clear(&mut self)
Clears the cache, removing all key-value pairs. Keeps the allocated memory for reuse.