pub struct WasmtimeEngine { /* private fields */ }
Expand description
A wrapper for using Wasmtime as a DiffEngine
.
Implementations§
Source§impl WasmtimeEngine
impl WasmtimeEngine
Sourcepub fn new(
u: &mut Unstructured<'_>,
config: &mut Config,
compiler_strategy: CompilerStrategy,
) -> Result<Self>
pub fn new( u: &mut Unstructured<'_>, config: &mut Config, compiler_strategy: CompilerStrategy, ) -> Result<Self>
Merely store the configuration; the engine is actually constructed
later. Ideally the store and engine could be built here but
compile_module
takes a generators::Config
; TODO re-factor this if
that ever changes.
Trait Implementations§
Source§impl DiffEngine for WasmtimeEngine
impl DiffEngine for WasmtimeEngine
Source§fn instantiate(&mut self, wasm: &[u8]) -> Result<Box<dyn DiffInstance>>
fn instantiate(&mut self, wasm: &[u8]) -> Result<Box<dyn DiffInstance>>
Create a new instance with the given engine.
Source§fn assert_error_match(&self, lhs: &Error, rhs: &Trap)
fn assert_error_match(&self, lhs: &Error, rhs: &Trap)
Tests that the wasmtime-originating
trap
matches the error this engine
generated.Source§fn is_non_deterministic_error(&self, err: &Error) -> bool
fn is_non_deterministic_error(&self, err: &Error) -> bool
Returns whether the error specified from this engine is
non-deterministic, like a stack overflow or an attempt to allocate an
object that is too large (which is non-deterministic because it may
depend on which collector it was configured with or memory available on
the system).
Auto Trait Implementations§
impl Freeze for WasmtimeEngine
impl RefUnwindSafe for WasmtimeEngine
impl Send for WasmtimeEngine
impl Sync for WasmtimeEngine
impl Unpin for WasmtimeEngine
impl UnwindSafe for WasmtimeEngine
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
, which can then be
downcast
into Box<dyn ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
, which can then be further
downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSend for T
impl<T> DowncastSend for T
§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more