#[derive(Debug, thiserror::Error, PartialEq, Eq)]
pub enum CapabilityError {
#[error("unsupported contract version: {0}")]
UnsupportedContractVersion(String),
#[error("invalid manifest: {0}")]
InvalidManifest(String),
#[error("capability unavailable: {0}")]
CapabilityUnavailable(String),
#[error("component trap: {0}")]
Trap(String),
#[error("invalid output: {0}")]
InvalidOutput(String),
#[error("resource exhausted: {0}")]
ResourceExhausted(String),
#[error("invocation cancelled")]
Cancelled,
#[error("invocation timed out")]
Timeout,
}