11use crate :: { aliases:: N , pinned_storage:: PinnedStorage , MemoryPolicy , Tree , TreeVariant } ;
22use core:: iter:: FusedIterator ;
3- use orx_pinned_vec :: PinnedVec ;
3+ use orx_iterable :: { Collection , CollectionMut , Iterable } ;
44
55// owned
66
@@ -102,6 +102,9 @@ where
102102
103103// ref
104104
105+ type PinnedVecIter < ' a , V , P > =
106+ <<<P as PinnedStorage >:: PinnedVec < V > as Collection >:: Iterable < ' a > as Iterable >:: Iter ;
107+
105108impl < ' a , V , M , P > IntoIterator for & ' a Tree < V , M , P >
106109where
107110 V : TreeVariant ,
@@ -110,8 +113,7 @@ where
110113{
111114 type Item = & ' a V :: Item ;
112115
113- type IntoIter =
114- TreeIter < ' a , V , <<P as PinnedStorage >:: PinnedVec < V > as PinnedVec < N < V > > >:: Iter < ' a > > ;
116+ type IntoIter = TreeIter < ' a , V , PinnedVecIter < ' a , V , P > > ;
115117
116118 /// Creates an iterator over references to the data of the nodes of the tree in
117119 /// a deterministic but an arbitrary order.
@@ -203,6 +205,9 @@ where
203205
204206// mut
205207
208+ type PinnedVecIterMut < ' a , V , P > =
209+ <<P as PinnedStorage >:: PinnedVec < V > as CollectionMut >:: IterMut < ' a > ;
210+
206211impl < ' a , V , M , P > IntoIterator for & ' a mut Tree < V , M , P >
207212where
208213 V : TreeVariant ,
@@ -211,8 +216,7 @@ where
211216{
212217 type Item = & ' a mut V :: Item ;
213218
214- type IntoIter =
215- TreeIterMut < ' a , V , <<P as PinnedStorage >:: PinnedVec < V > as PinnedVec < N < V > > >:: IterMut < ' a > > ;
219+ type IntoIter = TreeIterMut < ' a , V , PinnedVecIterMut < ' a , V , P > > ;
216220
217221 /// Creates a mutable iterator over references to the data of the nodes of the tree in
218222 /// a deterministic but an arbitrary order.
0 commit comments