fn next_match_with_prefix_search<PrefixSearch: bytesearch::ByteSearcher>(
        &mut self,
        mut pos: Input::Position,
        next_start: &mut Option<Input::Position>,
        prefix_search: &PrefixSearch,
    ) -> Option<Match> {
        let inp = self.input;
        loop {
            // Find the next start location, or None if none.
            pos = inp.find_bytes(pos, prefix_search)?;
            if let Some(end) = self.matcher.try_at_pos(inp, 0, pos, Forward::new()) {
                // If we matched the empty string, we have to increment.
                if end != pos {
                    *next_start = Some(end)
                } else {
                    *next_start = inp.next_right_pos(end);
                }
                return Some(self.successful_match(pos, end));
            }
            // Didn't find it at this position, try the next one.
            pos = inp.next_right_pos(pos)?;
        }
    }
/// \return the next match, searching the remaining bytes using the given
/// prefix searcher to quickly find the first potential match location.
\return the next match, searching the remaining bytes using the given
prefix searcher to quickly find the first potential match location.
\ return the next match searching the remaining bytes using the given prefix searcher to quickly find the first potential match location .
fn next_match_with_prefix_search<PrefixSearch: bytesearch::ByteSearcher>(
        &mut self,
        mut pos: Input::Position,
        next_start: &mut Option<Input::Position>,
        prefix_search: &PrefixSearch,
    ) -> Option<Match> {
        let inp = self.input;
        loop {
            // Find the next start location, or None if none.
            pos = inp.find_bytes(pos, prefix_search)?;
            if let Some(end) = self.matcher.try_at_pos(inp, 0, pos, Forward::new()) {
                // If we matched the empty string, we have to increment.
                if end != pos {
                    *next_start = Some(end)
                } else {
                    *next_start = inp.next_right_pos(end);
                }
                return Some(self.successful_match(pos, end));
            }
            // Didn't find it at this position, try the next one.
            pos = inp.next_right_pos(pos)?;
        }
    }
fn next_match_with_prefix_search < PrefixSearch : bytesearch :: ByteSearcher > ( & mut self , mut pos : Input :: Position , next_start : & mut Option < Input :: Position > , prefix_search : & PrefixSearch , ) -> Option < Match > { let inp = self . input ; loop { // Find the next start location, or None if none. pos = inp . find_bytes ( pos , prefix_search ) ? ; if let Some ( end ) = self . matcher . try_at_pos ( inp , 0 , pos , Forward :: new ( ) ) { // If we matched the empty string, we have to increment. if end != pos { * next_start = Some ( end ) } else { * next_start = inp . next_right_pos ( end ) ; } return Some ( self . successful_match ( pos , end ) ) ; } // Didn't find it at this position, try the next one. pos = inp . next_right_pos ( pos ) ? ; } }
\return the next match, searching the remaining bytes using the given
prefix searcher to quickly find the first potential match location.
\ return the next match searching the remaining bytes using the given prefix searcher to quickly find the first potential match location .
&mut self
pos
Input::Position
next_start
&mut Option<Input::Position>
prefix_search
&PrefixSearch