use loregrep::LoreGrep;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
println!("๐งช LoreGrep Enhanced Builder Methods Demo");
println!("{}", "=".repeat(50));
println!("\n1. Performance-Optimized Configuration:");
let _performance_build = LoreGrep::builder()
.with_rust_analyzer()
.optimize_for_performance() .exclude_common_build_dirs() .exclude_vendor_dirs() .build()?;
println!("โ
Performance-optimized build created");
println!(" ๐ Max file size: 512KB, Max depth: 8");
println!(" ๐ซ Excludes: build dirs, vendor dirs, binary files");
println!("\n2. Comprehensive Analysis Configuration:");
let _comprehensive_build = LoreGrep::builder()
.with_all_analyzers() .comprehensive_analysis() .include_config_files() .exclude_test_dirs() .build()?;
println!("โ
Comprehensive analysis build created");
println!(" ๐ Max file size: 5MB, Max depth: 20");
println!(" โ
Includes: source files, configs, documentation");
println!(" ๐ซ Excludes: test directories");
println!("\n3. Custom Combination Build:");
let _custom_build = LoreGrep::builder()
.with_rust_analyzer()
.with_python_analyzer()
.exclude_common_build_dirs()
.exclude_test_dirs()
.exclude_vendor_dirs()
.include_source_files()
.include_config_files()
.max_files(5000)
.build()?;
println!("โ
Custom combination build created");
println!(" ๐ง Custom limits with selective inclusions/exclusions");
println!("\n4. Project Presets vs Enhanced Builder:");
let _rust_preset = LoreGrep::rust_project(".")?;
println!("โ
Rust preset: LoreGrep::rust_project(\".\")");
let _enhanced_rust = LoreGrep::builder()
.with_rust_analyzer()
.include_patterns(vec!["**/*.rs".to_string(), "**/*.toml".to_string()])
.exclude_common_build_dirs()
.exclude_test_dirs() .optimize_for_performance() .build()?;
println!("โ
Enhanced Rust build with additional optimizations");
println!("\n5. Auto-Discovery vs Manual Configuration:");
let _auto_discovered = LoreGrep::auto_discover(".")?;
println!("โ
Auto-discovery: LoreGrep::auto_discover(\".\")");
let _manual_enhanced = LoreGrep::builder()
.with_all_analyzers()
.exclude_common_build_dirs()
.exclude_test_dirs()
.exclude_vendor_dirs()
.include_source_files()
.optimize_for_performance()
.build()?;
println!("โ
Manual enhanced configuration with all convenience methods");
println!("\n๐ Enhanced Builder Demo Complete!");
println!("๐ก Key benefits:");
println!(" ๐ Performance presets for speed-critical applications");
println!(" ๐ Comprehensive presets for thorough analysis");
println!(" ๐๏ธ Granular control with convenience methods");
println!(" ๐ฏ One-line presets for common project types");
println!(" ๐ค Zero-config auto-discovery for quick setup");
Ok(())
}