Skip to main content

wasmtime_environ/component/
artifacts.rs

1//! Definitions of compilation artifacts of the component compilation process
2//! which are serialized with `bincode` into output ELF files.
3
4use crate::{
5    CompiledFunctionsTable, CompiledModuleInfo, PrimaryMap, StaticModuleIndex, WasmChecksum,
6    component::{Component, ComponentTypes, TypeComponentIndex},
7};
8use serde_derive::{Deserialize, Serialize};
9
10/// Serializable state that's stored in a compilation artifact.
11#[derive(Serialize, Deserialize)]
12pub struct ComponentArtifacts {
13    /// The type of this component.
14    pub ty: TypeComponentIndex,
15    /// Information all kept available at runtime as-is.
16    pub info: CompiledComponentInfo,
17    /// The index of every compiled function's location in the text section.
18    pub table: CompiledFunctionsTable,
19    /// Type information for this component and all contained modules.
20    pub types: ComponentTypes,
21    /// Serialized metadata about all included core wasm modules.
22    pub static_modules: PrimaryMap<StaticModuleIndex, CompiledModuleInfo>,
23    /// A checksum of the source Wasm binary from which the component was compiled.
24    pub checksum: WasmChecksum,
25}
26
27/// Runtime state that a component retains to support its operation.
28#[derive(Serialize, Deserialize)]
29pub struct CompiledComponentInfo {
30    /// Type information calculated during translation about this component.
31    pub component: Component,
32}