Function parse_directory

Source
pub async fn parse_directory(
    dir_path: &str,
    options: ParseOptions,
) -> Result<ParsedProject, Error>
Expand description

Parse an entire project directory recursively

This function traverses a directory structure, identifies source code files, and parses them concurrently to extract code constructs from all supported files.

§Arguments

  • dir_path - Path to the root directory to parse
  • options - Configuration options controlling parsing behavior

§Returns

Returns a ParsedProject containing results from all parsed files, including statistics and error information.

§Examples

use tree_parser::{parse_directory, ParseOptions};
 
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let options = ParseOptions::default();
    let project = parse_directory("./src", options).await?;
     
    println!("Parsed {} files", project.total_files_processed);
    for (language, count) in &project.language_distribution {
        println!("{:?}: {} files", language, count);
    }
    Ok(())
}

§Performance

This function uses concurrent processing to parse multiple files simultaneously. The concurrency level is controlled by options.max_concurrent_files.