wasmtime-wizer 44.0.0

The WebAssembly Pre-Initializer
Documentation
use std::ops::Range;

pub trait ParallelIterator: Iterator {}

impl<T: Iterator> ParallelIterator for T {}

pub trait IntoParallelIterator {
    type Item;
    type Iter: Iterator<Item = Self::Item> + ParallelIterator;

    fn into_par_iter(self) -> Self::Iter;
}

impl IntoParallelIterator for Range<usize> {
    type Item = usize;
    type Iter = Range<usize>;

    fn into_par_iter(self) -> Self::Iter {
        self
    }
}

pub trait ParallelExtend<T> {
    fn par_extend<I>(&mut self, par_iter: I)
    where
        I: IntoIterator<Item = T>;
}

impl<T> ParallelExtend<T> for Vec<T> {
    fn par_extend<I>(&mut self, par_iter: I)
    where
        I: IntoIterator<Item = T>,
    {
        self.extend(par_iter);
    }
}