ExprKind

Enum ExprKind 

Source
pub enum ExprKind {
Show 122 variants Value(Value), Variable { var: VariableRef, }, Add { values: Box<Expr>, }, Mul { values: Box<Expr>, }, Min { values: Box<Expr>, }, Max { values: Box<Expr>, }, 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>, }, Range { start: Box<Expr>, stop: Box<Expr>, }, MakeList { values: Vec<Expr>, }, CopyList { list: Box<Expr>, }, ListCat { lists: Box<Expr>, }, ListLen { 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: Box<Expr>, }, ListCombinations { sources: Box<Expr>, }, 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>, }, ListGetLast { list: Box<Expr>, }, ListGetRandom { list: Box<Expr>, }, StrGet { string: Box<Expr>, index: Box<Expr>, }, StrGetLast { string: Box<Expr>, }, StrGetRandom { string: Box<Expr>, }, StrCat { values: Box<Expr>, }, StrLen { value: Box<Expr>, }, UnicodeToChar { value: Box<Expr>, }, CharToUnicode { value: Box<Expr>, }, Not { value: Box<Expr>, }, Neg { value: Box<Expr>, }, Abs { value: Box<Expr>, }, Sign { 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 { 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>, }, StageWidth, StageHeight, MouseX, MouseY, Latitude, Longitude, KeyDown { key: Box<Expr>, }, YPos, XPos, Heading, PenDown, Size, IsVisible, This, Entity { name: CompactString, trans_name: CompactString, }, ImageOfEntity { entity: Box<Expr>, }, ImageOfDrawings, IsTouchingEntity { entity: Box<Expr>, }, IsTouchingMouse, IsTouchingEdge, IsTouchingDrawings, RpcError, Closure { kind: ClosureKind, params: Vec<VariableDef>, captures: Vec<VariableRef>, stmts: Vec<Stmt>, }, TextSplit { text: Box<Expr>, mode: TextSplitMode, }, Answer, Message, 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: CompactString, values: Vec<(CompactString, Expr)>, }, Effect { kind: EffectKind, }, PenAttr { attr: PenAttribute, }, CostumeList, Costume, CostumeNumber, CostumeName { costume: Box<Expr>, }, CostumeWidth { costume: Box<Expr>, }, CostumeHeight { costume: Box<Expr>, }, CostumePixels { costume: Box<Expr>, }, SoundList, SoundName { sound: Box<Expr>, }, SoundDuration { sound: Box<Expr>, }, SoundSampleRate { sound: Box<Expr>, }, SoundSamples { sound: Box<Expr>, }, SoundSamplesLength { sound: Box<Expr>, }, SoundChannelCount { sound: Box<Expr>, }, Clone { target: Box<Expr>, }, TypeQuery { value: Box<Expr>, ty: ValueType, }, RealTime { query: TimeQuery, }, UnknownBlock { name: CompactString, args: Vec<Expr>, },
}

Variants§

§

Value(Value)

§

Variable

Fields

§

Add

Fields

§values: Box<Expr>
§

Mul

Fields

§values: Box<Expr>
§

Min

Fields

§values: Box<Expr>
§

Max

Fields

§values: Box<Expr>
§

Sub

Fields

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

Div

Fields

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

Mod

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

Fields

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

Pow

Fields

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

Log

Fields

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

Atan2

Fields

§

And

Short-circuiting logical or.

Fields

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

Or

Short-circuiting logical and.

Fields

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

Conditional

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

Fields

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

Identical

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.

Fields

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

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

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.

Fields

§

Range

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

Fields

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

MakeList

Fields

§values: Vec<Expr>
§

CopyList

Fields

§list: Box<Expr>
§

ListCat

Fields

§lists: Box<Expr>
§

ListLen

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>
§dims: Box<Expr>
§

ListCombinations

Fields

§sources: Box<Expr>
§

ListIsEmpty

Fields

§value: Box<Expr>
§

ListCdr

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.

Fields

§value: Box<Expr>
§

ListCons

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

Fields

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

ListFind

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

Fields

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

ListContains

Fields

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

ListGet

Fields

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

ListGetLast

Fields

§list: Box<Expr>
§

ListGetRandom

Fields

§list: Box<Expr>
§

StrGet

Fields

§string: Box<Expr>
§index: Box<Expr>
§

StrGetLast

Fields

§string: Box<Expr>
§

StrGetRandom

Fields

§string: Box<Expr>
§

StrCat

Fields

§values: Box<Expr>
§

StrLen

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

Fields

§value: Box<Expr>
§

UnicodeToChar

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

Fields

§value: Box<Expr>
§

CharToUnicode

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

Fields

§value: Box<Expr>
§

Not

Fields

§value: Box<Expr>
§

Neg

Fields

§value: Box<Expr>
§

Abs

Fields

§value: Box<Expr>
§

Sign

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

§

CallFn

Fields

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

CallClosure

Fields

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

StageWidth

§

StageHeight

§

MouseX

§

MouseY

§

Latitude

§

Longitude

§

KeyDown

Fields

§key: Box<Expr>
§

YPos

§

XPos

§

Heading

§

PenDown

§

Size

§

IsVisible

§

This

§

Entity

Fields

§trans_name: CompactString
§

ImageOfEntity

Fields

§entity: Box<Expr>
§

ImageOfDrawings

§

IsTouchingEntity

Fields

§entity: Box<Expr>
§

IsTouchingMouse

§

IsTouchingEdge

§

IsTouchingDrawings

§

RpcError

§

Closure

Fields

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

TextSplit

Fields

§text: Box<Expr>
§

Answer

§

Message

§

Timer

§

Map

Fields

§list: Box<Expr>
§

Keep

Fields

§list: Box<Expr>
§

FindFirst

Fields

§list: Box<Expr>
§

Combine

Fields

§list: Box<Expr>
§

NetworkMessageReply

Fields

§target: Box<Expr>
§msg_type: CompactString
§

Effect

Fields

§

PenAttr

Fields

§

CostumeList

§

Costume

§

CostumeNumber

§

CostumeName

Fields

§costume: Box<Expr>
§

CostumeWidth

Fields

§costume: Box<Expr>
§

CostumeHeight

Fields

§costume: Box<Expr>
§

CostumePixels

Fields

§costume: Box<Expr>
§

SoundList

§

SoundName

Fields

§sound: Box<Expr>
§

SoundDuration

Fields

§sound: Box<Expr>
§

SoundSampleRate

Fields

§sound: Box<Expr>
§

SoundSamples

Fields

§sound: Box<Expr>
§

SoundSamplesLength

Fields

§sound: Box<Expr>
§

SoundChannelCount

Fields

§sound: Box<Expr>
§

Clone

Fields

§target: Box<Expr>
§

TypeQuery

Fields

§value: Box<Expr>
§

RealTime

Fields

§

UnknownBlock

Fields

§args: Vec<Expr>

Trait Implementations§

Source§

impl Clone for ExprKind

Source§

fn clone(&self) -> ExprKind

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ExprKind

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.