Coverage Report

Created: 2025-10-12 08:06

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/rust/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-1.11.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()`]: ParallelIterator::map()
12
#[must_use = "iterator adaptors are lazy and do nothing unless consumed"]
13
#[derive(Clone)]
14
pub struct Map<I, F> {
15
    base: I,
16
    map_op: F,
17
}
18
19
impl<I: Debug, F> Debug for Map<I, F> {
20
0
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
21
0
        f.debug_struct("Map").field("base", &self.base).finish()
22
0
    }
23
}
24
25
impl<I, F> Map<I, F> {
26
    /// Creates a new `Map` iterator.
27
0
    pub(super) fn new(base: I, map_op: F) -> Self {
28
0
        Map { base, map_op }
29
0
    }
Unexecuted instantiation: <rayon::iter::map::Map<rayon::vec::IntoIter<(rav1e::tiling::tiler::TileContextMut<u16>, &mut rav1e::context::cdf_context::CDFContext)>, rav1e::encoder::encode_tile_group<u16>::{closure#0}>>::new
Unexecuted instantiation: <rayon::iter::map::Map<rayon::vec::IntoIter<(rav1e::tiling::tiler::TileContextMut<u8>, &mut rav1e::context::cdf_context::CDFContext)>, rav1e::encoder::encode_tile_group<u8>::{closure#0}>>::new
Unexecuted instantiation: <rayon::iter::map::Map<_, _>>::new
30
}
31
32
impl<I, F, R> ParallelIterator for Map<I, F>
33
where
34
    I: ParallelIterator,
35
    F: Fn(I::Item) -> R + Sync + Send,
36
    R: Send,
37
{
38
    type Item = F::Output;
39
40
0
    fn drive_unindexed<C>(self, consumer: C) -> C::Result
41
0
    where
42
0
        C: UnindexedConsumer<Self::Item>,
43
    {
44
0
        let consumer1 = MapConsumer::new(consumer, &self.map_op);
45
0
        self.base.drive_unindexed(consumer1)
46
0
    }
Unexecuted instantiation: <rayon::iter::map::Map<rayon::vec::IntoIter<(rav1e::tiling::tiler::TileContextMut<u16>, &mut rav1e::context::cdf_context::CDFContext)>, rav1e::encoder::encode_tile_group<u16>::{closure#0}> as rayon::iter::ParallelIterator>::drive_unindexed::<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::collect::consumer::CollectConsumer<alloc::vec::Vec<u8>>, rayon::iter::collect::consumer::CollectConsumer<rav1e::stats::EncoderStats>>>
Unexecuted instantiation: <rayon::iter::map::Map<rayon::vec::IntoIter<(rav1e::tiling::tiler::TileContextMut<u16>, &mut rav1e::context::cdf_context::CDFContext)>, rav1e::encoder::encode_tile_group<u16>::{closure#0}> as rayon::iter::ParallelIterator>::drive_unindexed::<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::collect::consumer::CollectConsumer<alloc::vec::Vec<u8>>, rayon::iter::extend::ListVecConsumer>>
Unexecuted instantiation: <rayon::iter::map::Map<rayon::vec::IntoIter<(rav1e::tiling::tiler::TileContextMut<u16>, &mut rav1e::context::cdf_context::CDFContext)>, rav1e::encoder::encode_tile_group<u16>::{closure#0}> as rayon::iter::ParallelIterator>::drive_unindexed::<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::extend::ListVecConsumer, rayon::iter::extend::ListVecConsumer>>
Unexecuted instantiation: <rayon::iter::map::Map<rayon::vec::IntoIter<(rav1e::tiling::tiler::TileContextMut<u16>, &mut rav1e::context::cdf_context::CDFContext)>, rav1e::encoder::encode_tile_group<u16>::{closure#0}> as rayon::iter::ParallelIterator>::drive_unindexed::<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::extend::ListVecConsumer, rayon::iter::collect::consumer::CollectConsumer<rav1e::stats::EncoderStats>>>
Unexecuted instantiation: <rayon::iter::map::Map<rayon::vec::IntoIter<(rav1e::tiling::tiler::TileContextMut<u8>, &mut rav1e::context::cdf_context::CDFContext)>, rav1e::encoder::encode_tile_group<u8>::{closure#0}> as rayon::iter::ParallelIterator>::drive_unindexed::<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::collect::consumer::CollectConsumer<alloc::vec::Vec<u8>>, rayon::iter::collect::consumer::CollectConsumer<rav1e::stats::EncoderStats>>>
Unexecuted instantiation: <rayon::iter::map::Map<rayon::vec::IntoIter<(rav1e::tiling::tiler::TileContextMut<u8>, &mut rav1e::context::cdf_context::CDFContext)>, rav1e::encoder::encode_tile_group<u8>::{closure#0}> as rayon::iter::ParallelIterator>::drive_unindexed::<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::collect::consumer::CollectConsumer<alloc::vec::Vec<u8>>, rayon::iter::extend::ListVecConsumer>>
Unexecuted instantiation: <rayon::iter::map::Map<rayon::vec::IntoIter<(rav1e::tiling::tiler::TileContextMut<u8>, &mut rav1e::context::cdf_context::CDFContext)>, rav1e::encoder::encode_tile_group<u8>::{closure#0}> as rayon::iter::ParallelIterator>::drive_unindexed::<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::extend::ListVecConsumer, rayon::iter::extend::ListVecConsumer>>
Unexecuted instantiation: <rayon::iter::map::Map<rayon::vec::IntoIter<(rav1e::tiling::tiler::TileContextMut<u8>, &mut rav1e::context::cdf_context::CDFContext)>, rav1e::encoder::encode_tile_group<u8>::{closure#0}> as rayon::iter::ParallelIterator>::drive_unindexed::<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::extend::ListVecConsumer, rayon::iter::collect::consumer::CollectConsumer<rav1e::stats::EncoderStats>>>
Unexecuted instantiation: <rayon::iter::map::Map<_, _> as rayon::iter::ParallelIterator>::drive_unindexed::<_>
47
48
0
    fn opt_len(&self) -> Option<usize> {
49
0
        self.base.opt_len()
50
0
    }
Unexecuted instantiation: <rayon::iter::map::Map<rayon::vec::IntoIter<(rav1e::tiling::tiler::TileContextMut<u16>, &mut rav1e::context::cdf_context::CDFContext)>, rav1e::encoder::encode_tile_group<u16>::{closure#0}> as rayon::iter::ParallelIterator>::opt_len
Unexecuted instantiation: <rayon::iter::map::Map<rayon::vec::IntoIter<(rav1e::tiling::tiler::TileContextMut<u8>, &mut rav1e::context::cdf_context::CDFContext)>, rav1e::encoder::encode_tile_group<u8>::{closure#0}> as rayon::iter::ParallelIterator>::opt_len
Unexecuted instantiation: <rayon::iter::map::Map<_, _> as rayon::iter::ParallelIterator>::opt_len
51
}
52
53
impl<I, F, R> IndexedParallelIterator for Map<I, F>
54
where
55
    I: IndexedParallelIterator,
56
    F: Fn(I::Item) -> R + Sync + Send,
57
    R: Send,
58
{
59
0
    fn drive<C>(self, consumer: C) -> C::Result
60
0
    where
61
0
        C: Consumer<Self::Item>,
62
    {
63
0
        let consumer1 = MapConsumer::new(consumer, &self.map_op);
64
0
        self.base.drive(consumer1)
65
0
    }
66
67
0
    fn len(&self) -> usize {
68
0
        self.base.len()
69
0
    }
70
71
0
    fn with_producer<CB>(self, callback: CB) -> CB::Output
72
0
    where
73
0
        CB: ProducerCallback<Self::Item>,
74
    {
75
0
        return self.base.with_producer(Callback {
76
0
            callback,
77
0
            map_op: self.map_op,
78
0
        });
79
80
        struct Callback<CB, F> {
81
            callback: CB,
82
            map_op: F,
83
        }
84
85
        impl<T, F, R, CB> ProducerCallback<T> for Callback<CB, F>
86
        where
87
            CB: ProducerCallback<R>,
88
            F: Fn(T) -> R + Sync,
89
            R: Send,
90
        {
91
            type Output = CB::Output;
92
93
0
            fn callback<P>(self, base: P) -> CB::Output
94
0
            where
95
0
                P: Producer<Item = T>,
96
            {
97
0
                let producer = MapProducer {
98
0
                    base,
99
0
                    map_op: &self.map_op,
100
0
                };
101
0
                self.callback.callback(producer)
102
0
            }
103
        }
104
0
    }
105
}
106
107
// ////////////////////////////////////////////////////////////////////////
108
109
struct MapProducer<'f, P, F> {
110
    base: P,
111
    map_op: &'f F,
112
}
113
114
impl<'f, P, F, R> Producer for MapProducer<'f, P, F>
115
where
116
    P: Producer,
117
    F: Fn(P::Item) -> R + Sync,
118
    R: Send,
119
{
120
    type Item = F::Output;
121
    type IntoIter = iter::Map<P::IntoIter, &'f F>;
122
123
0
    fn into_iter(self) -> Self::IntoIter {
124
0
        self.base.into_iter().map(self.map_op)
125
0
    }
126
127
0
    fn min_len(&self) -> usize {
128
0
        self.base.min_len()
129
0
    }
130
0
    fn max_len(&self) -> usize {
131
0
        self.base.max_len()
132
0
    }
133
134
0
    fn split_at(self, index: usize) -> (Self, Self) {
135
0
        let (left, right) = self.base.split_at(index);
136
0
        (
137
0
            MapProducer {
138
0
                base: left,
139
0
                map_op: self.map_op,
140
0
            },
141
0
            MapProducer {
142
0
                base: right,
143
0
                map_op: self.map_op,
144
0
            },
145
0
        )
146
0
    }
147
148
0
    fn fold_with<G>(self, folder: G) -> G
149
0
    where
150
0
        G: Folder<Self::Item>,
151
    {
152
0
        let folder1 = MapFolder {
153
0
            base: folder,
154
0
            map_op: self.map_op,
155
0
        };
156
0
        self.base.fold_with(folder1).base
157
0
    }
158
}
159
160
// ////////////////////////////////////////////////////////////////////////
161
// Consumer implementation
162
163
struct MapConsumer<'f, C, F> {
164
    base: C,
165
    map_op: &'f F,
166
}
167
168
impl<'f, C, F> MapConsumer<'f, C, F> {
169
0
    fn new(base: C, map_op: &'f F) -> Self {
170
0
        MapConsumer { base, map_op }
171
0
    }
Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::collect::consumer::CollectConsumer<alloc::vec::Vec<u8>>, rayon::iter::collect::consumer::CollectConsumer<rav1e::stats::EncoderStats>>, rav1e::encoder::encode_tile_group<u16>::{closure#0}>>::new
Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::collect::consumer::CollectConsumer<alloc::vec::Vec<u8>>, rayon::iter::extend::ListVecConsumer>, rav1e::encoder::encode_tile_group<u16>::{closure#0}>>::new
Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::extend::ListVecConsumer, rayon::iter::extend::ListVecConsumer>, rav1e::encoder::encode_tile_group<u16>::{closure#0}>>::new
Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::extend::ListVecConsumer, rayon::iter::collect::consumer::CollectConsumer<rav1e::stats::EncoderStats>>, rav1e::encoder::encode_tile_group<u16>::{closure#0}>>::new
Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::collect::consumer::CollectConsumer<alloc::vec::Vec<u8>>, rayon::iter::collect::consumer::CollectConsumer<rav1e::stats::EncoderStats>>, rav1e::encoder::encode_tile_group<u8>::{closure#0}>>::new
Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::collect::consumer::CollectConsumer<alloc::vec::Vec<u8>>, rayon::iter::extend::ListVecConsumer>, rav1e::encoder::encode_tile_group<u8>::{closure#0}>>::new
Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::extend::ListVecConsumer, rayon::iter::extend::ListVecConsumer>, rav1e::encoder::encode_tile_group<u8>::{closure#0}>>::new
Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::extend::ListVecConsumer, rayon::iter::collect::consumer::CollectConsumer<rav1e::stats::EncoderStats>>, rav1e::encoder::encode_tile_group<u8>::{closure#0}>>::new
Unexecuted instantiation: <rayon::iter::map::MapConsumer<_, _>>::new
172
}
173
174
impl<'f, T, R, C, F> Consumer<T> for MapConsumer<'f, C, F>
175
where
176
    C: Consumer<F::Output>,
177
    F: Fn(T) -> R + Sync,
178
    R: Send,
179
{
180
    type Folder = MapFolder<'f, C::Folder, F>;
181
    type Reducer = C::Reducer;
182
    type Result = C::Result;
183
184
0
    fn split_at(self, index: usize) -> (Self, Self, Self::Reducer) {
185
0
        let (left, right, reducer) = self.base.split_at(index);
186
0
        (
187
0
            MapConsumer::new(left, self.map_op),
188
0
            MapConsumer::new(right, self.map_op),
189
0
            reducer,
190
0
        )
191
0
    }
Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::collect::consumer::CollectConsumer<alloc::vec::Vec<u8>>, rayon::iter::collect::consumer::CollectConsumer<rav1e::stats::EncoderStats>>, rav1e::encoder::encode_tile_group<u16>::{closure#0}> as rayon::iter::plumbing::Consumer<(rav1e::tiling::tiler::TileContextMut<u16>, &mut rav1e::context::cdf_context::CDFContext)>>::split_at
Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::collect::consumer::CollectConsumer<alloc::vec::Vec<u8>>, rayon::iter::extend::ListVecConsumer>, rav1e::encoder::encode_tile_group<u16>::{closure#0}> as rayon::iter::plumbing::Consumer<(rav1e::tiling::tiler::TileContextMut<u16>, &mut rav1e::context::cdf_context::CDFContext)>>::split_at
Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::extend::ListVecConsumer, rayon::iter::extend::ListVecConsumer>, rav1e::encoder::encode_tile_group<u16>::{closure#0}> as rayon::iter::plumbing::Consumer<(rav1e::tiling::tiler::TileContextMut<u16>, &mut rav1e::context::cdf_context::CDFContext)>>::split_at
Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::extend::ListVecConsumer, rayon::iter::collect::consumer::CollectConsumer<rav1e::stats::EncoderStats>>, rav1e::encoder::encode_tile_group<u16>::{closure#0}> as rayon::iter::plumbing::Consumer<(rav1e::tiling::tiler::TileContextMut<u16>, &mut rav1e::context::cdf_context::CDFContext)>>::split_at
Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::collect::consumer::CollectConsumer<alloc::vec::Vec<u8>>, rayon::iter::collect::consumer::CollectConsumer<rav1e::stats::EncoderStats>>, rav1e::encoder::encode_tile_group<u8>::{closure#0}> as rayon::iter::plumbing::Consumer<(rav1e::tiling::tiler::TileContextMut<u8>, &mut rav1e::context::cdf_context::CDFContext)>>::split_at
Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::collect::consumer::CollectConsumer<alloc::vec::Vec<u8>>, rayon::iter::extend::ListVecConsumer>, rav1e::encoder::encode_tile_group<u8>::{closure#0}> as rayon::iter::plumbing::Consumer<(rav1e::tiling::tiler::TileContextMut<u8>, &mut rav1e::context::cdf_context::CDFContext)>>::split_at
Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::extend::ListVecConsumer, rayon::iter::extend::ListVecConsumer>, rav1e::encoder::encode_tile_group<u8>::{closure#0}> as rayon::iter::plumbing::Consumer<(rav1e::tiling::tiler::TileContextMut<u8>, &mut rav1e::context::cdf_context::CDFContext)>>::split_at
Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::extend::ListVecConsumer, rayon::iter::collect::consumer::CollectConsumer<rav1e::stats::EncoderStats>>, rav1e::encoder::encode_tile_group<u8>::{closure#0}> as rayon::iter::plumbing::Consumer<(rav1e::tiling::tiler::TileContextMut<u8>, &mut rav1e::context::cdf_context::CDFContext)>>::split_at
Unexecuted instantiation: <rayon::iter::map::MapConsumer<_, _> as rayon::iter::plumbing::Consumer<_>>::split_at
192
193
0
    fn into_folder(self) -> Self::Folder {
194
0
        MapFolder {
195
0
            base: self.base.into_folder(),
196
0
            map_op: self.map_op,
197
0
        }
198
0
    }
Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::collect::consumer::CollectConsumer<alloc::vec::Vec<u8>>, rayon::iter::collect::consumer::CollectConsumer<rav1e::stats::EncoderStats>>, rav1e::encoder::encode_tile_group<u16>::{closure#0}> as rayon::iter::plumbing::Consumer<(rav1e::tiling::tiler::TileContextMut<u16>, &mut rav1e::context::cdf_context::CDFContext)>>::into_folder
Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::collect::consumer::CollectConsumer<alloc::vec::Vec<u8>>, rayon::iter::extend::ListVecConsumer>, rav1e::encoder::encode_tile_group<u16>::{closure#0}> as rayon::iter::plumbing::Consumer<(rav1e::tiling::tiler::TileContextMut<u16>, &mut rav1e::context::cdf_context::CDFContext)>>::into_folder
Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::extend::ListVecConsumer, rayon::iter::extend::ListVecConsumer>, rav1e::encoder::encode_tile_group<u16>::{closure#0}> as rayon::iter::plumbing::Consumer<(rav1e::tiling::tiler::TileContextMut<u16>, &mut rav1e::context::cdf_context::CDFContext)>>::into_folder
Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::extend::ListVecConsumer, rayon::iter::collect::consumer::CollectConsumer<rav1e::stats::EncoderStats>>, rav1e::encoder::encode_tile_group<u16>::{closure#0}> as rayon::iter::plumbing::Consumer<(rav1e::tiling::tiler::TileContextMut<u16>, &mut rav1e::context::cdf_context::CDFContext)>>::into_folder
Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::collect::consumer::CollectConsumer<alloc::vec::Vec<u8>>, rayon::iter::collect::consumer::CollectConsumer<rav1e::stats::EncoderStats>>, rav1e::encoder::encode_tile_group<u8>::{closure#0}> as rayon::iter::plumbing::Consumer<(rav1e::tiling::tiler::TileContextMut<u8>, &mut rav1e::context::cdf_context::CDFContext)>>::into_folder
Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::collect::consumer::CollectConsumer<alloc::vec::Vec<u8>>, rayon::iter::extend::ListVecConsumer>, rav1e::encoder::encode_tile_group<u8>::{closure#0}> as rayon::iter::plumbing::Consumer<(rav1e::tiling::tiler::TileContextMut<u8>, &mut rav1e::context::cdf_context::CDFContext)>>::into_folder
Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::extend::ListVecConsumer, rayon::iter::extend::ListVecConsumer>, rav1e::encoder::encode_tile_group<u8>::{closure#0}> as rayon::iter::plumbing::Consumer<(rav1e::tiling::tiler::TileContextMut<u8>, &mut rav1e::context::cdf_context::CDFContext)>>::into_folder
Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::extend::ListVecConsumer, rayon::iter::collect::consumer::CollectConsumer<rav1e::stats::EncoderStats>>, rav1e::encoder::encode_tile_group<u8>::{closure#0}> as rayon::iter::plumbing::Consumer<(rav1e::tiling::tiler::TileContextMut<u8>, &mut rav1e::context::cdf_context::CDFContext)>>::into_folder
Unexecuted instantiation: <rayon::iter::map::MapConsumer<_, _> as rayon::iter::plumbing::Consumer<_>>::into_folder
199
200
0
    fn full(&self) -> bool {
201
0
        self.base.full()
202
0
    }
Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::collect::consumer::CollectConsumer<alloc::vec::Vec<u8>>, rayon::iter::collect::consumer::CollectConsumer<rav1e::stats::EncoderStats>>, rav1e::encoder::encode_tile_group<u16>::{closure#0}> as rayon::iter::plumbing::Consumer<(rav1e::tiling::tiler::TileContextMut<u16>, &mut rav1e::context::cdf_context::CDFContext)>>::full
Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::collect::consumer::CollectConsumer<alloc::vec::Vec<u8>>, rayon::iter::extend::ListVecConsumer>, rav1e::encoder::encode_tile_group<u16>::{closure#0}> as rayon::iter::plumbing::Consumer<(rav1e::tiling::tiler::TileContextMut<u16>, &mut rav1e::context::cdf_context::CDFContext)>>::full
Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::extend::ListVecConsumer, rayon::iter::extend::ListVecConsumer>, rav1e::encoder::encode_tile_group<u16>::{closure#0}> as rayon::iter::plumbing::Consumer<(rav1e::tiling::tiler::TileContextMut<u16>, &mut rav1e::context::cdf_context::CDFContext)>>::full
Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::extend::ListVecConsumer, rayon::iter::collect::consumer::CollectConsumer<rav1e::stats::EncoderStats>>, rav1e::encoder::encode_tile_group<u16>::{closure#0}> as rayon::iter::plumbing::Consumer<(rav1e::tiling::tiler::TileContextMut<u16>, &mut rav1e::context::cdf_context::CDFContext)>>::full
Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::collect::consumer::CollectConsumer<alloc::vec::Vec<u8>>, rayon::iter::collect::consumer::CollectConsumer<rav1e::stats::EncoderStats>>, rav1e::encoder::encode_tile_group<u8>::{closure#0}> as rayon::iter::plumbing::Consumer<(rav1e::tiling::tiler::TileContextMut<u8>, &mut rav1e::context::cdf_context::CDFContext)>>::full
Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::collect::consumer::CollectConsumer<alloc::vec::Vec<u8>>, rayon::iter::extend::ListVecConsumer>, rav1e::encoder::encode_tile_group<u8>::{closure#0}> as rayon::iter::plumbing::Consumer<(rav1e::tiling::tiler::TileContextMut<u8>, &mut rav1e::context::cdf_context::CDFContext)>>::full
Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::extend::ListVecConsumer, rayon::iter::extend::ListVecConsumer>, rav1e::encoder::encode_tile_group<u8>::{closure#0}> as rayon::iter::plumbing::Consumer<(rav1e::tiling::tiler::TileContextMut<u8>, &mut rav1e::context::cdf_context::CDFContext)>>::full
Unexecuted instantiation: <rayon::iter::map::MapConsumer<rayon::iter::unzip::UnzipConsumer<rayon::iter::unzip::Unzip, rayon::iter::extend::ListVecConsumer, rayon::iter::collect::consumer::CollectConsumer<rav1e::stats::EncoderStats>>, rav1e::encoder::encode_tile_group<u8>::{closure#0}> as rayon::iter::plumbing::Consumer<(rav1e::tiling::tiler::TileContextMut<u8>, &mut rav1e::context::cdf_context::CDFContext)>>::full
Unexecuted instantiation: <rayon::iter::map::MapConsumer<_, _> as rayon::iter::plumbing::Consumer<_>>::full
203
}
204
205
impl<'f, T, R, C, F> UnindexedConsumer<T> for MapConsumer<'f, C, F>
206
where
207
    C: UnindexedConsumer<F::Output>,
208
    F: Fn(T) -> R + Sync,
209
    R: Send,
210
{
211
0
    fn split_off_left(&self) -> Self {
212
0
        MapConsumer::new(self.base.split_off_left(), self.map_op)
213
0
    }
214
215
0
    fn to_reducer(&self) -> Self::Reducer {
216
0
        self.base.to_reducer()
217
0
    }
218
}
219
220
struct MapFolder<'f, C, F> {
221
    base: C,
222
    map_op: &'f F,
223
}
224
225
impl<'f, T, R, C, F> Folder<T> for MapFolder<'f, C, F>
226
where
227
    C: Folder<F::Output>,
228
    F: Fn(T) -> R,
229
{
230
    type Result = C::Result;
231
232
0
    fn consume(self, item: T) -> Self {
233
0
        let mapped_item = (self.map_op)(item);
234
0
        MapFolder {
235
0
            base: self.base.consume(mapped_item),
236
0
            map_op: self.map_op,
237
0
        }
238
0
    }
239
240
0
    fn consume_iter<I>(mut self, iter: I) -> Self
241
0
    where
242
0
        I: IntoIterator<Item = T>,
243
    {
244
0
        self.base = self.base.consume_iter(iter.into_iter().map(self.map_op));
245
0
        self
246
0
    }
Unexecuted instantiation: <rayon::iter::map::MapFolder<rayon::iter::unzip::UnzipFolder<rayon::iter::unzip::Unzip, rayon::iter::extend::ListVecFolder<alloc::vec::Vec<u8>>, rayon::iter::extend::ListVecFolder<rav1e::stats::EncoderStats>>, rav1e::encoder::encode_tile_group<u16>::{closure#0}> as rayon::iter::plumbing::Folder<(rav1e::tiling::tiler::TileContextMut<u16>, &mut rav1e::context::cdf_context::CDFContext)>>::consume_iter::<rayon::vec::SliceDrain<(rav1e::tiling::tiler::TileContextMut<u16>, &mut rav1e::context::cdf_context::CDFContext)>>
Unexecuted instantiation: <rayon::iter::map::MapFolder<rayon::iter::unzip::UnzipFolder<rayon::iter::unzip::Unzip, rayon::iter::extend::ListVecFolder<alloc::vec::Vec<u8>>, rayon::iter::collect::consumer::CollectResult<rav1e::stats::EncoderStats>>, rav1e::encoder::encode_tile_group<u16>::{closure#0}> as rayon::iter::plumbing::Folder<(rav1e::tiling::tiler::TileContextMut<u16>, &mut rav1e::context::cdf_context::CDFContext)>>::consume_iter::<rayon::vec::SliceDrain<(rav1e::tiling::tiler::TileContextMut<u16>, &mut rav1e::context::cdf_context::CDFContext)>>
Unexecuted instantiation: <rayon::iter::map::MapFolder<rayon::iter::unzip::UnzipFolder<rayon::iter::unzip::Unzip, rayon::iter::collect::consumer::CollectResult<alloc::vec::Vec<u8>>, rayon::iter::collect::consumer::CollectResult<rav1e::stats::EncoderStats>>, rav1e::encoder::encode_tile_group<u16>::{closure#0}> as rayon::iter::plumbing::Folder<(rav1e::tiling::tiler::TileContextMut<u16>, &mut rav1e::context::cdf_context::CDFContext)>>::consume_iter::<rayon::vec::SliceDrain<(rav1e::tiling::tiler::TileContextMut<u16>, &mut rav1e::context::cdf_context::CDFContext)>>
Unexecuted instantiation: <rayon::iter::map::MapFolder<rayon::iter::unzip::UnzipFolder<rayon::iter::unzip::Unzip, rayon::iter::collect::consumer::CollectResult<alloc::vec::Vec<u8>>, rayon::iter::extend::ListVecFolder<rav1e::stats::EncoderStats>>, rav1e::encoder::encode_tile_group<u16>::{closure#0}> as rayon::iter::plumbing::Folder<(rav1e::tiling::tiler::TileContextMut<u16>, &mut rav1e::context::cdf_context::CDFContext)>>::consume_iter::<rayon::vec::SliceDrain<(rav1e::tiling::tiler::TileContextMut<u16>, &mut rav1e::context::cdf_context::CDFContext)>>
Unexecuted instantiation: <rayon::iter::map::MapFolder<rayon::iter::unzip::UnzipFolder<rayon::iter::unzip::Unzip, rayon::iter::extend::ListVecFolder<alloc::vec::Vec<u8>>, rayon::iter::extend::ListVecFolder<rav1e::stats::EncoderStats>>, rav1e::encoder::encode_tile_group<u8>::{closure#0}> as rayon::iter::plumbing::Folder<(rav1e::tiling::tiler::TileContextMut<u8>, &mut rav1e::context::cdf_context::CDFContext)>>::consume_iter::<rayon::vec::SliceDrain<(rav1e::tiling::tiler::TileContextMut<u8>, &mut rav1e::context::cdf_context::CDFContext)>>
Unexecuted instantiation: <rayon::iter::map::MapFolder<rayon::iter::unzip::UnzipFolder<rayon::iter::unzip::Unzip, rayon::iter::extend::ListVecFolder<alloc::vec::Vec<u8>>, rayon::iter::collect::consumer::CollectResult<rav1e::stats::EncoderStats>>, rav1e::encoder::encode_tile_group<u8>::{closure#0}> as rayon::iter::plumbing::Folder<(rav1e::tiling::tiler::TileContextMut<u8>, &mut rav1e::context::cdf_context::CDFContext)>>::consume_iter::<rayon::vec::SliceDrain<(rav1e::tiling::tiler::TileContextMut<u8>, &mut rav1e::context::cdf_context::CDFContext)>>
Unexecuted instantiation: <rayon::iter::map::MapFolder<rayon::iter::unzip::UnzipFolder<rayon::iter::unzip::Unzip, rayon::iter::collect::consumer::CollectResult<alloc::vec::Vec<u8>>, rayon::iter::collect::consumer::CollectResult<rav1e::stats::EncoderStats>>, rav1e::encoder::encode_tile_group<u8>::{closure#0}> as rayon::iter::plumbing::Folder<(rav1e::tiling::tiler::TileContextMut<u8>, &mut rav1e::context::cdf_context::CDFContext)>>::consume_iter::<rayon::vec::SliceDrain<(rav1e::tiling::tiler::TileContextMut<u8>, &mut rav1e::context::cdf_context::CDFContext)>>
Unexecuted instantiation: <rayon::iter::map::MapFolder<rayon::iter::unzip::UnzipFolder<rayon::iter::unzip::Unzip, rayon::iter::collect::consumer::CollectResult<alloc::vec::Vec<u8>>, rayon::iter::extend::ListVecFolder<rav1e::stats::EncoderStats>>, rav1e::encoder::encode_tile_group<u8>::{closure#0}> as rayon::iter::plumbing::Folder<(rav1e::tiling::tiler::TileContextMut<u8>, &mut rav1e::context::cdf_context::CDFContext)>>::consume_iter::<rayon::vec::SliceDrain<(rav1e::tiling::tiler::TileContextMut<u8>, &mut rav1e::context::cdf_context::CDFContext)>>
Unexecuted instantiation: <rayon::iter::map::MapFolder<_, _> as rayon::iter::plumbing::Folder<_>>::consume_iter::<_>
247
248
0
    fn complete(self) -> C::Result {
249
0
        self.base.complete()
250
0
    }
Unexecuted instantiation: <rayon::iter::map::MapFolder<rayon::iter::unzip::UnzipFolder<rayon::iter::unzip::Unzip, rayon::iter::extend::ListVecFolder<alloc::vec::Vec<u8>>, rayon::iter::extend::ListVecFolder<rav1e::stats::EncoderStats>>, rav1e::encoder::encode_tile_group<u16>::{closure#0}> as rayon::iter::plumbing::Folder<(rav1e::tiling::tiler::TileContextMut<u16>, &mut rav1e::context::cdf_context::CDFContext)>>::complete
Unexecuted instantiation: <rayon::iter::map::MapFolder<rayon::iter::unzip::UnzipFolder<rayon::iter::unzip::Unzip, rayon::iter::extend::ListVecFolder<alloc::vec::Vec<u8>>, rayon::iter::collect::consumer::CollectResult<rav1e::stats::EncoderStats>>, rav1e::encoder::encode_tile_group<u16>::{closure#0}> as rayon::iter::plumbing::Folder<(rav1e::tiling::tiler::TileContextMut<u16>, &mut rav1e::context::cdf_context::CDFContext)>>::complete
Unexecuted instantiation: <rayon::iter::map::MapFolder<rayon::iter::unzip::UnzipFolder<rayon::iter::unzip::Unzip, rayon::iter::collect::consumer::CollectResult<alloc::vec::Vec<u8>>, rayon::iter::collect::consumer::CollectResult<rav1e::stats::EncoderStats>>, rav1e::encoder::encode_tile_group<u16>::{closure#0}> as rayon::iter::plumbing::Folder<(rav1e::tiling::tiler::TileContextMut<u16>, &mut rav1e::context::cdf_context::CDFContext)>>::complete
Unexecuted instantiation: <rayon::iter::map::MapFolder<rayon::iter::unzip::UnzipFolder<rayon::iter::unzip::Unzip, rayon::iter::collect::consumer::CollectResult<alloc::vec::Vec<u8>>, rayon::iter::extend::ListVecFolder<rav1e::stats::EncoderStats>>, rav1e::encoder::encode_tile_group<u16>::{closure#0}> as rayon::iter::plumbing::Folder<(rav1e::tiling::tiler::TileContextMut<u16>, &mut rav1e::context::cdf_context::CDFContext)>>::complete
Unexecuted instantiation: <rayon::iter::map::MapFolder<rayon::iter::unzip::UnzipFolder<rayon::iter::unzip::Unzip, rayon::iter::extend::ListVecFolder<alloc::vec::Vec<u8>>, rayon::iter::extend::ListVecFolder<rav1e::stats::EncoderStats>>, rav1e::encoder::encode_tile_group<u8>::{closure#0}> as rayon::iter::plumbing::Folder<(rav1e::tiling::tiler::TileContextMut<u8>, &mut rav1e::context::cdf_context::CDFContext)>>::complete
Unexecuted instantiation: <rayon::iter::map::MapFolder<rayon::iter::unzip::UnzipFolder<rayon::iter::unzip::Unzip, rayon::iter::extend::ListVecFolder<alloc::vec::Vec<u8>>, rayon::iter::collect::consumer::CollectResult<rav1e::stats::EncoderStats>>, rav1e::encoder::encode_tile_group<u8>::{closure#0}> as rayon::iter::plumbing::Folder<(rav1e::tiling::tiler::TileContextMut<u8>, &mut rav1e::context::cdf_context::CDFContext)>>::complete
Unexecuted instantiation: <rayon::iter::map::MapFolder<rayon::iter::unzip::UnzipFolder<rayon::iter::unzip::Unzip, rayon::iter::collect::consumer::CollectResult<alloc::vec::Vec<u8>>, rayon::iter::collect::consumer::CollectResult<rav1e::stats::EncoderStats>>, rav1e::encoder::encode_tile_group<u8>::{closure#0}> as rayon::iter::plumbing::Folder<(rav1e::tiling::tiler::TileContextMut<u8>, &mut rav1e::context::cdf_context::CDFContext)>>::complete
Unexecuted instantiation: <rayon::iter::map::MapFolder<rayon::iter::unzip::UnzipFolder<rayon::iter::unzip::Unzip, rayon::iter::collect::consumer::CollectResult<alloc::vec::Vec<u8>>, rayon::iter::extend::ListVecFolder<rav1e::stats::EncoderStats>>, rav1e::encoder::encode_tile_group<u8>::{closure#0}> as rayon::iter::plumbing::Folder<(rav1e::tiling::tiler::TileContextMut<u8>, &mut rav1e::context::cdf_context::CDFContext)>>::complete
Unexecuted instantiation: <rayon::iter::map::MapFolder<_, _> as rayon::iter::plumbing::Folder<_>>::complete
251
252
0
    fn full(&self) -> bool {
253
0
        self.base.full()
254
0
    }
255
}