11use alloc:: vec:: { self , Vec } ;
22use std:: cell:: { Cell , RefCell } ;
3+ use std:: fmt:: Debug ;
34
45/// A trait to unify `FnMut` for `ChunkBy` with the chunk key in `IntoChunks`
56trait KeyFunction < A > {
7677 dropped_group : usize ,
7778}
7879
80+ impl < K , I , F > Debug for GroupInner < K , I , F >
81+ where
82+ K : Debug ,
83+ I : Iterator + Debug ,
84+ I :: Item : Debug ,
85+ {
86+ debug_fmt_fields ! (
87+ GroupInner ,
88+ // key, omitted because functions are almost never Debug
89+ iter,
90+ current_key,
91+ current_elt,
92+ done,
93+ top_group,
94+ oldest_buffered_group,
95+ bottom_group,
96+ buffer,
97+ dropped_group
98+ ) ;
99+ }
100+
79101impl < K , I , F > GroupInner < K , I , F >
80102where
81103 I : Iterator ,
@@ -311,6 +333,15 @@ where
311333 index : Cell < usize > ,
312334}
313335
336+ impl < K , I , F > Debug for ChunkBy < K , I , F >
337+ where
338+ K : Debug ,
339+ I : Iterator + Debug ,
340+ I :: Item : Debug ,
341+ {
342+ debug_fmt_fields ! ( ChunkBy , inner, index) ;
343+ }
344+
314345/// Create a new
315346pub fn new < K , J , F > ( iter : J , f : F ) -> ChunkBy < K , J :: IntoIter , F >
316347where
@@ -385,6 +416,15 @@ where
385416 parent : & ' a ChunkBy < K , I , F > ,
386417}
387418
419+ impl < ' a , K , I , F > Debug for Groups < ' a , K , I , F >
420+ where
421+ K : Debug ,
422+ I : Iterator + Debug ,
423+ I :: Item : Debug ,
424+ {
425+ debug_fmt_fields ! ( Groups , parent) ;
426+ }
427+
388428impl < ' a , K , I , F > Iterator for Groups < ' a , K , I , F >
389429where
390430 I : Iterator ,
@@ -438,6 +478,15 @@ where
438478 }
439479}
440480
481+ impl < ' a , K , I , F > Debug for Group < ' a , K , I , F >
482+ where
483+ K : Debug ,
484+ I : Iterator + Debug ,
485+ I :: Item : Debug ,
486+ {
487+ debug_fmt_fields ! ( Group , parent, index, first) ;
488+ }
489+
441490impl < ' a , K , I , F > Iterator for Group < ' a , K , I , F >
442491where
443492 I : Iterator ,
@@ -503,6 +552,14 @@ where
503552 index : Cell < usize > ,
504553}
505554
555+ impl < I > Debug for IntoChunks < I >
556+ where
557+ I : Iterator + Debug ,
558+ I :: Item : Debug ,
559+ {
560+ debug_fmt_fields ! ( IntoChunks , inner, index) ;
561+ }
562+
506563impl < I > Clone for IntoChunks < I >
507564where
508565 I : Clone + Iterator ,
@@ -554,6 +611,14 @@ where
554611 parent : & ' a IntoChunks < I > ,
555612}
556613
614+ impl < ' a , I > Debug for Chunks < ' a , I >
615+ where
616+ I : Iterator + Debug ,
617+ I :: Item : Debug ,
618+ {
619+ debug_fmt_fields ! ( Chunks , parent) ;
620+ }
621+
557622impl < ' a , I > Iterator for Chunks < ' a , I >
558623where
559624 I : Iterator ,
@@ -577,6 +642,7 @@ where
577642/// An iterator for the elements in a single chunk.
578643///
579644/// Iterator element type is `I::Item`.
645+ #[ derive( Debug ) ]
580646pub struct Chunk < ' a , I >
581647where
582648 I : Iterator + ' a ,
0 commit comments