Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
bytecodealliance
GitHub Repository: bytecodealliance/wasmtime
Path: blob/main/crates/wizer/src/rayoff.rs
3064 views
1
use std::ops::Range;
2
3
pub trait ParallelIterator: Iterator {}
4
5
impl<T: Iterator> ParallelIterator for T {}
6
7
pub trait IntoParallelIterator {
8
type Item;
9
type Iter: Iterator<Item = Self::Item> + ParallelIterator;
10
11
fn into_par_iter(self) -> Self::Iter;
12
}
13
14
impl IntoParallelIterator for Range<usize> {
15
type Item = usize;
16
type Iter = Range<usize>;
17
18
fn into_par_iter(self) -> Self::Iter {
19
self
20
}
21
}
22
23
pub trait ParallelExtend<T> {
24
fn par_extend<I>(&mut self, par_iter: I)
25
where
26
I: IntoIterator<Item = T>;
27
}
28
29
impl<T> ParallelExtend<T> for Vec<T> {
30
fn par_extend<I>(&mut self, par_iter: I)
31
where
32
I: IntoIterator<Item = T>,
33
{
34
self.extend(par_iter);
35
}
36
}
37
38