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
Returns the “default value” for a type. Read more
Auto Trait Implementations
impl RefUnwindSafe for LinkingSection
impl Send for LinkingSection
impl Sync for LinkingSection
impl Unpin for LinkingSection
impl UnwindSafe for LinkingSection
Blanket Implementations
Mutably borrows from an owned value. Read more