vec-reg

Generalized regex like pattern match for vector.

Build status Crates.io Documentation

Install

```toml

Cargo.toml

[dependencies] vec-reg = "0.3.0" ```

Usage

```rust use vecreg::{Regex, vecreg};

fn buildwithoutmacro() { let isfizz = |x: &i32| x % 3 == 0; let isbuzz = |x: &i32| x % 5 == 0; let isfizzbuzz = |x: &i32| x % 15 == 0; let reg = Regex::concat( Regex::satisfy(isfizz), Regex::repeat1(Regex::concat(Regex::satisfy(isbuzz), Regex::satisfy(isfizzbuzz))), ) .compile(); assert!(!reg.ismatch(&vec![1, 2, 3])); assert!(reg.ismatch(&vec![3, 5, 15])); assert!(reg.is_match(&vec![6, 10, 15, 10, 30])); }

fn buildwithmacro() { let isfizz = |x: &i32| x % 3 == 0; let isbuzz = |x: &i32| x % 5 == 0; let reg = vecreg!(isfizz+).compile();
assert!(!reg.ismatch(&vec![1, 2, 3])); assert!(reg.ismatch(&vec![3, 5, 15])); assert!(reg.is_match(&vec![6, 10, 15, 10, 30])); } ```