Common types for representing Lucet modules.
These types are used both in
lucet-runtime, with values serialized in
bincode format to the compiled Lucet modules.
Owned variants of the module data types, useful for serialization and testing.
ExportFunction describes an exported function - its internal function index and a name that function has been exported under.
FunctionIndex is an identifier for a function, imported, exported, or external. The space of
FunctionIndex is shared for all of these, so
Information about the corresponding function.
FunctionPointer serves entirely as a safer way to work with function pointers than as raw u64
or usize values. It also avoids the need to write them as
A WebAssembly global along with its export specification.
Specifications about the heap of a Lucet module.
ImportFunction describes an internal function - its internal function index and the name/module pair that function should be found in.
This struct describes the handful of fields that Lucet-compiled programs may directly interact with, but are provided through VMContext.
Specification of the linear memory of a module
Module is the exposed structure that contains all the data backing a Lucet-compiled object.
The metadata (and some data) for a Lucet module.
SerializedModule is a serialization-friendly form of Module, in that the
A signature for a function in a wasm module.
A sparse representation of a Lucet module's initial heap.
A collection of trap sites, typically obtained from a
single function (see [
Trap information for an address in a compiled function
UniqueSignatureIndex names a signature after collapsing duplicate signatures to a single identifier, whereas SignatureIndex is directly what the original module specifies, and may specify duplicates of types that are structurally equal.
VersionInfo is information about a Lucet module to allow the Lucet runtime to determine if or
how the module can be loaded, if so requested. The information here describes implementation
details in runtime support for
A WebAssembly global is either defined locally, or is defined in relation to a field of another WebAssembly module.
Definition for a global in this module (not imported).
The type of a WebAssembly trap.