pub struct WasmBuilder { /* private fields */ }
Expand description
The builder for building a wasm binary.
The builder itself is separated into multiple structs to make the setup type safe.
Building a wasm binary:
- Call
WasmBuilder::new
to create a new builder. - Select the project to build using the methods of
WasmBuilderSelectProject
. - Set additional
RUST_FLAGS
or a different name for the file containing the WASM code using methods ofWasmBuilder
. - Build the WASM binary using
Self::build
.
Implementations§
Source§impl WasmBuilder
impl WasmBuilder
Sourcepub fn new() -> WasmBuilderSelectProject
pub fn new() -> WasmBuilderSelectProject
Create a new instance of the builder.
Sourcepub fn build_using_defaults()
pub fn build_using_defaults()
Build the WASM binary using the recommended default values.
This is the same as calling:
substrate_wasm_builder::WasmBuilder::new()
.with_current_project()
.import_memory()
.export_heap_base()
.build();
Sourcepub fn init_with_defaults() -> Self
pub fn init_with_defaults() -> Self
Init the wasm builder with the recommended default values.
In contrast to Self::build_using_defaults
it does not build the WASM binary directly.
This is the same as calling:
substrate_wasm_builder::WasmBuilder::new()
.with_current_project()
.import_memory()
.export_heap_base();
Sourcepub fn export_heap_base(self) -> Self
pub fn export_heap_base(self) -> Self
Enable exporting __heap_base
as global variable in the WASM binary.
This adds -C link-arg=--export=__heap_base
to RUST_FLAGS
.
Sourcepub fn set_file_name(self, file_name: impl Into<String>) -> Self
pub fn set_file_name(self, file_name: impl Into<String>) -> Self
Set the name of the file that will be generated in OUT_DIR
.
This file needs to be included to get access to the build WASM binary.
If this function is not called, file_name
defaults to wasm_binary.rs
Sourcepub fn import_memory(self) -> Self
pub fn import_memory(self) -> Self
Instruct the linker to import the memory into the WASM binary.
This adds -C link-arg=--import-memory
to RUST_FLAGS
.
Sourcepub fn append_to_rust_flags(self, flag: impl Into<String>) -> Self
pub fn append_to_rust_flags(self, flag: impl Into<String>) -> Self
Append the given flag
to RUST_FLAGS
.
flag
is appended as is, so it needs to be a valid flag.
Sourcepub fn enable_feature(self, feature: impl Into<String>) -> Self
pub fn enable_feature(self, feature: impl Into<String>) -> Self
Enable the given feature when building the wasm binary.
feature
needs to be a valid feature that is defined in the project Cargo.toml
.
Sourcepub fn disable_runtime_version_section_check(self) -> Self
pub fn disable_runtime_version_section_check(self) -> Self
Disable the check for the runtime_version
wasm section.
By default the wasm-builder
will ensure that the runtime_version
section will
exists in the build wasm binary. This runtime_version
section is used to get the
RuntimeVersion
without needing to call into the wasm binary. However, for some
use cases (like tests) you may want to disable this check.