Struct wasm_encoder::LinkingSection
source · pub struct LinkingSection { /* private fields */ }
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§
source§impl LinkingSection
impl LinkingSection
sourcepub fn symbol_table(&mut self, symbol_table: &SymbolTable) -> &mut Self
pub fn symbol_table(&mut self, symbol_table: &SymbolTable) -> &mut Self
Add a symbol table subsection.
Trait Implementations§
source§impl Clone for LinkingSection
impl Clone for LinkingSection
source§fn clone(&self) -> LinkingSection
fn clone(&self) -> LinkingSection
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read more