Skip to main content

LanguagePlugin

Trait LanguagePlugin 

Source
pub trait LanguagePlugin: Send + Sync {
    // Required methods
    fn id(&self) -> &'static str;
    fn extensions(&self) -> &'static [&'static str];
    fn extract(
        &self,
        source: &[u8],
        context: &FileContext,
    ) -> Result<ExtractionResult>;

    // Provided methods
    fn prepare_project(&self, _context: &ProjectContext) -> Result<()> { ... }
    fn finish_project(&self, _context: &ProjectContext) -> Result<()> { ... }
    fn discover_modules(&self, _context: &ProjectContext) -> Result<ModuleMap> { ... }
    fn stamp_module(
        &self,
        result: ExtractionResult,
        module_name: Option<&str>,
    ) -> ExtractionResult { ... }
    fn classifiers(&self) -> Vec<Box<dyn Classifier>> { ... }
    fn graph_passes(&self) -> Vec<Box<dyn GraphPass>> { ... }
}

Required Methods§

Source

fn id(&self) -> &'static str

Source

fn extensions(&self) -> &'static [&'static str]

Source

fn extract( &self, source: &[u8], context: &FileContext, ) -> Result<ExtractionResult>

Provided Methods§

Source

fn prepare_project(&self, _context: &ProjectContext) -> Result<()>

Source

fn finish_project(&self, _context: &ProjectContext) -> Result<()>

Source

fn discover_modules(&self, _context: &ProjectContext) -> Result<ModuleMap>

Source

fn stamp_module( &self, result: ExtractionResult, module_name: Option<&str>, ) -> ExtractionResult

Source

fn classifiers(&self) -> Vec<Box<dyn Classifier>>

Source

fn graph_passes(&self) -> Vec<Box<dyn GraphPass>>

Implementors§