[][src]Crate lucet_module_data

Common types for representing Lucet module data and metadata.

These types are used both in lucetc and lucet-runtime, with values serialized in bincode format to the compiled Lucet modules.

Modules

bindings
owned

Owned variants of the module data types, useful for serialization and testing.

Macros

lucet_signature

Structs

ExportFunction

ExportFunction describes an exported function - its internal function index and a name that function has been exported under.

FunctionHandle
FunctionIndex

FunctionIndex is an identifier for a function, imported, exported, or external. The space of FunctionIndex is shared for all of these, so FunctionIndex(N) may identify exported function #2, FunctionIndex(N + 1) may identify an internal function, and FunctionIndex(N + 2) may identify an imported function.

FunctionMetadata

Information about the corresponding function.

FunctionPointer

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 fn types, which cannot be freely cast from one to another with as. If you need to call a FunctionPointer, use as_usize() and transmute the resulting usize to a fn type with appropriate signature.

FunctionSpec
GlobalSpec

A WebAssembly global along with its export specification.

HeapSpec

Specifications about the heap of a Lucet module.

ImportFunction

ImportFunction describes an internal function - its internal function index and the name/module pair that function should be found in.

LinearMemorySpec

Specification of the linear memory of a module

ModuleData

The metadata (and some data) for a Lucet module.

ModuleSignature
PublicKey

A PublicKey is used to verify signatures.

Signature

A signature for a function in a wasm module.

SparseData

A sparse representation of a Lucet module's initial heap.

TrapManifest

A collection of trap sites, typically obtained from a single function (see [FunctionSpec::traps])

TrapSite

Trap information for an address in a compiled function

UniqueSignatureIndex

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.

Enums

Error

Module data (de)serialization errors.

Global

A WebAssembly global is either defined locally, or is defined in relation to a field of another WebAssembly module.

GlobalDef

Definition for a global in this module (not imported).

TrapCode

The type of a WebAssembly trap.

ValueType

Unions

GlobalValue