Struct WasmFeatures
pub struct WasmFeatures(/* private fields */);
Expand description
Flags for features that are enabled for validation.
This type controls the set of WebAssembly proposals and features that
are active during validation and parsing of WebAssembly binaries. This
is used in conjunction with
Validator::new_with_features
for example.
The Default
implementation for this structure returns the set of
supported WebAssembly proposals this crate implements. All features are
required to be in Phase 4 or above in the WebAssembly standardization
process.
Enabled/disabled features can affect both parsing and validation at this
time. When decoding a WebAssembly binary it’s generally recommended if
possible to enable all features, as is the default with
BinaryReader::new
. If strict conformance
with historical versions of the specification are required then
BinaryReader::new_features
or
BinaryReader::set_features
can be
used.
This crate additionally has a compile-time Cargo feature called
features
which can be used to enable/disable most of this type at
compile time. This crate feature is turned on by default and enables
this bitflags-representation of this structure. When the features
feature is disabled then this is a zero-sized structure and no longer
has any associated constants. When features
are disabled all values
for proposals are fixed at compile time to their defaults.
Implementations§
§impl WasmFeatures
impl WasmFeatures
pub const MUTABLE_GLOBAL: WasmFeatures
pub const MUTABLE_GLOBAL: WasmFeatures
The WebAssembly mutable-global
proposal.
Defaults to true
.
pub const SATURATING_FLOAT_TO_INT: WasmFeatures
pub const SATURATING_FLOAT_TO_INT: WasmFeatures
The WebAssembly saturating-float-to-int
proposal.
Defaults to true
.
pub const SIGN_EXTENSION: WasmFeatures
pub const SIGN_EXTENSION: WasmFeatures
The WebAssembly sign-extension-ops
proposal.
Defaults to true
.
pub const REFERENCE_TYPES: WasmFeatures
pub const REFERENCE_TYPES: WasmFeatures
The WebAssembly reference types proposal.
Defaults to true
.
pub const MULTI_VALUE: WasmFeatures
pub const MULTI_VALUE: WasmFeatures
The WebAssembly multi-value proposal.
Defaults to true
.
pub const BULK_MEMORY: WasmFeatures
pub const BULK_MEMORY: WasmFeatures
The WebAssembly bulk memory operations proposal.
Defaults to true
.
pub const SIMD: WasmFeatures
pub const SIMD: WasmFeatures
The WebAssembly SIMD proposal.
Defaults to true
.
pub const RELAXED_SIMD: WasmFeatures
pub const RELAXED_SIMD: WasmFeatures
The WebAssembly Relaxed SIMD proposal.
Defaults to true
.
pub const THREADS: WasmFeatures
pub const THREADS: WasmFeatures
The WebAssembly threads proposal.
Defaults to true
.
pub const SHARED_EVERYTHING_THREADS: WasmFeatures
pub const SHARED_EVERYTHING_THREADS: WasmFeatures
The WebAssembly shared-everything-threads proposal; includes new
component model built-ins.
Defaults to false
.
pub const TAIL_CALL: WasmFeatures
pub const TAIL_CALL: WasmFeatures
The WebAssembly tail-call proposal.
Defaults to true
.
pub const FLOATS: WasmFeatures
pub const FLOATS: WasmFeatures
Whether or not floating-point instructions are enabled.
This is enabled by default can be used to disallow floating-point operators and types.
This does not correspond to a WebAssembly proposal but is instead
intended for embeddings which have stricter-than-usual requirements
about execution. Floats in WebAssembly can have different NaN patterns
across hosts which can lead to host-dependent execution which some
runtimes may not desire.
Defaults to true
.
pub const MULTI_MEMORY: WasmFeatures
pub const MULTI_MEMORY: WasmFeatures
The WebAssembly multi memory proposal.
Defaults to true
.
pub const EXCEPTIONS: WasmFeatures
pub const EXCEPTIONS: WasmFeatures
The WebAssembly exception handling proposal.
Defaults to true
.
pub const MEMORY64: WasmFeatures
pub const MEMORY64: WasmFeatures
The WebAssembly memory64 proposal.
Defaults to true
.
pub const EXTENDED_CONST: WasmFeatures
pub const EXTENDED_CONST: WasmFeatures
The WebAssembly extended_const proposal.
Defaults to true
.
pub const COMPONENT_MODEL: WasmFeatures
pub const COMPONENT_MODEL: WasmFeatures
The WebAssembly component model proposal.
Defaults to true
.
pub const FUNCTION_REFERENCES: WasmFeatures
pub const FUNCTION_REFERENCES: WasmFeatures
The WebAssembly typed function references proposal.
Defaults to true
.
pub const MEMORY_CONTROL: WasmFeatures
pub const MEMORY_CONTROL: WasmFeatures
The WebAssembly memory control proposal.
Defaults to false
.
pub const GC: WasmFeatures
pub const GC: WasmFeatures
The WebAssembly gc proposal.
Defaults to true
.
pub const CUSTOM_PAGE_SIZES: WasmFeatures
pub const CUSTOM_PAGE_SIZES: WasmFeatures
The WebAssembly custom-page-sizes
proposal.
Defaults to false
.
pub const LEGACY_EXCEPTIONS: WasmFeatures
pub const LEGACY_EXCEPTIONS: WasmFeatures
The WebAssembly legacy exception handling proposal (phase 1)
§Note
Support this feature as long as all leading browsers also support it
https://github.com/WebAssembly/exception-handling/blob/main/proposals/exception-handling/legacy/Exceptions.md
Defaults to false
.
pub const GC_TYPES: WasmFeatures
pub const GC_TYPES: WasmFeatures
Whether or not gc types are enabled.
This feature does not correspond to any WebAssembly proposal nor concept in the specification itself. This is intended to assist embedders in disabling support for GC types at validation time. For example if an engine wants to support all of WebAssembly except a runtime garbage collector it could disable this feature.
This features is enabled by default and is used to gate types such
as externref
or anyref
. Note that the requisite WebAssembly
proposal must also be enabled for types like externref
, meaning
that it requires both REFERENCE_TYPES
and GC_TYPE
to be enabled.
Note that the funcref
and exnref
types are not gated by this
feature. Those are expected to not require a full garbage collector
so are not gated by this.
Defaults to true
.
pub const STACK_SWITCHING: WasmFeatures
pub const STACK_SWITCHING: WasmFeatures
The WebAssembly stack-switching proposal.
Defaults to false
.
pub const WIDE_ARITHMETIC: WasmFeatures
pub const WIDE_ARITHMETIC: WasmFeatures
The WebAssembly wide-arithmetic proposal.
Defaults to false
.
pub const CM_VALUES: WasmFeatures
pub const CM_VALUES: WasmFeatures
Support for the value
type in the component model proposal.
Corresponds to the 🪙 character in
https://github.com/WebAssembly/component-model/blob/main/design/mvp/Explainer.md.
Defaults to false
.
pub const CM_NESTED_NAMES: WasmFeatures
pub const CM_NESTED_NAMES: WasmFeatures
Support for the nested namespaces and projects in component model names.
Corresponds to the 🪺 character in
https://github.com/WebAssembly/component-model/blob/main/design/mvp/Explainer.md.
Defaults to false
.
pub const CM_ASYNC: WasmFeatures
pub const CM_ASYNC: WasmFeatures
Support for component model async lift/lower ABI, as well as streams, futures, and errors.
Corresponds to the 🔀 character in
https://github.com/WebAssembly/component-model/blob/main/design/mvp/Explainer.md.
Defaults to false
.
pub const CM_ASYNC_STACKFUL: WasmFeatures
pub const CM_ASYNC_STACKFUL: WasmFeatures
Gates the “stackful ABI” in the component model async proposal.
Corresponds to the 🚟 character in
https://github.com/WebAssembly/component-model/blob/main/design/mvp/Explainer.md.
Defaults to false
.
pub const CM_ASYNC_BUILTINS: WasmFeatures
pub const CM_ASYNC_BUILTINS: WasmFeatures
Gates some intrinsics being marked with async
in the component
model async proposal.
Corresponds to the 🚝 character in
https://github.com/WebAssembly/component-model/blob/main/design/mvp/Explainer.md.
Defaults to false
.
pub const CM_THREADING: WasmFeatures
pub const CM_THREADING: WasmFeatures
Support for threading in the component model proposal.
Corresponds to the 🧵 character in
https://github.com/WebAssembly/component-model/blob/main/design/mvp/Explainer.md.
Defaults to false
.
pub const CM_ERROR_CONTEXT: WasmFeatures
pub const CM_ERROR_CONTEXT: WasmFeatures
Gates some intrinsics being marked with error-context
in the component
model async proposal.
Corresponds to the 📝 character in
https://github.com/WebAssembly/component-model/blob/main/design/mvp/Explainer.md.
Defaults to false
.
pub const CM_FIXED_SIZE_LIST: WasmFeatures
pub const CM_FIXED_SIZE_LIST: WasmFeatures
Support for fixed size lists
Corresponds to the 🔧 character in
https://github.com/WebAssembly/component-model/blob/main/design/mvp/Explainer.md.
Defaults to false
.
pub const CM_GC: WasmFeatures
pub const CM_GC: WasmFeatures
Support for Wasm GC in the component model proposal.
Corresponds to the 🛸 character in
https://github.com/WebAssembly/component-model/blob/main/design/mvp/Explainer.md.
Defaults to false
.
pub const CALL_INDIRECT_OVERLONG: WasmFeatures
pub const CALL_INDIRECT_OVERLONG: WasmFeatures
Subset of the reference-types WebAssembly proposal which only
encompasses the leb-encoding of the table immediate to the
call_indirect
instruction, enabling over-long encodings of an
integer for example.
This is a subcomponent of the “lime1” feature.
Defaults to true
.
pub const BULK_MEMORY_OPT: WasmFeatures
pub const BULK_MEMORY_OPT: WasmFeatures
Subset of the bulk-memory proposal covering just the memory.copy
and memory.fill
instructions.
This is a subcomponent of the “lime1” feature.
Defaults to true
.
§impl WasmFeatures
impl WasmFeatures
pub const fn empty() -> WasmFeatures
pub const fn empty() -> WasmFeatures
Get a flags value with all bits unset.
pub const fn all() -> WasmFeatures
pub const fn all() -> WasmFeatures
Get a flags value with all known bits set.
pub const fn bits(&self) -> u64
pub const fn bits(&self) -> u64
Get the underlying bits value.
The returned value is exactly the bits set in this flags value.
pub const fn from_bits(bits: u64) -> Option<WasmFeatures>
pub const fn from_bits(bits: u64) -> Option<WasmFeatures>
Convert from a bits value.
This method will return None
if any unknown bits are set.
pub const fn from_bits_truncate(bits: u64) -> WasmFeatures
pub const fn from_bits_truncate(bits: u64) -> WasmFeatures
Convert from a bits value, unsetting any unknown bits.
pub const fn from_bits_retain(bits: u64) -> WasmFeatures
pub const fn from_bits_retain(bits: u64) -> WasmFeatures
Convert from a bits value exactly.
pub fn from_name(name: &str) -> Option<WasmFeatures>
pub fn from_name(name: &str) -> Option<WasmFeatures>
Get a flags value with the bits of a flag with the given name set.
This method will return None
if name
is empty or doesn’t
correspond to any named flag.
pub const fn intersects(&self, other: WasmFeatures) -> bool
pub const fn intersects(&self, other: WasmFeatures) -> bool
Whether any set bits in a source flags value are also set in a target flags value.
pub const fn contains(&self, other: WasmFeatures) -> bool
pub const fn contains(&self, other: WasmFeatures) -> bool
Whether all set bits in a source flags value are also set in a target flags value.
pub fn insert(&mut self, other: WasmFeatures)
pub fn insert(&mut self, other: WasmFeatures)
The bitwise or (|
) of the bits in two flags values.
pub fn remove(&mut self, other: WasmFeatures)
pub fn remove(&mut self, other: WasmFeatures)
The intersection of a source flags value with the complement of a target flags
value (&!
).
This method is not equivalent to self & !other
when other
has unknown bits set.
remove
won’t truncate other
, but the !
operator will.
pub fn toggle(&mut self, other: WasmFeatures)
pub fn toggle(&mut self, other: WasmFeatures)
The bitwise exclusive-or (^
) of the bits in two flags values.
pub fn set(&mut self, other: WasmFeatures, value: bool)
pub fn set(&mut self, other: WasmFeatures, value: bool)
Call insert
when value
is true
or remove
when value
is false
.
pub const fn intersection(self, other: WasmFeatures) -> WasmFeatures
pub const fn intersection(self, other: WasmFeatures) -> WasmFeatures
The bitwise and (&
) of the bits in two flags values.
pub const fn union(self, other: WasmFeatures) -> WasmFeatures
pub const fn union(self, other: WasmFeatures) -> WasmFeatures
The bitwise or (|
) of the bits in two flags values.
pub const fn difference(self, other: WasmFeatures) -> WasmFeatures
pub const fn difference(self, other: WasmFeatures) -> WasmFeatures
The intersection of a source flags value with the complement of a target flags
value (&!
).
This method is not equivalent to self & !other
when other
has unknown bits set.
difference
won’t truncate other
, but the !
operator will.
pub const fn symmetric_difference(self, other: WasmFeatures) -> WasmFeatures
pub const fn symmetric_difference(self, other: WasmFeatures) -> WasmFeatures
The bitwise exclusive-or (^
) of the bits in two flags values.
pub const fn complement(self) -> WasmFeatures
pub const fn complement(self) -> WasmFeatures
The bitwise negation (!
) of the bits in a flags value, truncating the result.
§impl WasmFeatures
impl WasmFeatures
pub const fn iter(&self) -> Iter<WasmFeatures>
pub const fn iter(&self) -> Iter<WasmFeatures>
Yield a set of contained flags values.
Each yielded flags value will correspond to a defined named flag. Any unknown bits will be yielded together as a final flags value.
pub const fn iter_names(&self) -> IterNames<WasmFeatures>
pub const fn iter_names(&self) -> IterNames<WasmFeatures>
Yield a set of contained named flags values.
This method is like iter
, except only yields bits in contained named flags.
Any unknown bits, or bits not corresponding to a contained flag will not be yielded.
§impl WasmFeatures
impl WasmFeatures
pub fn from_inflated(inflated: WasmFeaturesInflated) -> WasmFeatures
pub fn from_inflated(inflated: WasmFeaturesInflated) -> WasmFeatures
Construct a bit-packed WasmFeatures
from the inflated struct version.
pub fn inflate(&self) -> WasmFeaturesInflated
pub fn inflate(&self) -> WasmFeaturesInflated
Inflate these bit-packed features into a struct with a field per feature.
Although the inflated struct takes up much more memory than the bit-packed version, its fields can be exhaustively matched upon. This makes it useful for temporarily checking against, while keeping the bit-packed version as the method of storing the features for longer periods of time.
pub fn mutable_global(&self) -> bool
pub fn mutable_global(&self) -> bool
Returns whether this feature is enabled in this feature set.
pub fn saturating_float_to_int(&self) -> bool
pub fn saturating_float_to_int(&self) -> bool
Returns whether this feature is enabled in this feature set.
pub fn sign_extension(&self) -> bool
pub fn sign_extension(&self) -> bool
Returns whether this feature is enabled in this feature set.
pub fn reference_types(&self) -> bool
pub fn reference_types(&self) -> bool
Returns whether this feature is enabled in this feature set.
pub fn multi_value(&self) -> bool
pub fn multi_value(&self) -> bool
Returns whether this feature is enabled in this feature set.
pub fn bulk_memory(&self) -> bool
pub fn bulk_memory(&self) -> bool
Returns whether this feature is enabled in this feature set.
pub fn relaxed_simd(&self) -> bool
pub fn relaxed_simd(&self) -> bool
Returns whether this feature is enabled in this feature set.
Returns whether this feature is enabled in this feature set.
pub fn multi_memory(&self) -> bool
pub fn multi_memory(&self) -> bool
Returns whether this feature is enabled in this feature set.
pub fn exceptions(&self) -> bool
pub fn exceptions(&self) -> bool
Returns whether this feature is enabled in this feature set.
pub fn extended_const(&self) -> bool
pub fn extended_const(&self) -> bool
Returns whether this feature is enabled in this feature set.
pub fn component_model(&self) -> bool
pub fn component_model(&self) -> bool
Returns whether this feature is enabled in this feature set.
pub fn function_references(&self) -> bool
pub fn function_references(&self) -> bool
Returns whether this feature is enabled in this feature set.
pub fn memory_control(&self) -> bool
pub fn memory_control(&self) -> bool
Returns whether this feature is enabled in this feature set.
pub fn custom_page_sizes(&self) -> bool
pub fn custom_page_sizes(&self) -> bool
Returns whether this feature is enabled in this feature set.
pub fn legacy_exceptions(&self) -> bool
pub fn legacy_exceptions(&self) -> bool
Returns whether this feature is enabled in this feature set.
pub fn stack_switching(&self) -> bool
pub fn stack_switching(&self) -> bool
Returns whether this feature is enabled in this feature set.
pub fn wide_arithmetic(&self) -> bool
pub fn wide_arithmetic(&self) -> bool
Returns whether this feature is enabled in this feature set.
pub fn cm_nested_names(&self) -> bool
pub fn cm_nested_names(&self) -> bool
Returns whether this feature is enabled in this feature set.
pub fn cm_async_stackful(&self) -> bool
pub fn cm_async_stackful(&self) -> bool
Returns whether this feature is enabled in this feature set.
pub fn cm_async_builtins(&self) -> bool
pub fn cm_async_builtins(&self) -> bool
Returns whether this feature is enabled in this feature set.
pub fn cm_threading(&self) -> bool
pub fn cm_threading(&self) -> bool
Returns whether this feature is enabled in this feature set.
pub fn cm_error_context(&self) -> bool
pub fn cm_error_context(&self) -> bool
Returns whether this feature is enabled in this feature set.
pub fn cm_fixed_size_list(&self) -> bool
pub fn cm_fixed_size_list(&self) -> bool
Returns whether this feature is enabled in this feature set.
pub fn call_indirect_overlong(&self) -> bool
pub fn call_indirect_overlong(&self) -> bool
Returns whether this feature is enabled in this feature set.
pub fn bulk_memory_opt(&self) -> bool
pub fn bulk_memory_opt(&self) -> bool
Returns whether this feature is enabled in this feature set.
§impl WasmFeatures
impl WasmFeatures
pub const MVP: WasmFeatures
pub const MVP: WasmFeatures
The feature set associated with the MVP release of WebAssembly (its first release).
pub const WASM1: WasmFeatures
pub const WASM1: WasmFeatures
The feature set associated with the 1.0 version of the WebAssembly specification circa 2017.
https://webassembly.github.io/spec/versions/core/WebAssembly-1.0.pdf
pub const WASM2: WasmFeatures
pub const WASM2: WasmFeatures
The feature set associated with the 2.0 version of the WebAssembly specification circa 2022.
https://webassembly.github.io/spec/versions/core/WebAssembly-2.0.pdf
pub const WASM3: WasmFeatures
pub const WASM3: WasmFeatures
The feature set associated with the 3.0 version of the WebAssembly specification.
Note that as of the time of this writing the 3.0 version of the specification is not yet published. The precise set of features set here may change as that continues to evolve.
(draft) https://webassembly.github.io/spec/versions/core/WebAssembly-3.0-draft.pdf
pub const LIME1: WasmFeatures
pub const LIME1: WasmFeatures
The feature set associated with the “lime1” set of features.
Here “lime1” stands for “linear memory version 1” and is a stable set of features agreed on by both producers and consumers which is more than the MVP but does not include some more weighty engine features such as reference types, gc, etc.
https://github.com/WebAssembly/tool-conventions/blob/main/Lime.md
Trait Implementations§
§impl Binary for WasmFeatures
impl Binary for WasmFeatures
§impl BitAnd for WasmFeatures
impl BitAnd for WasmFeatures
§fn bitand(self, other: WasmFeatures) -> WasmFeatures
fn bitand(self, other: WasmFeatures) -> WasmFeatures
The bitwise and (&
) of the bits in two flags values.
§type Output = WasmFeatures
type Output = WasmFeatures
&
operator.§impl BitAndAssign for WasmFeatures
impl BitAndAssign for WasmFeatures
§fn bitand_assign(&mut self, other: WasmFeatures)
fn bitand_assign(&mut self, other: WasmFeatures)
The bitwise and (&
) of the bits in two flags values.
§impl BitOr for WasmFeatures
impl BitOr for WasmFeatures
§fn bitor(self, other: WasmFeatures) -> WasmFeatures
fn bitor(self, other: WasmFeatures) -> WasmFeatures
The bitwise or (|
) of the bits in two flags values.
§type Output = WasmFeatures
type Output = WasmFeatures
|
operator.§impl BitOrAssign for WasmFeatures
impl BitOrAssign for WasmFeatures
§fn bitor_assign(&mut self, other: WasmFeatures)
fn bitor_assign(&mut self, other: WasmFeatures)
The bitwise or (|
) of the bits in two flags values.
§impl BitXor for WasmFeatures
impl BitXor for WasmFeatures
§fn bitxor(self, other: WasmFeatures) -> WasmFeatures
fn bitxor(self, other: WasmFeatures) -> WasmFeatures
The bitwise exclusive-or (^
) of the bits in two flags values.
§type Output = WasmFeatures
type Output = WasmFeatures
^
operator.§impl BitXorAssign for WasmFeatures
impl BitXorAssign for WasmFeatures
§fn bitxor_assign(&mut self, other: WasmFeatures)
fn bitxor_assign(&mut self, other: WasmFeatures)
The bitwise exclusive-or (^
) of the bits in two flags values.
§impl Clone for WasmFeatures
impl Clone for WasmFeatures
§fn clone(&self) -> WasmFeatures
fn clone(&self) -> WasmFeatures
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl Debug for WasmFeatures
impl Debug for WasmFeatures
§impl Default for WasmFeatures
impl Default for WasmFeatures
§fn default() -> WasmFeatures
fn default() -> WasmFeatures
§impl Extend<WasmFeatures> for WasmFeatures
impl Extend<WasmFeatures> for WasmFeatures
§fn extend<T>(&mut self, iterator: T)where
T: IntoIterator<Item = WasmFeatures>,
fn extend<T>(&mut self, iterator: T)where
T: IntoIterator<Item = WasmFeatures>,
The bitwise or (|
) of the bits in each flags value.
Source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)Source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)§impl Flags for WasmFeatures
impl Flags for WasmFeatures
§const FLAGS: &'static [Flag<WasmFeatures>]
const FLAGS: &'static [Flag<WasmFeatures>]
§fn from_bits_retain(bits: u64) -> WasmFeatures
fn from_bits_retain(bits: u64) -> WasmFeatures
§fn contains_unknown_bits(&self) -> bool
fn contains_unknown_bits(&self) -> bool
true
if any unknown bits are set.§fn from_bits_truncate(bits: Self::Bits) -> Self
fn from_bits_truncate(bits: Self::Bits) -> Self
§fn from_name(name: &str) -> Option<Self>
fn from_name(name: &str) -> Option<Self>
§fn iter_names(&self) -> IterNames<Self>
fn iter_names(&self) -> IterNames<Self>
§fn intersects(&self, other: Self) -> boolwhere
Self: Sized,
fn intersects(&self, other: Self) -> boolwhere
Self: Sized,
§fn contains(&self, other: Self) -> boolwhere
Self: Sized,
fn contains(&self, other: Self) -> boolwhere
Self: Sized,
§fn insert(&mut self, other: Self)where
Self: Sized,
fn insert(&mut self, other: Self)where
Self: Sized,
|
) of the bits in two flags values.§fn remove(&mut self, other: Self)where
Self: Sized,
fn remove(&mut self, other: Self)where
Self: Sized,
&!
). Read more§fn toggle(&mut self, other: Self)where
Self: Sized,
fn toggle(&mut self, other: Self)where
Self: Sized,
^
) of the bits in two flags values.§fn set(&mut self, other: Self, value: bool)where
Self: Sized,
fn set(&mut self, other: Self, value: bool)where
Self: Sized,
Flags::insert
] when value
is true
or [Flags::remove
] when value
is false
.§fn intersection(self, other: Self) -> Self
fn intersection(self, other: Self) -> Self
&
) of the bits in two flags values.§fn difference(self, other: Self) -> Self
fn difference(self, other: Self) -> Self
&!
). Read more§fn symmetric_difference(self, other: Self) -> Self
fn symmetric_difference(self, other: Self) -> Self
^
) of the bits in two flags values.§fn complement(self) -> Self
fn complement(self) -> Self
!
) of the bits in a flags value, truncating the result.§impl From<WasmFeaturesInflated> for WasmFeatures
impl From<WasmFeaturesInflated> for WasmFeatures
§fn from(inflated: WasmFeaturesInflated) -> WasmFeatures
fn from(inflated: WasmFeaturesInflated) -> WasmFeatures
§impl FromIterator<WasmFeatures> for WasmFeatures
impl FromIterator<WasmFeatures> for WasmFeatures
§fn from_iter<T>(iterator: T) -> WasmFeatureswhere
T: IntoIterator<Item = WasmFeatures>,
fn from_iter<T>(iterator: T) -> WasmFeatureswhere
T: IntoIterator<Item = WasmFeatures>,
The bitwise or (|
) of the bits in each flags value.
§impl Hash for WasmFeatures
impl Hash for WasmFeatures
§impl IntoIterator for WasmFeatures
impl IntoIterator for WasmFeatures
§type Item = WasmFeatures
type Item = WasmFeatures
§type IntoIter = Iter<WasmFeatures>
type IntoIter = Iter<WasmFeatures>
§fn into_iter(self) -> <WasmFeatures as IntoIterator>::IntoIter
fn into_iter(self) -> <WasmFeatures as IntoIterator>::IntoIter
§impl LowerHex for WasmFeatures
impl LowerHex for WasmFeatures
§impl Not for WasmFeatures
impl Not for WasmFeatures
§fn not(self) -> WasmFeatures
fn not(self) -> WasmFeatures
The bitwise negation (!
) of the bits in a flags value, truncating the result.
§type Output = WasmFeatures
type Output = WasmFeatures
!
operator.§impl Octal for WasmFeatures
impl Octal for WasmFeatures
§impl PartialEq for WasmFeatures
impl PartialEq for WasmFeatures
§impl Sub for WasmFeatures
impl Sub for WasmFeatures
§fn sub(self, other: WasmFeatures) -> WasmFeatures
fn sub(self, other: WasmFeatures) -> WasmFeatures
The intersection of a source flags value with the complement of a target flags value (&!
).
This method is not equivalent to self & !other
when other
has unknown bits set.
difference
won’t truncate other
, but the !
operator will.
§type Output = WasmFeatures
type Output = WasmFeatures
-
operator.§impl SubAssign for WasmFeatures
impl SubAssign for WasmFeatures
§fn sub_assign(&mut self, other: WasmFeatures)
fn sub_assign(&mut self, other: WasmFeatures)
The intersection of a source flags value with the complement of a target flags value (&!
).
This method is not equivalent to self & !other
when other
has unknown bits set.
difference
won’t truncate other
, but the !
operator will.
§impl UpperHex for WasmFeatures
impl UpperHex for WasmFeatures
impl Copy for WasmFeatures
impl Eq for WasmFeatures
impl StructuralPartialEq for WasmFeatures
Auto Trait Implementations§
impl Freeze for WasmFeatures
impl RefUnwindSafe for WasmFeatures
impl Send for WasmFeatures
impl Sync for WasmFeatures
impl Unpin for WasmFeatures
impl UnwindSafe for WasmFeatures
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more