pub enum ControlFlow {
Match {
source: BindingId,
arms: Vec<MatchArm>,
},
Equal {
a: BindingId,
b: BindingId,
body: Block,
},
Loop {
result: BindingId,
body: Block,
},
Return {
pos: Pos,
result: BindingId,
},
}
Expand description
What kind of control-flow structure do we need to emit here?
Variants§
Match
Test a binding site against one or more mutually-exclusive patterns and branch to the appropriate block if a pattern matches.
Fields
Equal
Test whether two binding sites have values which are equal when evaluated on the current input.
Fields
Loop
Evaluate a block once with each value of the given binding site.
Fields
§
result: BindingId
A binding site of type Binding::Iterator. Its source binding site must be a multi-extractor or multi-constructor call.
Return
Return a result from the right-hand side of a rule. If we’re building a multi-constructor then this doesn’t actually return, but adds to a list of results instead. Otherwise this return stops evaluation before any later steps.
Auto Trait Implementations§
impl Freeze for ControlFlow
impl RefUnwindSafe for ControlFlow
impl Send for ControlFlow
impl Sync for ControlFlow
impl Unpin for ControlFlow
impl UnwindSafe for ControlFlow
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