Trait ResultCache
pub trait ResultCache {
// Required methods
fn key(&self, key: &ResultCacheKey<'_>) -> u64;
fn put(&mut self, key: u64, result: &Result<(), TestCaseError>);
fn get(&self, key: u64) -> Option<&Result<(), TestCaseError>>;
}
Expand description
An object which can cache the outcomes of tests.
Required Methods§
fn 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.
fn put(&mut self, key: u64, result: &Result<(), TestCaseError>)
fn put(&mut self, key: u64, result: &Result<(), TestCaseError>)
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.