pub enum ExprKind {
Show 97 variants Value(Value), Variable { var: VariableRef, }, Add { values: VariadicInput, }, Mul { values: VariadicInput, }, Min { values: VariadicInput, }, Max { values: VariadicInput, }, Sub { left: Box<Expr>, right: Box<Expr>, }, Div { left: Box<Expr>, right: Box<Expr>, }, Mod { left: Box<Expr>, right: Box<Expr>, }, Pow { base: Box<Expr>, power: Box<Expr>, }, Log { value: Box<Expr>, base: Box<Expr>, }, Atan2 { y: Box<Expr>, x: Box<Expr>, }, And { left: Box<Expr>, right: Box<Expr>, }, Or { left: Box<Expr>, right: Box<Expr>, }, Conditional { condition: Box<Expr>, then: Box<Expr>, otherwise: Box<Expr>, }, Identical { left: Box<Expr>, right: Box<Expr>, }, Eq { left: Box<Expr>, right: Box<Expr>, }, Neq { left: Box<Expr>, right: Box<Expr>, }, Less { left: Box<Expr>, right: Box<Expr>, }, LessEq { left: Box<Expr>, right: Box<Expr>, }, Greater { left: Box<Expr>, right: Box<Expr>, }, GreaterEq { left: Box<Expr>, right: Box<Expr>, }, Random { a: Box<Expr>, b: Box<Expr>, }, MakeListRange { start: Box<Expr>, stop: Box<Expr>, }, MakeList { values: VariadicInput, }, MakeListConcat { lists: VariadicInput, }, ListLength { value: Box<Expr>, }, ListRank { value: Box<Expr>, }, ListDims { value: Box<Expr>, }, ListFlatten { value: Box<Expr>, }, ListColumns { value: Box<Expr>, }, ListRev { value: Box<Expr>, }, ListLines { value: Box<Expr>, }, ListCsv { value: Box<Expr>, }, ListJson { value: Box<Expr>, }, ListReshape { value: Box<Expr>, dims: VariadicInput, }, ListCombinations { sources: VariadicInput, }, ListIsEmpty { value: Box<Expr>, }, ListCdr { value: Box<Expr>, }, ListCons { item: Box<Expr>, list: Box<Expr>, }, ListFind { list: Box<Expr>, value: Box<Expr>, }, ListContains { list: Box<Expr>, value: Box<Expr>, }, ListGet { list: Box<Expr>, index: Box<Expr>, }, ListLastIndex { list: Box<Expr>, }, ListGetRandom { list: Box<Expr>, }, Strcat { values: VariadicInput, }, Strlen { value: Box<Expr>, }, UnicodeToChar { value: Box<Expr>, }, CharToUnicode { value: Box<Expr>, }, Not { value: Box<Expr>, }, Neg { value: Box<Expr>, }, Abs { value: Box<Expr>, }, Sqrt { value: Box<Expr>, }, Floor { value: Box<Expr>, }, Ceil { value: Box<Expr>, }, Round { value: Box<Expr>, }, Sin { value: Box<Expr>, }, Cos { value: Box<Expr>, }, Tan { value: Box<Expr>, }, Asin { value: Box<Expr>, }, Acos { value: Box<Expr>, }, Atan { value: Box<Expr>, }, CallRpc { service: String, rpc: String, args: Vec<(String, Expr)>, }, CallFn { function: FnRef, args: Vec<Expr>, }, StageWidth, StageHeight, MouseX, MouseY, Latitude, Longitude, YPos, XPos, Heading, PenDown, Scale, IsVisible, This, Entity { name: String, trans_name: String, }, ImageOfEntity { entity: Box<Expr>, }, ImageOfDrawings, IsTouchingEntity { entity: Box<Expr>, }, IsTouchingMouse, IsTouchingEdge, IsTouchingDrawings, RpcError, Closure { params: Vec<VariableDef>, captures: Vec<VariableRef>, stmts: Vec<Stmt>, }, CallClosure { closure: Box<Expr>, args: Vec<Expr>, }, TextSplit { text: Box<Expr>, mode: TextSplitMode, }, Answer, Timer, Map { f: Box<Expr>, list: Box<Expr>, }, Keep { f: Box<Expr>, list: Box<Expr>, }, FindFirst { f: Box<Expr>, list: Box<Expr>, }, Combine { f: Box<Expr>, list: Box<Expr>, }, NetworkMessageReply { target: Box<Expr>, msg_type: String, values: Vec<(String, Expr)>, }, Syscall { name: Box<Expr>, args: VariadicInput, }, SyscallError,
}

Variants§

§

Value(Value)

§

Variable

Fields

§

Add

Fields

§

Mul

Fields

§

Min

Fields

§

Max

Fields

§

Sub

Fields

§left: Box<Expr>
§right: Box<Expr>
§

Div

Fields

§left: Box<Expr>
§right: Box<Expr>
§

Mod

Fields

§left: Box<Expr>
§right: Box<Expr>

Mathematical modulus (not remainder!). For instance, -1 mod 7 == 6.

§

Pow

Fields

§base: Box<Expr>
§power: Box<Expr>
§

Log

Fields

§value: Box<Expr>
§base: Box<Expr>
§

Atan2

Fields

§y: Box<Expr>
§x: Box<Expr>
§

And

Fields

§left: Box<Expr>
§right: Box<Expr>

Short-circuiting logical or.

§

Or

Fields

§left: Box<Expr>
§right: Box<Expr>

Short-circuiting logical and.

