Struct wasmprinter::Config

source ·
pub struct Config { /* private fields */ }
Expand description

Configuration used to print a WebAssembly binary.

This structure is used to control the overal structure of how wasm binaries are printed and tweaks various ways that configures the output.

Implementations§

source§

impl Config

source

pub fn new() -> Self

Creates a new Config object that’s ready to start printing wasm binaries to strings.

source

pub fn print_offsets(&mut self, print: bool) -> &mut Self

Whether or not to print binary offsets of each item as comments in the text format whenever a newline is printed.

source

pub fn print_skeleton(&mut self, print: bool) -> &mut Self

Whether or not to print only a “skeleton” which skips function bodies, data segment contents, element segment contents, etc.

source

pub fn name_unnamed(&mut self, enable: bool) -> &mut Self

Assign names to all unnamed items.

If enabled then any previously unnamed item will have a name synthesized that looks like $#func10 for example. The leading # indicates that it’s wasmprinter-generated. The func is the namespace of the name and provides extra context about the item when referenced. The 10 is the local index of the item.

Note that if the resulting text output is converted back to binary the resulting name custom section will not be the same as before.

source

pub fn fold_instructions(&mut self, enable: bool) -> &mut Self

Print instructions in folded form where possible.

This will cause printing to favor the s-expression (parenthesized) form of WebAssembly instructions. For example this output would be generated for a simple add function:

(module
    (func $foo (param i32 i32) (result i32)
        (i32.add
            (local.get 0)
            (local.get 1))
    )
)
source

pub fn print(&self, wasm: &[u8], result: &mut impl Print) -> Result<()>

Prints a WebAssembly binary into a String

This function takes an entire wasm binary blob and will print it to the WebAssembly Text Format and return the result as a String.

source

pub fn offsets_and_lines<'a>( &self, wasm: &[u8], storage: &'a mut String, ) -> Result<impl Iterator<Item = (Option<usize>, &'a str)> + 'a>

Get the line-by-line WAT disassembly for the given Wasm, along with the binary offsets for each line.

Trait Implementations§

source§

impl Default for Config

source§

fn default() -> Config

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

Auto Trait Implementations§

§

impl Freeze for Config

§

impl RefUnwindSafe for Config

§

impl Send for Config

§

impl Sync for Config

§

impl Unpin for Config

§

impl UnwindSafe for Config

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, 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, U> TryFrom<U> for T
where U: Into<T>,

source§

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

source§

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.