haystack: &[u8],
needle: &[u8],
) -> Option<usize> {
- // If the haystack is too small for SSE2, then just run memchr on the
- // rarest byte and be done with it. (It is likely that this code path is
- // rarely exercised, since a higher level routine will probably dispatch to
- // Rabin-Karp for such a small haystack.)
- fn simple_memchr_fallback(
- _prestate: &mut PrefilterState,
- ninfo: &NeedleInfo,
- haystack: &[u8],
- needle: &[u8],
- ) -> Option<usize> {
- let (rare, _) = ninfo.rarebytes.as_rare_ordered_usize();
- crate::memchr(needle[rare], haystack).map(|i| i.saturating_sub(rare))
- }
super::super::genericsimd::find::<__m128i>(
prestate,
ninfo,
haystack,
needle,
- simple_memchr_fallback,
+ super::super::simple_memchr_fallback,
)
}