Lines Matching refs:needle

103                 needle: Vec<u8>
105 proptests::matches_naive(false, &haystack, &needle, $fwd)
118 needle: Vec<u8>
120 proptests::matches_naive(true, &haystack, &needle, $rev)
190 needle: &'n N,
192 FindIter::new(haystack, Finder::new(needle))
224 needle: &'n N,
226 FindRevIter::new(haystack, FinderRev::new(needle))
257 pub fn find(haystack: &[u8], needle: &[u8]) -> Option<usize> {
259 rabinkarp::find(haystack, needle)
261 Finder::new(needle).find(haystack)
294 pub fn rfind(haystack: &[u8], needle: &[u8]) -> Option<usize> {
296 rabinkarp::rfind(haystack, needle)
298 FinderRev::new(needle).rfind(haystack)
342 self.pos = pos + core::cmp::max(1, self.finder.needle().len());
419 pub fn new<B: ?Sized + AsRef<[u8]>>(needle: &'n B) -> Finder<'n> {
420 FinderBuilder::new().build_forward(needle)
520 pub fn needle(&self) -> &[u8] {
521 self.searcher.needle()
546 pub fn new<B: ?Sized + AsRef<[u8]>>(needle: &'n B) -> FinderRev<'n> {
547 FinderBuilder::new().build_reverse(needle)
651 pub fn needle(&self) -> &[u8] {
652 self.searcher.needle()
676 needle: &'n B,
678 Finder { searcher: Searcher::new(self.config, needle.as_ref()) }
685 needle: &'n B,
687 FinderRev { searcher: SearcherRev::new(needle.as_ref()) }
712 needle: CowBytes<'n>,
782 fn new(config: SearcherConfig, needle: &'n [u8]) -> Searcher<'n> {
785 let ninfo = NeedleInfo::new(needle);
787 prefilter::forward(&config.prefilter, &ninfo.rarebytes, needle);
788 let kind = if needle.len() == 0 {
790 } else if needle.len() == 1 {
791 OneByte(needle[0])
792 } else if let Some(fwd) = x86::avx::Forward::new(&ninfo, needle) {
794 } else if let Some(fwd) = x86::sse::Forward::new(&ninfo, needle) {
797 TwoWay(twoway::Forward::new(needle))
799 Searcher { needle: CowBytes::new(needle), ninfo, prefn, kind }
803 fn new(config: SearcherConfig, needle: &'n [u8]) -> Searcher<'n> {
806 let ninfo = NeedleInfo::new(needle);
808 prefilter::forward(&config.prefilter, &ninfo.rarebytes, needle);
809 let kind = if needle.len() == 0 {
811 } else if needle.len() == 1 {
812 OneByte(needle[0])
814 TwoWay(twoway::Forward::new(needle))
816 Searcher { needle: CowBytes::new(needle), ninfo, prefn, kind }
836 fn needle(&self) -> &[u8] {
837 self.needle.as_slice()
861 needle: CowBytes::new(self.needle()),
890 needle: self.needle.into_owned(),
908 let needle = self.needle();
909 if haystack.len() < needle.len() {
918 if rabinkarp::is_fast(haystack, needle) {
919 rabinkarp::find_with(&self.ninfo.nhash, haystack, needle)
921 self.find_tw(tw, state, haystack, needle)
933 rabinkarp::find_with(&self.ninfo.nhash, haystack, needle)
935 gs.find(haystack, needle)
947 rabinkarp::find_with(&self.ninfo.nhash, haystack, needle)
949 gs.find(haystack, needle)
970 needle: &[u8],
980 return tw.find(Some(&mut pre), haystack, needle);
983 tw.find(None, haystack, needle)
988 pub(crate) fn new(needle: &[u8]) -> NeedleInfo {
990 rarebytes: RareNeedleBytes::forward(needle),
991 nhash: NeedleHash::forward(needle),
1006 needle: CowBytes<'n>,
1028 fn new(needle: &'n [u8]) -> SearcherRev<'n> {
1031 let kind = if needle.len() == 0 {
1033 } else if needle.len() == 1 {
1034 OneByte(needle[0])
1036 TwoWay(twoway::Reverse::new(needle))
1039 needle: CowBytes::new(needle),
1040 nhash: NeedleHash::reverse(needle),
1045 fn needle(&self) -> &[u8] {
1046 self.needle.as_slice()
1058 needle: CowBytes::new(self.needle()),
1074 needle: self.needle.into_owned(),
1087 let needle = self.needle();
1088 if haystack.len() < needle.len() {
1097 if rabinkarp::is_fast(haystack, needle) {
1098 rabinkarp::rfind_with(&self.nhash, haystack, needle)
1100 tw.rfind(haystack, needle)
1164 needle: &[u8],
1168 naive_rfind(haystack, needle) == search(haystack, needle)
1170 naive_find(haystack, needle) == search(haystack, needle)
1175 fn naive_find(haystack: &[u8], needle: &[u8]) -> Option<usize> {
1176 if needle.is_empty() {
1178 } else if haystack.len() < needle.len() {
1181 for i in 0..(haystack.len() - needle.len() + 1) {
1182 if needle == &haystack[i..i + needle.len()] {
1190 fn naive_rfind(haystack: &[u8], needle: &[u8]) -> Option<usize> {
1191 if needle.is_empty() {
1193 } else if haystack.len() < needle.len() {
1196 for i in (0..(haystack.len() - needle.len() + 1)).rev() {
1197 if needle == &haystack[i..i + needle.len()] {
1264 for &(needle, haystack, expected_fwd, _) in SEARCH_TESTS {
1265 let (n, h) = (needle.as_bytes(), haystack.as_bytes());
1284 for &(needle, haystack, _, expected_rev) in SEARCH_TESTS {
1285 let (n, h) = (needle.as_bytes(), haystack.as_bytes());