pub trait ResultCache {
// Required methods
fn key(&self, key: &ResultCacheKey<'_>) -> u64;
fn put(&mut self, key: u64, result: &TestCaseResult);
fn get(&self, key: u64) -> Option<&TestCaseResult>;
}Expand description
An object which can cache the outcomes of tests.
Required Methods§
Sourcefn key(&self, key: &ResultCacheKey<'_>) -> u64
fn key(&self, key: &ResultCacheKey<'_>) -> u64
Convert the given cache key into a u64 representing that value. The
u64 is used as the key below.
This is a separate step so that ownership of the key value can be handed off to user code without needing to be able to clone it.
Sourcefn put(&mut self, key: u64, result: &TestCaseResult)
fn put(&mut self, key: u64, result: &TestCaseResult)
Save result as the outcome associated with the test input in key.
result is passed as a reference so that the decision to clone depends
on whether the cache actually plans on storing it.
Sourcefn get(&self, key: u64) -> Option<&TestCaseResult>
fn get(&self, key: u64) -> Option<&TestCaseResult>
If put() has been called with a semantically equivalent key, return
the saved result. Otherwise, return None.