[][src]Trait gluon_vm::api::function::VmFunction

pub trait VmFunction<'vm> {
    fn unpack_and_call(&self, vm: &'vm Thread) -> Status;
}

Trait which abstracts over types which can be called by being pulling the arguments it needs from the virtual machine's stack

Required methods

fn unpack_and_call(&self, vm: &'vm Thread) -> Status

Loading content...

Implementations on Foreign Types

impl<'vm, 's, T: ?Sized> VmFunction<'vm> for &'s T where
    T: VmFunction<'vm>, 
[src]

impl<'vm, F: ?Sized> VmFunction<'vm> for Box<F> where
    F: VmFunction<'vm>, 
[src]

impl<'vm, R> VmFunction<'vm> for fn() -> R where
    R: AsyncPushable<'vm> + VmType + 'vm, 
[src]

impl<'vm, R> VmFunction<'vm> for dyn Fn() -> R where
    R: AsyncPushable<'vm> + VmType + 'vm, 
[src]

impl<'vm, A, R> VmFunction<'vm> for fn(_: A) -> R where
    A: Getable<'vm, 'vm> + 'vm,
    R: AsyncPushable<'vm> + VmType + 'vm, 
[src]

impl<'vm, A, R> VmFunction<'vm> for dyn Fn(A) -> R where
    A: Getable<'vm, 'vm> + 'vm,
    R: AsyncPushable<'vm> + VmType + 'vm, 
[src]

impl<'vm, A, B, R> VmFunction<'vm> for fn(_: A, _: B) -> R where
    A: Getable<'vm, 'vm> + 'vm,
    B: Getable<'vm, 'vm> + 'vm,
    R: AsyncPushable<'vm> + VmType + 'vm, 
[src]

impl<'vm, A, B, R> VmFunction<'vm> for dyn Fn(A, B) -> R where
    A: Getable<'vm, 'vm> + 'vm,
    B: Getable<'vm, 'vm> + 'vm,
    R: AsyncPushable<'vm> + VmType + 'vm, 
[src]

impl<'vm, A, B, C, R> VmFunction<'vm> for fn(_: A, _: B, _: C) -> R where
    A: Getable<'vm, 'vm> + 'vm,
    B: Getable<'vm, 'vm> + 'vm,
    C: Getable<'vm, 'vm> + 'vm,
    R: AsyncPushable<'vm> + VmType + 'vm, 
[src]

impl<'vm, A, B, C, R> VmFunction<'vm> for dyn Fn(A, B, C) -> R where
    A: Getable<'vm, 'vm> + 'vm,
    B: Getable<'vm, 'vm> + 'vm,
    C: Getable<'vm, 'vm> + 'vm,
    R: AsyncPushable<'vm> + VmType + 'vm, 
[src]

impl<'vm, A, B, C, D, R> VmFunction<'vm> for fn(_: A, _: B, _: C, _: D) -> R where
    A: Getable<'vm, 'vm> + 'vm,
    B: Getable<'vm, 'vm> + 'vm,
    C: Getable<'vm, 'vm> + 'vm,
    D: Getable<'vm, 'vm> + 'vm,
    R: AsyncPushable<'vm> + VmType + 'vm, 
[src]

impl<'vm, A, B, C, D, R> VmFunction<'vm> for dyn Fn(A, B, C, D) -> R where
    A: Getable<'vm, 'vm> + 'vm,
    B: Getable<'vm, 'vm> + 'vm,
    C: Getable<'vm, 'vm> + 'vm,
    D: Getable<'vm, 'vm> + 'vm,
    R: AsyncPushable<'vm> + VmType + 'vm, 
[src]

impl<'vm, A, B, C, D, E, R> VmFunction<'vm> for fn(_: A, _: B, _: C, _: D, _: E) -> R where
    A: Getable<'vm, 'vm> + 'vm,
    B: Getable<'vm, 'vm> + 'vm,
    C: Getable<'vm, 'vm> + 'vm,
    D: Getable<'vm, 'vm> + 'vm,
    E: Getable<'vm, 'vm> + 'vm,
    R: AsyncPushable<'vm> + VmType + 'vm, 
[src]

impl<'vm, A, B, C, D, E, R> VmFunction<'vm> for dyn Fn(A, B, C, D, E) -> R where
    A: Getable<'vm, 'vm> + 'vm,
    B: Getable<'vm, 'vm> + 'vm,
    C: Getable<'vm, 'vm> + 'vm,
    D: Getable<'vm, 'vm> + 'vm,
    E: Getable<'vm, 'vm> + 'vm,
    R: AsyncPushable<'vm> + VmType + 'vm, 
[src]

impl<'vm, A, B, C, D, E, F, R> VmFunction<'vm> for fn(_: A, _: B, _: C, _: D, _: E, _: F) -> R where
    A: Getable<'vm, 'vm> + 'vm,
    B: Getable<'vm, 'vm> + 'vm,
    C: Getable<'vm, 'vm> + 'vm,
    D: Getable<'vm, 'vm> + 'vm,
    E: Getable<'vm, 'vm> + 'vm,
    F: Getable<'vm, 'vm> + 'vm,
    R: AsyncPushable<'vm> + VmType + 'vm, 
[src]

impl<'vm, A, B, C, D, E, F, R> VmFunction<'vm> for dyn Fn(A, B, C, D, E, F) -> R where
    A: Getable<'vm, 'vm> + 'vm,
    B: Getable<'vm, 'vm> + 'vm,
    C: Getable<'vm, 'vm> + 'vm,
    D: Getable<'vm, 'vm> + 'vm,
    E: Getable<'vm, 'vm> + 'vm,
    F: Getable<'vm, 'vm> + 'vm,
    R: AsyncPushable<'vm> + VmType + 'vm, 
[src]

impl<'vm, A, B, C, D, E, F, G, R> VmFunction<'vm> for fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G) -> R where
    A: Getable<'vm, 'vm> + 'vm,
    B: Getable<'vm, 'vm> + 'vm,
    C: Getable<'vm, 'vm> + 'vm,
    D: Getable<'vm, 'vm> + 'vm,
    E: Getable<'vm, 'vm> + 'vm,
    F: Getable<'vm, 'vm> + 'vm,
    G: Getable<'vm, 'vm> + 'vm,
    R: AsyncPushable<'vm> + VmType + 'vm, 
[src]

impl<'vm, A, B, C, D, E, F, G, R> VmFunction<'vm> for dyn Fn(A, B, C, D, E, F, G) -> R where
    A: Getable<'vm, 'vm> + 'vm,
    B: Getable<'vm, 'vm> + 'vm,
    C: Getable<'vm, 'vm> + 'vm,
    D: Getable<'vm, 'vm> + 'vm,
    E: Getable<'vm, 'vm> + 'vm,
    F: Getable<'vm, 'vm> + 'vm,
    G: Getable<'vm, 'vm> + 'vm,
    R: AsyncPushable<'vm> + VmType + 'vm, 
[src]

Loading content...

Implementors

Loading content...