pub trait PluginRegistry: Send + Sync {
// Required methods
fn register_analyzer(&mut self, analyzer: Box<dyn FileAnalyzer>);
fn register_scorer(&mut self, scorer: Box<dyn HeuristicScorer>);
fn register_repository_analyzer(
&mut self,
analyzer: Box<dyn RepositoryAnalyzer>,
);
fn register_formatter(&mut self, formatter: Box<dyn OutputFormatter>);
fn register_language_extension(
&mut self,
extension: Box<dyn LanguageExtension>,
);
fn get_analyzers(&self) -> Vec<&dyn FileAnalyzer>;
fn get_scorers(&self) -> Vec<&dyn HeuristicScorer>;
fn get_formatters(&self) -> Vec<&dyn OutputFormatter>;
fn load_plugins_from_dir(&mut self, dir: &Path) -> Result<usize>;
}
Expand description
Trait for plugin registration and discovery
Required Methods§
Sourcefn register_analyzer(&mut self, analyzer: Box<dyn FileAnalyzer>)
fn register_analyzer(&mut self, analyzer: Box<dyn FileAnalyzer>)
Register a file analyzer
Sourcefn register_scorer(&mut self, scorer: Box<dyn HeuristicScorer>)
fn register_scorer(&mut self, scorer: Box<dyn HeuristicScorer>)
Register a scorer
Sourcefn register_repository_analyzer(
&mut self,
analyzer: Box<dyn RepositoryAnalyzer>,
)
fn register_repository_analyzer( &mut self, analyzer: Box<dyn RepositoryAnalyzer>, )
Register a repository analyzer
Sourcefn register_formatter(&mut self, formatter: Box<dyn OutputFormatter>)
fn register_formatter(&mut self, formatter: Box<dyn OutputFormatter>)
Register an output formatter
Sourcefn register_language_extension(&mut self, extension: Box<dyn LanguageExtension>)
fn register_language_extension(&mut self, extension: Box<dyn LanguageExtension>)
Register a language extension
Sourcefn get_analyzers(&self) -> Vec<&dyn FileAnalyzer>
fn get_analyzers(&self) -> Vec<&dyn FileAnalyzer>
Get registered analyzers
Sourcefn get_scorers(&self) -> Vec<&dyn HeuristicScorer>
fn get_scorers(&self) -> Vec<&dyn HeuristicScorer>
Get registered scorers
Sourcefn get_formatters(&self) -> Vec<&dyn OutputFormatter>
fn get_formatters(&self) -> Vec<&dyn OutputFormatter>
Get registered formatters
Sourcefn load_plugins_from_dir(&mut self, dir: &Path) -> Result<usize>
fn load_plugins_from_dir(&mut self, dir: &Path) -> Result<usize>
Load plugins from directory