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;
|
||||
}
|
||||
|
||||
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
|
||||
where
|
||||
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 {}
|
||||
|
||||
#[allow(dead_code)]
|
||||
|
|
|
|||
Loading…
Reference in a new issue