unfmt
unfmt
is a compile-time pattern matching library that reverses the
interpolation process of format!
.
You can think of it as an extremely lightweight regular expression engine without the runtime pattern-compilation cost.
Installation
Usage
let value = "My name is Rho.";
// Unnamed captures are returned as tuples.
assert_eq!;
// You can put indices as well; just make sure ALL captures use indices
// otherwise it's not well defined.
assert_eq!;
// You can also name captures using variables, but make sure you check the
// return is not None.
let subject;
let object;
assert_eq!;
assert_eq!;
// If a type implements `FromStr`, you can use it as a type argument. This
// is written as `{:Type}`.
assert_eq!;
In general, captures are written as {<index-or-variable>:<type>}
. Multiple
captures in a row (i.e. {}{}
) are not supported as they aren't well-defined.
Limitations
- There is no backtracking.