pub trait PluginRegistry: Send + Sync {
// Required methods
fn register(&self, plugin: Arc<dyn Plugin>) -> AgentResult<()>;
fn unregister(&self, name: &str) -> AgentResult<bool>;
fn get(&self, name: &str) -> Option<Arc<dyn Plugin>>;
fn list(&self) -> Vec<Arc<dyn Plugin>>;
fn list_by_stage(&self, stage: PluginStage) -> Vec<Arc<dyn Plugin>>;
fn contains(&self, name: &str) -> bool;
fn count(&self) -> usize;
// Provided method
fn register_all(&self, plugins: Vec<Arc<dyn Plugin>>) -> AgentResult<()> { ... }
}Expand description
插件注册中心
Required Methods§
Sourcefn unregister(&self, name: &str) -> AgentResult<bool>
fn unregister(&self, name: &str) -> AgentResult<bool>
移除插件
Sourcefn list_by_stage(&self, stage: PluginStage) -> Vec<Arc<dyn Plugin>>
fn list_by_stage(&self, stage: PluginStage) -> Vec<Arc<dyn Plugin>>
列出指定阶段的插件
Provided Methods§
Sourcefn register_all(&self, plugins: Vec<Arc<dyn Plugin>>) -> AgentResult<()>
fn register_all(&self, plugins: Vec<Arc<dyn Plugin>>) -> AgentResult<()>
批量注册插件