wasm_capability_contract/capability/traits/capability_registry.rs
1//! [`CapabilityRegistry`] — resolves a capability name to its dispatch descriptor.
2
3use crate::CapabilityDescriptor;
4
5/// Resolves a capability name (e.g. `"http-egress"`, or a deployer-scoped
6/// instance like `"grpc-egress:inventory-svc"`) to the descriptor
7/// describing how it dispatches.
8///
9/// Data assembled at `Builder` composition time, not a compiled-in
10/// `match` — a deployer can register additional named capabilities
11/// without editing this crate's source (ADR-001). Zero implementation
12/// here.
13pub trait CapabilityRegistry: Send + Sync {
14 /// Look up `capability`'s descriptor, if registered.
15 fn descriptor(&self, capability: &str) -> Option<&CapabilityDescriptor>;
16}