Trait runestick::module::Function[][src]

pub trait Function<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 function function.

Associated Types

type Return[src]

The return type of the function.

Loading content...

Required methods

fn args() -> usize[src]

Get the number of arguments.

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

Perform the vm call.

Loading content...

Implementors

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

type Return = Return

impl<Func, Return, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P> Function<(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: ToValue,
    A: UnsafeFromValue,
    B: UnsafeFromValue,
    C: UnsafeFromValue,
    D: UnsafeFromValue,
    E: UnsafeFromValue,
    F: UnsafeFromValue,
    G: UnsafeFromValue,
    H: UnsafeFromValue,
    I: UnsafeFromValue,
    J: UnsafeFromValue,
    K: UnsafeFromValue,
    L: UnsafeFromValue,
    M: UnsafeFromValue,
    N: UnsafeFromValue,
    O: UnsafeFromValue,
    P: UnsafeFromValue
[src]

type Return = Return

impl<Func, Return, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P> Function<(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: ToValue,
    B: UnsafeFromValue,
    C: UnsafeFromValue,
    D: UnsafeFromValue,
    E: UnsafeFromValue,
    F: UnsafeFromValue,
    G: UnsafeFromValue,
    H: UnsafeFromValue,
    I: UnsafeFromValue,
    J: UnsafeFromValue,
    K: UnsafeFromValue,
    L: UnsafeFromValue,
    M: UnsafeFromValue,
    N: UnsafeFromValue,
    O: UnsafeFromValue,
    P: UnsafeFromValue
[src]

type Return = Return

impl<Func, Return, C, D, E, F, G, H, I, J, K, L, M, N, O, P> Function<(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: ToValue,
    C: UnsafeFromValue,
    D: UnsafeFromValue,
    E: UnsafeFromValue,
    F: UnsafeFromValue,
    G: UnsafeFromValue,
    H: UnsafeFromValue,
    I: UnsafeFromValue,
    J: UnsafeFromValue,
    K: UnsafeFromValue,
    L: UnsafeFromValue,
    M: UnsafeFromValue,
    N: UnsafeFromValue,
    O: UnsafeFromValue,
    P: UnsafeFromValue
[src]

type Return = Return

impl<Func, Return, D, E, F, G, H, I, J, K, L, M, N, O, P> Function<(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: ToValue,
    D: UnsafeFromValue,
    E: UnsafeFromValue,
    F: UnsafeFromValue,
    G: UnsafeFromValue,
    H: UnsafeFromValue,
    I: UnsafeFromValue,
    J: UnsafeFromValue,
    K: UnsafeFromValue,
    L: UnsafeFromValue,
    M: UnsafeFromValue,
    N: UnsafeFromValue,
    O: UnsafeFromValue,
    P: UnsafeFromValue
[src]

type Return = Return

impl<Func, Return, E, F, G, H, I, J, K, L, M, N, O, P> Function<(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: ToValue,
    E: UnsafeFromValue,
    F: UnsafeFromValue,
    G: UnsafeFromValue,
    H: UnsafeFromValue,
    I: UnsafeFromValue,
    J: UnsafeFromValue,
    K: UnsafeFromValue,
    L: UnsafeFromValue,
    M: UnsafeFromValue,
    N: UnsafeFromValue,
    O: UnsafeFromValue,
    P: UnsafeFromValue
[src]

type Return = Return

impl<Func, Return, F, G, H, I, J, K, L, M, N, O, P> Function<(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: ToValue,
    F: UnsafeFromValue,
    G: UnsafeFromValue,
    H: UnsafeFromValue,
    I: UnsafeFromValue,
    J: UnsafeFromValue,
    K: UnsafeFromValue,
    L: UnsafeFromValue,
    M: UnsafeFromValue,
    N: UnsafeFromValue,
    O: UnsafeFromValue,
    P: UnsafeFromValue
[src]

type Return = Return

impl<Func, Return, G, H, I, J, K, L, M, N, O, P> Function<(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: ToValue,
    G: UnsafeFromValue,
    H: UnsafeFromValue,
    I: UnsafeFromValue,
    J: UnsafeFromValue,
    K: UnsafeFromValue,
    L: UnsafeFromValue,
    M: UnsafeFromValue,
    N: UnsafeFromValue,
    O: UnsafeFromValue,
    P: UnsafeFromValue
[src]

type Return = Return

impl<Func, Return, H, I, J, K, L, M, N, O, P> Function<(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: ToValue,
    H: UnsafeFromValue,
    I: UnsafeFromValue,
    J: UnsafeFromValue,
    K: UnsafeFromValue,
    L: UnsafeFromValue,
    M: UnsafeFromValue,
    N: UnsafeFromValue,
    O: UnsafeFromValue,
    P: UnsafeFromValue
[src]

type Return = Return

impl<Func, Return, I, J, K, L, M, N, O, P> Function<(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: ToValue,
    I: UnsafeFromValue,
    J: UnsafeFromValue,
    K: UnsafeFromValue,
    L: UnsafeFromValue,
    M: UnsafeFromValue,
    N: UnsafeFromValue,
    O: UnsafeFromValue,
    P: UnsafeFromValue
[src]

type Return = Return

impl<Func, Return, J, K, L, M, N, O, P> Function<(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: ToValue,
    J: UnsafeFromValue,
    K: UnsafeFromValue,
    L: UnsafeFromValue,
    M: UnsafeFromValue,
    N: UnsafeFromValue,
    O: UnsafeFromValue,
    P: UnsafeFromValue
[src]

type Return = Return

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

type Return = Return

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

type Return = Return

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

type Return = Return

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

type Return = Return

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

type Return = Return

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

type Return = Return

Loading content...