7 releases

0.2.3 Apr 26, 2023
0.2.2 Apr 19, 2023
0.1.5 Mar 25, 2023

#38 in #repeat

Download history 14/week @ 2024-07-22 33/week @ 2024-07-29 24/week @ 2024-08-05 7/week @ 2024-08-26 34/week @ 2024-09-02 73/week @ 2024-09-09 6/week @ 2024-09-16 43/week @ 2024-09-23 44/week @ 2024-09-30 17/week @ 2024-10-07 50/week @ 2024-10-14 9/week @ 2024-10-21 5/week @ 2024-10-28 33/week @ 2024-11-04

98 downloads per month
Used in hitori

MIT/Apache

60KB
1.5K SLoC

hitori crate hitori documentation Build status

Hitori is generic compile-time regular expressions library. It works by creating series of if-statements and for-loops for each expression.

See code samples along with the traits, impls and structs they expand to in examples.

Limitations

Pattern matching is step-by-step. It is impossible to to detach last element of a repetition. For example, using regex one can rewrite a+ as a*a and it would still match any sequence of as longer than zero. With hitori, however, a* would consume all the as, and the expression won't match.

Step-by step pattern matching also leads to diminished performance when matching large texts and an expression contains repetitions of frequent characters.

Crate features

  • alloc (enabled by default) – string replace functions and blanket implementations of hitori traits for boxes using alloc crate.
  • macros (enabled by default)impl_expr_mut and impl_expr macros.
  • find-hitori – finds hitori package to be used in macros even if it has been renamed in Cargo.toml. macros feature is required.
  • examples – includes examples module into the build.

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~0.2–1MB
~22K SLoC