pub enum Rvalue {
Show 22 variants
Use(Operand),
BinaryOp {
op: BinOp,
left: Operand,
right: Operand,
},
UnaryOp {
op: UnOp,
operand: Operand,
},
SimdBinaryOp {
op: SimdOp,
element_ty: Ty,
width: SimdWidth,
left: Operand,
right: Operand,
},
SimdLoad {
element_ty: Ty,
width: SimdWidth,
source: Place,
},
SimdStore {
element_ty: Ty,
width: SimdWidth,
value: Operand,
dest: Place,
},
SimdSplat {
element_ty: Ty,
width: SimdWidth,
value: Operand,
},
Ref {
mutable: bool,
place: Place,
},
Aggregate {
kind: AggregateKind,
operands: Vec<Operand>,
},
Cast {
operand: Operand,
target_ty: Ty,
kind: CastKind,
},
Discriminant {
place: Place,
},
Len {
place: Place,
},
ChannelCreate {
element_ty: Ty,
capacity: u64,
},
ChannelTryRecv {
channel: Operand,
},
ChannelTrySend {
channel: Operand,
value: Operand,
},
ChannelSender {
channel: Operand,
},
ChannelReceiver {
channel: Operand,
},
ChannelClose {
channel: Operand,
},
IsCancelled,
CurrentTask,
Try(Operand),
EnumVariant {
variant: Symbol,
fields: Vec<Operand>,
},
}Expand description
Rvalue - an expression that produces a value
Variants§
Use(Operand)
Use an operand (copy or move)
BinaryOp
Binary operation
UnaryOp
Unary operation
SimdBinaryOp
SIMD binary operation on vectors
This represents a vectorized operation that processes multiple elements
in parallel. The operands are arrays/slices containing width elements.
Fields
SimdLoad
SIMD load - gather elements from memory into a vector register
Fields
SimdStore
SIMD store - scatter elements from a vector register to memory
Fields
SimdSplat
SIMD splat - broadcast a scalar value to all lanes
Fields
Ref
Create a reference (&place or &mut place)
Aggregate
Aggregate construction (struct, tuple, array)
Cast
Type cast
Discriminant
Discriminant (get enum variant)
Len
Length of array/slice
ChannelCreate
Create a bounded channel
Fields
ChannelTryRecv
Receive from a channel (non-blocking check)
Returns Option
ChannelTrySend
Send to a channel (non-blocking check) Returns bool - true if sent successfully, false if channel full
ChannelSender
Get the sender handle from a channel
ChannelReceiver
Get the receiver handle from a channel
ChannelClose
Close a channel
IsCancelled
Check if cancelled
CurrentTask
Get the current task handle
Try(Operand)
Try operator: unwrap Result/Option, panicking on error
EnumVariant
Enum unit variant construction (like TokenKind::Arrow)