@@ -21,7 +21,7 @@ use crate::str::from_utf8_unchecked;
2121#[ stable( feature = "rust1" , since = "1.0.0" ) ]
2222#[ derive( Clone ) ]
2323pub struct EscapeDefault {
24- range : Range < usize > ,
24+ range : Range < u8 > ,
2525 data : [ u8 ; 4 ] ,
2626}
2727
@@ -114,7 +114,7 @@ pub fn escape_default(c: u8) -> EscapeDefault {
114114impl Iterator for EscapeDefault {
115115 type Item = u8 ;
116116 fn next ( & mut self ) -> Option < u8 > {
117- self . range . next ( ) . map ( |i| self . data [ i] )
117+ self . range . next ( ) . map ( |i| self . data [ i as usize ] )
118118 }
119119 fn size_hint ( & self ) -> ( usize , Option < usize > ) {
120120 self . range . size_hint ( )
@@ -126,7 +126,7 @@ impl Iterator for EscapeDefault {
126126#[ stable( feature = "rust1" , since = "1.0.0" ) ]
127127impl DoubleEndedIterator for EscapeDefault {
128128 fn next_back ( & mut self ) -> Option < u8 > {
129- self . range . next_back ( ) . map ( |i| self . data [ i] )
129+ self . range . next_back ( ) . map ( |i| self . data [ i as usize ] )
130130 }
131131}
132132#[ stable( feature = "rust1" , since = "1.0.0" ) ]
@@ -138,7 +138,9 @@ impl FusedIterator for EscapeDefault {}
138138impl fmt:: Display for EscapeDefault {
139139 fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
140140 // SAFETY: ok because `escape_default` created only valid utf-8 data
141- f. write_str ( unsafe { from_utf8_unchecked ( & self . data [ self . range . clone ( ) ] ) } )
141+ f. write_str ( unsafe {
142+ from_utf8_unchecked ( & self . data [ ( self . range . start as usize ) ..( self . range . end as usize ) ] )
143+ } )
142144 }
143145}
144146
0 commit comments