Struct wasm_smith::Module
source · pub struct Module { /* private fields */ }
Expand description
A pseudo-random WebAssembly module.
Construct instances of this type with the Arbitrary
trait.
Configuring Generated Modules
This uses the DefaultConfig
configuration. If you
want to customize the shape of generated modules, define your own
configuration type, implement the Config
trait for it,
and use ConfiguredModule<YourConfigType>
instead of plain Module
.
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 more