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§
Sourcefn file_extensions(&self) -> &[&str]
fn file_extensions(&self) -> &[&str]
File extensions this analyzer handles (e.g., &[“go”])
Sourcefn parse_file(&self, path: &Path, content: &str) -> Result<ParsedFile>
fn parse_file(&self, path: &Path, content: &str) -> Result<ParsedFile>
Parse a source file into a ParsedFile.
Sourcefn extract_components(&self, parsed: &ParsedFile) -> Vec<Component>
fn extract_components(&self, parsed: &ParsedFile) -> Vec<Component>
Extract architectural components from a parsed file.
Sourcefn extract_dependencies(&self, parsed: &ParsedFile) -> Vec<Dependency>
fn extract_dependencies(&self, parsed: &ParsedFile) -> Vec<Dependency>
Extract dependencies (imports, type references, etc.) from a parsed file.