Trait std::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>
impl<A, I, P> DoubleEndedIterator<A> for Filter<A, I, P>
impl<A, B, I, F> DoubleEndedIterator<B> for FilterMap<A, B, I, F>
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>
impl<A, T: DoubleEndedIterator<A>> DoubleEndedIterator<A> for Fuse<T>
impl<A, I, F> DoubleEndedIterator<A> for Inspect<A, I, F>
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> DoubleEndedIterator<A> for Item<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>
impl<'a, T, P> DoubleEndedIterator<&'a mut [T]> for SplitMut<'a, T, P>
impl<'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>
impl<'a, T> DoubleEndedIterator<&'a T> for Iter<'a, T>
impl<T> DoubleEndedIterator<T> for IntoIter<T>
impl<'a, T: 'a> DoubleEndedIterator<T> for Drain<'a, T>
impl<'a> DoubleEndedIterator<bool> for Bits<'a>
impl<T> DoubleEndedIterator<T> for RawItems<T>
impl<K, V, E, Impl: TraversalImpl<K, V, E>> DoubleEndedIterator<TraversalItem<K, V, E>> for AbsTraversal<Impl>
impl<K, V, E, T: Traverse<E> + DoubleEndedIterator<TraversalItem<K, V, E>>> DoubleEndedIterator<(K, V)> for AbsIter<T>
impl<'a, K, V> DoubleEndedIterator<(&'a K, &'a V)> for Iter<'a, K, V>
impl<'a, K, V> DoubleEndedIterator<(&'a K, &'a mut V)> for IterMut<'a, K, V>
impl<K, V> DoubleEndedIterator<(K, V)> for IntoIter<K, V>
impl<'a, K, V> DoubleEndedIterator<&'a K> for Keys<'a, K, V>
impl<'a, K, V> DoubleEndedIterator<&'a V> for Values<'a, K, V>
impl<'a, T> DoubleEndedIterator<&'a T> for Iter<'a, T>
impl<T> DoubleEndedIterator<T> for IntoIter<T>
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: 'a> DoubleEndedIterator<T> for Drain<'a, T>
impl<T> DoubleEndedIterator<T> for IntoIter<T>
impl<'a, T> DoubleEndedIterator<T> for Drain<'a, T>
impl<'a, V> DoubleEndedIterator<(uint, &'a V)> for Iter<'a, V>
impl<'a, V> DoubleEndedIterator<(uint, &'a mut V)> for IterMut<'a, V>
impl<'a, V> DoubleEndedIterator<uint> for Keys<'a, V>
impl<'a, V> DoubleEndedIterator<&'a V> for Values<'a, V>
impl<V> DoubleEndedIterator<(uint, V)> for IntoIter<V>
impl<'a> DoubleEndedIterator<(uint, &'a str)> for GraphemeIndices<'a>
impl<'a> DoubleEndedIterator<&'a str> for Graphemes<'a>
impl<'a> DoubleEndedIterator<&'a str> for Words<'a>