@@ -21,7 +21,7 @@ use crate::str::from_utf8_unchecked;
21
21
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
22
22
#[ derive( Clone ) ]
23
23
pub struct EscapeDefault {
24
- range : Range < usize > ,
24
+ range : Range < u8 > ,
25
25
data : [ u8 ; 4 ] ,
26
26
}
27
27
@@ -114,7 +114,7 @@ pub fn escape_default(c: u8) -> EscapeDefault {
114
114
impl Iterator for EscapeDefault {
115
115
type Item = u8 ;
116
116
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 ] )
118
118
}
119
119
fn size_hint ( & self ) -> ( usize , Option < usize > ) {
120
120
self . range . size_hint ( )
@@ -126,7 +126,7 @@ impl Iterator for EscapeDefault {
126
126
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
127
127
impl DoubleEndedIterator for EscapeDefault {
128
128
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 ] )
130
130
}
131
131
}
132
132
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
@@ -138,7 +138,9 @@ impl FusedIterator for EscapeDefault {}
138
138
impl fmt:: Display for EscapeDefault {
139
139
fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
140
140
// 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
+ } )
142
144
}
143
145
}
144
146
0 commit comments