Struct wasmprinter::Printer
source · pub struct Printer { /* private fields */ }
Expand description
Context used for printing a WebAssembly binary.
This is largely only required if you’d like to register custom printers for custom sections in a wasm binary.
Implementations§
source§impl Printer
impl Printer
sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new Printer
object that’s ready to start printing wasm
binaries to strings.
sourcepub fn print_offsets(&mut self, print: bool)
pub fn print_offsets(&mut self, print: bool)
Whether or not to print binary offsets of each item as comments in the text format whenever a newline is printed.
sourcepub fn print_skeleton(&mut self, print: bool)
pub fn print_skeleton(&mut self, print: bool)
Whether or not to print only a “skeleton” which skips function bodies, data segment contents, element segment contents, etc.
sourcepub fn name_unnamed(&mut self, enable: bool)
pub fn name_unnamed(&mut self, enable: bool)
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.
sourcepub fn add_custom_section_printer(
&mut self,
section: &str,
printer: impl FnMut(&mut Printer, usize, &[u8]) -> Result<()> + 'static
)
pub fn add_custom_section_printer( &mut self, section: &str, printer: impl FnMut(&mut Printer, usize, &[u8]) -> Result<()> + 'static )
Registers a custom printer
function to get invoked whenever a custom
section of name section
is seen.
This can be used to register printers into a textual format for custom sections, such as by emitting annotations and/or other textual references (maybe comments!)
By default all custom sections are ignored for the text format.
The printer
function provided takes three arguments:
- A
&mut Printer
, or where to print results to - A
usize
offset which is the start of the offset for the custom section - A byte slice which is the actual contents of the custom section.
sourcepub fn result_mut(&mut self) -> &mut String
pub fn result_mut(&mut self) -> &mut String
Gets the output result of this Printer
, or where all output is going.