pub trait CapabilityProvider {
// Required method
fn capabilities(&self) -> &Capabilities;
// Provided methods
fn supports(&self, cap: &Capability) -> bool { ... }
fn supports_all(&self, caps: &[Capability]) -> bool { ... }
fn supports_any(&self, caps: &[Capability]) -> bool { ... }
}