Crate wasmer_types
source ·Expand description
This are the common types and utility tools for using WebAssembly in a Rust environment.
This crate provides common structures such as Type
or Value
, type indexes
and native function wrappers with Func
.
Re-exports
pub use crate::compilation::target::CpuFeature;
pub use crate::compilation::target::Target;
pub use error::CompileError;
pub use error::DeserializeError;
pub use error::ImportError;
pub use error::MemoryError;
pub use error::MiddlewareError;
pub use error::ParseCpuFeatureError;
pub use error::PreInstantiationError;
pub use error::SerializeError;
pub use error::WasmError;
pub use error::WasmResult;
pub use crate::compilation::relocation::Relocation;
pub use crate::compilation::relocation::RelocationKind;
pub use crate::compilation::relocation::RelocationTarget;
pub use crate::compilation::relocation::Relocations;
pub use crate::compilation::section::CustomSection;
pub use crate::compilation::section::CustomSectionProtection;
pub use crate::compilation::section::SectionBody;
pub use crate::compilation::section::SectionIndex;
pub use crate::compilation::address_map::FunctionAddressMap;
pub use crate::compilation::address_map::InstructionAddressMap;
pub use crate::compilation::function::Compilation;
pub use crate::compilation::function::CompiledFunction;
pub use crate::compilation::function::CompiledFunctionFrameInfo;
pub use crate::compilation::function::CustomSections;
pub use crate::compilation::function::Dwarf;
pub use crate::compilation::function::FunctionBody;
pub use crate::compilation::function::Functions;
pub use crate::compilation::module::CompileModuleInfo;
pub use crate::compilation::sourceloc::SourceLoc;
pub use crate::compilation::symbols::Symbol;
pub use crate::compilation::symbols::SymbolRegistry;
pub use crate::compilation::trap::TrapInformation;
pub use crate::compilation::unwind::CompiledFunctionUnwindInfo;
Modules
Types for compilation.
The entity module, with common helpers for Rust structures
The WebAssembly possible errors
The
lib
module defines a std
module that is identical whether
the core
or the std
feature is enabled.Macros
Macro which provides the common implementation of a 32-bit entity reference.
Structs
Units of WebAssembly memory in terms of 8-bit bytes.
Index type of a custom section inside a WebAssembly module.
Index type of a passive data segment inside the WebAssembly module.
A data initializer for linear memory.
A memory index and offset within that memory where a data initialization
should be performed.
Index type of a passive element segment inside the WebAssembly module.
A descriptor for an exported WebAssembly value.
This iterator allows us to iterate over the exports
and offer nice API ergonomics over it.
Controls which experimental features will be enabled.
Features usually have a corresponding WebAssembly proposal.
Index type of a function (imported or local) inside the WebAssembly module.
The signature of a function that is either implemented
in a Wasm module or exposed to Wasm by the host.
Index type of a global variable (imported or local) inside the WebAssembly module.
WebAssembly global.
Hash key of an import
A descriptor for an imported value into a wasm module.
This iterator allows us to iterate over the imports
and offer nice API ergonomics over it.
Index type of a function defined locally inside the WebAssembly module.
Index type of a global defined locally inside the WebAssembly module.
Index type of a memory defined locally inside the WebAssembly module.
Index type of a table defined locally inside the WebAssembly module.
Marker trait for 32-bit memories.
Marker trait for 64-bit memories.
Index type of a linear memory (imported or local) inside the WebAssembly module.
A descriptor for a WebAssembly memory type.
Metadata header which holds an ABI version and the length of the remaining
metadata.
A translated WebAssembly module, excluding the function bodies and
memory initializers.
As
DataInitializer
but owning the data rather than
holding a reference to itThe only error that can happen when converting
Bytes
to Pages
Units of WebAssembly pages (as specified to be 65,536 bytes).
The compilation related data for a serialized modules
Serializable struct that is able to serialize from and to a
ArtifactInfo
.Index type of a signature (imported or local) inside the WebAssembly module.
Index type of a table (imported or local) inside the WebAssembly module.
A WebAssembly table initializer.
A descriptor for a table in a WebAssembly module.
Target specific type for shared signature index.
A target “triple”. Historically such things had three fields, though they’ve
added additional fields over time.
The WebAssembly V128 type
An index type for builtin functions.
This class computes offsets to fields within VMContext and other
related structs that JIT code accesses directly.
Enums
The “architecture” field, which in some cases also specifies a specific
subarchitecture.
The “binary format” field, which is usually omitted, and the binary format
is implied by the other fields.
The calling convention, which specifies things like which registers are
used for passing arguments, which registers are callee-saved, and so on.
The target memory endianness.
The “environment” field, which specifies an ABI environment on top of the
operating system. In many configurations, this field is omitted, and the
environment is implied by the operating system.
An entity to export.
A list of all possible types which can be externally referenced from a
WebAssembly module.
Globals are initialized via the
const
operators or by referring to another import.An entity to import.
The name of a runtime library routine.
Implementation styles for WebAssembly linear memory.
Indicator of whether a global is mutable or not
The “operating system” field, which sometimes implies an environment, and
sometimes isn’t an actual operating system.
The width of a pointer (in the default address space).
Implementation styles for WebAssembly tables.
A trap code describing the reason for a trap.
A list of all possible value types in WebAssembly.
The “vendor” field, which in practice is little more than an arbitrary
modifier.
Constants
Version number of this crate.
The number of pages we can have before we run out of byte index space.
The minimum number of pages allowed.
WebAssembly page sizes are fixed to be 64KiB.
Note: large page support may be added in an opt-in manner in the future.
Traits
Trait for the
Memory32
and Memory64
marker types.NativeWasmType
represents a Wasm type that has a direct
representation on the host (hence the “native” term).Trait for a Value type. A Value type is a type that is always valid and may
be safely copied.
Functions
Check if the provided bytes are wasm-like
Type Definitions
Addend to add to the symbol value.
Offset in bytes from the beginning of the function.
Unions
Raw representation of a WebAssembly value.