Skip to main content

LanguageAnalyzer

Trait LanguageAnalyzer 

Source
pub trait LanguageAnalyzer: Send + Sync {
    // Required methods
    fn language(&self) -> &'static str;
    fn file_extensions(&self) -> &[&str];
    fn parse_file(&self, path: &Path, content: &str) -> Result<ParsedFile>;
    fn extract_components(&self, parsed: &ParsedFile) -> Vec<Component>;
    fn extract_dependencies(&self, parsed: &ParsedFile) -> Vec<Dependency>;
}
Expand description

Trait that each language analyzer must implement.

Required Methods§

Source

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

Language name (e.g., “go”, “rust”)

Source

fn file_extensions(&self) -> &[&str]

File extensions this analyzer handles (e.g., &[“go”])

Source

fn parse_file(&self, path: &Path, content: &str) -> Result<ParsedFile>

Parse a source file into a ParsedFile.

Source

fn extract_components(&self, parsed: &ParsedFile) -> Vec<Component>

Extract architectural components from a parsed file.

Source

fn extract_dependencies(&self, parsed: &ParsedFile) -> Vec<Dependency>

Extract dependencies (imports, type references, etc.) from a parsed file.

Implementors§