Search algorithms written in Rust
Boyer-Moore and BM-Horspool are supported, and can be used to search in arrays of any Copy
type, with a few restrictions.
When you only need to search in bytes, without special consideration for unicode characters, this
implementation is often faster than the Rust standard library's &str::find()
.
Rust
use needle::BoyerMoore;
let haystack = b"Peter Piper picked a peck of pickled peppers.\
A peck of pickled peppers Peter Piper picked.\
If Peter Piper picked a peck of pickled peppers,\
Where's the peck of pickled peppers Peter Piper picked?";
let needle = BoyerMoore::new(b"Peter Piper");
for i in needle.find_in(haystack) {
println!("Found Peter Piper at index {}.", i);
}