rune::ast

Enum Expr

Source
#[non_exhaustive]
pub enum Expr {
Show 30 variants Path(Path), Assign(ExprAssign), While(ExprWhile), Loop(ExprLoop), For(ExprFor), Let(ExprLet), If(ExprIf), Match(ExprMatch), Call(ExprCall), FieldAccess(ExprFieldAccess), Binary(ExprBinary), Unary(ExprUnary), Index(ExprIndex), Break(ExprBreak), Continue(ExprContinue), Yield(ExprYield), Block(ExprBlock), Return(ExprReturn), Await(ExprAwait), Try(ExprTry), Select(ExprSelect), Closure(ExprClosure), Lit(ExprLit), Object(ExprObject), Tuple(ExprTuple), Vec(ExprVec), Range(ExprRange), Empty(ExprEmpty), Group(ExprGroup), MacroCall(MacroCall),
}
Expand description

A rune expression.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Path(Path)

An path expression.

§

Assign(ExprAssign)

An assign expression.

§

While(ExprWhile)

A while loop.

§

Loop(ExprLoop)

An unconditional loop.

§

For(ExprFor)

An for loop.

§

Let(ExprLet)

A let expression.

§

If(ExprIf)

An if expression.

§

Match(ExprMatch)

An match expression.

§

Call(ExprCall)

A function call,

§

FieldAccess(ExprFieldAccess)

A field access on an expression.

§

Binary(ExprBinary)

A binary expression.

§

Unary(ExprUnary)

A unary expression.

§

Index(ExprIndex)

An index set operation.

§

Break(ExprBreak)

A break expression.

§

Continue(ExprContinue)

A continue expression.

§

Yield(ExprYield)

A yield expression.

§

Block(ExprBlock)

A block as an expression.

§

Return(ExprReturn)

A return statement.

§

Await(ExprAwait)

An await expression.

§

Try(ExprTry)

Try expression.

§

Select(ExprSelect)

A select expression.

§

Closure(ExprClosure)

A closure expression.

§

Lit(ExprLit)

A literal expression.

§

Object(ExprObject)

An object literal

§

Tuple(ExprTuple)

A tuple literal

§

Vec(ExprVec)

A vec literal

§

Range(ExprRange)

A range expression.

§

Empty(ExprEmpty)

A grouped empty expression.

§

Group(ExprGroup)

A grouped expression.

§

MacroCall(MacroCall)

A macro call,

Trait Implementations§

Source§

impl Debug for Expr

Source§

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

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

impl OptionSpanned for Expr

Source§

fn option_span(&self) -> Option<Span>

Get the optional span of the type.
Source§

impl Parse for Expr

Source§

fn parse(p: &mut Parser<'_>) -> Result<Self, Error>

Parse the current item from the parser.
Source§

impl PartialEq for Expr

Source§

fn eq(&self, other: &Expr) -> 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 Peek for Expr

Source§

fn peek(p: &mut Peeker<'_>) -> bool

Peek the parser for the given token.
Source§

impl Spanned for Expr

Source§

fn span(&self) -> Span

Get the span of the type.
Source§

impl ToTokens for Expr

Source§

fn to_tokens( &self, context: &mut MacroContext<'_, '_, '_>, stream: &mut TokenStream, ) -> Result<()>

Turn the current item into tokens.
Source§

impl TryClone for Expr

Source§

fn try_clone(&self) -> Result<Self>

Try to clone the current value, raising an allocation error if it’s unsuccessful.
Source§

fn try_clone_from(&mut self, source: &Self) -> Result<(), Error>

Performs copy-assignment from source. Read more
Source§

impl Eq for Expr

Source§

impl StructuralPartialEq for Expr

Auto Trait Implementations§

§

impl Freeze for Expr

§

impl RefUnwindSafe for Expr

§

impl Send for Expr

§

impl Sync for Expr

§

impl Unpin 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<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> Same for T

Source§

type Output = T

Should always be Self
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.
Source§

impl<T> TryToOwned for T
where T: TryClone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn try_to_owned(&self) -> Result<T, Error>

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

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T