re-set

Regular expression set parser at compile and run time.

Macro usage

```rust use resetmacros::find;

find!(fn findidentifier "[[:alpha:]][[:word:]]*");

asserteq!(findidentifier("foo bar"), Some((0, "foo"))); ```

```rust use resetmacros::find;

find!(pub fn match_string // Single quotes r"'(\'|.)?'", // Double quotes r#""(\"|.)?""#, // Multi-line strings r"(?s)(\\|.)*?`" );

let (, string) = matchstring(r#""Hello, world!""#).unwrap();

assert_eq!(string, r#""Hello, world!""#); ```

```rust use resetmacros::find;

find!(pub(crate) fn next_token // 0: Punctuation "[[:punct:]]+", // 1: Words "[[:word:]]+", // 2: Whitespace "[[:space:]]+" );

let result = next_token("foo bar");

assert_eq!(result, Some((1, "foo")));

let (index, token) = result.unwrap();

match index { 0 => println!("Found punctuation: {token}"), 1 => println!("Found word: {token}"), 2 => println!("Found whitespace: {token}"), _ => unreachable!(), } ```