aboutsummaryrefslogtreecommitdiff
path: root/vendor/rayon/src/array.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/rayon/src/array.rs')
-rw-r--r--vendor/rayon/src/array.rs85
1 files changed, 0 insertions, 85 deletions
diff --git a/vendor/rayon/src/array.rs b/vendor/rayon/src/array.rs
deleted file mode 100644
index 32a5fdd..0000000
--- a/vendor/rayon/src/array.rs
+++ /dev/null
@@ -1,85 +0,0 @@
-//! Parallel iterator types for [arrays] (`[T; N]`)
-//!
-//! You will rarely need to interact with this module directly unless you need
-//! to name one of the iterator types.
-//!
-//! [arrays]: https://doc.rust-lang.org/std/primitive.array.html
-
-use crate::iter::plumbing::*;
-use crate::iter::*;
-use crate::slice::{Iter, IterMut};
-use crate::vec::DrainProducer;
-use std::mem::ManuallyDrop;
-
-impl<'data, T: Sync + 'data, const N: usize> IntoParallelIterator for &'data [T; N] {
- type Item = &'data T;
- type Iter = Iter<'data, T>;
-
- fn into_par_iter(self) -> Self::Iter {
- <&[T]>::into_par_iter(self)
- }
-}
-
-impl<'data, T: Send + 'data, const N: usize> IntoParallelIterator for &'data mut [T; N] {
- type Item = &'data mut T;
- type Iter = IterMut<'data, T>;
-
- fn into_par_iter(self) -> Self::Iter {
- <&mut [T]>::into_par_iter(self)
- }
-}
-
-impl<T: Send, const N: usize> IntoParallelIterator for [T; N] {
- type Item = T;
- type Iter = IntoIter<T, N>;
-
- fn into_par_iter(self) -> Self::Iter {
- IntoIter { array: self }
- }
-}
-
-/// Parallel iterator that moves out of an array.
-#[derive(Debug, Clone)]
-pub struct IntoIter<T: Send, const N: usize> {
- array: [T; N],
-}
-
-impl<T: Send, const N: usize> ParallelIterator for IntoIter<T, N> {
- type Item = T;
-
- fn drive_unindexed<C>(self, consumer: C) -> C::Result
- where
- C: UnindexedConsumer<Self::Item>,
- {
- bridge(self, consumer)
- }
-
- fn opt_len(&self) -> Option<usize> {
- Some(N)
- }
-}
-
-impl<T: Send, const N: usize> IndexedParallelIterator for IntoIter<T, N> {
- fn drive<C>(self, consumer: C) -> C::Result
- where
- C: Consumer<Self::Item>,
- {
- bridge(self, consumer)
- }
-
- fn len(&self) -> usize {
- N
- }
-
- fn with_producer<CB>(self, callback: CB) -> CB::Output
- where
- CB: ProducerCallback<Self::Item>,
- {
- unsafe {
- // Drain every item, and then the local array can just fall out of scope.
- let mut array = ManuallyDrop::new(self.array);
- let producer = DrainProducer::new(array.as_mut_slice());
- callback.callback(producer)
- }
- }
-}