This is my substring search workspace.
Fast substring search for strings and byte strings, using the two-way algorithm
_.
This is the same code as is included in Rust's libstd to “power” str::find(&str)
,
but here it is exposed with some improvements:
&[u8]
memchr
for the single byte case, which is ultra fast.Use cargo feature pcmp
to enable SSE4.2 / pcmpestri accelerated version (only the forward search).
twoway::find_bytes(text: &[u8], pattern: &[u8]) -> Option<usize>
twoway::rfind_bytes(text: &[u8], pattern: &[u8]) -> Option<usize>
twoway::find_str(text: &str, pattern: &str) -> Option<usize>
twoway::rfind_str(text: &str, pattern: &str) -> Option<usize>
0.1.2
pcmp
module.0.1.1
rfind_bytes
, rfind_str
0.1.0
find_bytes
, find_str
MIT / APACHE-2.0
.. _two-way algorithm
: http://www-igm.univ-mlv.fr/~lecroq/string/node26.html
Consider denying 0/n factorizations, see http://lists.gnu.org/archive/html/bug-gnulib/2010-06/msg00184.html