Trait arithmetic_eval::fns::IntoEvalResult [−][src]
pub trait IntoEvalResult<'a, T> { 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 Number
s, Function
s, Value
s),
for two container types: vectors and tuples, and for Result
s with the error type
convertible to ErrorOutput
.
Required methods
fn into_eval_result(self) -> Result<Value<'a, T>, ErrorOutput<'a>>
[src]
fn into_eval_result(self) -> Result<Value<'a, T>, ErrorOutput<'a>>
[src]Performs the conversion.
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, String> where
U: IntoEvalResult<'a, T>,
[src]fn into_eval_result(self) -> Result<Value<'a, T>, ErrorOutput<'a>>
[src]
impl<'a, T, U> IntoEvalResult<'a, T> for Result<U, Error<'a>> where
U: IntoEvalResult<'a, T>,
[src]
impl<'a, T, U> IntoEvalResult<'a, T> for Result<U, Error<'a>> where
U: IntoEvalResult<'a, T>,
[src]fn into_eval_result(self) -> Result<Value<'a, T>, ErrorOutput<'a>>
[src]
impl<'a, T> IntoEvalResult<'a, T> for ()
[src]
impl<'a, T> IntoEvalResult<'a, T> for ()
[src]fn into_eval_result(self) -> Result<Value<'a, T>, ErrorOutput<'a>>
[src]
impl<'a, T> IntoEvalResult<'a, T> for bool
[src]
impl<'a, T> IntoEvalResult<'a, T> for bool
[src]fn into_eval_result(self) -> Result<Value<'a, T>, ErrorOutput<'a>>
[src]
impl<'a, T> IntoEvalResult<'a, T> for Ordering
[src]
impl<'a, T> IntoEvalResult<'a, T> for Ordering
[src]fn into_eval_result(self) -> Result<Value<'a, T>, ErrorOutput<'a>>
[src]
impl<'a, U, T> IntoEvalResult<'a, T> for Vec<U> where
U: IntoEvalResult<'a, T>,
[src]
impl<'a, U, T> IntoEvalResult<'a, T> for Vec<U> where
U: IntoEvalResult<'a, T>,
[src]fn into_eval_result(self) -> Result<Value<'a, T>, ErrorOutput<'a>>
[src]
impl<'a, Num, T> IntoEvalResult<'a, Num> for (T,) where
T: IntoEvalResult<'a, Num>,
[src]
impl<'a, Num, T> IntoEvalResult<'a, Num> for (T,) where
T: IntoEvalResult<'a, Num>,
[src]fn into_eval_result(self) -> Result<Value<'a, Num>, ErrorOutput<'a>>
[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> IntoEvalResult<'a, Num> for (T, U) where
T: IntoEvalResult<'a, Num>,
U: IntoEvalResult<'a, Num>,
[src]fn into_eval_result(self) -> Result<Value<'a, Num>, ErrorOutput<'a>>
[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> IntoEvalResult<'a, Num> for (T, U, V) where
T: IntoEvalResult<'a, Num>,
U: IntoEvalResult<'a, Num>,
V: IntoEvalResult<'a, Num>,
[src]fn into_eval_result(self) -> Result<Value<'a, Num>, ErrorOutput<'a>>
[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> 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]fn into_eval_result(self) -> Result<Value<'a, Num>, ErrorOutput<'a>>
[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> 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]fn into_eval_result(self) -> Result<Value<'a, Num>, ErrorOutput<'a>>
[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> 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]fn into_eval_result(self) -> Result<Value<'a, Num>, ErrorOutput<'a>>
[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> 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]fn into_eval_result(self) -> Result<Value<'a, Num>, ErrorOutput<'a>>
[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> 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]fn into_eval_result(self) -> Result<Value<'a, Num>, ErrorOutput<'a>>
[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> 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]fn into_eval_result(self) -> Result<Value<'a, Num>, ErrorOutput<'a>>
[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]
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]fn into_eval_result(self) -> Result<Value<'a, Num>, ErrorOutput<'a>>
[src]
Implementors
impl<'a, T> IntoEvalResult<'a, T> for Function<'a, T>
[src]
impl<'a, T> IntoEvalResult<'a, T> for Function<'a, T>
[src]fn into_eval_result(self) -> Result<Value<'a, T>, ErrorOutput<'a>>
[src]
impl<'a, T> IntoEvalResult<'a, T> for Value<'a, T>
[src]
impl<'a, T> IntoEvalResult<'a, T> for Value<'a, T>
[src]fn into_eval_result(self) -> Result<Value<'a, T>, ErrorOutput<'a>>
[src]
impl<'a, T: Number> IntoEvalResult<'a, T> for T
[src]
impl<'a, T: Number> IntoEvalResult<'a, T> for T
[src]