Add par_iter_mut shim
This commit is contained in:
parent
16ca58b175
commit
4ab941e305
1 changed files with 18 additions and 0 deletions
18
src/rayon.rs
18
src/rayon.rs
|
|
@ -26,6 +26,12 @@ pub trait IntoParallelRefIterator<'data> {
|
||||||
fn par_iter(&'data self) -> Self::Iter;
|
fn par_iter(&'data self) -> Self::Iter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub trait IntoParallelRefMutIterator<'data> {
|
||||||
|
type Iter: ParallelIterator<Item = Self::Item>;
|
||||||
|
type Item: Send + 'data;
|
||||||
|
fn par_iter_mut(&'data mut self) -> Self::Iter;
|
||||||
|
}
|
||||||
|
|
||||||
impl<I: IntoIterator> IntoParallelIterator for I
|
impl<I: IntoIterator> IntoParallelIterator for I
|
||||||
where
|
where
|
||||||
I::Item: Send,
|
I::Item: Send,
|
||||||
|
|
@ -50,6 +56,18 @@ where
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl<'data, I: 'data + ?Sized> IntoParallelRefMutIterator<'data> for I
|
||||||
|
where
|
||||||
|
&'data mut I: IntoParallelIterator,
|
||||||
|
{
|
||||||
|
type Iter = <&'data mut I as IntoParallelIterator>::Iter;
|
||||||
|
type Item = <&'data mut I as IntoParallelIterator>::Item;
|
||||||
|
|
||||||
|
fn par_iter_mut(&'data mut self) -> Self::Iter {
|
||||||
|
self.into_par_iter()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl<I: Iterator> ParallelIterator for I {}
|
impl<I: Iterator> ParallelIterator for I {}
|
||||||
|
|
||||||
#[allow(dead_code)]
|
#[allow(dead_code)]
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue