Skip to main content

modular_agent_core/
registry.rs

1use crate::{AgentDefinition, ModularAgent};
2
3/// Registration entry emitted by the `#[modular_agent]` macro.
4pub struct AgentRegistration {
5    pub build: fn() -> AgentDefinition,
6}
7
8inventory::collect!(AgentRegistration);
9
10/// Register all agents collected via the `#[modular_agent]` macro.
11pub(crate) fn register_inventory_agents(ma: &ModularAgent) {
12    for reg in inventory::iter::<AgentRegistration> {
13        ma.register_agent_definiton((reg.build)());
14    }
15}