Struct cranelift_isle::sema::Rule
source · pub struct Rule {
pub id: RuleId,
pub root_term: TermId,
pub args: Vec<Pattern>,
pub iflets: Vec<IfLet>,
pub rhs: Expr,
pub vars: Vec<BoundVar>,
pub prio: i64,
pub pos: Pos,
}
Expand description
A term rewrite rule.
Fields§
§id: RuleId
This rule’s id.
root_term: TermId
The left-hand side pattern that this rule matches.
args: Vec<Pattern>
Patterns to test against the root term’s arguments.
iflets: Vec<IfLet>
Any subpattern “if-let” clauses.
rhs: Expr
The right-hand side expression that this rule evaluates upon successful match.
vars: Vec<BoundVar>
Variable names used in this rule, indexed by VarId.
prio: i64
The priority of this rule, defaulted to 0 if it was missing in the source.
pos: Pos
The source position where this rule is defined.
Implementations§
source§impl Rule
impl Rule
sourcepub fn visit<V: RuleVisitor>(
&self,
visitor: &mut V,
termenv: &TermEnv
) -> V::Expr
pub fn visit<V: RuleVisitor>( &self, visitor: &mut V, termenv: &TermEnv ) -> V::Expr
Recursively visit every pattern and expression in this rule. Returns the RuleVisitor::Expr that was returned from RuleVisitor::add_expr when that function was called on the rule’s right-hand side.
Trait Implementations§
Auto Trait Implementations§
impl RefUnwindSafe for Rule
impl Send for Rule
impl Sync for Rule
impl Unpin for Rule
impl UnwindSafe for Rule
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more