enum Merge<L> {
Selection(L),
Loop {
loop_merge: L,
loop_continue: L,
},
}
Variants§
Selection(L)
Loop
Fields
§
loop_merge: L
The label just after the whole loop, i.e. the break
target.
§
loop_continue: L
A label that the back-edge block post-dominates, i.e. some point in
the loop body where looping around is inevitable (modulo break
ing
out of the loop through a do
-while
-style conditional back-edge).
SPIR-V calls this “the continue
target”, but unlike other aspects
of SPIR-V “structured control-flow”, there can be multiple valid
choices (any that fit the post-dominator/“inevitability” definition).
Trait Implementations§
Auto Trait Implementations§
impl<L> RefUnwindSafe for Merge<L>where
L: RefUnwindSafe,
impl<L> Send for Merge<L>where
L: Send,
impl<L> Sync for Merge<L>where
L: Sync,
impl<L> Unpin for Merge<L>where
L: Unpin,
impl<L> UnwindSafe for Merge<L>where
L: UnwindSafe,
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