pub trait PluginRegistry: Send + Sync {
// Required methods
fn register(&self, plugin: Arc<dyn Plugin>) -> Result<(), AgentError>;
fn unregister(&self, name: &str) -> Result<bool, AgentError>;
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>>,
) -> Result<(), AgentError> { ... }
}Expand description
插件注册中心
Required Methods§
Sourcefn unregister(&self, name: &str) -> Result<bool, AgentError>
fn unregister(&self, name: &str) -> Result<bool, AgentError>
移除插件
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>>) -> Result<(), AgentError>
fn register_all(&self, plugins: Vec<Arc<dyn Plugin>>) -> Result<(), AgentError>
批量注册插件