multimatch 0.1.1

Multi-pattern matching engine — Aho-Corasick + regex with optional Hyperscan SIMD acceleration
Documentation
//! Basic pattern matching example.
//!
//! Run: cargo run --example basic

use multimatch::Scanner;

fn main() {
    let patterns = multimatch::PatternSet::builder()
        .add_literal("password", 0)
        .add_literal("secret", 1)
        .add_literal("api_key", 2)
        .add_regex(r"ghp_[A-Za-z0-9]{36}", 3)
        .build()
        .expect("pattern compilation failed");

    println!("Compiled {} patterns", patterns.pattern_count());

    let input = b"my password is abc123 and secret api_key = ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
    let matches = patterns.scan(input);

    println!("Found {} matches:", matches.len());
    for m in &matches {
        let text = std::str::from_utf8(&input[m.start..m.end]).unwrap_or("<binary>");
        println!("  pattern {} matched '{}' at {}..{}", m.pattern_id, text, m.start, m.end);
    }

    println!("Contains any: {}", patterns.is_match(input));
}