Struct parity_wasm::builder::ModuleBuilder [] [src]

pub struct ModuleBuilder<F = Identity> { /* fields omitted */ }

Module builder

Methods

impl ModuleBuilder
[src]

[src]

New empty module builder

impl<F> ModuleBuilder<F> where
    F: Invoke<Module>, 
[src]

[src]

New module builder with bound callback

[src]

Builder from raw module

[src]

Fill module with sections from iterator

[src]

Add additional section

[src]

Binds to the type section, creates additional types when required

[src]

Push stand-alone function definition, creating sections, signature and code blocks in corresponding sections. FunctionDefinition can be build using builder::function builder

[src]

Push linear memory region

[src]

Push table

[src]

Push one function signature, returning it's calling index. Can create corresponding type in type section.

[src]

Push signatures in the module, returning corresponding indices of pushed signatures

[src]

Push import entry to module. Not that it does not update calling indices in function bodies.

[src]

Push export entry to module.

[src]

Add new function using dedicated builder

[src]

Add new linear memory using dedicated builder

[src]

Add new table using dedicated builder

[src]

Define functions section

[src]

With inserted export entry

[src]

With inserted import entry

[src]

Import entry builder

Examples

use parity_wasm::builder::module;

let module = module()
   .import()
       .module("env")
       .field("memory")
       .external().memory(256, Some(256))
       .build()
   .build();

assert_eq!(module.import_section().expect("import section to exist").entries().len(), 1);

[src]

With global variable

[src]

With table

[src]

Export entry builder

Examples

use parity_wasm::builder::module;
use parity_wasm::elements::Opcode::*;

let module = module()
   .global()
        .value_type().i32()
        .init_expr(I32Const(0))
        .build()
   .export()
       .field("_zero")
       .internal().global(0)
       .build()
   .build();

assert_eq!(module.export_section().expect("export section to exist").entries().len(), 1);

[src]

Glboal entry builder

Examples

use parity_wasm::builder::module;
use parity_wasm::elements::Opcode::*;

let module = module()
   .global()
        .value_type().i32()
        .init_expr(I32Const(0))
        .build()
   .build();

assert_eq!(module.global_section().expect("global section to exist").entries().len(), 1);

[src]

Add data segment to the builder

[src]

Data entry builder

[src]

Build module (final step)

Trait Implementations

Auto Trait Implementations

impl<F> Send for ModuleBuilder<F> where
    F: Send

impl<F> Sync for ModuleBuilder<F> where
    F: Sync