7 releases
0.2.3 | Apr 26, 2023 |
---|---|
0.2.2 | Apr 19, 2023 |
0.1.5 | Mar 25, 2023 |
#38 in #repeat
98 downloads per month
Used in hitori
60KB
1.5K
SLoC
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 a
s longer than zero. With hitori, however, a*
would consume
all the a
s, 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
andimpl_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