Struct Iter

struct Iter<T> { ... }

Parallel iterator over an inclusive range, implemented for all integer types and char.

Note: The zip operation requires IndexedParallelIterator which is only implemented for u8, i8, u16, i16, and char.

use rayon::prelude::*;

let p = (0..=25u16).into_par_iter()
                  .zip(0..=25u16)
                  .filter(|&(x, y)| x % 5 == 0 || y % 5 == 0)
                  .map(|(x, y)| x * y)
                  .sum::<u16>();

let s = (0..=25u16).zip(0..=25u16)
                  .filter(|&(x, y)| x % 5 == 0 || y % 5 == 0)
                  .map(|(x, y)| x * y)
                  .sum();

assert_eq!(p, s);

Implementations

impl IndexedParallelIterator for Iter<char>

fn drive<C>(self: Self, consumer: C) -> <C as >::Result
where
    C: Consumer<<Self as >::Item>
fn len(self: &Self) -> usize
fn with_producer<CB>(self: Self, callback: CB) -> <CB as >::Output
where
    CB: ProducerCallback<<Self as >::Item>

impl ParallelIterator for Iter<char>

fn drive_unindexed<C>(self: Self, consumer: C) -> <C as >::Result
where
    C: UnindexedConsumer<<Self as >::Item>
fn opt_len(self: &Self) -> Option<usize>

impl<T> Any for Iter<T>

fn type_id(self: &Self) -> TypeId

impl<T> Borrow for Iter<T>

fn borrow(self: &Self) -> &T

impl<T> BorrowMut for Iter<T>

fn borrow_mut(self: &mut Self) -> &mut T

impl<T> CloneToUninit for Iter<T>

unsafe fn clone_to_uninit(self: &Self, dest: *mut u8)

impl<T> Freeze for Iter<T>

impl<T> From for Iter<T>

fn from(t: T) -> T

Returns the argument unchanged.

impl<T> IntoParallelIterator for Iter<T>

fn into_par_iter(self: Self) -> T

impl<T> Pointable for Iter<T>

unsafe fn init(init: <T as Pointable>::Init) -> usize
unsafe fn deref<'a>(ptr: usize) -> &'a T
unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
unsafe fn drop(ptr: usize)

impl<T> RefUnwindSafe for Iter<T>

impl<T> Send for Iter<T>

impl<T> Sync for Iter<T>

impl<T> ToOwned for Iter<T>

fn to_owned(self: &Self) -> T
fn clone_into(self: &Self, target: &mut T)

impl<T> Unpin for Iter<T>

impl<T> UnwindSafe for Iter<T>

impl<T, U> Into for Iter<T>

fn into(self: Self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

impl<T, U> TryFrom for Iter<T>

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

impl<T, U> TryInto for Iter<T>

fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>

impl<T: $crate::clone::Clone> Clone for Iter<T>

fn clone(self: &Self) -> Iter<T>

impl<T: $crate::fmt::Debug> Debug for Iter<T>

fn fmt(self: &Self, f: &mut $crate::fmt::Formatter<'_>) -> $crate::fmt::Result

impl<T: IndexedRangeInteger> IndexedParallelIterator for Iter<T>

fn drive<C>(self: Self, consumer: C) -> <C as >::Result
where
    C: Consumer<T>
fn len(self: &Self) -> usize
fn with_producer<CB>(self: Self, callback: CB) -> <CB as >::Output
where
    CB: ProducerCallback<T>

impl<T: RangeInteger> ParallelIterator for Iter<T>

fn drive_unindexed<C>(self: Self, consumer: C) -> <C as >::Result
where
    C: UnindexedConsumer<T>
fn opt_len(self: &Self) -> Option<usize>