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
.