[−][src]Trait wasm_smith::Config
Configuration for a generated module.
Don't care to configure your generated modules? Just use
Module
, which internally uses
DefaultConfig
.
If you want to configure generated modules, then define a MyConfig
type,
implement this trait for it, and use
ConfiguredModule<MyConfig>
instead of Module
.
Every trait method has a provided default implementation, so that you only need to override the methods for things you want to change away from the default.
Provided methods
pub fn max_types(&self) -> usize
[src]
The maximum number of types to generate. Defaults to 100.
pub fn max_imports(&self) -> usize
[src]
The maximum number of imports to generate. Defaults to 100.
pub fn max_funcs(&self) -> usize
[src]
The maximum number of functions to generate. Defaults to 100.
pub fn max_globals(&self) -> usize
[src]
The maximum number of globals to generate. Defaults to 100.
pub fn max_exports(&self) -> usize
[src]
The maximum number of exports to generate. Defaults to 100.
pub fn max_element_segments(&self) -> usize
[src]
The maximum number of element segments to generate. Defaults to 100.
pub fn max_elements(&self) -> usize
[src]
The maximum number of elements within a segment to generate. Defaults to 100.
pub fn max_data_segments(&self) -> usize
[src]
The maximum number of data segments to generate. Defaults to 100.
pub fn max_instructions(&self) -> usize
[src]
The maximum number of instructions to generate in a function body. Defaults to 100.
Note that some additional end
s, else
s, and unreachable
s may be
appended to the function body to finish block scopes.
pub fn max_memories(&self) -> u32
[src]
The maximum number of memories to use. Defaults to 1.
Note that more than one memory is in the realm of the multi-memory wasm proposal.
pub fn max_tables(&self) -> u32
[src]
The maximum number of tables to use. Defaults to 1.
Note that more than one table is in the realm of the reference types proposal.
pub fn memory_offset_choices(&self) -> (u32, u32, u32)
[src]
Control the probability of generating memory offsets that are in bounds vs. potentially out of bounds.
Return a tuple (a, b, c)
where
-
a / (a+b+c)
is the probability of generating a memory offset within0..memory.min_size
, i.e. an offset that is definitely in bounds of a non-empty memory. (Note that if a memory is zero-sized, however, no offset will ever be in bounds.) -
b / (a+b+c)
is the probability of generating a memory offset withinmemory.min_size..memory.max_size
, i.e. an offset that is possibly in bounds if the memory has been grown. -
c / (a+b+c)
is the probability of generating a memory offset within the rangememory.max_size..
, i.e. an offset that is definitely out of bounds.
At least one of a
, b
, and c
must be non-zero.
If you want to always generate memory offsets that are definitely in
bounds of a non-zero-sized memory, for example, you could return (1, 0, 0)
.
By default, returns (75, 24, 1)
.
pub fn min_uleb_size(&self) -> u8
[src]
The minimum size, in bytes, of all leb-encoded integers. Defaults to 1.
This is useful for ensuring that all leb-encoded integers are decoded as such rather than as simply one byte. This will forcibly extend leb integers with an over-long encoding in some locations if the size would otherwise be smaller than number returned here.
pub fn bulk_memory_enabled(&self) -> bool
[src]
Determines whether the bulk memory proposal is enabled for generating
insructions. Defaults to false
.
pub fn reference_types_enabled(&self) -> bool
[src]
Determines whether the reference types proposal is enabled for
generating insructions. Defaults to false
.