lint 0.1.2

A versatile linting tool with CLI, MCP, and library interfaces
Documentation
use lint::ConfigBuilder;
use std::time::Instant;

fn main() -> anyhow::Result<()> {
    let temp_dir = tempfile::tempdir()?;
    let src_dir = temp_dir.path().join("src");
    std::fs::create_dir_all(&src_dir)?;

    let file_count = 100;
    let lines_per_file = 500;

    for i in 0..file_count {
        let mut content = String::new();
        for j in 0..lines_per_file {
            content.push_str(&format!(
                "fn function_{}_{}() {{ println!(\"Hello\"); }}\n",
                i, j
            ));
        }
        std::fs::write(src_dir.join(format!("file_{}.rs", i)), content)?;
    }

    let config = ConfigBuilder::new()
        .paths(vec![src_dir.clone()])
        .max_line_length(Some(50))
        .enabled_rules(vec![
            "line-length".to_string(),
            "trailing-whitespace".to_string(),
        ])
        .build();

    let start = Instant::now();
    let results = lint::lint_files(&config)?;
    let elapsed = start.elapsed();

    let total_files = results.len();
    let total_issues: usize = results.iter().map(|r| r.messages.len()).sum();

    println!(
        "Linted {} files ({} lines each) in {:?}",
        total_files, lines_per_file, elapsed
    );
    println!("Found {} total issues", total_issues);

    Ok(())
}