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
//! Real-implementation tests for `CapabilityProtocol`.

use wasm_capability_contract::CapabilityProtocol;

/// @covers: CapabilityProtocol
/// Every variant must remain distinguishable by equality — a registry
/// lookup that returned the wrong protocol would wire a capability's
/// import to the wrong dispatcher family entirely.
#[test]
fn test_capability_protocol_variants_are_pairwise_distinct() {
    let all = [
        CapabilityProtocol::Http,
        CapabilityProtocol::Grpc,
        CapabilityProtocol::Complete,
        CapabilityProtocol::Mcp,
        CapabilityProtocol::Database,
        CapabilityProtocol::Secrets,
    ];
    for (i, a) in all.iter().enumerate() {
        for (j, b) in all.iter().enumerate() {
            assert_eq!(i == j, a == b, "variant {i} vs {j} equality mismatch");
        }
    }
}