/rust/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-1.10.0/src/iter/map.rs
Line | Count | Source |
1 | | use super::plumbing::*; |
2 | | use super::*; |
3 | | |
4 | | use std::fmt::{self, Debug}; |
5 | | use std::iter; |
6 | | |
7 | | /// `Map` is an iterator that transforms the elements of an underlying iterator. |
8 | | /// |
9 | | /// This struct is created by the [`map()`] method on [`ParallelIterator`] |
10 | | /// |
11 | | /// [`map()`]: trait.ParallelIterator.html#method.map |
12 | | /// [`ParallelIterator`]: trait.ParallelIterator.html |
13 | | #[must_use = "iterator adaptors are lazy and do nothing unless consumed"] |
14 | | #[derive(Clone)] |
15 | | pub struct Map<I: ParallelIterator, F> { |
16 | | base: I, |
17 | | map_op: F, |
18 | | } |
19 | | |
20 | | impl<I: ParallelIterator + Debug, F> Debug for Map<I, F> { |
21 | 0 | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { |
22 | 0 | f.debug_struct("Map").field("base", &self.base).finish() |
23 | 0 | } |
24 | | } |
25 | | |
26 | | impl<I, F> Map<I, F> |
27 | | where |
28 | | I: ParallelIterator, |
29 | | { |
30 | | /// Creates a new `Map` iterator. |
31 | 0 | pub(super) fn new(base: I, map_op: F) -> Self { |
32 | 0 | Map { base, map_op } |
33 | 0 | } Unexecuted instantiation: <rayon::iter::map::Map<rayon::iter::enumerate::Enumerate<rayon::iter::len::MaxLen<rayon::slice::chunks::ChunksMut<surrealdb_core::val::Value>>>, rayon::slice::mergesort::par_mergesort<surrealdb_core::val::Value, <ext_sort::buffer::LimitedBuffer<surrealdb_core::val::Value> as rayon::slice::ParallelSliceMut<surrealdb_core::val::Value>>::par_sort_by<<surrealdb_core::dbs::file::FileCollector>::sort_and_take_vec::{closure#0}::{closure#2}::{closure#0}>::{closure#0}>::{closure#0}>>::newUnexecuted instantiation: <rayon::iter::map::Map<rayon::iter::par_bridge::IterBridge<std::fs::ReadDir>, sysinfo::unix::linux::process::refresh_procs::{closure#0}>>::newUnexecuted instantiation: <rayon::iter::map::Map<rayon::slice::IterMut<alloc::vec::Vec<i_overlay::split::fragment::Fragment>>, <i_overlay::split::solver::SplitSolver>::parallel_split::{closure#0}>>::newUnexecuted instantiation: <rayon::iter::map::Map<_, _>>::new |
34 | | } |
35 | | |
36 | | impl<I, F, R> ParallelIterator for Map<I, F> |
37 | | where |
38 | | I: ParallelIterator, |
39 | | F: Fn(I::Item) -> R + Sync + Send, |
40 | | R: Send, |
41 | | { |
42 | | type Item = F::Output; |
43 | | |
44 | 0 | fn drive_unindexed<C>(self, consumer: C) -> C::Result |
45 | 0 | where |
46 | 0 | C: UnindexedConsumer<Self::Item>, |
47 | | { |
48 | 0 | let consumer1 = MapConsumer::new(consumer, &self.map_op); |
49 | 0 | self.base.drive_unindexed(consumer1) |
50 | 0 | } Unexecuted instantiation: <rayon::iter::map::Map<rayon::iter::enumerate::Enumerate<rayon::iter::len::MaxLen<rayon::slice::chunks::ChunksMut<surrealdb_core::val::Value>>>, rayon::slice::mergesort::par_mergesort<surrealdb_core::val::Value, <ext_sort::buffer::LimitedBuffer<surrealdb_core::val::Value> as rayon::slice::ParallelSliceMut<surrealdb_core::val::Value>>::par_sort_by<<surrealdb_core::dbs::file::FileCollector>::sort_and_take_vec::{closure#0}::{closure#2}::{closure#0}>::{closure#0}>::{closure#0}> as rayon::iter::ParallelIterator>::drive_unindexed::<rayon::iter::collect::consumer::CollectConsumer<(usize, usize, rayon::slice::mergesort::MergesortResult)>>Unexecuted instantiation: <rayon::iter::map::Map<rayon::iter::enumerate::Enumerate<rayon::iter::len::MaxLen<rayon::slice::chunks::ChunksMut<surrealdb_core::val::Value>>>, rayon::slice::mergesort::par_mergesort<surrealdb_core::val::Value, <ext_sort::buffer::LimitedBuffer<surrealdb_core::val::Value> as rayon::slice::ParallelSliceMut<surrealdb_core::val::Value>>::par_sort_by<<surrealdb_core::dbs::file::FileCollector>::sort_and_take_vec::{closure#0}::{closure#2}::{closure#0}>::{closure#0}>::{closure#0}> as rayon::iter::ParallelIterator>::drive_unindexed::<rayon::iter::extend::ListVecConsumer>Unexecuted instantiation: <rayon::iter::map::Map<rayon::iter::par_bridge::IterBridge<std::fs::ReadDir>, sysinfo::unix::linux::process::refresh_procs::{closure#0}> as rayon::iter::ParallelIterator>::drive_unindexed::<rayon::iter::flatten::FlattenConsumer<rayon::iter::filter::FilterConsumer<rayon::iter::filter_map::FilterMapConsumer<rayon::iter::collect::consumer::CollectConsumer<sysinfo::common::system::Process>, sysinfo::unix::linux::process::refresh_procs::{closure#2}>, sysinfo::unix::linux::process::refresh_procs::{closure#1}>>>Unexecuted instantiation: <rayon::iter::map::Map<rayon::iter::par_bridge::IterBridge<std::fs::ReadDir>, sysinfo::unix::linux::process::refresh_procs::{closure#0}> as rayon::iter::ParallelIterator>::drive_unindexed::<rayon::iter::flatten::FlattenConsumer<rayon::iter::filter::FilterConsumer<rayon::iter::filter_map::FilterMapConsumer<rayon::iter::extend::ListVecConsumer, sysinfo::unix::linux::process::refresh_procs::{closure#2}>, sysinfo::unix::linux::process::refresh_procs::{closure#1}>>>Unexecuted instantiation: <rayon::iter::map::Map<rayon::slice::IterMut<alloc::vec::Vec<i_overlay::split::fragment::Fragment>>, <i_overlay::split::solver::SplitSolver>::parallel_split::{closure#0}> as rayon::iter::ParallelIterator>::drive_unindexed::<rayon::iter::collect::consumer::CollectConsumer<<i_overlay::split::solver::SplitSolver>::parallel_split::TaskResult>>Unexecuted instantiation: <rayon::iter::map::Map<rayon::slice::IterMut<alloc::vec::Vec<i_overlay::split::fragment::Fragment>>, <i_overlay::split::solver::SplitSolver>::parallel_split::{closure#0}> as rayon::iter::ParallelIterator>::drive_unindexed::<rayon::iter::extend::ListVecConsumer>Unexecuted instantiation: <rayon::iter::map::Map<_, _> as rayon::iter::ParallelIterator>::drive_unindexed::<_> |
51 | | |
52 | 0 | fn opt_len(&self) -> Option<usize> { |
53 | 0 | self.base.opt_len() |
54 | 0 | } Unexecuted instantiation: <rayon::iter::map::Map<rayon::iter::enumerate::Enumerate<rayon::iter::len::MaxLen<rayon::slice::chunks::ChunksMut<surrealdb_core::val::Value>>>, rayon::slice::mergesort::par_mergesort<surrealdb_core::val::Value, <ext_sort::buffer::LimitedBuffer<surrealdb_core::val::Value> as rayon::slice::ParallelSliceMut<surrealdb_core::val::Value>>::par_sort_by<<surrealdb_core::dbs::file::FileCollector>::sort_and_take_vec::{closure#0}::{closure#2}::{closure#0}>::{closure#0}>::{closure#0}> as rayon::iter::ParallelIterator>::opt_lenUnexecuted instantiation: <rayon::iter::map::Map<rayon::slice::IterMut<alloc::vec::Vec<i_overlay::split::fragment::Fragment>>, <i_overlay::split::solver::SplitSolver>::parallel_split::{closure#0}> as rayon::iter::ParallelIterator>::opt_lenUnexecuted instantiation: <rayon::iter::map::Map<_, _> as rayon::iter::ParallelIterator>::opt_len |
55 | | } |
56 | | |
57 | | impl<I, F, R> IndexedParallelIterator for Map<I, F> |
58 | | where |
59 | | I: IndexedParallelIterator, |
60 | | F: Fn(I::Item) -> R + Sync + Send, |
61 | | R: Send, |
62 | | { |
63 | 0 | fn drive<C>(self, consumer: C) -> C::Result |
64 | 0 | where |
65 | 0 | C: Consumer<Self::Item>, |
66 | | { |
67 | 0 | let consumer1 = MapConsumer::new(consumer, &self.map_op); |
68 | 0 | self.base.drive(consumer1) |
69 | 0 | } |
70 | | |
71 | 0 | fn len(&self) -> usize { |
72 | 0 | self.base.len() |
73 | 0 | } |
74 | | |
75 | 0 | fn with_producer<CB>(self, callback: CB) -> CB::Output |
76 | 0 | where |
77 | 0 | CB: ProducerCallback<Self::Item>, |
78 | | { |
79 | 0 | return self.base.with_producer(Callback { |
80 | 0 | callback, |
81 | 0 | map_op: self.map_op, |
82 | 0 | }); |
83 | | |
84 | | struct Callback<CB, F> { |
85 | | callback: CB, |
86 | | map_op: F, |
87 | | } |
88 | | |
89 | | impl<T, F, R, CB> ProducerCallback<T> for Callback<CB, F> |
90 | | where |
91 | | CB: ProducerCallback<R>, |
92 | | F: Fn(T) -> R + Sync, |
93 | | R: Send, |
94 | | { |
95 | | type Output = CB::Output; |
96 | | |
97 | 0 | fn callback<P>(self, base: P) -> CB::Output |
98 | 0 | where |
99 | 0 | P: Producer<Item = T>, |
100 | | { |
101 | 0 | let producer = MapProducer { |
102 | 0 | base, |
103 | 0 | map_op: &self.map_op, |
104 | 0 | }; |
105 | 0 | self.callback.callback(producer) |
106 | 0 | } |
107 | | } |
108 | 0 | } |
109 | | } |
110 | | |
111 | | /// //////////////////////////////////////////////////////////////////////// |
112 | | |
113 | | struct MapProducer<'f, P, F> { |
114 | | base: P, |
115 | | map_op: &'f F, |
116 | | } |
117 | | |
118 | | impl<'f, P, F, R> Producer for MapProducer<'f, P, F> |
119 | | where |
120 | | P: Producer, |
121 | | F: Fn(P::Item) -> R + Sync, |
122 | | R: Send, |
123 | | { |
124 | | type Item = F::Output; |
125 | | type IntoIter = iter::Map<P::IntoIter, &'f F>; |
126 | | |
127 | 0 | fn into_iter(self) -> Self::IntoIter { |
128 | 0 | self.base.into_iter().map(self.map_op) |
129 | 0 | } |
130 | | |
131 | 0 | fn min_len(&self) -> usize { |
132 | 0 | self.base.min_len() |
133 | 0 | } |
134 | 0 | fn max_len(&self) -> usize { |
135 | 0 | self.base.max_len() |
136 | 0 | } |
137 | | |
138 | 0 | fn split_at(self, index: usize) -> (Self, Self) { |
139 | 0 | let (left, right) = self.base.split_at(index); |
140 | 0 | ( |
141 | 0 | MapProducer { |
142 | 0 | base: left, |
143 | 0 | map_op: self.map_op, |
144 | 0 | }, |
145 | 0 | MapProducer { |
146 | 0 | base: right, |
147 | 0 | map_op: self.map_op, |
148 | 0 | }, |
149 | 0 | ) |
150 | 0 | } |
151 | | |
152 | 0 | fn fold_with<G>(self, folder: G) -> G |
153 | 0 | where |
154 | 0 | G: Folder<Self::Item>, |
155 | | { |
156 | 0 | let folder1 = MapFolder { |
157 | 0 | base: folder, |
158 | 0 | map_op: self.map_op, |
159 | 0 | }; |
160 | 0 | self.base.fold_with(folder1).base |
161 | 0 | } |
162 | | } |
163 | | |
164 | | /// //////////////////////////////////////////////////////////////////////// |
165 | | /// Consumer implementation |
166 | | |
167 | | struct MapConsumer<'f, C, F> { |
168 | | base: C, |
169 | | map_op: &'f F, |
170 | | } |
171 | | |
172 | | impl<'f, C, F> MapConsumer<'f, C, F> { |
173 | 0 | fn new(base: C, map_op: &'f F) -> Self { |
174 | 0 | MapConsumer { base, map_op } |
175 | 0 | } Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::collect::consumer::CollectConsumer<(usize, usize, rayon::slice::mergesort::MergesortResult)>, rayon::slice::mergesort::par_mergesort<surrealdb_core::val::Value, <ext_sort::buffer::LimitedBuffer<surrealdb_core::val::Value> as rayon::slice::ParallelSliceMut<surrealdb_core::val::Value>>::par_sort_by<<surrealdb_core::dbs::file::FileCollector>::sort_and_take_vec::{closure#0}::{closure#2}::{closure#0}>::{closure#0}>::{closure#0}>>::newUnexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::extend::ListVecConsumer, rayon::slice::mergesort::par_mergesort<surrealdb_core::val::Value, <ext_sort::buffer::LimitedBuffer<surrealdb_core::val::Value> as rayon::slice::ParallelSliceMut<surrealdb_core::val::Value>>::par_sort_by<<surrealdb_core::dbs::file::FileCollector>::sort_and_take_vec::{closure#0}::{closure#2}::{closure#0}>::{closure#0}>::{closure#0}>>::newUnexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::flatten::FlattenConsumer<rayon::iter::filter::FilterConsumer<rayon::iter::filter_map::FilterMapConsumer<rayon::iter::collect::consumer::CollectConsumer<sysinfo::common::system::Process>, sysinfo::unix::linux::process::refresh_procs::{closure#2}>, sysinfo::unix::linux::process::refresh_procs::{closure#1}>>, sysinfo::unix::linux::process::refresh_procs::{closure#0}>>::newUnexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::flatten::FlattenConsumer<rayon::iter::filter::FilterConsumer<rayon::iter::filter_map::FilterMapConsumer<rayon::iter::extend::ListVecConsumer, sysinfo::unix::linux::process::refresh_procs::{closure#2}>, sysinfo::unix::linux::process::refresh_procs::{closure#1}>>, sysinfo::unix::linux::process::refresh_procs::{closure#0}>>::newUnexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::collect::consumer::CollectConsumer<<i_overlay::split::solver::SplitSolver>::parallel_split::TaskResult>, <i_overlay::split::solver::SplitSolver>::parallel_split::{closure#0}>>::newUnexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::extend::ListVecConsumer, <i_overlay::split::solver::SplitSolver>::parallel_split::{closure#0}>>::newUnexecuted instantiation: <rayon::iter::map::MapConsumer<_, _>>::new |
176 | | } |
177 | | |
178 | | impl<'f, T, R, C, F> Consumer<T> for MapConsumer<'f, C, F> |
179 | | where |
180 | | C: Consumer<F::Output>, |
181 | | F: Fn(T) -> R + Sync, |
182 | | R: Send, |
183 | | { |
184 | | type Folder = MapFolder<'f, C::Folder, F>; |
185 | | type Reducer = C::Reducer; |
186 | | type Result = C::Result; |
187 | | |
188 | 0 | fn split_at(self, index: usize) -> (Self, Self, Self::Reducer) { |
189 | 0 | let (left, right, reducer) = self.base.split_at(index); |
190 | 0 | ( |
191 | 0 | MapConsumer::new(left, self.map_op), |
192 | 0 | MapConsumer::new(right, self.map_op), |
193 | 0 | reducer, |
194 | 0 | ) |
195 | 0 | } Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::collect::consumer::CollectConsumer<(usize, usize, rayon::slice::mergesort::MergesortResult)>, rayon::slice::mergesort::par_mergesort<surrealdb_core::val::Value, <ext_sort::buffer::LimitedBuffer<surrealdb_core::val::Value> as rayon::slice::ParallelSliceMut<surrealdb_core::val::Value>>::par_sort_by<<surrealdb_core::dbs::file::FileCollector>::sort_and_take_vec::{closure#0}::{closure#2}::{closure#0}>::{closure#0}>::{closure#0}> as rayon::iter::plumbing::Consumer<(usize, &mut [surrealdb_core::val::Value])>>::split_atUnexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::extend::ListVecConsumer, rayon::slice::mergesort::par_mergesort<surrealdb_core::val::Value, <ext_sort::buffer::LimitedBuffer<surrealdb_core::val::Value> as rayon::slice::ParallelSliceMut<surrealdb_core::val::Value>>::par_sort_by<<surrealdb_core::dbs::file::FileCollector>::sort_and_take_vec::{closure#0}::{closure#2}::{closure#0}>::{closure#0}>::{closure#0}> as rayon::iter::plumbing::Consumer<(usize, &mut [surrealdb_core::val::Value])>>::split_atUnexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::collect::consumer::CollectConsumer<<i_overlay::split::solver::SplitSolver>::parallel_split::TaskResult>, <i_overlay::split::solver::SplitSolver>::parallel_split::{closure#0}> as rayon::iter::plumbing::Consumer<&mut alloc::vec::Vec<i_overlay::split::fragment::Fragment>>>::split_atUnexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::extend::ListVecConsumer, <i_overlay::split::solver::SplitSolver>::parallel_split::{closure#0}> as rayon::iter::plumbing::Consumer<&mut alloc::vec::Vec<i_overlay::split::fragment::Fragment>>>::split_atUnexecuted instantiation: <rayon::iter::map::MapConsumer<_, _> as rayon::iter::plumbing::Consumer<_>>::split_at |
196 | | |
197 | 0 | fn into_folder(self) -> Self::Folder { |
198 | 0 | MapFolder { |
199 | 0 | base: self.base.into_folder(), |
200 | 0 | map_op: self.map_op, |
201 | 0 | } |
202 | 0 | } Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::collect::consumer::CollectConsumer<(usize, usize, rayon::slice::mergesort::MergesortResult)>, rayon::slice::mergesort::par_mergesort<surrealdb_core::val::Value, <ext_sort::buffer::LimitedBuffer<surrealdb_core::val::Value> as rayon::slice::ParallelSliceMut<surrealdb_core::val::Value>>::par_sort_by<<surrealdb_core::dbs::file::FileCollector>::sort_and_take_vec::{closure#0}::{closure#2}::{closure#0}>::{closure#0}>::{closure#0}> as rayon::iter::plumbing::Consumer<(usize, &mut [surrealdb_core::val::Value])>>::into_folderUnexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::extend::ListVecConsumer, rayon::slice::mergesort::par_mergesort<surrealdb_core::val::Value, <ext_sort::buffer::LimitedBuffer<surrealdb_core::val::Value> as rayon::slice::ParallelSliceMut<surrealdb_core::val::Value>>::par_sort_by<<surrealdb_core::dbs::file::FileCollector>::sort_and_take_vec::{closure#0}::{closure#2}::{closure#0}>::{closure#0}>::{closure#0}> as rayon::iter::plumbing::Consumer<(usize, &mut [surrealdb_core::val::Value])>>::into_folderUnexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::flatten::FlattenConsumer<rayon::iter::filter::FilterConsumer<rayon::iter::filter_map::FilterMapConsumer<rayon::iter::collect::consumer::CollectConsumer<sysinfo::common::system::Process>, sysinfo::unix::linux::process::refresh_procs::{closure#2}>, sysinfo::unix::linux::process::refresh_procs::{closure#1}>>, sysinfo::unix::linux::process::refresh_procs::{closure#0}> as rayon::iter::plumbing::Consumer<core::result::Result<std::fs::DirEntry, std::io::error::Error>>>::into_folderUnexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::flatten::FlattenConsumer<rayon::iter::filter::FilterConsumer<rayon::iter::filter_map::FilterMapConsumer<rayon::iter::extend::ListVecConsumer, sysinfo::unix::linux::process::refresh_procs::{closure#2}>, sysinfo::unix::linux::process::refresh_procs::{closure#1}>>, sysinfo::unix::linux::process::refresh_procs::{closure#0}> as rayon::iter::plumbing::Consumer<core::result::Result<std::fs::DirEntry, std::io::error::Error>>>::into_folderUnexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::collect::consumer::CollectConsumer<<i_overlay::split::solver::SplitSolver>::parallel_split::TaskResult>, <i_overlay::split::solver::SplitSolver>::parallel_split::{closure#0}> as rayon::iter::plumbing::Consumer<&mut alloc::vec::Vec<i_overlay::split::fragment::Fragment>>>::into_folderUnexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::extend::ListVecConsumer, <i_overlay::split::solver::SplitSolver>::parallel_split::{closure#0}> as rayon::iter::plumbing::Consumer<&mut alloc::vec::Vec<i_overlay::split::fragment::Fragment>>>::into_folderUnexecuted instantiation: <rayon::iter::map::MapConsumer<_, _> as rayon::iter::plumbing::Consumer<_>>::into_folder |
203 | | |
204 | 0 | fn full(&self) -> bool { |
205 | 0 | self.base.full() |
206 | 0 | } Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::collect::consumer::CollectConsumer<(usize, usize, rayon::slice::mergesort::MergesortResult)>, rayon::slice::mergesort::par_mergesort<surrealdb_core::val::Value, <ext_sort::buffer::LimitedBuffer<surrealdb_core::val::Value> as rayon::slice::ParallelSliceMut<surrealdb_core::val::Value>>::par_sort_by<<surrealdb_core::dbs::file::FileCollector>::sort_and_take_vec::{closure#0}::{closure#2}::{closure#0}>::{closure#0}>::{closure#0}> as rayon::iter::plumbing::Consumer<(usize, &mut [surrealdb_core::val::Value])>>::fullUnexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::extend::ListVecConsumer, rayon::slice::mergesort::par_mergesort<surrealdb_core::val::Value, <ext_sort::buffer::LimitedBuffer<surrealdb_core::val::Value> as rayon::slice::ParallelSliceMut<surrealdb_core::val::Value>>::par_sort_by<<surrealdb_core::dbs::file::FileCollector>::sort_and_take_vec::{closure#0}::{closure#2}::{closure#0}>::{closure#0}>::{closure#0}> as rayon::iter::plumbing::Consumer<(usize, &mut [surrealdb_core::val::Value])>>::fullUnexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::flatten::FlattenConsumer<rayon::iter::filter::FilterConsumer<rayon::iter::filter_map::FilterMapConsumer<rayon::iter::collect::consumer::CollectConsumer<sysinfo::common::system::Process>, sysinfo::unix::linux::process::refresh_procs::{closure#2}>, sysinfo::unix::linux::process::refresh_procs::{closure#1}>>, sysinfo::unix::linux::process::refresh_procs::{closure#0}> as rayon::iter::plumbing::Consumer<core::result::Result<std::fs::DirEntry, std::io::error::Error>>>::fullUnexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::flatten::FlattenConsumer<rayon::iter::filter::FilterConsumer<rayon::iter::filter_map::FilterMapConsumer<rayon::iter::extend::ListVecConsumer, sysinfo::unix::linux::process::refresh_procs::{closure#2}>, sysinfo::unix::linux::process::refresh_procs::{closure#1}>>, sysinfo::unix::linux::process::refresh_procs::{closure#0}> as rayon::iter::plumbing::Consumer<core::result::Result<std::fs::DirEntry, std::io::error::Error>>>::fullUnexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::collect::consumer::CollectConsumer<<i_overlay::split::solver::SplitSolver>::parallel_split::TaskResult>, <i_overlay::split::solver::SplitSolver>::parallel_split::{closure#0}> as rayon::iter::plumbing::Consumer<&mut alloc::vec::Vec<i_overlay::split::fragment::Fragment>>>::fullUnexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::extend::ListVecConsumer, <i_overlay::split::solver::SplitSolver>::parallel_split::{closure#0}> as rayon::iter::plumbing::Consumer<&mut alloc::vec::Vec<i_overlay::split::fragment::Fragment>>>::fullUnexecuted instantiation: <rayon::iter::map::MapConsumer<_, _> as rayon::iter::plumbing::Consumer<_>>::full |
207 | | } |
208 | | |
209 | | impl<'f, T, R, C, F> UnindexedConsumer<T> for MapConsumer<'f, C, F> |
210 | | where |
211 | | C: UnindexedConsumer<F::Output>, |
212 | | F: Fn(T) -> R + Sync, |
213 | | R: Send, |
214 | | { |
215 | 0 | fn split_off_left(&self) -> Self { |
216 | 0 | MapConsumer::new(self.base.split_off_left(), self.map_op) |
217 | 0 | } Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::flatten::FlattenConsumer<rayon::iter::filter::FilterConsumer<rayon::iter::filter_map::FilterMapConsumer<rayon::iter::collect::consumer::CollectConsumer<sysinfo::common::system::Process>, sysinfo::unix::linux::process::refresh_procs::{closure#2}>, sysinfo::unix::linux::process::refresh_procs::{closure#1}>>, sysinfo::unix::linux::process::refresh_procs::{closure#0}> as rayon::iter::plumbing::UnindexedConsumer<core::result::Result<std::fs::DirEntry, std::io::error::Error>>>::split_off_leftUnexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::flatten::FlattenConsumer<rayon::iter::filter::FilterConsumer<rayon::iter::filter_map::FilterMapConsumer<rayon::iter::extend::ListVecConsumer, sysinfo::unix::linux::process::refresh_procs::{closure#2}>, sysinfo::unix::linux::process::refresh_procs::{closure#1}>>, sysinfo::unix::linux::process::refresh_procs::{closure#0}> as rayon::iter::plumbing::UnindexedConsumer<core::result::Result<std::fs::DirEntry, std::io::error::Error>>>::split_off_leftUnexecuted instantiation: <rayon::iter::map::MapConsumer<_, _> as rayon::iter::plumbing::UnindexedConsumer<_>>::split_off_left |
218 | | |
219 | 0 | fn to_reducer(&self) -> Self::Reducer { |
220 | 0 | self.base.to_reducer() |
221 | 0 | } Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::flatten::FlattenConsumer<rayon::iter::filter::FilterConsumer<rayon::iter::filter_map::FilterMapConsumer<rayon::iter::collect::consumer::CollectConsumer<sysinfo::common::system::Process>, sysinfo::unix::linux::process::refresh_procs::{closure#2}>, sysinfo::unix::linux::process::refresh_procs::{closure#1}>>, sysinfo::unix::linux::process::refresh_procs::{closure#0}> as rayon::iter::plumbing::UnindexedConsumer<core::result::Result<std::fs::DirEntry, std::io::error::Error>>>::to_reducerUnexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::flatten::FlattenConsumer<rayon::iter::filter::FilterConsumer<rayon::iter::filter_map::FilterMapConsumer<rayon::iter::extend::ListVecConsumer, sysinfo::unix::linux::process::refresh_procs::{closure#2}>, sysinfo::unix::linux::process::refresh_procs::{closure#1}>>, sysinfo::unix::linux::process::refresh_procs::{closure#0}> as rayon::iter::plumbing::UnindexedConsumer<core::result::Result<std::fs::DirEntry, std::io::error::Error>>>::to_reducerUnexecuted instantiation: <rayon::iter::map::MapConsumer<_, _> as rayon::iter::plumbing::UnindexedConsumer<_>>::to_reducer |
222 | | } |
223 | | |
224 | | struct MapFolder<'f, C, F> { |
225 | | base: C, |
226 | | map_op: &'f F, |
227 | | } |
228 | | |
229 | | impl<'f, T, R, C, F> Folder<T> for MapFolder<'f, C, F> |
230 | | where |
231 | | C: Folder<F::Output>, |
232 | | F: Fn(T) -> R, |
233 | | { |
234 | | type Result = C::Result; |
235 | | |
236 | 0 | fn consume(self, item: T) -> Self { |
237 | 0 | let mapped_item = (self.map_op)(item); |
238 | 0 | MapFolder { |
239 | 0 | base: self.base.consume(mapped_item), |
240 | 0 | map_op: self.map_op, |
241 | 0 | } |
242 | 0 | } Unexecuted instantiation: <rayon::iter::map::MapFolder<rayon::iter::flatten::FlattenFolder<rayon::iter::filter::FilterConsumer<rayon::iter::filter_map::FilterMapConsumer<rayon::iter::collect::consumer::CollectConsumer<sysinfo::common::system::Process>, sysinfo::unix::linux::process::refresh_procs::{closure#2}>, sysinfo::unix::linux::process::refresh_procs::{closure#1}>, rayon::iter::collect::consumer::CollectResult<sysinfo::common::system::Process>>, sysinfo::unix::linux::process::refresh_procs::{closure#0}> as rayon::iter::plumbing::Folder<core::result::Result<std::fs::DirEntry, std::io::error::Error>>>::consumeUnexecuted instantiation: <rayon::iter::map::MapFolder<rayon::iter::flatten::FlattenFolder<rayon::iter::filter::FilterConsumer<rayon::iter::filter_map::FilterMapConsumer<rayon::iter::extend::ListVecConsumer, sysinfo::unix::linux::process::refresh_procs::{closure#2}>, sysinfo::unix::linux::process::refresh_procs::{closure#1}>, alloc::collections::linked_list::LinkedList<alloc::vec::Vec<sysinfo::common::system::Process>>>, sysinfo::unix::linux::process::refresh_procs::{closure#0}> as rayon::iter::plumbing::Folder<core::result::Result<std::fs::DirEntry, std::io::error::Error>>>::consumeUnexecuted instantiation: <rayon::iter::map::MapFolder<_, _> as rayon::iter::plumbing::Folder<_>>::consume |
243 | | |
244 | 0 | fn consume_iter<I>(mut self, iter: I) -> Self |
245 | 0 | where |
246 | 0 | I: IntoIterator<Item = T>, |
247 | | { |
248 | 0 | self.base = self.base.consume_iter(iter.into_iter().map(self.map_op)); |
249 | 0 | self |
250 | 0 | } Unexecuted instantiation: <rayon::iter::map::MapFolder<rayon::iter::extend::ListVecFolder<(usize, usize, rayon::slice::mergesort::MergesortResult)>, rayon::slice::mergesort::par_mergesort<surrealdb_core::val::Value, <ext_sort::buffer::LimitedBuffer<surrealdb_core::val::Value> as rayon::slice::ParallelSliceMut<surrealdb_core::val::Value>>::par_sort_by<<surrealdb_core::dbs::file::FileCollector>::sort_and_take_vec::{closure#0}::{closure#2}::{closure#0}>::{closure#0}>::{closure#0}> as rayon::iter::plumbing::Folder<(usize, &mut [surrealdb_core::val::Value])>>::consume_iter::<core::iter::adapters::zip::Zip<core::ops::range::Range<usize>, core::slice::iter::ChunksMut<surrealdb_core::val::Value>>>Unexecuted instantiation: <rayon::iter::map::MapFolder<rayon::iter::collect::consumer::CollectResult<(usize, usize, rayon::slice::mergesort::MergesortResult)>, rayon::slice::mergesort::par_mergesort<surrealdb_core::val::Value, <ext_sort::buffer::LimitedBuffer<surrealdb_core::val::Value> as rayon::slice::ParallelSliceMut<surrealdb_core::val::Value>>::par_sort_by<<surrealdb_core::dbs::file::FileCollector>::sort_and_take_vec::{closure#0}::{closure#2}::{closure#0}>::{closure#0}>::{closure#0}> as rayon::iter::plumbing::Folder<(usize, &mut [surrealdb_core::val::Value])>>::consume_iter::<core::iter::adapters::zip::Zip<core::ops::range::Range<usize>, core::slice::iter::ChunksMut<surrealdb_core::val::Value>>>Unexecuted instantiation: <rayon::iter::map::MapFolder<rayon::iter::extend::ListVecFolder<<i_overlay::split::solver::SplitSolver>::parallel_split::TaskResult>, <i_overlay::split::solver::SplitSolver>::parallel_split::{closure#0}> as rayon::iter::plumbing::Folder<&mut alloc::vec::Vec<i_overlay::split::fragment::Fragment>>>::consume_iter::<core::slice::iter::IterMut<alloc::vec::Vec<i_overlay::split::fragment::Fragment>>>Unexecuted instantiation: <rayon::iter::map::MapFolder<rayon::iter::collect::consumer::CollectResult<<i_overlay::split::solver::SplitSolver>::parallel_split::TaskResult>, <i_overlay::split::solver::SplitSolver>::parallel_split::{closure#0}> as rayon::iter::plumbing::Folder<&mut alloc::vec::Vec<i_overlay::split::fragment::Fragment>>>::consume_iter::<core::slice::iter::IterMut<alloc::vec::Vec<i_overlay::split::fragment::Fragment>>>Unexecuted instantiation: <rayon::iter::map::MapFolder<_, _> as rayon::iter::plumbing::Folder<_>>::consume_iter::<_> |
251 | | |
252 | 0 | fn complete(self) -> C::Result { |
253 | 0 | self.base.complete() |
254 | 0 | } Unexecuted instantiation: <rayon::iter::map::MapFolder<rayon::iter::extend::ListVecFolder<(usize, usize, rayon::slice::mergesort::MergesortResult)>, rayon::slice::mergesort::par_mergesort<surrealdb_core::val::Value, <ext_sort::buffer::LimitedBuffer<surrealdb_core::val::Value> as rayon::slice::ParallelSliceMut<surrealdb_core::val::Value>>::par_sort_by<<surrealdb_core::dbs::file::FileCollector>::sort_and_take_vec::{closure#0}::{closure#2}::{closure#0}>::{closure#0}>::{closure#0}> as rayon::iter::plumbing::Folder<(usize, &mut [surrealdb_core::val::Value])>>::completeUnexecuted instantiation: <rayon::iter::map::MapFolder<rayon::iter::collect::consumer::CollectResult<(usize, usize, rayon::slice::mergesort::MergesortResult)>, rayon::slice::mergesort::par_mergesort<surrealdb_core::val::Value, <ext_sort::buffer::LimitedBuffer<surrealdb_core::val::Value> as rayon::slice::ParallelSliceMut<surrealdb_core::val::Value>>::par_sort_by<<surrealdb_core::dbs::file::FileCollector>::sort_and_take_vec::{closure#0}::{closure#2}::{closure#0}>::{closure#0}>::{closure#0}> as rayon::iter::plumbing::Folder<(usize, &mut [surrealdb_core::val::Value])>>::completeUnexecuted instantiation: <rayon::iter::map::MapFolder<rayon::iter::flatten::FlattenFolder<rayon::iter::filter::FilterConsumer<rayon::iter::filter_map::FilterMapConsumer<rayon::iter::collect::consumer::CollectConsumer<sysinfo::common::system::Process>, sysinfo::unix::linux::process::refresh_procs::{closure#2}>, sysinfo::unix::linux::process::refresh_procs::{closure#1}>, rayon::iter::collect::consumer::CollectResult<sysinfo::common::system::Process>>, sysinfo::unix::linux::process::refresh_procs::{closure#0}> as rayon::iter::plumbing::Folder<core::result::Result<std::fs::DirEntry, std::io::error::Error>>>::completeUnexecuted instantiation: <rayon::iter::map::MapFolder<rayon::iter::flatten::FlattenFolder<rayon::iter::filter::FilterConsumer<rayon::iter::filter_map::FilterMapConsumer<rayon::iter::extend::ListVecConsumer, sysinfo::unix::linux::process::refresh_procs::{closure#2}>, sysinfo::unix::linux::process::refresh_procs::{closure#1}>, alloc::collections::linked_list::LinkedList<alloc::vec::Vec<sysinfo::common::system::Process>>>, sysinfo::unix::linux::process::refresh_procs::{closure#0}> as rayon::iter::plumbing::Folder<core::result::Result<std::fs::DirEntry, std::io::error::Error>>>::completeUnexecuted instantiation: <rayon::iter::map::MapFolder<rayon::iter::extend::ListVecFolder<<i_overlay::split::solver::SplitSolver>::parallel_split::TaskResult>, <i_overlay::split::solver::SplitSolver>::parallel_split::{closure#0}> as rayon::iter::plumbing::Folder<&mut alloc::vec::Vec<i_overlay::split::fragment::Fragment>>>::completeUnexecuted instantiation: <rayon::iter::map::MapFolder<rayon::iter::collect::consumer::CollectResult<<i_overlay::split::solver::SplitSolver>::parallel_split::TaskResult>, <i_overlay::split::solver::SplitSolver>::parallel_split::{closure#0}> as rayon::iter::plumbing::Folder<&mut alloc::vec::Vec<i_overlay::split::fragment::Fragment>>>::completeUnexecuted instantiation: <rayon::iter::map::MapFolder<_, _> as rayon::iter::plumbing::Folder<_>>::complete |
255 | | |
256 | 0 | fn full(&self) -> bool { |
257 | 0 | self.base.full() |
258 | 0 | } Unexecuted instantiation: <rayon::iter::map::MapFolder<rayon::iter::flatten::FlattenFolder<rayon::iter::filter::FilterConsumer<rayon::iter::filter_map::FilterMapConsumer<rayon::iter::collect::consumer::CollectConsumer<sysinfo::common::system::Process>, sysinfo::unix::linux::process::refresh_procs::{closure#2}>, sysinfo::unix::linux::process::refresh_procs::{closure#1}>, rayon::iter::collect::consumer::CollectResult<sysinfo::common::system::Process>>, sysinfo::unix::linux::process::refresh_procs::{closure#0}> as rayon::iter::plumbing::Folder<core::result::Result<std::fs::DirEntry, std::io::error::Error>>>::fullUnexecuted instantiation: <rayon::iter::map::MapFolder<rayon::iter::flatten::FlattenFolder<rayon::iter::filter::FilterConsumer<rayon::iter::filter_map::FilterMapConsumer<rayon::iter::extend::ListVecConsumer, sysinfo::unix::linux::process::refresh_procs::{closure#2}>, sysinfo::unix::linux::process::refresh_procs::{closure#1}>, alloc::collections::linked_list::LinkedList<alloc::vec::Vec<sysinfo::common::system::Process>>>, sysinfo::unix::linux::process::refresh_procs::{closure#0}> as rayon::iter::plumbing::Folder<core::result::Result<std::fs::DirEntry, std::io::error::Error>>>::fullUnexecuted instantiation: <rayon::iter::map::MapFolder<_, _> as rayon::iter::plumbing::Folder<_>>::full |
259 | | } |