Trait muse_reactor::NewVm

source ·
pub trait NewVm<Work>:
    Send
    + Sync
    + 'static {
    // Required method
    fn new_vm(
        &self,
        guard: &mut CollectionGuard<'_>,
        reactor: &ReactorHandle<Work>,
    ) -> Result<Vm, PrepareError>;

    // Provided methods
    fn compile_and_prepare(
        &self,
        source: &str,
        guard: &mut CollectionGuard<'_>,
        reactor: &ReactorHandle<Work>,
    ) -> Result<Vm, PrepareError> { ... }
    fn prepare_call(
        &self,
        code: Code,
        args: Vec<RootedValue>,
        guard: &mut CollectionGuard<'_>,
        reactor: &ReactorHandle<Work>,
    ) -> Result<Vm, PrepareError> { ... }
}
Expand description

Creates new [Vm]s for a Reactor.

Required Methods§

source

fn new_vm( &self, guard: &mut CollectionGuard<'_>, reactor: &ReactorHandle<Work>, ) -> Result<Vm, PrepareError>

Returns a newly initialized virtual machine.

Provided Methods§

source

fn compile_and_prepare( &self, source: &str, guard: &mut CollectionGuard<'_>, reactor: &ReactorHandle<Work>, ) -> Result<Vm, PrepareError>

Returns a virtual machine that is prepared to execute source.

source

fn prepare_call( &self, code: Code, args: Vec<RootedValue>, guard: &mut CollectionGuard<'_>, reactor: &ReactorHandle<Work>, ) -> Result<Vm, PrepareError>

Returns a virtual machine that is prepared to execute code with args.

Implementations on Foreign Types§

source§

impl<Work: WorkUnit> NewVm<Work> for ()

source§

fn new_vm( &self, guard: &mut CollectionGuard<'_>, reactor: &ReactorHandle<Work>, ) -> Result<Vm, PrepareError>

Implementors§

source§

impl<F, Work> NewVm<Work> for F
where F: Fn(&mut CollectionGuard<'_>, &ReactorHandle<Work>) -> Result<Vm, PrepareError> + Send + Sync + 'static, Work: WorkUnit,