Struct wasm_encoder::LinkingSection [−][src]
pub struct LinkingSection { /* fields omitted */ }Expand description
An encoder for the linking custom section.
This section is a non-standard convention that is supported by the LLVM toolchain. It, along with associated “reloc.*” custom sections, allows you to treat a Wasm module as a low-level object file that can be linked with other Wasm object files to produce a final, complete Wasm module.
The linking section must come before the reloc sections.
Example
use wasm_encoder::{LinkingSection, Module, SymbolTable}; // Create a new linking section. let mut linking = LinkingSection::new(); // Define a symbol table. let mut sym_tab = SymbolTable::new(); // Define a function symbol in the symbol table. let flags = SymbolTable::WASM_SYM_BINDING_LOCAL | SymbolTable::WASM_SYM_EXPORTED; let func_index = 42; let sym_name = "my_exported_func"; sym_tab.function(flags, func_index, Some(sym_name)); // Add the symbol table to our linking section. linking.symbol_table(&sym_tab); // Add the linking section to a new Wasm module and get the encoded bytes. let mut module = Module::new(); module.section(&linking); let wasm_bytes = module.finish();
Implementations
Add a symbol table subsection.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for LinkingSectionimpl Send for LinkingSectionimpl Sync for LinkingSectionimpl Unpin for LinkingSectionimpl UnwindSafe for LinkingSectionBlanket Implementations
Mutably borrows from an owned value. Read more