/src/wasmtime/cranelift/entity/src/iter.rs
Line | Count | Source (jump to first uncovered line) |
1 | | //! A double-ended iterator over entity references and entities. |
2 | | |
3 | | use crate::EntityRef; |
4 | | use alloc::vec; |
5 | | use core::iter::Enumerate; |
6 | | use core::marker::PhantomData; |
7 | | use core::slice; |
8 | | |
9 | | /// Iterate over all keys in order. |
10 | | pub struct Iter<'a, K: EntityRef, V> |
11 | | where |
12 | | V: 'a, |
13 | | { |
14 | | enumerate: Enumerate<slice::Iter<'a, V>>, |
15 | | unused: PhantomData<K>, |
16 | | } |
17 | | |
18 | | impl<'a, K: EntityRef, V> Iter<'a, K, V> { |
19 | | /// Create an `Iter` iterator that visits the `PrimaryMap` keys and values |
20 | | /// of `iter`. |
21 | 8.26M | pub fn new(iter: slice::Iter<'a, V>) -> Self { |
22 | 8.26M | Self { |
23 | 8.26M | enumerate: iter.enumerate(), |
24 | 8.26M | unused: PhantomData, |
25 | 8.26M | } |
26 | 8.26M | } <cranelift_entity::iter::Iter<cranelift_wasm::translation_utils::SignatureIndex, cranelift_wasm::environ::spec::WasmFuncType>>::new Line | Count | Source | 21 | 68.8k | pub fn new(iter: slice::Iter<'a, V>) -> Self { | 22 | 68.8k | Self { | 23 | 68.8k | enumerate: iter.enumerate(), | 24 | 68.8k | unused: PhantomData, | 25 | 68.8k | } | 26 | 68.8k | } |
<cranelift_entity::iter::Iter<cranelift_wasm::translation_utils::SignatureIndex, cranelift_codegen::ir::extfunc::Signature>>::new Line | Count | Source | 21 | 117k | pub fn new(iter: slice::Iter<'a, V>) -> Self { | 22 | 117k | Self { | 23 | 117k | enumerate: iter.enumerate(), | 24 | 117k | unused: PhantomData, | 25 | 117k | } | 26 | 117k | } |
<cranelift_entity::iter::Iter<cranelift_wasm::translation_utils::SignatureIndex, wasmtime_environ::compilation::CompiledFunction>>::new Line | Count | Source | 21 | 117k | pub fn new(iter: slice::Iter<'a, V>) -> Self { | 22 | 117k | Self { | 23 | 117k | enumerate: iter.enumerate(), | 24 | 117k | unused: PhantomData, | 25 | 117k | } | 26 | 117k | } |
<cranelift_entity::iter::Iter<cranelift_wasm::translation_utils::DefinedFuncIndex, *mut [wasmtime_runtime::vmcontext::VMFunctionBody]>>::new Line | Count | Source | 21 | 52.6k | pub fn new(iter: slice::Iter<'a, V>) -> Self { | 22 | 52.6k | Self { | 23 | 52.6k | enumerate: iter.enumerate(), | 24 | 52.6k | unused: PhantomData, | 25 | 52.6k | } | 26 | 52.6k | } |
<cranelift_entity::iter::Iter<cranelift_wasm::translation_utils::DefinedFuncIndex, wasmtime_debug::transform::address_transform::FunctionMap>>::new Line | Count | Source | 21 | 35.0k | pub fn new(iter: slice::Iter<'a, V>) -> Self { | 22 | 35.0k | Self { | 23 | 35.0k | enumerate: iter.enumerate(), | 24 | 35.0k | unused: PhantomData, | 25 | 35.0k | } | 26 | 35.0k | } |
<cranelift_entity::iter::Iter<cranelift_wasm::translation_utils::DefinedFuncIndex, wasmtime_environ::compilation::CompiledFunction>>::new Line | Count | Source | 21 | 404k | pub fn new(iter: slice::Iter<'a, V>) -> Self { | 22 | 404k | Self { | 23 | 404k | enumerate: iter.enumerate(), | 24 | 404k | unused: PhantomData, | 25 | 404k | } | 26 | 404k | } |
<cranelift_entity::iter::Iter<cranelift_wasm::translation_utils::GlobalIndex, cranelift_wasm::translation_utils::Global>>::new Line | Count | Source | 21 | 69.5k | pub fn new(iter: slice::Iter<'a, V>) -> Self { | 22 | 69.5k | Self { | 23 | 69.5k | enumerate: iter.enumerate(), | 24 | 69.5k | unused: PhantomData, | 25 | 69.5k | } | 26 | 69.5k | } |
<cranelift_entity::iter::Iter<cranelift_wasm::translation_utils::FuncIndex, cranelift_wasm::translation_utils::SignatureIndex>>::new Line | Count | Source | 21 | 69.5k | pub fn new(iter: slice::Iter<'a, V>) -> Self { | 22 | 69.5k | Self { | 23 | 69.5k | enumerate: iter.enumerate(), | 24 | 69.5k | unused: PhantomData, | 25 | 69.5k | } | 26 | 69.5k | } |
<cranelift_entity::iter::Iter<cranelift_codegen::ir::entities::Value, cranelift_codegen::ir::dfg::ValueData>>::new Line | Count | Source | 21 | 2.44M | pub fn new(iter: slice::Iter<'a, V>) -> Self { | 22 | 2.44M | Self { | 23 | 2.44M | enumerate: iter.enumerate(), | 24 | 2.44M | unused: PhantomData, | 25 | 2.44M | } | 26 | 2.44M | } |
<cranelift_entity::iter::Iter<cranelift_codegen::ir::entities::JumpTable, cranelift_codegen::ir::jumptable::JumpTableData>>::new Line | Count | Source | 21 | 4.88M | pub fn new(iter: slice::Iter<'a, V>) -> Self { | 22 | 4.88M | Self { | 23 | 4.88M | enumerate: iter.enumerate(), | 24 | 4.88M | unused: PhantomData, | 25 | 4.88M | } | 26 | 4.88M | } |
<cranelift_entity::iter::Iter<cranelift_codegen::ir::entities::StackSlot, cranelift_codegen::ir::stackslot::StackSlotData>>::new Line | Count | Source | 21 | 3.20k | pub fn new(iter: slice::Iter<'a, V>) -> Self { | 22 | 3.20k | Self { | 23 | 3.20k | enumerate: iter.enumerate(), | 24 | 3.20k | unused: PhantomData, | 25 | 3.20k | } | 26 | 3.20k | } |
|
27 | | } |
28 | | |
29 | | impl<'a, K: EntityRef, V> Iterator for Iter<'a, K, V> { |
30 | | type Item = (K, &'a V); |
31 | | |
32 | 71.3M | fn next(&mut self) -> Option<Self::Item> { |
33 | 71.3M | self.enumerate.next().map(|(i, v)| (K::new(i), v)) <cranelift_entity::iter::Iter<cranelift_wasm::translation_utils::SignatureIndex, cranelift_wasm::environ::spec::WasmFuncType> as core::iter::traits::iterator::Iterator>::next::{closure#0}Line | Count | Source | 33 | 148k | self.enumerate.next().map(|(i, v)| (K::new(i), v)) |
<cranelift_entity::iter::Iter<cranelift_wasm::translation_utils::SignatureIndex, cranelift_codegen::ir::extfunc::Signature> as core::iter::traits::iterator::Iterator>::next::{closure#0}Line | Count | Source | 33 | 1.59M | self.enumerate.next().map(|(i, v)| (K::new(i), v)) |
<cranelift_entity::iter::Iter<cranelift_wasm::translation_utils::SignatureIndex, wasmtime_environ::compilation::CompiledFunction> as core::iter::traits::iterator::Iterator>::next::{closure#0}Line | Count | Source | 33 | 1.59M | self.enumerate.next().map(|(i, v)| (K::new(i), v)) |
<cranelift_entity::iter::Iter<cranelift_wasm::translation_utils::DefinedFuncIndex, *mut [wasmtime_runtime::vmcontext::VMFunctionBody]> as core::iter::traits::iterator::Iterator>::next::{closure#0}Line | Count | Source | 33 | 444k | self.enumerate.next().map(|(i, v)| (K::new(i), v)) |
<cranelift_entity::iter::Iter<cranelift_wasm::translation_utils::DefinedFuncIndex, wasmtime_environ::compilation::CompiledFunction> as core::iter::traits::iterator::Iterator>::next::{closure#0}Line | Count | Source | 33 | 2.45M | self.enumerate.next().map(|(i, v)| (K::new(i), v)) |
<cranelift_entity::iter::Iter<cranelift_wasm::translation_utils::DefinedFuncIndex, wasmtime_debug::transform::address_transform::FunctionMap> as core::iter::traits::iterator::Iterator>::next::{closure#0}Line | Count | Source | 33 | 35.2k | self.enumerate.next().map(|(i, v)| (K::new(i), v)) |
<cranelift_entity::iter::Iter<cranelift_wasm::translation_utils::FuncIndex, cranelift_wasm::translation_utils::SignatureIndex> as core::iter::traits::iterator::Iterator>::next::{closure#0}Line | Count | Source | 33 | 460k | self.enumerate.next().map(|(i, v)| (K::new(i), v)) |
<cranelift_entity::iter::Iter<cranelift_wasm::translation_utils::GlobalIndex, cranelift_wasm::translation_utils::Global> as core::iter::traits::iterator::Iterator>::next::{closure#0}Line | Count | Source | 33 | 84.2k | self.enumerate.next().map(|(i, v)| (K::new(i), v)) |
<cranelift_entity::iter::Iter<cranelift_codegen::ir::entities::Value, cranelift_codegen::ir::dfg::ValueData> as core::iter::traits::iterator::Iterator>::next::{closure#0}Line | Count | Source | 33 | 56.1M | self.enumerate.next().map(|(i, v)| (K::new(i), v)) |
<cranelift_entity::iter::Iter<cranelift_codegen::ir::entities::JumpTable, cranelift_codegen::ir::jumptable::JumpTableData> as core::iter::traits::iterator::Iterator>::next::{closure#0}Line | Count | Source | 33 | 12.9k | self.enumerate.next().map(|(i, v)| (K::new(i), v)) |
<cranelift_entity::iter::Iter<cranelift_codegen::ir::entities::StackSlot, cranelift_codegen::ir::stackslot::StackSlotData> as core::iter::traits::iterator::Iterator>::next::{closure#0}Line | Count | Source | 33 | 123k | self.enumerate.next().map(|(i, v)| (K::new(i), v)) |
|
34 | 71.3M | } <cranelift_entity::iter::Iter<cranelift_wasm::translation_utils::SignatureIndex, cranelift_wasm::environ::spec::WasmFuncType> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 32 | 217k | fn next(&mut self) -> Option<Self::Item> { | 33 | 217k | self.enumerate.next().map(|(i, v)| (K::new(i), v)) | 34 | 217k | } |
<cranelift_entity::iter::Iter<cranelift_wasm::translation_utils::SignatureIndex, cranelift_codegen::ir::extfunc::Signature> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 32 | 1.70M | fn next(&mut self) -> Option<Self::Item> { | 33 | 1.70M | self.enumerate.next().map(|(i, v)| (K::new(i), v)) | 34 | 1.70M | } |
Unexecuted instantiation: <cranelift_entity::iter::Iter<cranelift_wasm::translation_utils::TypeIndex, wasmtime_environ::module::ModuleType> as core::iter::traits::iterator::Iterator>::next Unexecuted instantiation: <cranelift_entity::iter::Iter<cranelift_wasm::translation_utils::TableIndex, wasmtime_environ::module::TablePlan> as core::iter::traits::iterator::Iterator>::next Unexecuted instantiation: <cranelift_entity::iter::Iter<cranelift_wasm::translation_utils::GlobalIndex, cranelift_wasm::translation_utils::Global> as core::iter::traits::iterator::Iterator>::next <cranelift_entity::iter::Iter<cranelift_wasm::translation_utils::SignatureIndex, wasmtime_environ::compilation::CompiledFunction> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 32 | 1.70M | fn next(&mut self) -> Option<Self::Item> { | 33 | 1.70M | self.enumerate.next().map(|(i, v)| (K::new(i), v)) | 34 | 1.70M | } |
<cranelift_entity::iter::Iter<cranelift_wasm::translation_utils::DefinedFuncIndex, *mut [wasmtime_runtime::vmcontext::VMFunctionBody]> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 32 | 497k | fn next(&mut self) -> Option<Self::Item> { | 33 | 497k | self.enumerate.next().map(|(i, v)| (K::new(i), v)) | 34 | 497k | } |
<cranelift_entity::iter::Iter<cranelift_wasm::translation_utils::DefinedFuncIndex, wasmtime_environ::compilation::CompiledFunction> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 32 | 2.85M | fn next(&mut self) -> Option<Self::Item> { | 33 | 2.85M | self.enumerate.next().map(|(i, v)| (K::new(i), v)) | 34 | 2.85M | } |
<cranelift_entity::iter::Iter<cranelift_wasm::translation_utils::DefinedFuncIndex, wasmtime_debug::transform::address_transform::FunctionMap> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 32 | 70.3k | fn next(&mut self) -> Option<Self::Item> { | 33 | 70.3k | self.enumerate.next().map(|(i, v)| (K::new(i), v)) | 34 | 70.3k | } |
<cranelift_entity::iter::Iter<cranelift_wasm::translation_utils::GlobalIndex, cranelift_wasm::translation_utils::Global> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 32 | 153k | fn next(&mut self) -> Option<Self::Item> { | 33 | 153k | self.enumerate.next().map(|(i, v)| (K::new(i), v)) | 34 | 153k | } |
<cranelift_entity::iter::Iter<cranelift_wasm::translation_utils::FuncIndex, cranelift_wasm::translation_utils::SignatureIndex> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 32 | 530k | fn next(&mut self) -> Option<Self::Item> { | 33 | 530k | self.enumerate.next().map(|(i, v)| (K::new(i), v)) | 34 | 530k | } |
Unexecuted instantiation: <cranelift_entity::iter::Iter<cranelift_wasm::translation_utils::DefinedMemoryIndex, alloc::vec::Vec<core::option::Option<alloc::boxed::Box<[u8]>>>> as core::iter::traits::iterator::Iterator>::next Unexecuted instantiation: <cranelift_entity::iter::Iter<cranelift_codegen::ir::entities::Heap, cranelift_codegen::ir::heap::HeapData> as core::iter::traits::iterator::Iterator>::next Unexecuted instantiation: <cranelift_entity::iter::Iter<cranelift_codegen::ir::entities::Table, cranelift_codegen::ir::table::TableData> as core::iter::traits::iterator::Iterator>::next <cranelift_entity::iter::Iter<cranelift_codegen::ir::entities::Value, cranelift_codegen::ir::dfg::ValueData> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 32 | 58.5M | fn next(&mut self) -> Option<Self::Item> { | 33 | 58.5M | self.enumerate.next().map(|(i, v)| (K::new(i), v)) | 34 | 58.5M | } |
Unexecuted instantiation: <cranelift_entity::iter::Iter<cranelift_codegen::ir::entities::SigRef, cranelift_codegen::ir::extfunc::Signature> as core::iter::traits::iterator::Iterator>::next <cranelift_entity::iter::Iter<cranelift_codegen::ir::entities::StackSlot, cranelift_codegen::ir::stackslot::StackSlotData> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 32 | 126k | fn next(&mut self) -> Option<Self::Item> { | 33 | 126k | self.enumerate.next().map(|(i, v)| (K::new(i), v)) | 34 | 126k | } |
Unexecuted instantiation: <cranelift_entity::iter::Iter<cranelift_codegen::ir::entities::GlobalValue, cranelift_codegen::ir::globalvalue::GlobalValueData> as core::iter::traits::iterator::Iterator>::next Unexecuted instantiation: <cranelift_entity::iter::Iter<cranelift_codegen::ir::entities::FuncRef, cranelift_codegen::ir::extfunc::ExtFuncData> as core::iter::traits::iterator::Iterator>::next <cranelift_entity::iter::Iter<cranelift_codegen::ir::entities::JumpTable, cranelift_codegen::ir::jumptable::JumpTableData> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 32 | 4.89M | fn next(&mut self) -> Option<Self::Item> { | 33 | 4.89M | self.enumerate.next().map(|(i, v)| (K::new(i), v)) | 34 | 4.89M | } |
|
35 | | |
36 | 84.4k | fn size_hint(&self) -> (usize, Option<usize>) { |
37 | 84.4k | self.enumerate.size_hint() |
38 | 84.4k | } |
39 | | } |
40 | | |
41 | | impl<'a, K: EntityRef, V> DoubleEndedIterator for Iter<'a, K, V> { |
42 | 0 | fn next_back(&mut self) -> Option<Self::Item> { |
43 | 0 | self.enumerate.next_back().map(|(i, v)| (K::new(i), v)) |
44 | 0 | } |
45 | | } |
46 | | |
47 | | impl<'a, K: EntityRef, V> ExactSizeIterator for Iter<'a, K, V> {} |
48 | | |
49 | | /// Iterate over all keys in order. |
50 | | pub struct IterMut<'a, K: EntityRef, V> |
51 | | where |
52 | | V: 'a, |
53 | | { |
54 | | enumerate: Enumerate<slice::IterMut<'a, V>>, |
55 | | unused: PhantomData<K>, |
56 | | } |
57 | | |
58 | | impl<'a, K: EntityRef, V> IterMut<'a, K, V> { |
59 | | /// Create an `IterMut` iterator that visits the `PrimaryMap` keys and values |
60 | | /// of `iter`. |
61 | 2.44M | pub fn new(iter: slice::IterMut<'a, V>) -> Self { |
62 | 2.44M | Self { |
63 | 2.44M | enumerate: iter.enumerate(), |
64 | 2.44M | unused: PhantomData, |
65 | 2.44M | } |
66 | 2.44M | } |
67 | | } |
68 | | |
69 | | impl<'a, K: EntityRef, V> Iterator for IterMut<'a, K, V> { |
70 | | type Item = (K, &'a mut V); |
71 | | |
72 | 4.19M | fn next(&mut self) -> Option<Self::Item> { |
73 | 4.19M | self.enumerate.next().map(|(i, v)| (K::new(i), v)) |
74 | 4.19M | } |
75 | | |
76 | | fn size_hint(&self) -> (usize, Option<usize>) { |
77 | | self.enumerate.size_hint() |
78 | | } |
79 | | } |
80 | | |
81 | | impl<'a, K: EntityRef, V> DoubleEndedIterator for IterMut<'a, K, V> { |
82 | | fn next_back(&mut self) -> Option<Self::Item> { |
83 | | self.enumerate.next_back().map(|(i, v)| (K::new(i), v)) |
84 | | } |
85 | | } |
86 | | |
87 | | impl<'a, K: EntityRef, V> ExactSizeIterator for IterMut<'a, K, V> {} |
88 | | |
89 | | /// Iterate over all keys in order. |
90 | | pub struct IntoIter<K: EntityRef, V> { |
91 | | enumerate: Enumerate<vec::IntoIter<V>>, |
92 | | unused: PhantomData<K>, |
93 | | } |
94 | | |
95 | | impl<K: EntityRef, V> IntoIter<K, V> { |
96 | | /// Create an `IntoIter` iterator that visits the `PrimaryMap` keys and values |
97 | | /// of `iter`. |
98 | 257k | pub fn new(iter: vec::IntoIter<V>) -> Self { |
99 | 257k | Self { |
100 | 257k | enumerate: iter.enumerate(), |
101 | 257k | unused: PhantomData, |
102 | 257k | } |
103 | 257k | } <cranelift_entity::iter::IntoIter<cranelift_wasm::translation_utils::DefinedFuncIndex, wasmtime_environ::module_environ::FunctionBodyData>>::new Line | Count | Source | 98 | 139k | pub fn new(iter: vec::IntoIter<V>) -> Self { | 99 | 139k | Self { | 100 | 139k | enumerate: iter.enumerate(), | 101 | 139k | unused: PhantomData, | 102 | 139k | } | 103 | 139k | } |
<cranelift_entity::iter::IntoIter<cranelift_wasm::translation_utils::DefinedFuncIndex, wasmtime_environ::compilation::CompiledFunction>>::new Line | Count | Source | 98 | 117k | pub fn new(iter: vec::IntoIter<V>) -> Self { | 99 | 117k | Self { | 100 | 117k | enumerate: iter.enumerate(), | 101 | 117k | unused: PhantomData, | 102 | 117k | } | 103 | 117k | } |
|
104 | | } |
105 | | |
106 | | impl<K: EntityRef, V> Iterator for IntoIter<K, V> { |
107 | | type Item = (K, V); |
108 | | |
109 | 2.30M | fn next(&mut self) -> Option<Self::Item> { |
110 | 2.30M | self.enumerate.next().map(|(i, v)| (K::new(i), v)) <cranelift_entity::iter::IntoIter<cranelift_wasm::translation_utils::DefinedFuncIndex, wasmtime_environ::compilation::CompiledFunction> as core::iter::traits::iterator::Iterator>::next::{closure#0}Line | Count | Source | 110 | 799k | self.enumerate.next().map(|(i, v)| (K::new(i), v)) |
<cranelift_entity::iter::IntoIter<cranelift_wasm::translation_utils::DefinedFuncIndex, wasmtime_environ::module_environ::FunctionBodyData> as core::iter::traits::iterator::Iterator>::next::{closure#0}Line | Count | Source | 110 | 1.25M | self.enumerate.next().map(|(i, v)| (K::new(i), v)) |
|
111 | 2.30M | } <cranelift_entity::iter::IntoIter<cranelift_wasm::translation_utils::DefinedFuncIndex, wasmtime_environ::module_environ::FunctionBodyData> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 109 | 1.39M | fn next(&mut self) -> Option<Self::Item> { | 110 | 1.39M | self.enumerate.next().map(|(i, v)| (K::new(i), v)) | 111 | 1.39M | } |
<cranelift_entity::iter::IntoIter<cranelift_wasm::translation_utils::DefinedFuncIndex, wasmtime_environ::compilation::CompiledFunction> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 109 | 916k | fn next(&mut self) -> Option<Self::Item> { | 110 | 916k | self.enumerate.next().map(|(i, v)| (K::new(i), v)) | 111 | 916k | } |
|
112 | | |
113 | 148k | fn size_hint(&self) -> (usize, Option<usize>) { |
114 | 148k | self.enumerate.size_hint() |
115 | 148k | } <cranelift_entity::iter::IntoIter<cranelift_wasm::translation_utils::DefinedFuncIndex, wasmtime_environ::compilation::CompiledFunction> as core::iter::traits::iterator::Iterator>::size_hint Line | Count | Source | 113 | 63.0k | fn size_hint(&self) -> (usize, Option<usize>) { | 114 | 63.0k | self.enumerate.size_hint() | 115 | 63.0k | } |
<cranelift_entity::iter::IntoIter<cranelift_wasm::translation_utils::DefinedFuncIndex, wasmtime_environ::module_environ::FunctionBodyData> as core::iter::traits::iterator::Iterator>::size_hint Line | Count | Source | 113 | 85.4k | fn size_hint(&self) -> (usize, Option<usize>) { | 114 | 85.4k | self.enumerate.size_hint() | 115 | 85.4k | } |
|
116 | | } |
117 | | |
118 | | impl<K: EntityRef, V> DoubleEndedIterator for IntoIter<K, V> { |
119 | | fn next_back(&mut self) -> Option<Self::Item> { |
120 | | self.enumerate.next_back().map(|(i, v)| (K::new(i), v)) |
121 | | } |
122 | | } |
123 | | |
124 | | impl<K: EntityRef, V> ExactSizeIterator for IntoIter<K, V> {} |