tvm_ffi::function_internal

Trait AsPackedCallable

Source
pub trait AsPackedCallable<I, O> {
    // Required method
    fn call_packed(&self, packed_args: &[AnyView<'_>]) -> Result<Any>;

    // Provided method
    fn type_schema() -> String
       where Self: Sized { ... }
}

Required Methods§

Source

fn call_packed(&self, packed_args: &[AnyView<'_>]) -> Result<Any>

Provided Methods§

Source

fn type_schema() -> String
where Self: Sized,

The type schema of the function, as C++ FunctionInfo::TypeSchema writes it.

A typed function lists its return and parameter types. The default, for a callable whose signature is not known, is the schema of an untyped function, as C++ refl::GlobalDef().def_packed records it.

Implementors§

Source§

impl<Fun, Out> AsPackedCallable<(), Out> for Fun
where Fun: Fn() -> Result<Out> + 'static, Any: From<Out>, Out: TypeSchema,

Source§

impl<Fun, T0, Out> AsPackedCallable<(T0,), Out> for Fun
where Fun: Fn(T0) -> Result<Out> + 'static, Any: From<Out>, Out: TypeSchema, T0: ArgTryFromAnyView,

Source§

impl<Fun, T0, T1, Out> AsPackedCallable<(T0, T1), Out> for Fun
where Fun: Fn(T0, T1) -> Result<Out> + 'static, Any: From<Out>, Out: TypeSchema, T0: ArgTryFromAnyView, T1: ArgTryFromAnyView,

Source§

impl<Fun, T0, T1, T2, Out> AsPackedCallable<(T0, T1, T2), Out> for Fun
where Fun: Fn(T0, T1, T2) -> Result<Out> + 'static, Any: From<Out>, Out: TypeSchema, T0: ArgTryFromAnyView, T1: ArgTryFromAnyView, T2: ArgTryFromAnyView,

Source§

impl<Fun, T0, T1, T2, T3, Out> AsPackedCallable<(T0, T1, T2, T3), Out> for Fun
where Fun: Fn(T0, T1, T2, T3) -> Result<Out> + 'static, Any: From<Out>, Out: TypeSchema, T0: ArgTryFromAnyView, T1: ArgTryFromAnyView, T2: ArgTryFromAnyView, T3: ArgTryFromAnyView,

Source§

impl<Fun, T0, T1, T2, T3, T4, Out> AsPackedCallable<(T0, T1, T2, T3, T4), Out> for Fun
where Fun: Fn(T0, T1, T2, T3, T4) -> Result<Out> + 'static, Any: From<Out>, Out: TypeSchema, T0: ArgTryFromAnyView, T1: ArgTryFromAnyView, T2: ArgTryFromAnyView, T3: ArgTryFromAnyView, T4: ArgTryFromAnyView,

Source§

impl<Fun, T0, T1, T2, T3, T4, T5, Out> AsPackedCallable<(T0, T1, T2, T3, T4, T5), Out> for Fun
where Fun: Fn(T0, T1, T2, T3, T4, T5) -> Result<Out> + 'static, Any: From<Out>, Out: TypeSchema, T0: ArgTryFromAnyView, T1: ArgTryFromAnyView, T2: ArgTryFromAnyView, T3: ArgTryFromAnyView, T4: ArgTryFromAnyView, T5: ArgTryFromAnyView,

Source§

impl<Fun, T0, T1, T2, T3, T4, T5, T6, Out> AsPackedCallable<(T0, T1, T2, T3, T4, T5, T6), Out> for Fun
where Fun: Fn(T0, T1, T2, T3, T4, T5, T6) -> Result<Out> + 'static, Any: From<Out>, Out: TypeSchema, T0: ArgTryFromAnyView, T1: ArgTryFromAnyView, T2: ArgTryFromAnyView, T3: ArgTryFromAnyView, T4: ArgTryFromAnyView, T5: ArgTryFromAnyView, T6: ArgTryFromAnyView,

Source§

impl<Fun, T0, T1, T2, T3, T4, T5, T6, T7, Out> AsPackedCallable<(T0, T1, T2, T3, T4, T5, T6, T7), Out> for Fun
where Fun: Fn(T0, T1, T2, T3, T4, T5, T6, T7) -> Result<Out> + 'static, Any: From<Out>, Out: TypeSchema, T0: ArgTryFromAnyView, T1: ArgTryFromAnyView, T2: ArgTryFromAnyView, T3: ArgTryFromAnyView, T4: ArgTryFromAnyView, T5: ArgTryFromAnyView, T6: ArgTryFromAnyView, T7: ArgTryFromAnyView,