Expand description
§ParseRust
§File: Indexing/Language/ParseRust.rs
§Role in Air Architecture
Provides Rust-specific symbol extraction functionality for the File Indexer service, identifying Rust language constructs like structs, impl blocks, functions, modules, enums, and traits.
§Primary Responsibility
Extract Rust code symbols from source files for VSCode Outline View and Go to Symbol features.
§Secondary Responsibilities
- Extract struct definitions
- Extract impl blocks
- Extract function definitions
- Extract module declarations
- Extract enum definitions
- Extract trait definitions
- Extract type aliases
§Dependencies
External Crates:
- None (uses std library)
Internal Modules:
crate::Result- Error handling typesuper::super::SymbolInfo- Symbol structure definitions
§Dependents
Indexing::Process::ExtractSymbols- Language routing
§VSCode Pattern Reference
Inspired by VSCode’s Rust symbol extraction in
src/vs/workbench/services/search/common/
§Security Considerations
- Line-by-line parsing without eval
- No code execution during extraction
- Safe string handling
§Performance Considerations
- Efficient line-based parsing
- Minimal allocations per file
- Early termination for non-Rust files
§Error Handling Strategy
Symbol extraction returns empty vectors on parse errors rather than failures, allowing indexing to continue for other files.
§Thread Safety
Symbol extraction functions are pure and safe to call from parallel indexing tasks.
Functions§
- Extract
Rust Symbols - Extract Rust symbols (struct, impl, fn, mod, enum, trait)
- Extract
Visibility Modifier - Extract Rust visibility modifier if present
- IsRust
Function - Check if a line contains a Rust function definition
- IsRust
Impl - Check if a line contains a Rust impl block
- IsRust
Struct - Check if a line contains a Rust struct definition