Struct wasm_encoder::Function 
source · pub struct Function { /* private fields */ }Expand description
An encoder for a function body within the code section.
Example
use wasm_encoder::{CodeSection, Function, Instruction};
// Define the function body for:
//
//     (func (param i32 i32) (result i32)
//       local.get 0
//       local.get 1
//       i32.add)
let locals = vec![];
let mut func = Function::new(locals);
func.instruction(&Instruction::LocalGet(0));
func.instruction(&Instruction::LocalGet(1));
func.instruction(&Instruction::I32Add);
// Add our function to the code section.
let mut code = CodeSection::new();
code.function(&func);Implementations§
source§impl Function
 
impl Function
sourcepub fn new<L>(locals: L) -> Selfwhere
    L: IntoIterator<Item = (u32, ValType)>,
    L::IntoIter: ExactSizeIterator,
 
pub fn new<L>(locals: L) -> Selfwhere L: IntoIterator<Item = (u32, ValType)>, L::IntoIter: ExactSizeIterator,
Create a new function body with the given locals.
The argument is an iterator over (N, Ty), which defines
that the next N locals will be of type Ty.
For example, a function with locals 0 and 1 of type I32 and local 2 of type F32 would be created as:
let f = Function::new([(2, ValType::I32), (1, ValType::F32)]);For more information about the code section (and function definition) in the WASM binary format see the WebAssembly spec
sourcepub fn new_with_locals_types<L>(locals: L) -> Selfwhere
    L: IntoIterator<Item = ValType>,
 
pub fn new_with_locals_types<L>(locals: L) -> Selfwhere L: IntoIterator<Item = ValType>,
Create a function from a list of locals’ types.
Unlike Function::new, this constructor simply takes a list of types
which are in order associated with locals.
For example:
let f = Function::new([(2, ValType::I32), (1, ValType::F32)]);
let g = Function::new_with_locals_types([
   ValType::I32, ValType::I32, ValType::F32
]);
assert_eq!(f, g)sourcepub fn instruction(&mut self, instruction: &Instruction<'_>) -> &mut Self
 
pub fn instruction(&mut self, instruction: &Instruction<'_>) -> &mut Self
Write an instruction into this function body.
sourcepub fn raw<B>(&mut self, bytes: B) -> &mut Selfwhere
    B: IntoIterator<Item = u8>,
 
pub fn raw<B>(&mut self, bytes: B) -> &mut Selfwhere B: IntoIterator<Item = u8>,
Add raw bytes to this function’s body.