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
sourceimpl 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
sourceimpl Clone for LinkingSection
impl Clone for LinkingSection
sourcefn clone(&self) -> LinkingSection
fn clone(&self) -> LinkingSection
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for LinkingSection
impl Debug for LinkingSection
sourceimpl Default for LinkingSection
impl Default for LinkingSection
sourcefn default() -> LinkingSection
fn default() -> LinkingSection
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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more