Skip to main content

Expr

Enum Expr 

Source
pub enum Expr {
Show 16 variants Nil, True, False, Vararg, Int(i64), Float(f64), Str(Vec<u8>), Name(Name), Index { obj: ExprId, key: ExprId, }, Call { func: ExprId, args: Vec<ExprId>, line: u32, }, MethodCall { obj: ExprId, method: Name, args: Vec<ExprId>, line: u32, }, Function(FuncBody), Table { fields: Vec<TableField>, line: u32, }, BinOp { op: BinOp, lhs: ExprId, rhs: ExprId, line: u32, }, UnOp { op: UnOp, operand: ExprId, line: u32, }, Paren(ExprId),
}
Expand description

Expression kinds — produces a Lua value when evaluated.

Variants§

§

Nil

nil literal.

§

True

true literal.

§

False

false literal.

§

Vararg

... vararg expression (legal only inside a vararg function).

§

Int(i64)

Integer literal.

Tuple Fields

§0: i64

The 64-bit signed integer value.

§

Float(f64)

Floating-point literal.

Tuple Fields

§0: f64

The IEEE-754 double value.

§

Str(Vec<u8>)

String literal (raw bytes — Lua strings are 8-bit clean).

Tuple Fields

§0: Vec<u8>

Raw byte contents (no terminator).

§

Name(Name)

Identifier reference (resolved later to local / upvalue / global).

Tuple Fields

§0: Name

The identifier.

§

Index

obj.key and obj[key] (dot keys become string-literal keys).

Fields

§obj: ExprId

Container expression.

§key: ExprId

Key expression.

§

Call

func(args) function call.

Fields

§func: ExprId

Callee expression.

§args: Vec<ExprId>

Argument expressions in call order.

§line: u32

Source line of the call site.

§

MethodCall

obj:method(args) method call (passes obj as implicit first arg).

Fields

§obj: ExprId

Receiver expression.

§method: Name

Method name (looked up on obj).

§args: Vec<ExprId>

Argument expressions after the implicit receiver.

§line: u32

Source line of the call site.

§

Function(FuncBody)

function ... end function literal.

Tuple Fields

§0: FuncBody

Function body.

§

Table

{ ... } table constructor.

Fields

§fields: Vec<TableField>

Fields in source order.

§line: u32

Source line of the opening {.

§

BinOp

Binary operator expression.

Fields

§op: BinOp

Operator.

§lhs: ExprId

Left operand.

§rhs: ExprId

Right operand.

§line: u32

Source line for error reporting.

§

UnOp

Unary operator expression.

Fields

§op: UnOp

Operator.

§operand: ExprId

Operand.

§line: u32

Source line for error reporting.

§

Paren(ExprId)

Parenthesized expression: truncates multiple results to one.

Tuple Fields

§0: ExprId

Inner expression.

Trait Implementations§

Source§

impl Clone for Expr

Source§

fn clone(&self) -> Expr

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Expr

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Expr

§

impl RefUnwindSafe for Expr

§

impl Send for Expr

§

impl Sync for Expr

§

impl Unpin for Expr

§

impl UnsafeUnpin for Expr

§

impl UnwindSafe for Expr

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.