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 parseoptions
- 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
.