pub trait DoubleEndedSearcher<'a>: ReverseSearcher<'a> { }
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:
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>
impl<'a, 'b> DoubleEndedSearcher<'a> for CharSliceSearcher<'a, 'b>
impl<'a, F> DoubleEndedSearcher<'a> for CharPredicateSearcher<'a, F> where F: FnMut(char) -> bool
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/str/pattern/trait.DoubleEndedSearcher.html