Trait lovm2_core::code::CallProtocol[][src]

pub trait CallProtocol: Debug {
    fn run(&self, vm: &mut Vm) -> Lovm2Result<()>;

    fn module(&self) -> Option<String> { ... }
}

Generalization for runnable objects

  • lovm2 bytecode (CodeObject)
  • Statically linked functions (standard library is an example, create_callable)
  • Dynamically linked functions (SharedObjectSlot)

Functions implementing this protocol can support variadic arguments by looking at the amount of passed values on stack inside ctx.frame_mut()?.argn

Required methods

fn run(&self, vm: &mut Vm) -> Lovm2Result<()>[src]

Loading content...

Provided methods

fn module(&self) -> Option<String>[src]

Loading content...

Implementors

impl CallProtocol for CodeObject[src]

impl CallProtocol for CodeObjectFunction[src]

impl CallProtocol for SharedObjectSlot[src]

Loading content...