Add par_iter_mut shim

This commit is contained in:
Andrew 2023-05-24 10:47:06 +12:00 committed by Josh Holmer
parent 16ca58b175
commit 4ab941e305

View file

@ -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)]