Trait iterextd::SwapIter

source ·
pub trait SwapIter<'a>: Iterator {
    // Provided method
    fn swap_elems<I, T: 'a>(self, other_iter: I)
       where I: Iterator<Item = &'a mut T>,
             Self: Sized + Iterator<Item = &'a mut T> { ... }
}
Expand description

An iterator adapter that swaps elements in two sequences.

Provided Methods§

source

fn swap_elems<I, T: 'a>(self, other_iter: I)
where I: Iterator<Item = &'a mut T>, Self: Sized + Iterator<Item = &'a mut T>,

Swap elements between two mutable iterators.

§Examples

Basic usage:

use iterextd::SwapIter;

let mut first_vec = [0, 1, 2, 3, 4, 5, 6, 7];
let mut second_vec = vec![10, 11, 12, 13, 14, 15];
let first_iter = first_vec.iter_mut().step_by(2);
let second_iter = second_vec.iter_mut().step_by(2);
let _ = first_iter.swap_elems(second_iter);
assert_eq!(first_vec, [10, 1, 12, 3, 14, 5, 6, 7]);
assert_eq!(second_vec, [0, 11, 2, 13, 4, 15]);

Implementors§

source§

impl<T> SwapIter<'_> for T
where T: Iterator + ?Sized,