PluginRegistry

Trait PluginRegistry 

Source
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§

Source

fn register_analyzer(&mut self, analyzer: Box<dyn FileAnalyzer>)

Register a file analyzer

Source

fn register_scorer(&mut self, scorer: Box<dyn HeuristicScorer>)

Register a scorer

Source

fn register_repository_analyzer( &mut self, analyzer: Box<dyn RepositoryAnalyzer>, )

Register a repository analyzer

Source

fn register_formatter(&mut self, formatter: Box<dyn OutputFormatter>)

Register an output formatter

Source

fn register_language_extension(&mut self, extension: Box<dyn LanguageExtension>)

Register a language extension

Source

fn get_analyzers(&self) -> Vec<&dyn FileAnalyzer>

Get registered analyzers

Source

fn get_scorers(&self) -> Vec<&dyn HeuristicScorer>

Get registered scorers

Source

fn get_formatters(&self) -> Vec<&dyn OutputFormatter>

Get registered formatters

Source

fn load_plugins_from_dir(&mut self, dir: &Path) -> Result<usize>

Load plugins from directory

Implementors§