pub enum ControlInstKind {
    Unreachable,
    Return,
    ExitInvocation(ExitInvocationKind),
    Branch,
    SelectBranch(SelectionKind),
}Variants§
Unreachable
Reaching this point in the control-flow is undefined behavior, e.g.:
- a SelectBranchcase that’s known to be impossible
- after a function call, where the function never returns
Optimizations can take advantage of this information, to assume that any necessary preconditions for reaching this point, are never met.
Return
Leave the current function, optionally returning a value.
ExitInvocation(ExitInvocationKind)
Leave the current invocation, similar to returning from every function call in the stack (up to and including the entry-point), but potentially indicating a fatal error as well.
Branch
Unconditional branch to a single target.
SelectBranch(SelectionKind)
Branch to one of several targets, chosen by a single value input.
Trait Implementations§
Source§impl Clone for ControlInstKind
 
impl Clone for ControlInstKind
Source§fn clone(&self) -> ControlInstKind
 
fn clone(&self) -> ControlInstKind
Returns a duplicate of the value. Read more
1.0.0 · Source§const fn clone_from(&mut self, source: &Self)
 
const fn clone_from(&mut self, source: &Self)
Performs copy-assignment from 
source. Read moreAuto Trait Implementations§
impl Freeze for ControlInstKind
impl RefUnwindSafe for ControlInstKind
impl Send for ControlInstKind
impl Sync for ControlInstKind
impl Unpin for ControlInstKind
impl UnwindSafe for ControlInstKind
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
Source§impl<T> CloneToUninit for Twhere
    T: Clone,
 
impl<T> CloneToUninit for Twhere
    T: Clone,
Source§impl<T> IntoEither for T
 
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
 
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts 
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
 
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts 
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more