pub trait DepNodeParams<Tcx: DepContext>: Debug + Sized {
// Required methods
fn fingerprint_style() -> FingerprintStyle;
fn recover(tcx: Tcx, dep_node: &DepNode) -> Option<Self>;
// Provided methods
fn to_fingerprint(&self, _: Tcx) -> Fingerprint { ... }
fn to_debug_str(&self, _: Tcx) -> String { ... }
}
Required Methods§
fn fingerprint_style() -> FingerprintStyle
sourcefn recover(tcx: Tcx, dep_node: &DepNode) -> Option<Self>
fn recover(tcx: Tcx, dep_node: &DepNode) -> Option<Self>
This method tries to recover the query key from the given DepNode
,
something which is needed when forcing DepNode
s during red-green
evaluation. The query system will only call this method if
fingerprint_style()
is not FingerprintStyle::Opaque
.
It is always valid to return None
here, in which case incremental
compilation will treat the query as having changed instead of forcing it.
Provided Methods§
sourcefn to_fingerprint(&self, _: Tcx) -> Fingerprint
fn to_fingerprint(&self, _: Tcx) -> Fingerprint
This method turns the parameters of a DepNodeConstructor into an opaque Fingerprint to be used in DepNode. Not all DepNodeParams support being turned into a Fingerprint (they don’t need to if the corresponding DepNode is anonymous).
fn to_debug_str(&self, _: Tcx) -> String
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.