pub struct Features {
    pub threads: bool,
    pub reference_types: bool,
    pub simd: bool,
    pub bulk_memory: bool,
    pub multi_value: bool,
    pub tail_call: bool,
    pub module_linking: bool,
    pub multi_memory: bool,
    pub memory64: bool,
    pub exceptions: bool,
}
Expand description

Controls which experimental features will be enabled. Features usually have a corresponding WebAssembly proposal.

Fields

threads: bool

Threads proposal should be enabled

reference_types: bool

Reference Types proposal should be enabled

simd: bool

SIMD proposal should be enabled

bulk_memory: bool

Bulk Memory proposal should be enabled

multi_value: bool

Multi Value proposal should be enabled

tail_call: bool

Tail call proposal should be enabled

module_linking: bool

Module Linking proposal should be enabled

multi_memory: bool

Multi Memory proposal should be enabled

memory64: bool

64-bit Memory proposal should be enabled

exceptions: bool

Wasm exceptions proposal should be enabled

Implementations

Create a new feature

Configures whether the WebAssembly threads proposal will be enabled.

The WebAssembly threads proposal is not currently fully standardized and is undergoing development. Support for this feature can be enabled through this method for appropriate WebAssembly modules.

This feature gates items such as shared memories and atomic instructions.

This is false by default.

Configures whether the WebAssembly reference types proposal will be enabled.

The WebAssembly reference types proposal is now fully standardized and enabled by default.

This feature gates items such as the externref type and multiple tables being in a module. Note that enabling the reference types feature will also enable the bulk memory feature.

This is true by default.

Configures whether the WebAssembly SIMD proposal will be enabled.

The WebAssembly SIMD proposal is not currently fully standardized and is undergoing development. Support for this feature can be enabled through this method for appropriate WebAssembly modules.

This feature gates items such as the v128 type and all of its operators being in a module.

This is false by default.

Configures whether the WebAssembly bulk memory operations proposal will be enabled.

The WebAssembly bulk memory operations proposal is now fully standardized and enabled by default.

This feature gates items such as the memory.copy instruction, passive data/table segments, etc, being in a module.

This is true by default.

Configures whether the WebAssembly multi-value proposal will be enabled.

The WebAssembly multi-value proposal is now fully standardized and enabled by default, except with the singlepass compiler which does not support it.

This feature gates functions and blocks returning multiple values in a module, for example.

This is true by default.

Configures whether the WebAssembly tail-call proposal will be enabled.

The WebAssembly tail-call proposal is not currently fully standardized and is undergoing development. Support for this feature can be enabled through this method for appropriate WebAssembly modules.

This feature gates tail-call functions in WebAssembly.

This is false by default.

Configures whether the WebAssembly module linking proposal will be enabled.

The WebAssembly module linking proposal is not currently fully standardized and is undergoing development. Support for this feature can be enabled through this method for appropriate WebAssembly modules.

This feature allows WebAssembly modules to define, import and export modules and instances.

This is false by default.

Configures whether the WebAssembly multi-memory proposal will be enabled.

The WebAssembly multi-memory proposal is not currently fully standardized and is undergoing development. Support for this feature can be enabled through this method for appropriate WebAssembly modules.

This feature adds the ability to use multiple memories within a single Wasm module.

This is false by default.

Configures whether the WebAssembly 64-bit memory proposal will be enabled.

The WebAssembly 64-bit memory proposal is not currently fully standardized and is undergoing development. Support for this feature can be enabled through this method for appropriate WebAssembly modules.

This feature gates support for linear memory of sizes larger than 2^32 bits.

This is false by default.

Trait Implementations

The archived representation of this type. Read more

The resolver for this type. It must contain all the additional information from serializing needed to make the archived type from the normal type. Read more

Creates the archived version of this value at the given position and writes it to the given output. Read more

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Returns the “default value” for a type. Read more

Deserializes using the given deserializer

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Writes the dependencies for the object and returns a resolver that can create the archived type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

The archived version of the pointer metadata for this type.

Converts some archived metadata to the pointer metadata for itself.

The archived counterpart of this type. Unlike Archive, it may be unsized. Read more

The resolver for the metadata of this type. Read more

Creates the archived version of the metadata for this value at the given position and writes it to the given output. Read more

Resolves a relative pointer to this value with the given from and to and writes it to the given output. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Deserializes using the given deserializer

Compare self to key and return true if they are equal.

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type for metadata in pointers and references to Self.

Writes the object and returns the position of the archived type.

Serializes the metadata for the given type.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.