DynFunction

Trait DynFunction 

Source
pub trait DynFunction<A, T>
where T: TypeSet,
{ // Required method fn call( &self, ctx: &mut T, args: &[TypedValue<T>], ) -> Result<TypedValue<T>, FunctionCallError>; }
Expand description

Functions and closures that implement this trait can be registered as functions to be called by expressions.

Required Methods§

Source

fn call( &self, ctx: &mut T, args: &[TypedValue<T>], ) -> Result<TypedValue<T>, FunctionCallError>

Call the function with the specified arguments.

§Errors

This functions returns an error if:

  • The number of arguments is incorrect
  • The types of arguments are incorrect

Implementors§

Source§

impl<R, F, T> DynFunction<(), T> for F
where F: Fn() -> R + for<'t> Fn() -> R, R: LoadStore<T>, T: TypeSet,

Source§

impl<V1, R, F, T> DynFunction<(V1,), T> for F
where V1: LoadStore<T>, F: Fn(V1) -> R + for<'t> Fn(V1::Output<'t>) -> R, R: LoadStore<T>, T: TypeSet,

Source§

impl<V1, V2, R, F, T> DynFunction<(V1, V2), T> for F
where V1: LoadStore<T>, V2: LoadStore<T>, F: Fn(V1, V2) -> R + for<'t> Fn(V1::Output<'t>, V2::Output<'t>) -> R, R: LoadStore<T>, T: TypeSet,

Source§

impl<V1, V2, V3, R, F, T> DynFunction<(V1, V2, V3), T> for F
where V1: LoadStore<T>, V2: LoadStore<T>, V3: LoadStore<T>, F: Fn(V1, V2, V3) -> R + for<'t> Fn(V1::Output<'t>, V2::Output<'t>, V3::Output<'t>) -> R, R: LoadStore<T>, T: TypeSet,

Source§

impl<V1, V2, V3, V4, R, F, T> DynFunction<(V1, V2, V3, V4), T> for F
where V1: LoadStore<T>, V2: LoadStore<T>, V3: LoadStore<T>, V4: LoadStore<T>, F: Fn(V1, V2, V3, V4) -> R + for<'t> Fn(V1::Output<'t>, V2::Output<'t>, V3::Output<'t>, V4::Output<'t>) -> R, R: LoadStore<T>, T: TypeSet,

Source§

impl<V1, V2, V3, V4, V5, R, F, T> DynFunction<(V1, V2, V3, V4, V5), T> for F
where V1: LoadStore<T>, V2: LoadStore<T>, V3: LoadStore<T>, V4: LoadStore<T>, V5: LoadStore<T>, F: Fn(V1, V2, V3, V4, V5) -> R + for<'t> Fn(V1::Output<'t>, V2::Output<'t>, V3::Output<'t>, V4::Output<'t>, V5::Output<'t>) -> R, R: LoadStore<T>, T: TypeSet,

Source§

impl<V1, V2, V3, V4, V5, V6, R, F, T> DynFunction<(V1, V2, V3, V4, V5, V6), T> for F
where V1: LoadStore<T>, V2: LoadStore<T>, V3: LoadStore<T>, V4: LoadStore<T>, V5: LoadStore<T>, V6: LoadStore<T>, F: Fn(V1, V2, V3, V4, V5, V6) -> R + for<'t> Fn(V1::Output<'t>, V2::Output<'t>, V3::Output<'t>, V4::Output<'t>, V5::Output<'t>, V6::Output<'t>) -> R, R: LoadStore<T>, T: TypeSet,

Source§

impl<V1, V2, V3, V4, V5, V6, V7, R, F, T> DynFunction<(V1, V2, V3, V4, V5, V6, V7), T> for F
where V1: LoadStore<T>, V2: LoadStore<T>, V3: LoadStore<T>, V4: LoadStore<T>, V5: LoadStore<T>, V6: LoadStore<T>, V7: LoadStore<T>, F: Fn(V1, V2, V3, V4, V5, V6, V7) -> R + for<'t> Fn(V1::Output<'t>, V2::Output<'t>, V3::Output<'t>, V4::Output<'t>, V5::Output<'t>, V6::Output<'t>, V7::Output<'t>) -> R, R: LoadStore<T>, T: TypeSet,

Source§

impl<V1, V2, V3, V4, V5, V6, V7, V8, R, F, T> DynFunction<(V1, V2, V3, V4, V5, V6, V7, V8), T> for F
where V1: LoadStore<T>, V2: LoadStore<T>, V3: LoadStore<T>, V4: LoadStore<T>, V5: LoadStore<T>, V6: LoadStore<T>, V7: LoadStore<T>, V8: LoadStore<T>, F: Fn(V1, V2, V3, V4, V5, V6, V7, V8) -> R + for<'t> Fn(V1::Output<'t>, V2::Output<'t>, V3::Output<'t>, V4::Output<'t>, V5::Output<'t>, V6::Output<'t>, V7::Output<'t>, V8::Output<'t>) -> R, R: LoadStore<T>, T: TypeSet,

Source§

impl<V1, V2, V3, V4, V5, V6, V7, V8, V9, R, F, T> DynFunction<(V1, V2, V3, V4, V5, V6, V7, V8, V9), T> for F
where V1: LoadStore<T>, V2: LoadStore<T>, V3: LoadStore<T>, V4: LoadStore<T>, V5: LoadStore<T>, V6: LoadStore<T>, V7: LoadStore<T>, V8: LoadStore<T>, V9: LoadStore<T>, F: Fn(V1, V2, V3, V4, V5, V6, V7, V8, V9) -> R + for<'t> Fn(V1::Output<'t>, V2::Output<'t>, V3::Output<'t>, V4::Output<'t>, V5::Output<'t>, V6::Output<'t>, V7::Output<'t>, V8::Output<'t>, V9::Output<'t>) -> R, R: LoadStore<T>, T: TypeSet,

Source§

impl<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, R, F, T> DynFunction<(V1, V2, V3, V4, V5, V6, V7, V8, V9, V10), T> for F
where V1: LoadStore<T>, V2: LoadStore<T>, V3: LoadStore<T>, V4: LoadStore<T>, V5: LoadStore<T>, V6: LoadStore<T>, V7: LoadStore<T>, V8: LoadStore<T>, V9: LoadStore<T>, V10: LoadStore<T>, F: Fn(V1, V2, V3, V4, V5, V6, V7, V8, V9, V10) -> R + for<'t> Fn(V1::Output<'t>, V2::Output<'t>, V3::Output<'t>, V4::Output<'t>, V5::Output<'t>, V6::Output<'t>, V7::Output<'t>, V8::Output<'t>, V9::Output<'t>, V10::Output<'t>) -> R, R: LoadStore<T>, T: TypeSet,