Lines Matching refs:needle

40 pub(crate) fn find(haystack: &[u8], needle: &[u8]) -> Option<usize> {  in find()
41 find_with(&NeedleHash::forward(needle), haystack, needle) in find()
49 needle: &[u8], in find_with()
51 if haystack.len() < needle.len() { in find_with()
55 let mut hash = Hash::from_bytes_fwd(&haystack[..needle.len()]); in find_with()
59 if nhash.eq(hash) && is_prefix(haystack, needle) { in find_with()
62 if needle.len() >= haystack.len() { in find_with()
65 hash.roll(&nhash, haystack[0], haystack[needle.len()]); in find_with()
71 pub(crate) fn rfind(haystack: &[u8], needle: &[u8]) -> Option<usize> { in rfind()
72 rfind_with(&NeedleHash::reverse(needle), haystack, needle) in rfind()
80 needle: &[u8], in rfind_with()
82 if haystack.len() < needle.len() { in rfind_with()
86 Hash::from_bytes_rev(&haystack[haystack.len() - needle.len()..]); in rfind_with()
88 if nhash.eq(hash) && is_suffix(haystack, needle) { in rfind_with()
89 return Some(haystack.len() - needle.len()); in rfind_with()
91 if needle.len() >= haystack.len() { in rfind_with()
97 haystack[haystack.len() - needle.len() - 1], in rfind_with()
118 pub(crate) fn forward(needle: &[u8]) -> NeedleHash { in forward()
120 if needle.is_empty() { in forward()
123 nh.hash.add(needle[0]); in forward()
124 for &b in needle.iter().skip(1) { in forward()
133 pub(crate) fn reverse(needle: &[u8]) -> NeedleHash { in reverse()
135 if needle.is_empty() { in reverse()
138 nh.hash.add(needle[needle.len() - 1]); in reverse()
139 for &b in needle.iter().rev().skip(1) { in reverse()
212 fn is_prefix(haystack: &[u8], needle: &[u8]) -> bool { in is_prefix()
213 crate::memmem::util::is_prefix(haystack, needle) in is_prefix()
221 fn is_suffix(haystack: &[u8], needle: &[u8]) -> bool { in is_suffix()
222 crate::memmem::util::is_suffix(haystack, needle) in is_suffix()