[−][src]Trait arithmetic_eval::fns::IntoEvalResult
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.
Implementations on Foreign Types
impl<'a, T, U> IntoEvalResult<'a, T> for Result<U, String> where
U: IntoEvalResult<'a, T>, [src]
U: IntoEvalResult<'a, T>,
pub 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]
U: IntoEvalResult<'a, T>,
pub fn into_eval_result(self) -> Result<Value<'a, T>, ErrorOutput<'a>>[src]
impl<'a, T> IntoEvalResult<'a, T> for ()[src]
pub fn into_eval_result(self) -> Result<Value<'a, T>, ErrorOutput<'a>>[src]
impl<'a, T> IntoEvalResult<'a, T> for bool[src]
pub fn into_eval_result(self) -> Result<Value<'a, T>, ErrorOutput<'a>>[src]
impl<'a, T> IntoEvalResult<'a, T> for Ordering[src]
pub 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]
U: IntoEvalResult<'a, T>,
pub 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]
T: IntoEvalResult<'a, Num>,
pub 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]
T: IntoEvalResult<'a, Num>,
U: IntoEvalResult<'a, Num>,
pub 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]
T: IntoEvalResult<'a, Num>,
U: IntoEvalResult<'a, Num>,
V: IntoEvalResult<'a, Num>,
pub 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]
T: IntoEvalResult<'a, Num>,
U: IntoEvalResult<'a, Num>,
V: IntoEvalResult<'a, Num>,
W: IntoEvalResult<'a, Num>,
pub 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]
T: IntoEvalResult<'a, Num>,
U: IntoEvalResult<'a, Num>,
V: IntoEvalResult<'a, Num>,
W: IntoEvalResult<'a, Num>,
X: IntoEvalResult<'a, Num>,
pub 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]
T: IntoEvalResult<'a, Num>,
U: IntoEvalResult<'a, Num>,
V: IntoEvalResult<'a, Num>,
W: IntoEvalResult<'a, Num>,
X: IntoEvalResult<'a, Num>,
Y: IntoEvalResult<'a, Num>,
pub 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]
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>,
pub 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]
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>,
pub 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]
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>,
pub 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]
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>,