§

Conditional

Fields

§condition: Box<Expr>
§then: Box<Expr>
§otherwise: Box<Expr>

Lazily-evaluated conditional expression. Returns then if condition is true, otherwise otherwise.

§

Identical

Fields

§left: Box<Expr>
§right: Box<Expr>

If both values are lists, returns true of they are references to the same list. If both values are non-lists, returns true if the values are equal. Otherwise returns false.

§

Eq

Fields

§left: Box<Expr>
§right: Box<Expr>
§

Neq

Fields

§left: Box<Expr>
§right: Box<Expr>
§

Less

Fields

§left: Box<Expr>
§right: Box<Expr>
§

LessEq

Fields

§left: Box<Expr>
§right: Box<Expr>
§

Greater

Fields

§left: Box<Expr>
§right: Box<Expr>
§

GreaterEq

Fields

§left: Box<Expr>
§right: Box<Expr>
§

Random

Fields

§a: Box<Expr>
§b: Box<Expr>

Get a random number between a and b (inclusive). There are no ordering guarantees (swapping a and b is equivalent). If both values are integers, the result is an integer, otherwise continuous floats are returned.

§

MakeListRange

Fields

§start: Box<Expr>
§stop: Box<Expr>

Get a list of all the numbers starting at start and stepping towards stop (by +1 or -1), but not going past stop.

§

MakeList

Fields

§

MakeListConcat

Fields

§

ListLength

Fields

§value: Box<Expr>
§

ListRank

Fields

§value: Box<Expr>
§

ListDims

Fields

§value: Box<Expr>
§

ListFlatten

Fields

§value: Box<Expr>
§

ListColumns

Fields

§value: Box<Expr>
§

ListRev

Fields

§value: Box<Expr>
§

ListLines

Fields

§value: Box<Expr>
§

ListCsv

Fields

§value: Box<Expr>
§

ListJson

Fields

§value: Box<Expr>
§

ListReshape

Fields

§value: Box<Expr>
§

ListCombinations

Fields

§sources: VariadicInput
§

ListIsEmpty

Fields

§value: Box<Expr>
§

ListCdr

Fields

§value: Box<Expr>

Given a list, returns a new (shallow copy) of all the items except the first. If the list is empty, an empty list is returned.

§

ListCons

Fields

§item: Box<Expr>
§list: Box<Expr>

Given a value and a list, returns a new list (shallow copy) with the item prepended.

§

ListFind

Fields

§list: Box<Expr>
§value: Box<Expr>

Returns the (1-based) index of value in the list, or 0 if not present.

§

ListContains

Fields

§list: Box<Expr>
§value: Box<Expr>
§

ListGet

Fields

§list: Box<Expr>
§index: Box<Expr>
§

ListLastIndex

Fields

§list: Box<Expr>
§

ListGetRandom

Fields

§list: Box<Expr>
§

Strcat

Fields

§

Strlen

Fields

§value: Box<Expr>

String length in terms of unicode code points (not bytes or grapheme clusters!).

§

UnicodeToChar

Fields

§value: Box<Expr>

Convert a unicode code point into a 1-character string.

§

CharToUnicode

Fields

§value: Box<Expr>

Convert a 1-character string into its unicode code point.

§

Not

Fields

§value: Box<Expr>
§

Neg

Fields

§value: Box<Expr>
§

Abs

Fields

§value: Box<Expr>
§

Sqrt

Fields

§value: Box<Expr>
§

Floor

Fields

§value: Box<Expr>
§

Ceil

Fields

§value: Box<Expr>
§

Round

Fields

§value: Box<Expr>
§

Sin

Fields

§value: Box<Expr>
§

Cos

Fields

§value: Box<Expr>
§

Tan

Fields

§value: Box<Expr>
§

Asin

Fields

§value: Box<Expr>
§

Acos

Fields

§value: Box<Expr>
§

Atan

Fields

§value: Box<Expr>
§

CallRpc

Fields

§service: String
§rpc: String
§args: Vec<(String, Expr)>
§

CallFn

Fields

§function: FnRef
§args: Vec<Expr>
§

StageWidth

§

StageHeight

§

MouseX

§

MouseY

§

Latitude

§

Longitude

§

YPos

§

XPos

§

Heading

§

PenDown

§

Scale

§

IsVisible

§

This

§

Entity

Fields

§name: String
§trans_name: String
§

ImageOfEntity

Fields

§entity: Box<Expr>
§

ImageOfDrawings

§

IsTouchingEntity

Fields

§entity: Box<Expr>
§

IsTouchingMouse

§

IsTouchingEdge

§

IsTouchingDrawings

§

RpcError

§

Closure

Fields

§params: Vec<VariableDef>
§captures: Vec<VariableRef>
§stmts: Vec<Stmt>
§

CallClosure

Fields

§closure: Box<Expr>
§args: Vec<Expr>
§

TextSplit

Fields

§text: Box<Expr>
§

Answer

§

Timer

§

Map

Fields

§f: Box<Expr>
§list: Box<Expr>
§

Keep

Fields

§f: Box<Expr>
§list: Box<Expr>
§

FindFirst

Fields

§f: Box<Expr>
§list: Box<Expr>
§

Combine

Fields

§f: Box<Expr>
§list: Box<Expr>
§

NetworkMessageReply

Fields

§target: Box<Expr>
§msg_type: String
§values: Vec<(String, Expr)>
§

Syscall

Fields

§name: Box<Expr>
§

SyscallError

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.