Trait wyz::bidi::BidiIterator

source ·
pub trait BidiIteratorwhere
    Self: Sized + IntoIterator,
    <Self as IntoIterator>::IntoIter: DoubleEndedIterator,
{ fn bidi(self, cond: bool) -> Bidi<Self::IntoIter> { ... } }
Expand description

Extension trait that provides .bidi() for all double-ended iterators.

Provided Methods

Conditionally reverses the direction of iteration.

When cond is true, this adapter swaps the next and nth methods with next_back and nth_back. The resulting iterator is equivalent to if cond { self.rev() } else { self }.

Examples
use wyz::BidiIterator;

let data = [1, 2, 3];
let mut iter = data.iter().copied().bidi(false);
assert_eq!(iter.next(), Some(1));
assert_eq!(iter.next_back(), Some(3));

let mut iter = data.iter().copied().bidi(true);
assert_eq!(iter.next(), Some(3));
assert_eq!(iter.next_back(), Some(1));

Implementors