Struct wasmer::Features[][src]

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

impl Features[src]

pub fn new() -> Features[src]

Create a new feature

pub fn threads(&mut self, enable: bool) -> &mut Features[src]

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.

pub fn reference_types(&mut self, enable: bool) -> &mut Features[src]

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.

pub fn simd(&mut self, enable: bool) -> &mut Features[src]

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.

pub fn bulk_memory(&mut self, enable: bool) -> &mut Features[src]

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.

pub fn multi_value(&mut self, enable: bool) -> &mut Features[src]

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

The WebAssembly multi-value 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 functions and blocks returning multiple values in a module, for example.

This is false by default.

pub fn tail_call(&mut self, enable: bool) -> &mut Features[src]

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.

pub fn module_linking(&mut self, enable: bool) -> &mut Features[src]

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.

pub fn multi_memory(&mut self, enable: bool) -> &mut Features[src]

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.

pub fn memory64(&mut self, enable: bool) -> &mut Features[src]

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

impl Archive for Features where
    bool: Archive, 
[src]

type Archived = ArchivedFeatures

The archived version of this type.

type Resolver = FeaturesResolver

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

pub fn resolve(
    &self,
    pos: usize,
    resolver: <Features as Archive>::Resolver,
    out: &mut MaybeUninit<<Features as Archive>::Archived>
)
[src]

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

impl Clone for Features[src]

pub fn clone(&self) -> Features[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for Features[src]

pub fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>[src]

Formats the value using the given formatter. Read more

impl Default for Features[src]

pub fn default() -> Features[src]

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

impl<'de> Deserialize<'de> for Features[src]

pub fn deserialize<__D>(
    __deserializer: __D
) -> Result<Features, <__D as Deserializer<'de>>::Error> where
    __D: Deserializer<'de>, 
[src]

Deserialize this value from the given Serde deserializer. Read more

impl<__D> Deserialize<Features, __D> for <Features as Archive>::Archived where
    __D: Fallible + ?Sized,
    bool: Archive,
    <bool as Archive>::Archived: Deserialize<bool, __D>, 
[src]

pub fn deserialize(
    &self,
    deserializer: &mut __D
) -> Result<Features, <__D as Fallible>::Error>
[src]

Deserializes using the given deserializer

impl MemoryUsage for Features[src]

pub fn size_of_val(&self, visited: &mut dyn MemoryUsageTracker) -> usize[src]

Returns the size of the referenced value in bytes. Read more

impl PartialEq<Features> for Features[src]

pub fn eq(&self, other: &Features) -> bool[src]

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

pub fn ne(&self, other: &Features) -> bool[src]

This method tests for !=.

impl Serialize for Features[src]

pub fn serialize<__S>(
    &self,
    __serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error> where
    __S: Serializer
[src]

Serialize this value into the given Serde serializer. Read more

impl<__S> Serialize<__S> for Features where
    __S: Fallible + ?Sized,
    bool: Serialize<__S>, 
[src]

pub fn serialize(
    &self,
    serializer: &mut __S
) -> Result<<Features as Archive>::Resolver, <__S as Fallible>::Error>
[src]

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

impl Eq for Features[src]

impl StructuralEq for Features[src]

impl StructuralPartialEq for Features[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> ArchivePointee for T

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.

pub fn pointer_metadata(
    &<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.

impl<T> ArchiveUnsized for T where
    T: Archive, 

type Archived = <T as Archive>::Archived

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

type MetadataResolver = ()

The resolver for the metadata of this type.

pub fn resolve_metadata(
    &self,
    usize,
    <T as ArchiveUnsized>::MetadataResolver,
    &mut MaybeUninit<<<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata>
)

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

fn resolve_unsized(
    &self,
    from: usize,
    to: usize,
    resolver: Self::MetadataResolver,
    out: &mut MaybeUninit<RelPtr<Self::Archived>>
)

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

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<Q, K> Equivalent<K> for Q where
    K: Borrow<Q> + ?Sized,
    Q: Eq + ?Sized
[src]

pub fn equivalent(&self, key: &K) -> bool[src]

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

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T> Instrument for T[src]

fn instrument(self, span: Span) -> Instrumented<Self>[src]

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

fn in_current_span(self) -> Instrumented<Self>[src]

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> Pointable for T

pub const ALIGN: usize

The alignment of pointer.

type Init = T

The type for initializers.

pub unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more

pub unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more

pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more

pub unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more

impl<T> Pointee for T

type Metadata = ()

The type for metadata in pointers and references to Self.

impl<T, S> SerializeUnsized<S> for T where
    T: Serialize<S>,
    S: Serializer + ?Sized

pub fn serialize_unsized(
    &self,
    serializer: &mut S
) -> Result<usize, <S as Fallible>::Error>

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

pub fn serialize_metadata(
    &self,
    &mut S
) -> Result<<<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata, <S as Fallible>::Error>

Serializes the metadata for the given type.

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

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

pub fn clone_into(&self, target: &mut T)[src]

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

recently added

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

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.

impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]