pub trait Evaluate {
    type Output;

    // Required methods
    fn evaluate(
        &self,
        args: &EvaluationArgs<'_>
    ) -> Result<Self::Output, EvaluationError>;
    fn evaluate_weights(&self) -> Weights;
}
Expand description

Marks everything that can be evaluated.

Required Associated Types§

Required Methods§

source

fn evaluate( &self, args: &EvaluationArgs<'_> ) -> Result<Self::Output, EvaluationError>

Evaluates the thing.

Errors

Any errors related to evaluation.

source

fn evaluate_weights(&self) -> Weights

Evaluates weights.

Implementors§

source§

impl Evaluate for AnyExpr

source§

impl Evaluate for LineExpr

§

type Output = Line

source§

impl Evaluate for PointExpr

source§

impl Evaluate for ScalarExpr

§

type Output = f64

source§

impl Evaluate for AngleBisector

§

type Output = Line

source§

impl Evaluate for AngleLine

§

type Output = f64

source§

impl Evaluate for AnglePoint

§

type Output = f64

source§

impl Evaluate for Difference

§

type Output = f64

source§

impl Evaluate for FreePoint

source§

impl Evaluate for LineLineIntersection

source§

impl Evaluate for LinePoint

§

type Output = Line

source§

impl Evaluate for Literal

§

type Output = f64

source§

impl Evaluate for Negation

§

type Output = f64

source§

impl Evaluate for ParallelThrough

§

type Output = Line

source§

impl Evaluate for PerpendicularThrough

§

type Output = Line

source§

impl Evaluate for PointLineDistance

§

type Output = f64

source§

impl Evaluate for PointPointDistance

§

type Output = f64

source§

impl Evaluate for PointX

§

type Output = f64

source§

impl Evaluate for PointY

§

type Output = f64

source§

impl Evaluate for Product

§

type Output = f64

source§

impl Evaluate for Quotient

§

type Output = f64

source§

impl Evaluate for Real

§

type Output = f64

source§

impl Evaluate for SetUnit

§

type Output = f64

source§

impl Evaluate for Sum

§

type Output = f64

source§

impl<T: Evaluate + Kind> Evaluate for Average<T>where T::Output: From<Value> + Into<Value> + Clone + Zero + AddAssign<T::Output> + Div<f64, Output = T::Output>,

§

type Output = <T as Evaluate>::Output