Struct wasm_smith::Module
source · pub struct Module { /* private fields */ }
Expand description
A pseudo-random WebAssembly module.
Construct instances of this type (with default configuration) with the
Arbitrary
trait.
§Configuring Generated Modules
To configure the shape of generated module, create a
Config
and then call Module::new
with it.
Implementations§
source§impl Module
impl Module
sourcepub fn ensure_termination(&mut self, default_fuel: u32) -> u32
pub fn ensure_termination(&mut self, default_fuel: u32) -> u32
Ensure that all of this Wasm module’s functions will terminate when executed.
This adds a new mutable, exported global to the module to keep track of how much “fuel” is left. Fuel is decremented at the head of each loop and function. When fuel reaches zero, a trap is raised.
The index of the fuel global is returned, so that you may control how much fuel the module is given.
Trait Implementations§
source§impl<'a> Arbitrary<'a> for Module
impl<'a> Arbitrary<'a> for Module
source§fn arbitrary(u: &mut Unstructured<'a>) -> Result<Self>
fn arbitrary(u: &mut Unstructured<'a>) -> Result<Self>
Generate an arbitrary value of
Self
from the given unstructured data. Read moresource§fn arbitrary_take_rest(u: Unstructured<'a>) -> Result<Self, Error>
fn arbitrary_take_rest(u: Unstructured<'a>) -> Result<Self, Error>
Generate an arbitrary value of
Self
from the entirety of the given
unstructured data. Read moreAuto Trait Implementations§
impl RefUnwindSafe for Module
impl !Send for Module
impl !Sync for Module
impl Unpin for Module
impl UnwindSafe for Module
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