pub trait RewriteScheduler<L, N>{
// Provided methods
fn can_stop(&mut self, iteration: usize) -> bool { ... }
fn search_rewrite<'a>(
&mut self,
iteration: usize,
egraph: &EGraph<L, N>,
rewrite: &'a Rewrite<L, N>,
) -> Vec<SearchMatches<'a, L>> { ... }
fn apply_rewrite(
&mut self,
iteration: usize,
egraph: &mut EGraph<L, N>,
rewrite: &Rewrite<L, N>,
matches: Vec<SearchMatches<'_, L>>,
) -> usize { ... }
}
Expand description
Provided Methods§
Sourcefn can_stop(&mut self, iteration: usize) -> bool
fn can_stop(&mut self, iteration: usize) -> bool
Whether or not the Runner
is allowed
to say it has saturated.
This is only called when the runner is otherwise saturated.
Default implementation just returns true
.
Sourcefn search_rewrite<'a>(
&mut self,
iteration: usize,
egraph: &EGraph<L, N>,
rewrite: &'a Rewrite<L, N>,
) -> Vec<SearchMatches<'a, L>>
fn search_rewrite<'a>( &mut self, iteration: usize, egraph: &EGraph<L, N>, rewrite: &'a Rewrite<L, N>, ) -> Vec<SearchMatches<'a, L>>
A hook allowing you to customize rewrite searching behavior. Useful to implement rule management.
Default implementation just calls
Rewrite::search
.
Sourcefn apply_rewrite(
&mut self,
iteration: usize,
egraph: &mut EGraph<L, N>,
rewrite: &Rewrite<L, N>,
matches: Vec<SearchMatches<'_, L>>,
) -> usize
fn apply_rewrite( &mut self, iteration: usize, egraph: &mut EGraph<L, N>, rewrite: &Rewrite<L, N>, matches: Vec<SearchMatches<'_, L>>, ) -> usize
A hook allowing you to customize rewrite application behavior. Useful to implement rule management.
Default implementation just calls
Rewrite::apply
and returns number of new applications.