resharp 0.5.2

high-performance regex engine with intersection and complement operations
Documentation
use resharp::{Regex, RegexOptions};

fn dump(pattern: &str, input: &str) {
    let re = Regex::with_options(
        pattern,
        RegexOptions {
            max_dfa_capacity: 65535,
            ..Default::default()
        },
    )
    .unwrap();
    eprintln!("pattern: {}", pattern);
    eprintln!("input:   {:?} (len={})", input, input.len());
    eprintln!("effects:\n{}", re.effects_debug());
    let nulls = re.collect_rev_nulls_debug(input.as_bytes());
    eprintln!("nulls: {} {:?}", nulls.len(), nulls);
    eprintln!("rev_states: {}", re.dfa_stats().1);

    // also check: what states are begin vs center
    // eprintln!("begin_debug:\n{}", re.begin_debug());
    eprintln!();
}

fn main() {
    // simple test first
    dump(r"ab", "xabx");
    dump(r"(?<=é)x", "éx");
}