Trait core::iter::DoubleEndedIteratorUnstable
[-]
[+]
[src]
pub trait DoubleEndedIterator<A>: Iterator<A> {
fn next_back(&mut self) -> Option<A>;
}A range iterator able to yield elements from both ends
A DoubleEndedIterator can be thought of as a deque in that next() and next_back() exhaust
elements from the same range, and do not work independently of each other.
Required Methods
fn next_back(&mut self) -> Option<A>
Yield an element from the end of the range, returning None if the range is empty.
Implementors
impl<Idx: Clone + Step> DoubleEndedIterator<Idx> for Range<Idx>impl<A, T: DoubleEndedIterator<A>> DoubleEndedIterator<A> for Rev<T>impl<'a, A, T: DoubleEndedIterator<A> + 'a> DoubleEndedIterator<A> for ByRef<'a, T>impl<A: Clone, D: Deref<A>, I: DoubleEndedIterator<D>> DoubleEndedIterator<A> for Cloned<I>impl<A, T: DoubleEndedIterator<A>, U: DoubleEndedIterator<A>> DoubleEndedIterator<A> for Chain<T, U>impl<A, B, T: ExactSizeIterator<A>, U: ExactSizeIterator<B>> DoubleEndedIterator<(A, B)> for Zip<T, U>impl<A, B, I, F> DoubleEndedIterator<B> for Map<A, B, I, F> where I: DoubleEndedIterator<A>, F: FnMut(A) -> Bimpl<A, I, P> DoubleEndedIterator<A> for Filter<A, I, P> where I: DoubleEndedIterator<A>, P: FnMut(&A) -> boolimpl<A, B, I, F> DoubleEndedIterator<B> for FilterMap<A, B, I, F> where I: DoubleEndedIterator<A>, F: FnMut(A) -> Option<B>impl<A, T: ExactSizeIterator<A>> DoubleEndedIterator<(uint, A)> for Enumerate<T>impl<A, B, I, U, F> DoubleEndedIterator<B> for FlatMap<A, B, I, U, F> where I: DoubleEndedIterator<A>, U: DoubleEndedIterator<B>, F: FnMut(A) -> Uimpl<A, T: DoubleEndedIterator<A>> DoubleEndedIterator<A> for Fuse<T>impl<A, I, F> DoubleEndedIterator<A> for Inspect<A, I, F> where I: DoubleEndedIterator<A>, F: FnMut(&A)impl<A: Int + ToPrimitive> DoubleEndedIterator<A> for Range<A>impl<A: Int + ToPrimitive> DoubleEndedIterator<A> for RangeInclusive<A>impl<A: Clone> DoubleEndedIterator<A> for Repeat<A>impl<'a, A> DoubleEndedIterator<&'a A> for Iter<'a, A>impl<'a, A> DoubleEndedIterator<&'a mut A> for IterMut<'a, A>impl<A> DoubleEndedIterator<A> for IntoIter<A>impl<'a, T> DoubleEndedIterator<&'a T> for Iter<'a, T>impl<'a, T> DoubleEndedIterator<&'a mut T> for IterMut<'a, T>impl<T> DoubleEndedIterator<T> for IntoIter<T>impl<'a, T> DoubleEndedIterator<&'a T> for Iter<'a, T>impl<'a, T> DoubleEndedIterator<&'a mut T> for IterMut<'a, T>impl<'a, T, P> DoubleEndedIterator<&'a [T]> for Split<'a, T, P> where P: FnMut(&T) -> boolimpl<'a, T, P> DoubleEndedIterator<&'a mut [T]> for SplitMut<'a, T, P> where P: FnMut(&T) -> boolimpl<'a, T> DoubleEndedIterator<&'a [T]> for Chunks<'a, T>impl<'a, T> DoubleEndedIterator<&'a mut [T]> for ChunksMut<'a, T>impl<'a> DoubleEndedIterator<char> for Chars<'a>impl<'a> DoubleEndedIterator<(uint, char)> for CharIndices<'a>impl<'a> DoubleEndedIterator<u8> for Bytes<'a>impl<'a, Sep: CharEq> DoubleEndedIterator<&'a str> for CharSplits<'a, Sep>impl<'a, P: CharEq> DoubleEndedIterator<&'a str> for Split<'a, P>impl<'a, P: CharEq> DoubleEndedIterator<&'a str> for SplitTerminator<'a, P>impl<'a> DoubleEndedIterator<&'a str> for Lines<'a>impl<'a> DoubleEndedIterator<&'a str> for LinesAny<'a>