Skip to main content

IntoEvalResult

Trait IntoEvalResult 

Source
pub trait IntoEvalResult<'a, T> {
    // Required method
    fn into_eval_result(self) -> Result<Value<'a, T>, ErrorOutput<'a>>;
}
Expand description

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§

Source

fn into_eval_result(self) -> Result<Value<'a, T>, ErrorOutput<'a>>

Performs the conversion.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

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>,

Source§

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>,

Source§

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>,

Source§

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>,

Source§

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>,

Source§

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>,

Source§

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>,

Source§

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>,

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<'a, T> IntoEvalResult<'a, T> for ()

Source§

impl<'a, T> IntoEvalResult<'a, T> for Ordering

Source§

impl<'a, T> IntoEvalResult<'a, T> for bool

Source§

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

Implementors§

Source§

impl<'a, T: Number> IntoEvalResult<'a, T> for T

Source§

impl<'a, T> IntoEvalResult<'a, T> for Function<'a, T>

Source§

impl<'a, T> IntoEvalResult<'a, T> for Value<'a, T>