wasm-capability-contract 0.3.0

Generic, domain-agnostic capability pattern: CapabilityEngine/CapabilityRegistry/CapabilityDispatcher trait shapes + component/capability types. Trait definitions only -- see wasm-capability-core for this pattern's own default implementation, extracted from agent-runtime's ADR-001 (agent-runtime#31, ADR-011).
Documentation
//! [`ComponentInvokeRequest`] — input to [`crate::CapabilityEngine::invoke`].

use std::time::Duration;

use crate::ComponentHandle;

/// Request to invoke a loaded component's handler export once.
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct ComponentInvokeRequest {
    /// Handle to the component instance to invoke, from a prior
    /// [`crate::CapabilityEngine::load`] call.
    pub handle: ComponentHandle,
    /// Raw request payload bytes, passed to the component's export
    /// unmodified.
    pub payload: Vec<u8>,
    /// Maximum time to wait for this invocation before it is cancelled and
    /// [`crate::CapabilityError::Timeout`] is returned. Must never exceed
    /// the component's own
    /// [`crate::ResourceLimits::invoke_timeout_ms`].
    pub deadline: Duration,
}