@@ -566,65 +566,21 @@ impl fmt::Write for AsciiString {
566
566
}
567
567
}
568
568
569
- impl FromIterator < AsciiChar > for AsciiString {
570
- fn from_iter < I : IntoIterator < Item = AsciiChar > > ( iter : I ) -> AsciiString {
569
+ impl < A : AsRef < AsciiStr > > FromIterator < A > for AsciiString {
570
+ fn from_iter < I : IntoIterator < Item = A > > ( iter : I ) -> AsciiString {
571
571
let mut buf = AsciiString :: new ( ) ;
572
572
buf. extend ( iter) ;
573
573
buf
574
574
}
575
575
}
576
576
577
- impl < ' a > FromIterator < & ' a AsciiStr > for AsciiString {
578
- fn from_iter < I : IntoIterator < Item = & ' a AsciiStr > > ( iter : I ) -> AsciiString {
579
- let mut buf = AsciiString :: new ( ) ;
580
- buf. extend ( iter) ;
581
- buf
582
- }
583
- }
584
-
585
- impl < ' a > FromIterator < Cow < ' a , AsciiStr > > for AsciiString {
586
- fn from_iter < I : IntoIterator < Item = Cow < ' a , AsciiStr > > > ( iter : I ) -> AsciiString {
587
- let mut buf = AsciiString :: new ( ) ;
588
- buf. extend ( iter) ;
589
- buf
590
- }
591
- }
592
-
593
- impl Extend < AsciiChar > for AsciiString {
594
- fn extend < I : IntoIterator < Item = AsciiChar > > ( & mut self , iterable : I ) {
595
- let iterator = iterable. into_iter ( ) ;
596
- let ( lower_bound, _) = iterator. size_hint ( ) ;
597
- self . reserve ( lower_bound) ;
598
- for ch in iterator {
599
- self . push ( ch)
600
- }
601
- }
602
- }
603
-
604
- impl < ' a > Extend < & ' a AsciiChar > for AsciiString {
605
- fn extend < I : IntoIterator < Item = & ' a AsciiChar > > ( & mut self , iter : I ) {
606
- self . extend ( iter. into_iter ( ) . cloned ( ) )
607
- }
608
- }
609
-
610
- impl < ' a > Extend < & ' a AsciiStr > for AsciiString {
611
- fn extend < I : IntoIterator < Item = & ' a AsciiStr > > ( & mut self , iterable : I ) {
612
- let iterator = iterable. into_iter ( ) ;
613
- let ( lower_bound, _) = iterator. size_hint ( ) ;
614
- self . reserve ( lower_bound) ;
615
- for s in iterator {
616
- self . push_str ( s)
617
- }
618
- }
619
- }
620
-
621
- impl < ' a > Extend < Cow < ' a , AsciiStr > > for AsciiString {
622
- fn extend < I : IntoIterator < Item = Cow < ' a , AsciiStr > > > ( & mut self , iterable : I ) {
577
+ impl < A : AsRef < AsciiStr > > Extend < A > for AsciiString {
578
+ fn extend < I : IntoIterator < Item = A > > ( & mut self , iterable : I ) {
623
579
let iterator = iterable. into_iter ( ) ;
624
580
let ( lower_bound, _) = iterator. size_hint ( ) ;
625
581
self . reserve ( lower_bound) ;
626
- for s in iterator {
627
- self . push_str ( & * s ) ;
582
+ for item in iterator {
583
+ self . push_str ( item . as_ref ( ) )
628
584
}
629
585
}
630
586
}
0 commit comments