@@ -17,7 +17,7 @@ use alloc::{
1717 vec,
1818 vec:: Vec ,
1919} ;
20- use core:: { fmt, iter :: FusedIterator } ;
20+ use core:: fmt;
2121
2222use crate :: filters:: FilterResult ;
2323use crate :: iterators:: {
@@ -150,11 +150,7 @@ impl<'a> Node<'a> {
150150
151151 pub fn child_ids (
152152 & self ,
153- ) -> impl DoubleEndedIterator < Item = NodeId >
154- + ExactSizeIterator < Item = NodeId >
155- + FusedIterator < Item = NodeId >
156- + ' a
157- + use < ' a > {
153+ ) -> impl DoubleEndedIterator < Item = NodeId > + ExactSizeIterator + use < ' a > {
158154 if self . is_graft ( ) {
159155 ChildIds :: Graft ( self . graft_child_id ( ) )
160156 } else {
@@ -167,81 +163,58 @@ impl<'a> Node<'a> {
167163
168164 pub fn children (
169165 & self ,
170- ) -> impl DoubleEndedIterator < Item = Node < ' a > >
171- + ExactSizeIterator < Item = Node < ' a > >
172- + FusedIterator < Item = Node < ' a > >
173- + ' a
174- + use < ' a > {
166+ ) -> impl DoubleEndedIterator < Item = Node < ' a > > + ExactSizeIterator + use < ' a > {
175167 let state = self . tree_state ;
176168 self . child_ids ( )
177169 . map ( move |id| state. node_by_id ( id) . unwrap ( ) )
178170 }
179171
180- pub fn filtered_children < F : Fn ( & Node ) -> FilterResult + ' a > (
172+ pub fn filtered_children < F : Fn ( & Node ) -> FilterResult > (
181173 & self ,
182174 filter : F ,
183- ) -> impl DoubleEndedIterator < Item = Node < ' a > > + FusedIterator < Item = Node < ' a > > + use < ' a , F >
184- {
175+ ) -> impl DoubleEndedIterator < Item = Node < ' a > > + use < ' a , F > {
185176 FilteredChildren :: new ( * self , filter)
186177 }
187178
188179 pub fn following_sibling_ids (
189180 & self ,
190- ) -> impl DoubleEndedIterator < Item = NodeId >
191- + ExactSizeIterator < Item = NodeId >
192- + FusedIterator < Item = NodeId >
193- + ' a
194- + use < ' a > {
181+ ) -> impl DoubleEndedIterator < Item = NodeId > + ExactSizeIterator + use < ' a > {
195182 FollowingSiblings :: new ( * self )
196183 }
197184
198185 pub fn following_siblings (
199186 & self ,
200- ) -> impl DoubleEndedIterator < Item = Node < ' a > >
201- + ExactSizeIterator < Item = Node < ' a > >
202- + FusedIterator < Item = Node < ' a > >
203- + ' a
204- + use < ' a > {
187+ ) -> impl DoubleEndedIterator < Item = Node < ' a > > + ExactSizeIterator + use < ' a > {
205188 let state = self . tree_state ;
206189 self . following_sibling_ids ( )
207190 . map ( move |id| state. node_by_id ( id) . unwrap ( ) )
208191 }
209192
210- pub fn following_filtered_siblings < F : Fn ( & Node ) -> FilterResult + ' a > (
193+ pub fn following_filtered_siblings < F : Fn ( & Node ) -> FilterResult > (
211194 & self ,
212195 filter : F ,
213- ) -> impl DoubleEndedIterator < Item = Node < ' a > > + FusedIterator < Item = Node < ' a > > + use < ' a , F >
214- {
196+ ) -> impl DoubleEndedIterator < Item = Node < ' a > > + use < ' a , F > {
215197 FollowingFilteredSiblings :: new ( * self , filter)
216198 }
217199
218200 pub fn preceding_sibling_ids (
219201 & self ,
220- ) -> impl DoubleEndedIterator < Item = NodeId >
221- + ExactSizeIterator < Item = NodeId >
222- + FusedIterator < Item = NodeId >
223- + ' a
224- + use < ' a > {
202+ ) -> impl DoubleEndedIterator < Item = NodeId > + ExactSizeIterator + use < ' a > {
225203 PrecedingSiblings :: new ( * self )
226204 }
227205
228206 pub fn preceding_siblings (
229207 & self ,
230- ) -> impl DoubleEndedIterator < Item = Node < ' a > >
231- + ExactSizeIterator < Item = Node < ' a > >
232- + FusedIterator < Item = Node < ' a > >
233- + ' a
234- + use < ' a > {
208+ ) -> impl DoubleEndedIterator < Item = Node < ' a > > + ExactSizeIterator + use < ' a > {
235209 let state = self . tree_state ;
236210 self . preceding_sibling_ids ( )
237211 . map ( move |id| state. node_by_id ( id) . unwrap ( ) )
238212 }
239213
240- pub fn preceding_filtered_siblings < F : Fn ( & Node ) -> FilterResult + ' a > (
214+ pub fn preceding_filtered_siblings < F : Fn ( & Node ) -> FilterResult > (
241215 & self ,
242216 filter : F ,
243- ) -> impl DoubleEndedIterator < Item = Node < ' a > > + FusedIterator < Item = Node < ' a > > + use < ' a , F >
244- {
217+ ) -> impl DoubleEndedIterator < Item = Node < ' a > > + use < ' a , F > {
245218 PrecedingFilteredSiblings :: new ( * self , filter)
246219 }
247220
@@ -726,10 +699,7 @@ fn descendant_label_filter(node: &Node) -> FilterResult {
726699}
727700
728701impl < ' a > Node < ' a > {
729- pub fn labelled_by (
730- & self ,
731- ) -> impl DoubleEndedIterator < Item = Node < ' a > > + FusedIterator < Item = Node < ' a > > + ' a + use < ' a >
732- {
702+ pub fn labelled_by ( & self ) -> impl DoubleEndedIterator < Item = Node < ' a > > + use < ' a > {
733703 let explicit = & self . state . data . labelled_by ( ) ;
734704 if explicit. is_empty ( )
735705 && matches ! (
@@ -967,10 +937,7 @@ impl<'a> Node<'a> {
967937 )
968938 }
969939
970- pub fn controls (
971- & self ,
972- ) -> impl DoubleEndedIterator < Item = Node < ' a > > + FusedIterator < Item = Node < ' a > > + ' a + use < ' a >
973- {
940+ pub fn controls ( & self ) -> impl DoubleEndedIterator < Item = Node < ' a > > + use < ' a > {
974941 let state = self . tree_state ;
975942 let id = self . id ;
976943 let data = & self . state . data ;
@@ -1066,11 +1033,10 @@ impl<'a> Node<'a> {
10661033 } )
10671034 }
10681035
1069- pub fn items < F : Fn ( & Node ) -> FilterResult + ' a > (
1036+ pub fn items < F : Fn ( & Node ) -> FilterResult > (
10701037 & self ,
10711038 filter : F ,
1072- ) -> impl DoubleEndedIterator < Item = Node < ' a > > + FusedIterator < Item = Node < ' a > > + use < ' a , F >
1073- {
1039+ ) -> impl DoubleEndedIterator < Item = Node < ' a > > + use < ' a , F > {
10741040 self . filtered_children ( move |child| match filter ( child) {
10751041 FilterResult :: Include if child. is_item_like ( ) => FilterResult :: Include ,
10761042 FilterResult :: Include => FilterResult :: ExcludeNode ,
0 commit comments