Trait std::iter::DoubleEndedIterator[src]
pub trait DoubleEndedIterator<A>: Iterator<A> {
fn next_back<A>(&mut self) -> Option<A>;
fn rev<A>(self) -> Rev<Self> { ... }
}A range iterator able to yield elements from both ends
Required Methods
fn next_back<A>(&mut self) -> Option<A>
Yield an element from the end of the range, returning None if the range is empty.
Provided Methods
fn rev<A>(self) -> Rev<Self>
Change the direction of the iterator
The flipped iterator swaps the ends on an iterator that can already be iterated from the front and from the back.
If the iterator also implements RandomAccessIterator, the flipped iterator is also random access, with the indices starting at the back of the original iterator.
Note: Random access with flipped indices still only applies to the first
uint::MAX elements of the original iterator.
Implementors
impl<A, T: DoubleEndedIterator<A>> DoubleEndedIterator<A> for Rev<T>impl<'a, A, T: DoubleEndedIterator<A>> DoubleEndedIterator<A> for ByRef<'a, T>impl<A, T: DoubleEndedIterator<A>, U: DoubleEndedIterator<A>> DoubleEndedIterator<A> for Chain<T, U>impl<A, B, T: ExactSize<A>, U: ExactSize<B>> DoubleEndedIterator<(A, B)> for Zip<T, U>impl<'a, A, B, T: DoubleEndedIterator<A>> DoubleEndedIterator<B> for Map<'a, A, B, T>impl<'a, A, T: DoubleEndedIterator<A>> DoubleEndedIterator<A> for Filter<'a, A, T>impl<'a, A, B, T: DoubleEndedIterator<A>> DoubleEndedIterator<B> for FilterMap<'a, A, B, T>impl<A, T: ExactSize<A>> DoubleEndedIterator<(uint, A)> for Enumerate<T>impl<'a, A, T: DoubleEndedIterator<A>, B, U: DoubleEndedIterator<B>> DoubleEndedIterator<B> for FlatMap<'a, A, T, U>impl<A, T: DoubleEndedIterator<A>> DoubleEndedIterator<A> for Fuse<T>impl<'a, A, T: DoubleEndedIterator<A>> DoubleEndedIterator<A> for Inspect<'a, A, T>impl<A: Int + PartialOrd + Clone + ToPrimitive> DoubleEndedIterator<A> for Range<A>impl<A: Sub<A, A> + Int + PartialOrd + Clone + ToPrimitive> DoubleEndedIterator<A> for RangeInclusive<A>impl<A: Clone> DoubleEndedIterator<A> for Repeat<A>impl<A> DoubleEndedIterator<A> for Item<A>impl<'a, T> DoubleEndedIterator<&'a [T]> for Splits<'a, T>impl<'a, T> DoubleEndedIterator<&'a [T]> for Chunks<'a, T>impl<'a, T> DoubleEndedIterator<&'a T> for Items<'a, T>impl<'a, T> DoubleEndedIterator<&'a mut T> for MutItems<'a, T>impl<'a, T> DoubleEndedIterator<&'a mut [T]> for MutSplits<'a, T>impl<'a, T> DoubleEndedIterator<&'a mut [T]> for MutChunks<'a, T>impl<'a> DoubleEndedIterator<char> for Chars<'a>impl<'a> DoubleEndedIterator<(uint, char)> for CharOffsets<'a>impl<'a, Sep: CharEq> DoubleEndedIterator<&'a str> for CharSplits<'a, Sep>impl<'a> DoubleEndedIterator<bool> for Bits<'a>impl<'a, A> DoubleEndedIterator<&'a A> for Items<'a, A>impl<'a, A> DoubleEndedIterator<&'a mut A> for MutItems<'a, A>impl<A> DoubleEndedIterator<A> for MoveItems<A>impl<'a, T> DoubleEndedIterator<&'a T> for Items<'a, T>impl<'a, T> DoubleEndedIterator<&'a mut T> for MutItems<'a, T>impl<'a, T> DoubleEndedIterator<(uint, &'a T)> for Entries<'a, T>impl<'a, T> DoubleEndedIterator<(uint, &'a mut T)> for MutEntries<'a, T>impl<T> DoubleEndedIterator<T> for MoveItems<T>