Trait std::str::pattern::DoubleEndedSearcher

pub trait DoubleEndedSearcher<'a>: ReverseSearcher<'a> { }
🔬 This is a nightly-only experimental API. (pattern #27721)API not fully fleshed out and ready to be stabilized

A marker trait to express that a ReverseSearcher can be used for a DoubleEndedIterator implementation.

For this, the impl of Searcher and ReverseSearcher need to follow these conditions:

  • All results of next() need to be identical to the results of next_back() in reverse order.
  • next() and next_back() need to behave as the two ends of a range of values, that is they can not "walk past each other".


char::Searcher is a DoubleEndedSearcher because searching for a char only requires looking at one at a time, which behaves the same from both ends.

(&str)::Searcher is not a DoubleEndedSearcher because the pattern "aa" in the haystack "aaa" matches as either "[aa]a" or "a[aa]", depending from which side it is searched.


impl<'a> DoubleEndedSearcher<'a> for CharSearcher<'a>[src]

impl<'a, 'b> DoubleEndedSearcher<'a> for CharSliceSearcher<'a, 'b>[src]

impl<'a, F> DoubleEndedSearcher<'a> for CharPredicateSearcher<'a, F> where
    F: FnMut(char) -> bool

Loading content...

© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.