Trait Eval

pub trait Eval {
    type Output;

    // Required method
    fn eval(
        self,
        vm: &mut Vm<'_>,
    ) -> Result<Self::Output, EcoVec<SourceDiagnostic>>;
}
Expand description

Evaluate an expression.

Required Associated Types§

type Output

The output of evaluating the expression.

Required Methods§

fn eval(self, vm: &mut Vm<'_>) -> Result<Self::Output, EcoVec<SourceDiagnostic>>

Evaluate the expression to the output value.

Implementations on Foreign Types§

§

impl Eval for Args<'_>

§

type Output = Args

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<Args<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for Array<'_>

§

type Output = Array

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<Array<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for Auto<'_>

§

type Output = Value

§

fn eval( self, _: &mut Vm<'_>, ) -> Result<<Auto<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for Binary<'_>

§

type Output = Value

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<Binary<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for Bool<'_>

§

type Output = Value

§

fn eval( self, _: &mut Vm<'_>, ) -> Result<<Bool<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for Closure<'_>

§

type Output = Value

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<Closure<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for Code<'_>

§

type Output = Value

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<Code<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for CodeBlock<'_>

§

type Output = Value

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<CodeBlock<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for Conditional<'_>

§

type Output = Value

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<Conditional<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for ContentBlock<'_>

§

type Output = Content

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<ContentBlock<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for Contextual<'_>

§

type Output = Content

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<Contextual<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for DestructAssignment<'_>

§

type Output = Value

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<DestructAssignment<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for Dict<'_>

§

type Output = Dict

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<Dict<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for Emph<'_>

§

type Output = Content

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<Emph<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for EnumItem<'_>

§

type Output = Content

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<EnumItem<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for Equation<'_>

§

type Output = Content

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<Equation<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for Escape<'_>

§

type Output = Value

§

fn eval( self, _: &mut Vm<'_>, ) -> Result<<Escape<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for Expr<'_>

§

type Output = Value

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<Expr<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for FieldAccess<'_>

§

type Output = Value

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<FieldAccess<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for Float<'_>

§

type Output = Value

§

fn eval( self, _: &mut Vm<'_>, ) -> Result<<Float<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for ForLoop<'_>

§

type Output = Value

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<ForLoop<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for FuncCall<'_>

§

type Output = Value

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<FuncCall<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for FuncReturn<'_>

§

type Output = Value

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<FuncReturn<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for Heading<'_>

§

type Output = Content

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<Heading<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for Ident<'_>

§

type Output = Value

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<Ident<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for Int<'_>

§

type Output = Value

§

fn eval( self, _: &mut Vm<'_>, ) -> Result<<Int<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for Label<'_>

§

type Output = Value

§

fn eval( self, _: &mut Vm<'_>, ) -> Result<<Label<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for LetBinding<'_>

§

type Output = Value

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<LetBinding<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for Linebreak<'_>

§

type Output = Content

§

fn eval( self, _: &mut Vm<'_>, ) -> Result<<Linebreak<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for Link<'_>

§

type Output = Content

§

fn eval( self, _: &mut Vm<'_>, ) -> Result<<Link<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for ListItem<'_>

§

type Output = Content

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<ListItem<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for LoopBreak<'_>

§

type Output = Value

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<LoopBreak<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for LoopContinue<'_>

§

type Output = Value

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<LoopContinue<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for Markup<'_>

§

type Output = Content

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<Markup<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for Math<'_>

§

type Output = Content

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<Math<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for MathAlignPoint<'_>

§

type Output = Content

§

fn eval( self, _: &mut Vm<'_>, ) -> Result<<MathAlignPoint<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for MathAttach<'_>

§

type Output = Content

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<MathAttach<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for MathDelimited<'_>

§

type Output = Content

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<MathDelimited<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for MathFrac<'_>

§

type Output = Content

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<MathFrac<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for MathIdent<'_>

§

type Output = Value

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<MathIdent<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for MathPrimes<'_>

§

type Output = Content

§

fn eval( self, _: &mut Vm<'_>, ) -> Result<<MathPrimes<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for MathRoot<'_>

§

type Output = Content

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<MathRoot<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for MathShorthand<'_>

§

type Output = Value

§

fn eval( self, _: &mut Vm<'_>, ) -> Result<<MathShorthand<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for MathText<'_>

§

type Output = Content

§

fn eval( self, _: &mut Vm<'_>, ) -> Result<<MathText<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for ModuleImport<'_>

§

type Output = Value

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<ModuleImport<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for ModuleInclude<'_>

§

type Output = Content

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<ModuleInclude<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for None<'_>

§

type Output = Value

§

fn eval( self, _: &mut Vm<'_>, ) -> Result<<None<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for Numeric<'_>

§

type Output = Value

§

fn eval( self, _: &mut Vm<'_>, ) -> Result<<Numeric<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for Parbreak<'_>

§

type Output = Content

§

fn eval( self, _: &mut Vm<'_>, ) -> Result<<Parbreak<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for Parenthesized<'_>

§

type Output = Value

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<Parenthesized<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for Raw<'_>

§

type Output = Content

§

fn eval( self, _: &mut Vm<'_>, ) -> Result<<Raw<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for Ref<'_>

§

type Output = Content

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<Ref<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for SetRule<'_>

§

type Output = Styles

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<SetRule<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for Shorthand<'_>

§

type Output = Value

§

fn eval( self, _: &mut Vm<'_>, ) -> Result<<Shorthand<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for ShowRule<'_>

§

type Output = Recipe

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<ShowRule<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for SmartQuote<'_>

§

type Output = Content

§

fn eval( self, _: &mut Vm<'_>, ) -> Result<<SmartQuote<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for Space<'_>

§

type Output = Content

§

fn eval( self, _: &mut Vm<'_>, ) -> Result<<Space<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for Str<'_>

§

type Output = Value

§

fn eval( self, _: &mut Vm<'_>, ) -> Result<<Str<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for Strong<'_>

§

type Output = Content

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<Strong<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for TermItem<'_>

§

type Output = Content

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<TermItem<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for Text<'_>

§

type Output = Content

§

fn eval( self, _: &mut Vm<'_>, ) -> Result<<Text<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for Unary<'_>

§

type Output = Value

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<Unary<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

§

impl Eval for WhileLoop<'_>

§

type Output = Value

§

fn eval( self, vm: &mut Vm<'_>, ) -> Result<<WhileLoop<'_> as Eval>::Output, EcoVec<SourceDiagnostic>>

Implementors§