[][src]Trait runestick::module::AsyncFunction

pub trait AsyncFunction<Args>: 'static + Copy + Send + Sync {
    type Return;
    fn args() -> usize;
fn fn_call(self, stack: &mut Stack, args: usize) -> Result<(), VmError>; }

Trait used to provide the async_function function.

Associated Types

type Return

The return type of the function.

Loading content...

Required methods

fn args() -> usize

Get the number of arguments.

fn fn_call(self, stack: &mut Stack, args: usize) -> Result<(), VmError>

Perform the vm call.

Loading content...

Implementors

impl<Func, Return> AsyncFunction<()> for Func where
    Func: 'static + Copy + Send + Sync + Fn() -> Return,
    Return: Future,
    Return::Output: ToValue
[src]

type Return = Return

impl<Func, Return, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P> AsyncFunction<(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P)> for Func where
    Func: 'static + Copy + Send + Sync + Fn(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P) -> Return,
    Return: Future,
    Return::Output: ToValue,
    A: 'static + UnsafeFromValue,
    B: 'static + UnsafeFromValue,
    C: 'static + UnsafeFromValue,
    D: 'static + UnsafeFromValue,
    E: 'static + UnsafeFromValue,
    F: 'static + UnsafeFromValue,
    G: 'static + UnsafeFromValue,
    H: 'static + UnsafeFromValue,
    I: 'static + UnsafeFromValue,
    J: 'static + UnsafeFromValue,
    K: 'static + UnsafeFromValue,
    L: 'static + UnsafeFromValue,
    M: 'static + UnsafeFromValue,
    N: 'static + UnsafeFromValue,
    O: 'static + UnsafeFromValue,
    P: 'static + UnsafeFromValue
[src]

type Return = Return

impl<Func, Return, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P> AsyncFunction<(B, C, D, E, F, G, H, I, J, K, L, M, N, O, P)> for Func where
    Func: 'static + Copy + Send + Sync + Fn(B, C, D, E, F, G, H, I, J, K, L, M, N, O, P) -> Return,
    Return: Future,
    Return::Output: ToValue,
    B: 'static + UnsafeFromValue,
    C: 'static + UnsafeFromValue,
    D: 'static + UnsafeFromValue,
    E: 'static + UnsafeFromValue,
    F: 'static + UnsafeFromValue,
    G: 'static + UnsafeFromValue,
    H: 'static + UnsafeFromValue,
    I: 'static + UnsafeFromValue,
    J: 'static + UnsafeFromValue,
    K: 'static + UnsafeFromValue,
    L: 'static + UnsafeFromValue,
    M: 'static + UnsafeFromValue,
    N: 'static + UnsafeFromValue,
    O: 'static + UnsafeFromValue,
    P: 'static + UnsafeFromValue
[src]

type Return = Return

impl<Func, Return, C, D, E, F, G, H, I, J, K, L, M, N, O, P> AsyncFunction<(C, D, E, F, G, H, I, J, K, L, M, N, O, P)> for Func where
    Func: 'static + Copy + Send + Sync + Fn(C, D, E, F, G, H, I, J, K, L, M, N, O, P) -> Return,
    Return: Future,
    Return::Output: ToValue,
    C: 'static + UnsafeFromValue,
    D: 'static + UnsafeFromValue,
    E: 'static + UnsafeFromValue,
    F: 'static + UnsafeFromValue,
    G: 'static + UnsafeFromValue,
    H: 'static + UnsafeFromValue,
    I: 'static + UnsafeFromValue,
    J: 'static + UnsafeFromValue,
    K: 'static + UnsafeFromValue,
    L: 'static + UnsafeFromValue,
    M: 'static + UnsafeFromValue,
    N: 'static + UnsafeFromValue,
    O: 'static + UnsafeFromValue,
    P: 'static + UnsafeFromValue
[src]

type Return = Return

