Module ParseRust

Module ParseRust 

Source
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 type
  • super::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§

ExtractRustSymbols
Extract Rust symbols (struct, impl, fn, mod, enum, trait)
ExtractVisibilityModifier
Extract Rust visibility modifier if present
IsRustFunction
Check if a line contains a Rust function definition
IsRustImpl
Check if a line contains a Rust impl block
IsRustStruct
Check if a line contains a Rust struct definition