pub enum StmtKind {
Show 80 variants
DeclareLocals {
vars: Vec<VariableDef>,
},
Assign {
var: VariableRef,
value: Box<Expr>,
},
AddAssign {
var: VariableRef,
value: Box<Expr>,
},
ShowVar {
var: VariableRef,
},
HideVar {
var: VariableRef,
},
Warp {
stmts: Vec<Stmt>,
},
InfLoop {
stmts: Vec<Stmt>,
},
ForeachLoop {
var: VariableRef,
items: Box<Expr>,
stmts: Vec<Stmt>,
},
ForLoop {
var: VariableRef,
start: Box<Expr>,
stop: Box<Expr>,
stmts: Vec<Stmt>,
},
UntilLoop {
condition: Box<Expr>,
stmts: Vec<Stmt>,
},
Repeat {
times: Box<Expr>,
stmts: Vec<Stmt>,
},
If {
condition: Box<Expr>,
then: Vec<Stmt>,
},
IfElse {
condition: Box<Expr>,
then: Vec<Stmt>,
otherwise: Vec<Stmt>,
},
TryCatch {
code: Vec<Stmt>,
var: VariableRef,
handler: Vec<Stmt>,
},
Throw {
error: Box<Expr>,
},
ListInsert {
list: Box<Expr>,
value: Box<Expr>,
index: Box<Expr>,
},
ListInsertLast {
list: Box<Expr>,
value: Box<Expr>,
},
ListInsertRandom {
list: Box<Expr>,
value: Box<Expr>,
},
ListRemove {
list: Box<Expr>,
index: Box<Expr>,
},
ListRemoveLast {
list: Box<Expr>,
},
ListRemoveAll {
list: Box<Expr>,
},
ListAssign {
list: Box<Expr>,
value: Box<Expr>,
index: Box<Expr>,
},
ListAssignLast {
list: Box<Expr>,
value: Box<Expr>,
},
ListAssignRandom {
list: Box<Expr>,
value: Box<Expr>,
},
Return {
value: Box<Expr>,
},
Sleep {
seconds: Box<Expr>,
},
WaitUntil {
condition: Box<Expr>,
},
SetCostume {
costume: Box<Expr>,
},
NextCostume,
PlaySound {
sound: Box<Expr>,
blocking: bool,
},
PlayNotes {
notes: Box<Expr>,
beats: Box<Expr>,
blocking: bool,
},
Rest {
beats: Box<Expr>,
},
StopSounds,
Forward {
distance: Box<Expr>,
},
SetX {
value: Box<Expr>,
},
ChangeX {
delta: Box<Expr>,
},
SetY {
value: Box<Expr>,
},
ChangeY {
delta: Box<Expr>,
},
GotoXY {
x: Box<Expr>,
y: Box<Expr>,
},
GotoMouse,
GotoRandom,
Goto {
target: Box<Expr>,
},
PointTowards {
target: Box<Expr>,
},
PointTowardsXY {
x: Box<Expr>,
y: Box<Expr>,
},
TurnRight {
angle: Box<Expr>,
},
TurnLeft {
angle: Box<Expr>,
},
SetHeading {
value: Box<Expr>,
},
SetHeadingRandom,
BounceOffEdge,
SetPenDown {
value: bool,
},
PenClear,
Stamp,
Write {
content: Box<Expr>,
font_size: Box<Expr>,
},
SetPenColor {
color: (u8, u8, u8, u8),
},
Say {
content: Box<Expr>,
duration: Option<Box<Expr>>,
},
Think {
content: Box<Expr>,
duration: Option<Box<Expr>>,
},
SetVisible {
value: bool,
},
ChangeSize {
delta: Box<Expr>,
},
SetSize {
value: Box<Expr>,
},
ChangePenSize {
delta: Box<Expr>,
},
SetPenSize {
value: Box<Expr>,
},
CallRpc {
host: Option<CompactString>,
service: CompactString,
rpc: CompactString,
args: Vec<(CompactString, Expr)>,
},
CallFn {
function: FnRef,
args: Vec<Expr>,
upvars: Vec<VariableRef>,
},
CallClosure {
new_entity: Option<Box<Expr>>,
closure: Box<Expr>,
args: Vec<Expr>,
},
ForkClosure {
closure: Box<Expr>,
args: Vec<Expr>,
},
Clone {
target: Box<Expr>,
},
DeleteClone,
SendLocalMessage {
target: Option<Box<Expr>>,
msg_type: Box<Expr>,
wait: bool,
},
SendNetworkMessage {
target: Box<Expr>,
msg_type: CompactString,
values: Vec<(CompactString, Expr)>,
},
SendNetworkReply {
value: Box<Expr>,
},
Ask {
prompt: Box<Expr>,
},
ResetTimer,
Pause,
SetEffect {
kind: EffectKind,
value: Box<Expr>,
},
ChangeEffect {
kind: EffectKind,
delta: Box<Expr>,
},
ClearEffects,
SetPenAttr {
attr: PenAttribute,
value: Box<Expr>,
},
ChangePenAttr {
attr: PenAttribute,
delta: Box<Expr>,
},
Stop {
mode: StopMode,
},
UnknownBlock {
name: CompactString,
args: Vec<Expr>,
},
}Variants§
DeclareLocals
Fields
§
vars: Vec<VariableDef>Assign
AddAssign
ShowVar
Fields
§
var: VariableRefHideVar
Fields
§
var: VariableRefWarp
InfLoop
ForeachLoop
ForLoop
UntilLoop
Repeat
If
IfElse
TryCatch
Throw
ListInsert
ListInsertLast
ListInsertRandom
ListRemove
ListRemoveLast
ListRemoveAll
ListAssign
ListAssignLast
ListAssignRandom
Return
Sleep
WaitUntil
SetCostume
NextCostume
PlaySound
PlayNotes
Rest
StopSounds
Forward
SetX
ChangeX
SetY
ChangeY
GotoXY
GotoMouse
GotoRandom
Goto
Similar to SetPos except that the target can be either a list of [x, y] coordinates or a entity.
PointTowards
PointTowardsXY
TurnRight
TurnLeft
SetHeading
SetHeadingRandom
BounceOffEdge
SetPenDown
PenClear
Stamp
Write
SetPenColor
Say
Think
SetVisible
ChangeSize
SetSize
ChangePenSize
SetPenSize
CallRpc
Fields
§
host: Option<CompactString>§
service: CompactString§
rpc: CompactString§
args: Vec<(CompactString, Expr)>CallFn
CallClosure
ForkClosure
Clone
DeleteClone
SendLocalMessage
Sends a message to local entities (not over the network).
If target is None, this should broadcast to all entities.
Otherwise target is either a single target or a list of targets to send to.
The wait flag determines if the broadcast should be blocking (wait for receivers to terminate).
SendNetworkMessage
Sends a message over the network to the specified targets.
target may be a single target or a list of targets.
SendNetworkReply
Sends a reply from a received message that was blocking (sender’s wait flag was true).
Ask
ResetTimer
Pause
SetEffect
ChangeEffect
ClearEffects
SetPenAttr
ChangePenAttr
Stop
UnknownBlock
Trait Implementations§
Auto Trait Implementations§
impl Freeze for StmtKind
impl RefUnwindSafe for StmtKind
impl !Send for StmtKind
impl !Sync for StmtKind
impl Unpin for StmtKind
impl UnwindSafe for StmtKind
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