impl<Func, Return, D, E, F, G, H, I, J, K, L, M, N, O, P> AsyncFunction<(D, E, F, G, H, I, J, K, L, M, N, O, P)> for Func where
    Func: 'static + Copy + Send + Sync + Fn(D, E, F, G, H, I, J, K, L, M, N, O, P) -> Return,
    Return: Future,
    Return::Output: ToValue,
    D: 'static + UnsafeFromValue,
    E: 'static + UnsafeFromValue,
    F: 'static + UnsafeFromValue,
    G: 'static + UnsafeFromValue,
    H: 'static + UnsafeFromValue,
    I: 'static + UnsafeFromValue,
    J: 'static + UnsafeFromValue,
    K: 'static + UnsafeFromValue,
    L: 'static + UnsafeFromValue,
    M: 'static + UnsafeFromValue,
    N: 'static + UnsafeFromValue,
    O: 'static + UnsafeFromValue,
    P: 'static + UnsafeFromValue
[src]

type Return = Return

impl<Func, Return, E, F, G, H, I, J, K, L, M, N, O, P> AsyncFunction<(E, F, G, H, I, J, K, L, M, N, O, P)> for Func where
    Func: 'static + Copy + Send + Sync + Fn(E, F, G, H, I, J, K, L, M, N, O, P) -> Return,
    Return: Future,
    Return::Output: ToValue,
    E: 'static + UnsafeFromValue,
    F: 'static + UnsafeFromValue,
    G: 'static + UnsafeFromValue,
    H: 'static + UnsafeFromValue,
    I: 'static + UnsafeFromValue,
    J: 'static + UnsafeFromValue,
    K: 'static + UnsafeFromValue,
    L: 'static + UnsafeFromValue,
    M: 'static + UnsafeFromValue,
    N: 'static + UnsafeFromValue,
    O: 'static + UnsafeFromValue,
    P: 'static + UnsafeFromValue
[src]

type Return = Return

impl<Func, Return, F, G, H, I, J, K, L, M, N, O, P> AsyncFunction<(F, G, H, I, J, K, L, M, N, O, P)> for Func where
    Func: 'static + Copy + Send + Sync + Fn(F, G, H, I, J, K, L, M, N, O, P) -> Return,
    Return: Future,
    Return::Output: ToValue,
    F: 'static + UnsafeFromValue,
    G: 'static + UnsafeFromValue,
    H: 'static + UnsafeFromValue,
    I: 'static + UnsafeFromValue,
    J: 'static + UnsafeFromValue,
    K: 'static + UnsafeFromValue,
    L: 'static + UnsafeFromValue,
    M: 'static + UnsafeFromValue,
    N: 'static + UnsafeFromValue,
    O: 'static + UnsafeFromValue,
    P: 'static + UnsafeFromValue
[src]

type Return = Return

impl<Func, Return, G, H, I, J, K, L, M, N, O, P> AsyncFunction<(G, H, I, J, K, L, M, N, O, P)> for Func where
    Func: 'static + Copy + Send + Sync + Fn(G, H, I, J, K, L, M, N, O, P) -> Return,
    Return: Future,
    Return::Output: ToValue,
    G: 'static + UnsafeFromValue,
    H: 'static + UnsafeFromValue,
    I: 'static + UnsafeFromValue,
    J: 'static + UnsafeFromValue,
    K: 'static + UnsafeFromValue,
    L: 'static + UnsafeFromValue,
    M: 'static + UnsafeFromValue,
    N: 'static + UnsafeFromValue,
    O: 'static + UnsafeFromValue,
    P: 'static + UnsafeFromValue
[src]

type Return = Return

impl<Func, Return, H, I, J, K, L, M, N, O, P> AsyncFunction<(H, I, J, K, L, M, N, O, P)> for Func where
    Func: 'static + Copy + Send + Sync + Fn(H, I, J, K, L, M, N, O, P) -> Return,
    Return: Future,
    Return::Output: ToValue,
    H: 'static + UnsafeFromValue,
    I: 'static + UnsafeFromValue,
    J: 'static + UnsafeFromValue,
    K: 'static + UnsafeFromValue,
    L: 'static + UnsafeFromValue,
    M: 'static + UnsafeFromValue,
    N: 'static + UnsafeFromValue,
    O: 'static + UnsafeFromValue,
    P: 'static + UnsafeFromValue
