Skip to main content

EvalOp

Enum EvalOp 

Source
pub enum EvalOp<'a> {
    Number,
    Text,
    Bool,
    Error(&'a ErrorKind),
    Variable(&'a str),
    Reference,
    UnaryOp(&'a UnaryOp),
    BinaryOp(&'a BinaryOp),
    Array,
    Apply,
    FunctionCall(&'a str),
}
Expand description

A lightweight, borrowed description of the operation an evaluated node performs. Handed to an EvalHook alongside the node’s resulting Value so an observer can profile or trace evaluation without touching the AST directly or any function. Constructing it borrows from the expression and allocates nothing.

Variants§

§

Number

Numeric literal.

§

Text

Text literal.

§

Bool

Boolean literal.

§

Error(&'a ErrorKind)

Error literal (#REF! etc.), carrying its kind.

§

Variable(&'a str)

Bare-identifier read (local binding or reference), carrying its name.

§

Reference

Cell / range / name reference read.

§

UnaryOp(&'a UnaryOp)

Unary operator (negation, percent).

§

BinaryOp(&'a BinaryOp)

Binary operator (arithmetic, comparison, concatenation).

§

Array

Array literal.

§

Apply

Immediately-invoked lambda application.

§

FunctionCall(&'a str)

Function call, carrying the (uppercased) function name.

Implementations§

Source§

impl<'a> EvalOp<'a>

Source

pub fn of(expr: &'a Expr) -> Self

Derive the operation descriptor for an expression node. Pure and allocation-free — every variant only borrows from expr.

Trait Implementations§

Source§

impl<'a> Clone for EvalOp<'a>

Source§

fn clone(&self) -> EvalOp<'a>

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<'a> Copy for EvalOp<'a>

Source§

impl<'a> Debug for EvalOp<'a>

Source§

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

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

impl<'a> PartialEq for EvalOp<'a>

Source§

fn eq(&self, other: &EvalOp<'a>) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl<'a> StructuralPartialEq for EvalOp<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for EvalOp<'a>

§

impl<'a> RefUnwindSafe for EvalOp<'a>

§

impl<'a> Send for EvalOp<'a>

§

impl<'a> Sync for EvalOp<'a>

§

impl<'a> Unpin for EvalOp<'a>

§

impl<'a> UnsafeUnpin for EvalOp<'a>

§

impl<'a> UnwindSafe for EvalOp<'a>

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.