pub struct Finder(TwoWay);
Expand description
A forward substring searcher that uses the Two-Way algorithm.
Tuple Fields§
§0: TwoWay
Implementations§
source§impl Finder
impl Finder
sourcepub fn new(needle: &[u8]) -> Finder
pub fn new(needle: &[u8]) -> Finder
Create a searcher that finds occurrences of the given needle
.
An empty needle
results in a match at every position in a haystack,
including at haystack.len()
.
sourcepub fn find(&self, haystack: &[u8], needle: &[u8]) -> Option<usize>
pub fn find(&self, haystack: &[u8], needle: &[u8]) -> Option<usize>
Returns the first occurrence of needle
in the given haystack
, or
None
if no such occurrence could be found.
The needle
given must be the same as the needle
provided to
Finder::new
.
An empty needle
results in a match at every position in a haystack,
including at haystack.len()
.
sourcepub(crate) fn find_with_prefilter(
&self,
pre: Option<Pre<'_>>,
haystack: &[u8],
needle: &[u8],
) -> Option<usize>
pub(crate) fn find_with_prefilter( &self, pre: Option<Pre<'_>>, haystack: &[u8], needle: &[u8], ) -> Option<usize>
This is like Finder::find
, but it accepts a prefilter for
accelerating searches.
Currently this is not exposed in the public API because, at the time
of writing, I didn’t want to spend time thinking about how to expose
the prefilter infrastructure (if at all). If you have a compelling use
case for exposing this routine, please create an issue. Do not open
a PR that just exposes Pre
and friends. Exporting this routine will
require API design.