Trait arithmetic_eval::NativeFn [−][src]
pub trait NativeFn<T> { fn evaluate<'a>(
&self,
args: Vec<SpannedValue<'a, T>>,
context: &mut CallContext<'_, 'a, T>
) -> EvalResult<'a, T>; }
Expand description
Required methods
fn evaluate<'a>(
&self,
args: Vec<SpannedValue<'a, T>>,
context: &mut CallContext<'_, 'a, T>
) -> EvalResult<'a, T>
[src]
fn evaluate<'a>(
&self,
args: Vec<SpannedValue<'a, T>>,
context: &mut CallContext<'_, 'a, T>
) -> EvalResult<'a, T>
[src]Executes the function on the specified arguments.
Trait Implementations
Implementors
impl<Num, F, Ret> NativeFn<Num> for FnWrapper<(Ret,), F> where
F: Fn() -> Ret,
Ret: for<'val> IntoEvalResult<'val, Num>,
[src]
impl<Num, F, Ret> NativeFn<Num> for FnWrapper<(Ret,), F> where
F: Fn() -> Ret,
Ret: for<'val> IntoEvalResult<'val, Num>,
[src]fn evaluate<'a>(
&self,
args: Vec<SpannedValue<'a, Num>>,
context: &mut CallContext<'_, 'a, Num>
) -> EvalResult<'a, Num>
[src]
&self,
args: Vec<SpannedValue<'a, Num>>,
context: &mut CallContext<'_, 'a, Num>
) -> EvalResult<'a, Num>
impl<Num, F, Ret, T> NativeFn<Num> for FnWrapper<(Ret, T), F> where
F: Fn(T) -> Ret,
T: for<'val> TryFromValue<'val, Num>,
Ret: for<'val> IntoEvalResult<'val, Num>,
[src]
impl<Num, F, Ret, T> NativeFn<Num> for FnWrapper<(Ret, T), F> where
F: Fn(T) -> Ret,
T: for<'val> TryFromValue<'val, Num>,
Ret: for<'val> IntoEvalResult<'val, Num>,
[src]fn evaluate<'a>(
&self,
args: Vec<SpannedValue<'a, Num>>,
context: &mut CallContext<'_, 'a, Num>
) -> EvalResult<'a, Num>
[src]
&self,
args: Vec<SpannedValue<'a, Num>>,
context: &mut CallContext<'_, 'a, Num>
) -> EvalResult<'a, Num>
impl<Num, F, Ret, T, U> NativeFn<Num> for FnWrapper<(Ret, T, U), F> where
F: Fn(T, U) -> Ret,
T: for<'val> TryFromValue<'val, Num>,
U: for<'val> TryFromValue<'val, Num>,
Ret: for<'val> IntoEvalResult<'val, Num>,
[src]
impl<Num, F, Ret, T, U> NativeFn<Num> for FnWrapper<(Ret, T, U), F> where
F: Fn(T, U) -> Ret,
T: for<'val> TryFromValue<'val, Num>,
U: for<'val> TryFromValue<'val, Num>,
Ret: for<'val> IntoEvalResult<'val, Num>,
[src]fn evaluate<'a>(
&self,
args: Vec<SpannedValue<'a, Num>>,
context: &mut CallContext<'_, 'a, Num>
) -> EvalResult<'a, Num>
[src]
&self,
args: Vec<SpannedValue<'a, Num>>,
context: &mut CallContext<'_, 'a, Num>
) -> EvalResult<'a, Num>
impl<Num, F, Ret, T, U, V> NativeFn<Num> for FnWrapper<(Ret, T, U, V), F> where
F: Fn(T, U, V) -> Ret,
T: for<'val> TryFromValue<'val, Num>,
U: for<'val> TryFromValue<'val, Num>,
V: for<'val> TryFromValue<'val, Num>,
Ret: for<'val> IntoEvalResult<'val, Num>,
[src]
impl<Num, F, Ret, T, U, V> NativeFn<Num> for FnWrapper<(Ret, T, U, V), F> where
F: Fn(T, U, V) -> Ret,
T: for<'val> TryFromValue<'val, Num>,
U: for<'val> TryFromValue<'val, Num>,
V: for<'val> TryFromValue<'val, Num>,
Ret: for<'val> IntoEvalResult<'val, Num>,
[src]fn evaluate<'a>(
&self,
args: Vec<SpannedValue<'a, Num>>,
context: &mut CallContext<'_, 'a, Num>
) -> EvalResult<'a, Num>
[src]
&self,
args: Vec<SpannedValue<'a, Num>>,
context: &mut CallContext<'_, 'a, Num>
) -> EvalResult<'a, Num>
impl<Num, F, Ret, T, U, V, W> NativeFn<Num> for FnWrapper<(Ret, T, U, V, W), F> where
F: Fn(T, U, V, W) -> Ret,
T: for<'val> TryFromValue<'val, Num>,
U: for<'val> TryFromValue<'val, Num>,
V: for<'val> TryFromValue<'val, Num>,
W: for<'val> TryFromValue<'val, Num>,
Ret: for<'val> IntoEvalResult<'val, Num>,
[src]
impl<Num, F, Ret, T, U, V, W> NativeFn<Num> for FnWrapper<(Ret, T, U, V, W), F> where
F: Fn(T, U, V, W) -> Ret,
T: for<'val> TryFromValue<'val, Num>,
U: for<'val> TryFromValue<'val, Num>,
V: for<'val> TryFromValue<'val, Num>,
W: for<'val> TryFromValue<'val, Num>,
Ret: for<'val> IntoEvalResult<'val, Num>,
[src]fn evaluate<'a>(
&self,
args: Vec<SpannedValue<'a, Num>>,
context: &mut CallContext<'_, 'a, Num>
) -> EvalResult<'a, Num>
[src]
&self,
args: Vec<SpannedValue<'a, Num>>,
context: &mut CallContext<'_, 'a, Num>
) -> EvalResult<'a, Num>
impl<Num, F, Ret, T, U, V, W, X> NativeFn<Num> for FnWrapper<(Ret, T, U, V, W, X), F> where
F: Fn(T, U, V, W, X) -> Ret,
T: for<'val> TryFromValue<'val, Num>,
U: for<'val> TryFromValue<'val, Num>,
V: for<'val> TryFromValue<'val, Num>,
W: for<'val> TryFromValue<'val, Num>,
X: for<'val> TryFromValue<'val, Num>,
Ret: for<'val> IntoEvalResult<'val, Num>,
[src]
impl<Num, F, Ret, T, U, V, W, X> NativeFn<Num> for FnWrapper<(Ret, T, U, V, W, X), F> where
F: Fn(T, U, V, W, X) -> Ret,
T: for<'val> TryFromValue<'val, Num>,
U: for<'val> TryFromValue<'val, Num>,
V: for<'val> TryFromValue<'val, Num>,
W: for<'val> TryFromValue<'val, Num>,
X: for<'val> TryFromValue<'val, Num>,
Ret: for<'val> IntoEvalResult<'val, Num>,
[src]fn evaluate<'a>(
&self,
args: Vec<SpannedValue<'a, Num>>,
context: &mut CallContext<'_, 'a, Num>
) -> EvalResult<'a, Num>
[src]
&self,
args: Vec<SpannedValue<'a, Num>>,
context: &mut CallContext<'_, 'a, Num>
) -> EvalResult<'a, Num>
impl<Num, F, Ret, T, U, V, W, X, Y> NativeFn<Num> for FnWrapper<(Ret, T, U, V, W, X, Y), F> where
F: Fn(T, U, V, W, X, Y) -> Ret,
T: for<'val> TryFromValue<'val, Num>,
U: for<'val> TryFromValue<'val, Num>,
V: for<'val> TryFromValue<'val, Num>,
W: for<'val> TryFromValue<'val, Num>,
X: for<'val> TryFromValue<'val, Num>,
Y: for<'val> TryFromValue<'val, Num>,
Ret: for<'val> IntoEvalResult<'val, Num>,
[src]
impl<Num, F, Ret, T, U, V, W, X, Y> NativeFn<Num> for FnWrapper<(Ret, T, U, V, W, X, Y), F> where
F: Fn(T, U, V, W, X, Y) -> Ret,
T: for<'val> TryFromValue<'val, Num>,
U: for<'val> TryFromValue<'val, Num>,
V: for<'val> TryFromValue<'val, Num>,
W: for<'val> TryFromValue<'val, Num>,
X: for<'val> TryFromValue<'val, Num>,
Y: for<'val> TryFromValue<'val, Num>,
Ret: for<'val> IntoEvalResult<'val, Num>,
[src]fn evaluate<'a>(
&self,
args: Vec<SpannedValue<'a, Num>>,
context: &mut CallContext<'_, 'a, Num>
) -> EvalResult<'a, Num>
[src]
&self,
args: Vec<SpannedValue<'a, Num>>,
context: &mut CallContext<'_, 'a, Num>
) -> EvalResult<'a, Num>
impl<Num, F, Ret, T, U, V, W, X, Y, Z> NativeFn<Num> for FnWrapper<(Ret, T, U, V, W, X, Y, Z), F> where
F: Fn(T, U, V, W, X, Y, Z) -> Ret,
T: for<'val> TryFromValue<'val, Num>,
U: for<'val> TryFromValue<'val, Num>,
V: for<'val> TryFromValue<'val, Num>,
W: for<'val> TryFromValue<'val, Num>,
X: for<'val> TryFromValue<'val, Num>,
Y: for<'val> TryFromValue<'val, Num>,
Z: for<'val> TryFromValue<'val, Num>,
Ret: for<'val> IntoEvalResult<'val, Num>,
[src]
impl<Num, F, Ret, T, U, V, W, X, Y, Z> NativeFn<Num> for FnWrapper<(Ret, T, U, V, W, X, Y, Z), F> where
F: Fn(T, U, V, W, X, Y, Z) -> Ret,
T: for<'val> TryFromValue<'val, Num>,
U: for<'val> TryFromValue<'val, Num>,
V: for<'val> TryFromValue<'val, Num>,
W: for<'val> TryFromValue<'val, Num>,
X: for<'val> TryFromValue<'val, Num>,
Y: for<'val> TryFromValue<'val, Num>,
Z: for<'val> TryFromValue<'val, Num>,
Ret: for<'val> IntoEvalResult<'val, Num>,
[src]fn evaluate<'a>(
&self,
args: Vec<SpannedValue<'a, Num>>,
context: &mut CallContext<'_, 'a, Num>
) -> EvalResult<'a, Num>
[src]
&self,
args: Vec<SpannedValue<'a, Num>>,
context: &mut CallContext<'_, 'a, Num>
) -> EvalResult<'a, Num>
impl<Num, F, Ret, T, U, V, W, X, Y, Z, A> NativeFn<Num> for FnWrapper<(Ret, T, U, V, W, X, Y, Z, A), F> where
F: Fn(T, U, V, W, X, Y, Z, A) -> Ret,
T: for<'val> TryFromValue<'val, Num>,
U: for<'val> TryFromValue<'val, Num>,
V: for<'val> TryFromValue<'val, Num>,
W: for<'val> TryFromValue<'val, Num>,
X: for<'val> TryFromValue<'val, Num>,
Y: for<'val> TryFromValue<'val, Num>,
Z: for<'val> TryFromValue<'val, Num>,
A: for<'val> TryFromValue<'val, Num>,
Ret: for<'val> IntoEvalResult<'val, Num>,
[src]
impl<Num, F, Ret, T, U, V, W, X, Y, Z, A> NativeFn<Num> for FnWrapper<(Ret, T, U, V, W, X, Y, Z, A), F> where
F: Fn(T, U, V, W, X, Y, Z, A) -> Ret,
T: for<'val> TryFromValue<'val, Num>,
U: for<'val> TryFromValue<'val, Num>,
V: for<'val> TryFromValue<'val, Num>,
W: for<'val> TryFromValue<'val, Num>,
X: for<'val> TryFromValue<'val, Num>,
Y: for<'val> TryFromValue<'val, Num>,
Z: for<'val> TryFromValue<'val, Num>,
A: for<'val> TryFromValue<'val, Num>,
Ret: for<'val> IntoEvalResult<'val, Num>,
[src]fn evaluate<'a>(
&self,
args: Vec<SpannedValue<'a, Num>>,
context: &mut CallContext<'_, 'a, Num>
) -> EvalResult<'a, Num>
[src]
&self,
args: Vec<SpannedValue<'a, Num>>,
context: &mut CallContext<'_, 'a, Num>
) -> EvalResult<'a, Num>
impl<Num, F, Ret, T, U, V, W, X, Y, Z, A, B> NativeFn<Num> for FnWrapper<(Ret, T, U, V, W, X, Y, Z, A, B), F> where
F: Fn(T, U, V, W, X, Y, Z, A, B) -> Ret,
T: for<'val> TryFromValue<'val, Num>,
U: for<'val> TryFromValue<'val, Num>,
V: for<'val> TryFromValue<'val, Num>,
W: for<'val> TryFromValue<'val, Num>,
X: for<'val> TryFromValue<'val, Num>,
Y: for<'val> TryFromValue<'val, Num>,
Z: for<'val> TryFromValue<'val, Num>,
A: for<'val> TryFromValue<'val, Num>,
B: for<'val> TryFromValue<'val, Num>,
Ret: for<'val> IntoEvalResult<'val, Num>,
[src]
impl<Num, F, Ret, T, U, V, W, X, Y, Z, A, B> NativeFn<Num> for FnWrapper<(Ret, T, U, V, W, X, Y, Z, A, B), F> where
F: Fn(T, U, V, W, X, Y, Z, A, B) -> Ret,
T: for<'val> TryFromValue<'val, Num>,
U: for<'val> TryFromValue<'val, Num>,
V: for<'val> TryFromValue<'val, Num>,
W: for<'val> TryFromValue<'val, Num>,
X: for<'val> TryFromValue<'val, Num>,
Y: for<'val> TryFromValue<'val, Num>,
Z: for<'val> TryFromValue<'val, Num>,
A: for<'val> TryFromValue<'val, Num>,
B: for<'val> TryFromValue<'val, Num>,
Ret: for<'val> IntoEvalResult<'val, Num>,
[src]fn evaluate<'a>(
&self,
args: Vec<SpannedValue<'a, Num>>,
context: &mut CallContext<'_, 'a, Num>
) -> EvalResult<'a, Num>
[src]
&self,
args: Vec<SpannedValue<'a, Num>>,
context: &mut CallContext<'_, 'a, Num>
) -> EvalResult<'a, Num>
impl<Num, F, Ret, T, U, V, W, X, Y, Z, A, B, C> NativeFn<Num> for FnWrapper<(Ret, T, U, V, W, X, Y, Z, A, B, C), F> where
F: Fn(T, U, V, W, X, Y, Z, A, B, C) -> Ret,
T: for<'val> TryFromValue<'val, Num>,
U: for<'val> TryFromValue<'val, Num>,
V: for<'val> TryFromValue<'val, Num>,
W: for<'val> TryFromValue<'val, Num>,
X: for<'val> TryFromValue<'val, Num>,
Y: for<'val> TryFromValue<'val, Num>,
Z: for<'val> TryFromValue<'val, Num>,
A: for<'val> TryFromValue<'val, Num>,
B: for<'val> TryFromValue<'val, Num>,
C: for<'val> TryFromValue<'val, Num>,
Ret: for<'val> IntoEvalResult<'val, Num>,
[src]
impl<Num, F, Ret, T, U, V, W, X, Y, Z, A, B, C> NativeFn<Num> for FnWrapper<(Ret, T, U, V, W, X, Y, Z, A, B, C), F> where
F: Fn(T, U, V, W, X, Y, Z, A, B, C) -> Ret,
T: for<'val> TryFromValue<'val, Num>,
U: for<'val> TryFromValue<'val, Num>,
V: for<'val> TryFromValue<'val, Num>,
W: for<'val> TryFromValue<'val, Num>,
X: for<'val> TryFromValue<'val, Num>,
Y: for<'val> TryFromValue<'val, Num>,
Z: for<'val> TryFromValue<'val, Num>,
A: for<'val> TryFromValue<'val, Num>,
B: for<'val> TryFromValue<'val, Num>,
C: for<'val> TryFromValue<'val, Num>,
Ret: for<'val> IntoEvalResult<'val, Num>,
[src]fn evaluate<'a>(
&self,
args: Vec<SpannedValue<'a, Num>>,
context: &mut CallContext<'_, 'a, Num>
) -> EvalResult<'a, Num>
[src]
&self,
args: Vec<SpannedValue<'a, Num>>,
context: &mut CallContext<'_, 'a, Num>
) -> EvalResult<'a, Num>
impl<T> NativeFn<T> for Compare
[src]
impl<T> NativeFn<T> for Compare
[src]fn evaluate<'a>(
&self,
args: Vec<SpannedValue<'a, T>>,
ctx: &mut CallContext<'_, 'a, T>
) -> EvalResult<'a, T>
[src]
&self,
args: Vec<SpannedValue<'a, T>>,
ctx: &mut CallContext<'_, 'a, T>
) -> EvalResult<'a, T>
impl<T> NativeFn<T> for Array where
T: Clone + Zero + One,
[src]
impl<T> NativeFn<T> for Array where
T: Clone + Zero + One,
[src]fn evaluate<'a>(
&self,
args: Vec<SpannedValue<'a, T>>,
ctx: &mut CallContext<'_, 'a, T>
) -> EvalResult<'a, T>
[src]
&self,
args: Vec<SpannedValue<'a, T>>,
ctx: &mut CallContext<'_, 'a, T>
) -> EvalResult<'a, T>
impl<T> NativeFn<T> for Assert
[src]
impl<T> NativeFn<T> for Assert
[src]fn evaluate<'a>(
&self,
args: Vec<SpannedValue<'a, T>>,
ctx: &mut CallContext<'_, 'a, T>
) -> EvalResult<'a, T>
[src]
&self,
args: Vec<SpannedValue<'a, T>>,
ctx: &mut CallContext<'_, 'a, T>
) -> EvalResult<'a, T>
impl<T> NativeFn<T> for If
[src]
impl<T> NativeFn<T> for If
[src]fn evaluate<'a>(
&self,
args: Vec<SpannedValue<'a, T>>,
ctx: &mut CallContext<'_, 'a, T>
) -> EvalResult<'a, T>
[src]
&self,
args: Vec<SpannedValue<'a, T>>,
ctx: &mut CallContext<'_, 'a, T>
) -> EvalResult<'a, T>
impl<T> NativeFn<T> for Push
[src]
impl<T> NativeFn<T> for Push
[src]fn evaluate<'a>(
&self,
args: Vec<SpannedValue<'a, T>>,
ctx: &mut CallContext<'_, 'a, T>
) -> EvalResult<'a, T>
[src]
&self,
args: Vec<SpannedValue<'a, T>>,
ctx: &mut CallContext<'_, 'a, T>
) -> EvalResult<'a, T>
impl<T, F: 'static> NativeFn<T> for F where
F: for<'a> Fn(Vec<SpannedValue<'a, T>>, &mut CallContext<'_, 'a, T>) -> EvalResult<'a, T>,
[src]
impl<T, F: 'static> NativeFn<T> for F where
F: for<'a> Fn(Vec<SpannedValue<'a, T>>, &mut CallContext<'_, 'a, T>) -> EvalResult<'a, T>,
[src]fn evaluate<'a>(
&self,
args: Vec<SpannedValue<'a, T>>,
context: &mut CallContext<'_, 'a, T>
) -> EvalResult<'a, T>
[src]
&self,
args: Vec<SpannedValue<'a, T>>,
context: &mut CallContext<'_, 'a, T>
) -> EvalResult<'a, T>
impl<T: Clone> NativeFn<T> for Filter
[src]
impl<T: Clone> NativeFn<T> for Filter
[src]fn evaluate<'a>(
&self,
args: Vec<SpannedValue<'a, T>>,
ctx: &mut CallContext<'_, 'a, T>
) -> EvalResult<'a, T>
[src]
&self,
args: Vec<SpannedValue<'a, T>>,
ctx: &mut CallContext<'_, 'a, T>
) -> EvalResult<'a, T>
impl<T: Clone> NativeFn<T> for Fold
[src]
impl<T: Clone> NativeFn<T> for Fold
[src]fn evaluate<'a>(
&self,
args: Vec<SpannedValue<'a, T>>,
ctx: &mut CallContext<'_, 'a, T>
) -> EvalResult<'a, T>
[src]
&self,
args: Vec<SpannedValue<'a, T>>,
ctx: &mut CallContext<'_, 'a, T>
) -> EvalResult<'a, T>
impl<T: Clone> NativeFn<T> for Loop
[src]
impl<T: Clone> NativeFn<T> for Loop
[src]fn evaluate<'a>(
&self,
args: Vec<SpannedValue<'a, T>>,
ctx: &mut CallContext<'_, 'a, T>
) -> EvalResult<'a, T>
[src]
&self,
args: Vec<SpannedValue<'a, T>>,
ctx: &mut CallContext<'_, 'a, T>
) -> EvalResult<'a, T>
impl<T: Clone> NativeFn<T> for Map
[src]
impl<T: Clone> NativeFn<T> for Map
[src]fn evaluate<'a>(
&self,
args: Vec<SpannedValue<'a, T>>,
ctx: &mut CallContext<'_, 'a, T>
) -> EvalResult<'a, T>
[src]
&self,
args: Vec<SpannedValue<'a, T>>,
ctx: &mut CallContext<'_, 'a, T>
) -> EvalResult<'a, T>
impl<T: Clone> NativeFn<T> for Merge
[src]
impl<T: Clone> NativeFn<T> for Merge
[src]fn evaluate<'a>(
&self,
args: Vec<SpannedValue<'a, T>>,
ctx: &mut CallContext<'_, 'a, T>
) -> EvalResult<'a, T>
[src]
&self,
args: Vec<SpannedValue<'a, T>>,
ctx: &mut CallContext<'_, 'a, T>
) -> EvalResult<'a, T>
impl<T: Clone> NativeFn<T> for While
[src]
impl<T: Clone> NativeFn<T> for While
[src]fn evaluate<'a>(
&self,
args: Vec<SpannedValue<'a, T>>,
ctx: &mut CallContext<'_, 'a, T>
) -> EvalResult<'a, T>
[src]
&self,
args: Vec<SpannedValue<'a, T>>,
ctx: &mut CallContext<'_, 'a, T>
) -> EvalResult<'a, T>
impl<T: Display> NativeFn<T> for AssertEq
[src]
impl<T: Display> NativeFn<T> for AssertEq
[src]fn evaluate<'a>(
&self,
args: Vec<SpannedValue<'a, T>>,
ctx: &mut CallContext<'_, 'a, T>
) -> EvalResult<'a, T>
[src]
&self,
args: Vec<SpannedValue<'a, T>>,
ctx: &mut CallContext<'_, 'a, T>
) -> EvalResult<'a, T>
impl<T: Display> NativeFn<T> for Dbg
[src]
impl<T: Display> NativeFn<T> for Dbg
[src]fn evaluate<'a>(
&self,
args: Vec<SpannedValue<'a, T>>,
ctx: &mut CallContext<'_, 'a, T>
) -> EvalResult<'a, T>
[src]
&self,
args: Vec<SpannedValue<'a, T>>,
ctx: &mut CallContext<'_, 'a, T>
) -> EvalResult<'a, T>
impl<T: FromPrimitive> NativeFn<T> for Len
[src]
impl<T: FromPrimitive> NativeFn<T> for Len
[src]fn evaluate<'a>(
&self,
args: Vec<SpannedValue<'a, T>>,
ctx: &mut CallContext<'_, 'a, T>
) -> EvalResult<'a, T>
[src]
&self,
args: Vec<SpannedValue<'a, T>>,
ctx: &mut CallContext<'_, 'a, T>
) -> EvalResult<'a, T>