ocr 0.1.2

A pure Rust CLI OCR tool for printed text extraction
Documentation
use anyhow::Result;
use ocr::api::Ocr;

pub async fn handle_check() -> Result<()> {
    println!("Checking system requirements...");

    match Ocr::new() {
        Ok(ocr) => match ocr.initialize().await {
            Ok(_) => println!("✓ Pattern matching engine initialized"),
            Err(e) => eprintln!("✗ Failed to initialize OCR engine: {}", e),
        },
        Err(e) => eprintln!("✗ Failed to create OCR engine: {}", e),
    }

    println!("✓ Image processing modules loaded");
    println!("✓ Layout analysis engine ready");
    println!("✓ Dictionary correction module ready");

    println!("\nCapabilities:");
    println!("  - Pattern matching engine (default)");
    println!("  - CRNN (CNN + BiLSTM + CTC) engine (--engine lstm)");
    println!("  - Hybrid recognition engine");
    println!("  - Layout analysis (columns, lines, tables, forms)");
    println!("  - Dictionary-based post-correction (25+ languages)");
    println!("  - Multi-script support (Latin, CJK, Arabic, Cyrillic, Greek, Hebrew, Thai, Devanagari)");
    println!("  - Output formats: text, json, hocr, tsv, alto, xml, pdf, markdown, structured-json");
    println!("  - Training pipeline: synthetic data generation + CRNN training + checkpointing");
    println!("  - Per-script benchmarking: CER/WER evaluation");
    println!("  - Font attribute detection (bold, italic, monospace)");
    println!("  - INT8 quantization for edge deployment");

    Ok(())
}