Skip to main content

create_capability

Macro create_capability 

Source
macro_rules! create_capability {
    ($name:expr, |$config:ident| $body:expr) => { ... };
    ($name:expr, $body:expr) => { ... };
}
Expand description

Macro for creating a (&str, HostCapabilityFactory) tuple with reduced boilerplate.

ยงExamples

โ“˜
// Without config โ€” capability is constructed directly
create_capability!("greeting", GreetingCapability {
    message: self.message.clone(),
})

// With config โ€” closure receives the capability's config value
create_capability!("greeting", |config| {
    let suffix = config.get("suffix").and_then(|v| v.as_str()).unwrap_or("!");
    GreetingCapability { message: self.message.clone(), suffix: suffix.to_string() }
})