Eval

Trait Eval 

Source
pub trait Eval<T = Value> {
    // Required method
    fn eval(&self, context: &mut Context) -> EvalResult<T>;
}
Expand description

Evaluation trait.

The return type T defines to which output type the type is evaluated. Usually, these output types are used in specific context:

Return type TContext / ScopeReturn value on errorDescription
()Assignment.()An assignment returns nothing but alters the symbol table.
ValueFunction calls, module statements,Value::NoneThese trait implementations are
parameter lists, argument lists.mostly used when evaluating functions.
Option<Model>Workbenches, object bodies, source files, if.NoneSomething is evaluated into a single model.
ModelsStatement, statement list, body, multiplicities.Models::default()A collection of models .

Required Methods§

Source

fn eval(&self, context: &mut Context) -> EvalResult<T>

Evaluate a syntax element into a type T.

Implementors§

Source§

impl Eval for Expression

Source§

impl Eval for Literal

Source§

impl Eval for Statement

Source§

impl Eval for Body

Evaluate the body into a value.

Source§

impl Eval for Call

Source§

impl Eval for ArrayExpression

Source§

impl Eval for RangeExpression

Source§

impl Eval for RangeFirst

Source§

impl Eval for RangeLast

Source§

impl Eval for TupleExpression

Source§

impl Eval for FormatExpression

Source§

impl Eval for FormatString

Source§

impl Eval for FunctionDefinition

Source§

impl Eval for QualifiedName

Source§

impl Eval for NumberLiteral

Source§

impl Eval for ModuleDefinition

Source§

impl Eval for ExpressionStatement

Source§

impl Eval for IfStatement

Source§

impl Eval for ReturnStatement

Source§

impl Eval for StatementList

Source§

impl Eval<Option<ResolutionAttribute>> for AttributeCommand

Source§

impl Eval<Option<ResolutionAttribute>> for Attribute

Source§

impl Eval<Option<ExportCommand>> for AttributeCommand

Source§

impl Eval<Option<Model>> for Expression

Source§

impl Eval<Option<Model>> for Statement

Source§

impl Eval<Option<Model>> for Marker

Source§

impl Eval<Option<Model>> for ExpressionStatement

Source§

impl Eval<Option<Model>> for IfStatement

Source§

impl Eval<Option<Rc<Theme>>> for AttributeCommand

Source§

impl Eval<Option<Rc<Theme>>> for Attribute

Source§

impl Eval<Option<Symbol>> for QualifiedName

Source§

impl Eval<Option<Color>> for AttributeCommand

Source§

impl Eval<Option<Color>> for Attribute

Source§

impl Eval<Option<Size2>> for AttributeCommand

Source§

impl Eval<Option<Size2>> for Attribute

Source§

impl Eval<()> for UseDeclaration

Source§

impl Eval<()> for AssignmentStatement

Source§

impl Eval<()> for UseStatement

Source§

impl Eval<Attributes> for AttributeList

Source§

impl Eval<Attributes> for StatementList

Parse inner attributes of a statement list.

Source§

impl Eval<Models> for StatementList

Source§

impl Eval<Model> for Rc<SourceFile>

Source§

impl Eval<Model> for Body

Evaluate the body into a single group: {}.

Source§

impl Eval<ArgumentValueList> for ArgumentList

Source§

impl Eval<ParameterValue> for Parameter

Source§

impl Eval<ParameterValueList> for ParameterList

Source§

impl Eval<Vec<Attribute>> for Attribute

Source§

impl Eval<Vec<MeasureCommand>> for Attribute

Source§

impl Eval<Vec<CustomCommand>> for Attribute

Source§

impl Eval<Vec<ExportCommand>> for Attribute