pub struct ComponentManifest {
pub component_id: String,
pub contract_version: String,
pub handler_export: String,
pub resource_limits: ResourceLimits,
pub capabilities: Vec<String>,
}Expand description
Declares what a Wasm component is, what it declares it needs to run.
Checked by a real ComponentValidator implementor before the
component’s route is ever registered — a component whose manifest
fails validation must never reach the host’s dispatch engine.
The one entity in this crate: component_id is a stable identity
that outlives changes to contract version or anything else here, so
equality is by component_id alone (see PartialEq below), not
full structural equality the way a vo/dto compares.
Fields§
§component_id: StringStable identifier for this component, independent of version.
contract_version: StringThe byte-ABI contract version this component was compiled against.
handler_export: StringName of the component’s exported handler function.
resource_limits: ResourceLimitsResource bounds the host must enforce for this component.
capabilities: Vec<String>Capability names this component declares it needs (e.g.
"some-capability"). Anything not also present in the route’s
granted Vec<CapabilityGrant> is denied — ADR-001’s
deny-by-default posture.
Trait Implementations§
Source§impl Clone for ComponentManifest
impl Clone for ComponentManifest
Source§fn clone(&self) -> ComponentManifest
fn clone(&self) -> ComponentManifest
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ComponentManifest
impl Debug for ComponentManifest
Source§impl<'de> Deserialize<'de> for ComponentManifest
impl<'de> Deserialize<'de> for ComponentManifest
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for ComponentManifest
Source§impl PartialEq for ComponentManifest
Identity-based, not structural: two manifests with the same
component_id are the same component even if every other field
differs (e.g. a redeploy that bumps contract_version) – the
entity persists across such changes.
impl PartialEq for ComponentManifest
Identity-based, not structural: two manifests with the same
component_id are the same component even if every other field
differs (e.g. a redeploy that bumps contract_version) – the
entity persists across such changes.