[][src]Trait arithmetic_eval::fns::IntoEvalResult

pub trait IntoEvalResult<'a, T> {
    pub fn into_eval_result(self) -> Result<Value<'a, T>, ErrorOutput<'a>>;
}

Converts type into Value or an error. This is used to convert the return type of wrapped functions to the result expected by NativeFn.

Unlike with TryInto trait from the standard library, the erroneous result here does not mean that the conversion itself is impossible. Rather, it means that the function evaluation has failed for the provided args.

This trait is implemented for base value types (such as Numbers, Functions, Values), for two container types: vectors and tuples, and for Results with the error type convertible to ErrorOutput.

Required methods

pub fn into_eval_result(self) -> Result<Value<'a, T>, ErrorOutput<'a>>[src]

Performs the conversion.

Loading content...

Implementations on Foreign Types

impl<'a, T, U> IntoEvalResult<'a, T> for Result<U, String> where
    U: IntoEvalResult<'a, T>, 
[src]

impl<'a, T, U> IntoEvalResult<'a, T> for Result<U, Error<'a>> where
    U: IntoEvalResult<'a, T>, 
[src]

impl<'a, T> IntoEvalResult<'a, T> for ()[src]

impl<'a, T> IntoEvalResult<'a, T> for bool[src]

impl<'a, T> IntoEvalResult<'a, T> for Ordering[src]

impl<'a, U, T> IntoEvalResult<'a, T> for Vec<U> where
    U: IntoEvalResult<'a, T>, 
[src]

impl<'a, Num, T> IntoEvalResult<'a, Num> for (T,) where
    T: IntoEvalResult<'a, Num>, 
[src]

impl<'a, Num, T, U> IntoEvalResult<'a, Num> for (T, U) where
    T: IntoEvalResult<'a, Num>,
    U: IntoEvalResult<'a, Num>, 
[src]

impl<'a, Num, T, U, V> IntoEvalResult<'a, Num> for (T, U, V) where
    T: IntoEvalResult<'a, Num>,
    U: IntoEvalResult<'a, Num>,
    V: IntoEvalResult<'a, Num>, 
[src]

impl<'a, Num, T, U, V, W> IntoEvalResult<'a, Num> for (T, U, V, W) where
    T: IntoEvalResult<'a, Num>,
    U: IntoEvalResult<'a, Num>,
    V: IntoEvalResult<'a, Num>,
    W: IntoEvalResult<'a, Num>, 
[src]

impl<'a, Num, T, U, V, W, X> IntoEvalResult<'a, Num> for (T, U, V, W, X) where
    T: IntoEvalResult<'a, Num>,
    U: IntoEvalResult<'a, Num>,
    V: IntoEvalResult<'a, Num>,
    W: IntoEvalResult<'a, Num>,
    X: IntoEvalResult<'a, Num>, 
[src]

impl<'a, Num, T, U, V, W, X, Y> IntoEvalResult<'a, Num> for (T, U, V, W, X, Y) where
    T: IntoEvalResult<'a, Num>,
    U: IntoEvalResult<'a, Num>,
    V: IntoEvalResult<'a, Num>,
    W: IntoEvalResult<'a, Num>,
    X: IntoEvalResult<'a, Num>,
    Y: IntoEvalResult<'a, Num>, 
[src]

impl<'a, Num, T, U, V, W, X, Y, Z> IntoEvalResult<'a, Num> for (T, U, V, W, X, Y, Z) where
    T: IntoEvalResult<'a, Num>,
    U: IntoEvalResult<'a, Num>,
    V: IntoEvalResult<'a, Num>,
    W: IntoEvalResult<'a, Num>,
    X: IntoEvalResult<'a, Num>,
    Y: IntoEvalResult<'a, Num>,
    Z: IntoEvalResult<'a, Num>, 
[src]

impl<'a, Num, T, U, V, W, X, Y, Z, A> IntoEvalResult<'a, Num> for (T, U, V, W, X, Y, Z, A) where
    T: IntoEvalResult<'a, Num>,
    U: IntoEvalResult<'a, Num>,
    V: IntoEvalResult<'a, Num>,
    W: IntoEvalResult<'a, Num>,
    X: IntoEvalResult<'a, Num>,
    Y: IntoEvalResult<'a, Num>,
    Z: IntoEvalResult<'a, Num>,
    A: IntoEvalResult<'a, Num>, 
[src]

impl<'a, Num, T, U, V, W, X, Y, Z, A, B> IntoEvalResult<'a, Num> for (T, U, V, W, X, Y, Z, A, B) where
    T: IntoEvalResult<'a, Num>,
    U: IntoEvalResult<'a, Num>,
    V: IntoEvalResult<'a, Num>,
    W: IntoEvalResult<'a, Num>,
    X: IntoEvalResult<'a, Num>,
    Y: IntoEvalResult<'a, Num>,
    Z: IntoEvalResult<'a, Num>,
    A: IntoEvalResult<'a, Num>,
    B: IntoEvalResult<'a, Num>, 
[src]

impl<'a, Num, T, U, V, W, X, Y, Z, A, B, C> IntoEvalResult<'a, Num> for (T, U, V, W, X, Y, Z, A, B, C) where
    T: IntoEvalResult<'a, Num>,
    U: IntoEvalResult<'a, Num>,
    V: IntoEvalResult<'a, Num>,
    W: IntoEvalResult<'a, Num>,
    X: IntoEvalResult<'a, Num>,
    Y: IntoEvalResult<'a, Num>,
    Z: IntoEvalResult<'a, Num>,
    A: IntoEvalResult<'a, Num>,
    B: IntoEvalResult<'a, Num>,
    C: IntoEvalResult<'a, Num>, 
[src]

Loading content...

Implementors

impl<'a, T> IntoEvalResult<'a, T> for Function<'a, T>[src]

impl<'a, T> IntoEvalResult<'a, T> for Value<'a, T>[src]

impl<'a, T: Number> IntoEvalResult<'a, T> for T[src]

Loading content...