pub trait QueryCache: Sized {
type Key: Hash + Eq + Copy + Debug;
type Value: Copy;
// Required methods
fn lookup(&self, key: &Self::Key) -> Option<(Self::Value, DepNodeIndex)>;
fn complete(&self, key: Self::Key, value: Self::Value, index: DepNodeIndex);
fn iter(&self, f: &mut dyn FnMut(&Self::Key, &Self::Value, DepNodeIndex));
}
Required Associated Types§
Required Methods§
Sourcefn lookup(&self, key: &Self::Key) -> Option<(Self::Value, DepNodeIndex)>
fn lookup(&self, key: &Self::Key) -> Option<(Self::Value, DepNodeIndex)>
Checks if the query is already computed and in the cache.
fn complete(&self, key: Self::Key, value: Self::Value, index: DepNodeIndex)
fn iter(&self, f: &mut dyn FnMut(&Self::Key, &Self::Value, DepNodeIndex))
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.