pub enum StatementKind {
Assign(Place, Rvalue),
Drop(Place),
TaskBoundary(Vec<Operand>, TaskBoundaryKind),
ClosureCapture {
closure_slot: SlotId,
operands: Vec<Operand>,
},
ArrayStore {
container_slot: SlotId,
operands: Vec<Operand>,
},
ObjectStore {
container_slot: SlotId,
operands: Vec<Operand>,
},
EnumStore {
container_slot: SlotId,
operands: Vec<Operand>,
},
Nop,
}Variants§
Assign(Place, Rvalue)
Assign a value to a place: place = rvalue
Drop(Place)
Drop a place (scope exit, explicit drop). Generates invalidation facts for any loans on this place.
TaskBoundary(Vec<Operand>, TaskBoundaryKind)
Cross a task boundary (spawn/join branch capture). Operands are the values flowing into the spawned task. The kind distinguishes detached vs structured tasks.
ClosureCapture
Capture values into a closure environment. Operands are the outer values flowing into the closure.
ArrayStore
Store values into an array literal. Operands are the array elements being stored.
ObjectStore
Store values into an object or struct literal. Operands are the fields/spreads being stored.
EnumStore
Store values into an enum payload. Operands are the tuple/struct payload values being stored.
Nop
No-op (placeholder, padding).
Trait Implementations§
Source§impl Clone for StatementKind
impl Clone for StatementKind
Source§fn clone(&self) -> StatementKind
fn clone(&self) -> StatementKind
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for StatementKind
impl Debug for StatementKind
Source§impl PartialEq for StatementKind
impl PartialEq for StatementKind
impl StructuralPartialEq for StatementKind
Auto Trait Implementations§
impl Freeze for StatementKind
impl RefUnwindSafe for StatementKind
impl Send for StatementKind
impl Sync for StatementKind
impl Unpin for StatementKind
impl UnsafeUnpin for StatementKind
impl UnwindSafe for StatementKind
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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