Skip to main content

JsExpr

Enum JsExpr 

Source
pub enum JsExpr {
Show 15 variants Lit(JsLit), Var(String), Call(Box<JsExpr>, Vec<JsExpr>), Method(Box<JsExpr>, String, Vec<JsExpr>), Field(Box<JsExpr>, String), Index(Box<JsExpr>, Box<JsExpr>), Arrow(Vec<String>, Box<JsStmt>), Ternary(Box<JsExpr>, Box<JsExpr>, Box<JsExpr>), BinOp(String, Box<JsExpr>, Box<JsExpr>), UnOp(String, Box<JsExpr>), Await(Box<JsExpr>), New(String, Vec<JsExpr>), Spread(Box<JsExpr>), Object(Vec<(String, JsExpr)>), Array(Vec<JsExpr>),
}
Expand description

JavaScript expression for code generation.

Variants§

§

Lit(JsLit)

A literal value: 42n, "hello", true, etc.

§

Var(String)

A variable identifier: x, _t0, Nat_add

§

Call(Box<JsExpr>, Vec<JsExpr>)

A function call: f(a, b, c)

§

Method(Box<JsExpr>, String, Vec<JsExpr>)

A method call: obj.method(a, b)

§

Field(Box<JsExpr>, String)

Property access: obj.field

§

Index(Box<JsExpr>, Box<JsExpr>)

Array index: arr[i]

§

Arrow(Vec<String>, Box<JsStmt>)

Arrow function: (x, y) => { stmts }

§

Ternary(Box<JsExpr>, Box<JsExpr>, Box<JsExpr>)

Ternary expression: cond ? then_expr : else_expr

§

BinOp(String, Box<JsExpr>, Box<JsExpr>)

Binary operator: lhs + rhs, a === b, etc.

§

UnOp(String, Box<JsExpr>)

Unary operator: !x, -n, typeof x

§

Await(Box<JsExpr>)

Await expression: await promise

§

New(String, Vec<JsExpr>)

Constructor call: new MyClass(a, b)

§

Spread(Box<JsExpr>)

Spread expression: ...arr

§

Object(Vec<(String, JsExpr)>)

Object literal: { key: val, ... }

§

Array(Vec<JsExpr>)

Array literal: [a, b, c]

Trait Implementations§

Source§

impl Clone for JsExpr

Source§

fn clone(&self) -> JsExpr

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 JsExpr

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Display for JsExpr

Source§

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

Formats the value using the given formatter. Read more
Source§

impl PartialEq for JsExpr

Source§

fn eq(&self, other: &JsExpr) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for JsExpr

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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. 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.