#[non_exhaustive]pub struct Iteration<IterData> {
pub egraph_nodes: usize,
pub egraph_classes: usize,
pub applied: IndexMap<Symbol, usize, FxBuildHasher>,
pub hook_time: f64,
pub search_time: f64,
pub apply_time: f64,
pub rebuild_time: f64,
pub total_time: f64,
pub data: IterData,
pub n_rebuilds: usize,
pub stop_reason: Option<StopReason>,
}
Expand description
Data generated by running a Runner
one iteration.
If the serde-1
feature is enabled, this implements
serde::Serialize
, which is useful if you want to output
this as a JSON or some other format.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.egraph_nodes: usize
The number of enodes in the egraph at the start of this iteration.
egraph_classes: usize
The number of eclasses in the egraph at the start of this iteration.
applied: IndexMap<Symbol, usize, FxBuildHasher>
A map from rule name to number of times it was newly applied in this iteration.
hook_time: f64
Seconds spent running hooks.
search_time: f64
Seconds spent searching in this iteration.
apply_time: f64
Seconds spent applying rules in this iteration.
rebuild_time: f64
Seconds spent rebuild
ing
the egraph in this iteration.
total_time: f64
Total time spent in this iteration, including data generation time.
data: IterData
The user provided annotation for this iteration
n_rebuilds: usize
The number of rebuild iterations done after this iteration completed.
stop_reason: Option<StopReason>
If the runner stopped on this iterations, this is the reason