pub enum ValType {
I32,
I64,
F32,
F64,
V128,
Ref(RefType),
}
runtime
only.Expand description
A list of all possible value types in WebAssembly.
§Subtyping and Equality
ValType
does not implement Eq
, because reference types have a subtyping
relationship, and so 99.99% of the time you actually want to check whether
one type matches (i.e. is a subtype of) another type. You can use the
ValType::matches
and Val::matches_ty
methods
to perform these types of checks. If, however, you are in that 0.01%
scenario where you need to check precise equality between types, you can use
the ValType::eq
method.
Variants§
I32
Signed 32 bit integer.
I64
Signed 64 bit integer.
F32
Floating point 32 bit integer.
F64
Floating point 64 bit integer.
V128
A 128 bit number.
Ref(RefType)
An opaque reference to some type on the heap.
Implementations§
source§impl ValType
impl ValType
sourcepub const NULLFUNCREF: Self = _
pub const NULLFUNCREF: Self = _
The nullfuncref
type, aka (ref null nofunc)
.
sourcepub fn is_num(&self) -> bool
pub fn is_num(&self) -> bool
Returns true if ValType
matches any of the numeric types. (e.g. I32
,
I64
, F32
, F64
).
sourcepub fn is_funcref(&self) -> bool
pub fn is_funcref(&self) -> bool
Is this the funcref
(aka (ref null func)
) type?
sourcepub fn is_externref(&self) -> bool
pub fn is_externref(&self) -> bool
Is this the externref
(aka (ref null extern)
) type?
sourcepub fn as_ref(&self) -> Option<&RefType>
pub fn as_ref(&self) -> Option<&RefType>
Get the underlying reference type, if this value type is a reference type.
sourcepub fn unwrap_ref(&self) -> &RefType
pub fn unwrap_ref(&self) -> &RefType
Get the underlying reference type, panicking if this value type is not a reference type.