Struct Manager

Source
pub struct Manager { /* private fields */ }
Expand description

The Virtual Machine Manager handles WASM runtime lifecycle and module execution.

This struct encapsulates the WASM runtime and provides high-level operations for executing WASM modules with proper I/O redirection and resource management.

Implementations§

Source§

impl Manager

Source

pub fn new(registrables: &[&dyn Registrable]) -> Result<Self>

Create a new Virtual Machine Manager with the given registrable host functions.

This function initializes the WASM runtime, registers all provided host functions, and pre-loads any modules that the registrables provide.

§Arguments
  • Registrables - Array of objects implementing host functions and optionally providing WASM modules
§Returns

A new Manager instance or an error if initialization fails

§Errors

Returns an error if:

  • Runtime initialization fails
  • Host function registration fails
  • Module loading fails
Source

pub async fn execute( &'static self, buffer: Vec<u8>, stack_size: usize, standard_in: UniqueFileIdentifier, standard_out: UniqueFileIdentifier, standard_error: UniqueFileIdentifier, ) -> Result<Vec<WasmValue>>

Execute a WASM module with the specified I/O configuration.

This is the main entry point for executing WASM modules. It creates a new module instance, sets up the execution environment with proper I/O redirection, and calls the module’s main function.

§Arguments
  • Buffer - The WASM module bytecode to execute
  • Stack_size - Stack size in bytes for the WASM instance
  • Standard_in - File identifier for standard input
  • Standard_out - File identifier for standard output
  • Standard_error - File identifier for standard error
§Returns

The return values from the WASM module’s main function

§Errors

Returns an error if module loading, instantiation, or execution fails

Trait Implementations§

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.