pub struct CapabilityRegistry { /* private fields */ }Expand description
Registry of available capabilities.
Stores capabilities by name and provides lookup, listing, and registration.
§Example
ⓘ
use runtimo_core::{CapabilityRegistry, FileRead, FileWrite};
use std::path::PathBuf;
let mut registry = CapabilityRegistry::new();
registry.register(FileRead);
registry.register(FileWrite::new(PathBuf::from("/tmp/backups")).unwrap());
assert!(registry.get("FileRead").is_some());
let caps = registry.list();
assert_eq!(caps.len(), 2);
assert!(caps.contains(&"FileRead"));
assert!(caps.contains(&"FileWrite"));Implementations§
Source§impl CapabilityRegistry
impl CapabilityRegistry
Sourcepub fn register<C: Capability + 'static>(&mut self, capability: C)
pub fn register<C: Capability + 'static>(&mut self, capability: C)
Registers a capability in the registry.
The capability is stored under its Capability::name. If a capability
with the same name already exists, it is replaced.
Sourcepub fn get(&self, name: &str) -> Option<&dyn Capability>
pub fn get(&self, name: &str) -> Option<&dyn Capability>
Looks up a capability by name.
Returns None if no capability with the given name is registered.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for CapabilityRegistry
impl !RefUnwindSafe for CapabilityRegistry
impl Send for CapabilityRegistry
impl Sync for CapabilityRegistry
impl Unpin for CapabilityRegistry
impl UnsafeUnpin for CapabilityRegistry
impl !UnwindSafe for CapabilityRegistry
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more