pub struct WasmtimeEngineProviderBuilder<'a> { /* private fields */ }
Expand description

Used to build WasmtimeEngineProvider instances.

Implementations§

source§

impl<'a> WasmtimeEngineProviderBuilder<'a>

source

pub fn new() -> Self

Create a builder instance

source

pub fn module_bytes(self, module_bytes: &'a [u8]) -> Self

Provide contents of the WebAssembly module

source

pub fn module(self, module: Module) -> Self

Provide a preloaded wasmtime::Module

Warning: the wasmtime::Engine used to load it must be provided via the WasmtimeEngineProviderBuilder::engine method, otherwise the code will panic at runtime later.

source

pub fn engine(self, engine: Engine) -> Self

Provide a preinitialized wasmtime::Engine

Warning: when used, engine specific options like cache and enable_epoch_interruptions must be pre-configured by the user. WasmtimeEngineProviderBuilder won’t be able to configure them at build time.

source

pub fn wasi_params(self, wasi: WasiParams) -> Self

WASI params

source

pub fn enable_epoch_interruptions( self, wapc_init_deadline: u64, wapc_func_deadline: u64 ) -> Self

Enable Wasmtime epoch-based interruptions and set the deadlines to be enforced

Two kind of deadlines have to be set:

  • wapc_init_deadline: the number of ticks the waPC initialization code can take before the code is interrupted. This is the code usually defined inside of the wapc_init/_start functions
  • wapc_func_deadline: the number of ticks any regular waPC guest function can run before its terminated by the host

Both these limits are expressed using the number of ticks that are allowed before the WebAssembly execution is interrupted. It’s up to the embedder of waPC to define how much time a single tick is granted. This could be 1 second, 10 nanoseconds, or whatever the user prefers.

Warning: when providing an instance of wasmtime::Engine via the WasmtimeEngineProvider::engine helper, ensure the wasmtime::Engine has been created with the epoch_interruption feature enabled

source

pub fn build_pre(&self) -> Result<WasmtimeEngineProviderPre, Error>

Create a WasmtimeEngineProviderPre instance. This instance can then be reused as many time as wanted to quickly instantiate a WasmtimeEngineProvider by using the WasmtimeEngineProviderPre::rehydrate method.

source

pub fn build(&self) -> Result<WasmtimeEngineProvider, Error>

Create a WasmtimeEngineProvider instance

Trait Implementations§

source§

impl<'a> Default for WasmtimeEngineProviderBuilder<'a>

source§

fn default() -> WasmtimeEngineProviderBuilder<'a>

Returns the “default value” for a type. Read more

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> GetSetFdFlags for T

source§

fn get_fd_flags(&self) -> Result<FdFlags, Error>
where T: AsFilelike,

Query the “status” flags for the self file descriptor.
source§

fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>
where T: AsFilelike,

Create a new SetFdFlags value for use with set_fd_flags. Read more
source§

fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>
where T: AsFilelike,

Set the “status” flags for the self file descriptor. Read more
source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Pointee for T

§

type Pointer = u32

source§

fn debug( pointer: <T as Pointee>::Pointer, f: &mut Formatter<'_> ) -> Result<(), Error>

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

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

§

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>,

§

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.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more