[src]

type Return = Return

impl<Func, Return, I, J, K, L, M, N, O, P> AsyncFunction<(I, J, K, L, M, N, O, P)> for Func where
    Func: 'static + Copy + Send + Sync + Fn(I, J, K, L, M, N, O, P) -> Return,
    Return: Future,
    Return::Output: ToValue,
    I: 'static + UnsafeFromValue,
    J: 'static + UnsafeFromValue,
    K: 'static + UnsafeFromValue,
    L: 'static + UnsafeFromValue,
    M: 'static + UnsafeFromValue,
    N: 'static + UnsafeFromValue,
    O: 'static + UnsafeFromValue,
    P: 'static + UnsafeFromValue
[src]

type Return = Return

impl<Func, Return, J, K, L, M, N, O, P> AsyncFunction<(J, K, L, M, N, O, P)> for Func where
    Func: 'static + Copy + Send + Sync + Fn(J, K, L, M, N, O, P) -> Return,
    Return: Future,
    Return::Output: ToValue,
    J: 'static + UnsafeFromValue,
    K: 'static + UnsafeFromValue,
    L: 'static + UnsafeFromValue,
    M: 'static + UnsafeFromValue,
    N: 'static + UnsafeFromValue,
    O: 'static + UnsafeFromValue,
    P: 'static + UnsafeFromValue
[src]

type Return = Return

impl<Func, Return, K, L, M, N, O, P> AsyncFunction<(K, L, M, N, O, P)> for Func where
    Func: 'static + Copy + Send + Sync + Fn(K, L, M, N, O, P) -> Return,
    Return: Future,
    Return::Output: ToValue,
    K: 'static + UnsafeFromValue,
    L: 'static + UnsafeFromValue,
    M: 'static + UnsafeFromValue,
    N: 'static + UnsafeFromValue,
    O: 'static + UnsafeFromValue,
    P: 'static + UnsafeFromValue
[src]

type Return = Return

impl<Func, Return, L, M, N, O, P> AsyncFunction<(L, M, N, O, P)> for Func where
    Func: 'static + Copy + Send + Sync + Fn(L, M, N, O, P) -> Return,
    Return: Future,
    Return::Output: ToValue,
    L: 'static + UnsafeFromValue,
    M: 'static + UnsafeFromValue,
    N: 'static + UnsafeFromValue,
    O: 'static + UnsafeFromValue,
    P: 'static + UnsafeFromValue
[src]

type Return = Return

impl<Func, Return, M, N, O, P> AsyncFunction<(M, N, O, P)> for Func where
    Func: 'static + Copy + Send + Sync + Fn(M, N, O, P) -> Return,
    Return: Future,
    Return::Output: ToValue,
    M: 'static + UnsafeFromValue,
    N: 'static + UnsafeFromValue,
    O: 'static + UnsafeFromValue,
    P: 'static + UnsafeFromValue
[src]

type Return = Return

impl<Func, Return, N, O, P> AsyncFunction<(N, O, P)> for Func where
    Func: 'static + Copy + Send + Sync + Fn(N, O, P) -> Return,
    Return: Future,
    Return::Output: ToValue,
    N: 'static + UnsafeFromValue,
    O: 'static + UnsafeFromValue,
    P: 'static + UnsafeFromValue
[src]

type Return = Return

impl<Func, Return, O, P> AsyncFunction<(O, P)> for Func where
    Func: 'static + Copy + Send + Sync + Fn(O, P) -> Return,
    Return: Future,
    Return::Output: ToValue,
    O: 'static + UnsafeFromValue,
    P: 'static + UnsafeFromValue
[src]

type Return = Return

impl<Func, Return, P> AsyncFunction<(P,)> for Func where
    Func: 'static + Copy + Send + Sync + Fn(P) -> Return,
    Return: Future,
    Return::Output: ToValue,
    P: 'static + UnsafeFromValue
[src]

type Return = Return

Loading content...