@@ -7,9 +7,9 @@ trait KeyFunction<A> {
77 fn call_mut ( & mut self , arg : A ) -> Self :: Key ;
88}
99
10- impl < A , K , F : ? Sized > KeyFunction < A > for F
10+ impl < A , K , F > KeyFunction < A > for F
1111where
12- F : FnMut ( A ) -> K ,
12+ F : FnMut ( A ) -> K + ? Sized ,
1313{
1414 type Key = K ;
1515 #[ inline]
@@ -370,10 +370,12 @@ where
370370///
371371/// See [`.group_by()`](crate::Itertools::group_by) for more information.
372372#[ must_use = "iterator adaptors are lazy and do nothing unless consumed" ]
373- pub struct Groups < ' a , K : ' a , I : ' a , F : ' a >
373+ pub struct Groups < ' a , K , I , F >
374374where
375- I : Iterator ,
375+ I : Iterator + ' a ,
376376 I :: Item : ' a ,
377+ K : ' a ,
378+ F : ' a ,
377379{
378380 parent : & ' a GroupBy < K , I , F > ,
379381}
@@ -409,10 +411,12 @@ where
409411/// An iterator for the elements in a single group.
410412///
411413/// Iterator element type is `I::Item`.
412- pub struct Group < ' a , K : ' a , I : ' a , F : ' a >
414+ pub struct Group < ' a , K , I , F >
413415where
414- I : Iterator ,
416+ I : Iterator + ' a ,
415417 I :: Item : ' a ,
418+ K : ' a ,
419+ F : ' a ,
416420{
417421 parent : & ' a GroupBy < K , I , F > ,
418422 index : usize ,
@@ -537,9 +541,9 @@ where
537541/// See [`.chunks()`](crate::Itertools::chunks) for more information.
538542#[ must_use = "iterator adaptors are lazy and do nothing unless consumed" ]
539543#[ derive( Clone ) ]
540- pub struct Chunks < ' a , I : ' a >
544+ pub struct Chunks < ' a , I >
541545where
542- I : Iterator ,
546+ I : Iterator + ' a ,
543547 I :: Item : ' a ,
544548{
545549 parent : & ' a IntoChunks < I > ,
@@ -568,9 +572,9 @@ where
568572/// An iterator for the elements in a single chunk.
569573///
570574/// Iterator element type is `I::Item`.
571- pub struct Chunk < ' a , I : ' a >
575+ pub struct Chunk < ' a , I >
572576where
573- I : Iterator ,
577+ I : Iterator + ' a ,
574578 I :: Item : ' a ,
575579{
576580 parent : & ' a IntoChunks < I > ,
0 commit comments