pub trait NativeFn<T> {
// Required method
fn evaluate<'a>(
&self,
args: Vec<SpannedValue<'a, T>>,
context: &mut CallContext<'_, 'a, T>,
) -> EvalResult<'a, T>;
}Expand description
Required Methods§
Sourcefn evaluate<'a>(
&self,
args: Vec<SpannedValue<'a, T>>,
context: &mut CallContext<'_, 'a, T>,
) -> EvalResult<'a, T>
fn evaluate<'a>( &self, args: Vec<SpannedValue<'a, T>>, context: &mut CallContext<'_, 'a, T>, ) -> EvalResult<'a, T>
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>,
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>,
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>,
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>,
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>,
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>,
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>,
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>,
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>,
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>,
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>,
impl<T> NativeFn<T> for Compare
impl<T> NativeFn<T> for Array
impl<T> NativeFn<T> for Assert
impl<T> NativeFn<T> for If
impl<T> NativeFn<T> for Push
impl<T, F> NativeFn<T> for Fwhere
F: for<'a> Fn(Vec<SpannedValue<'a, T>>, &mut CallContext<'_, 'a, T>) -> EvalResult<'a, T> + 'static,
impl<T: Clone> NativeFn<T> for Filter
impl<T: Clone> NativeFn<T> for Fold
impl<T: Clone> NativeFn<T> for Loop
impl<T: Clone> NativeFn<T> for Map
impl<T: Clone> NativeFn<T> for Merge
impl<T: Clone> NativeFn<T> for While
impl<T: Display> NativeFn<T> for AssertEq
impl<T: Display> NativeFn<T> for Dbg
Available on crate feature
std only.