@@ -147,7 +147,6 @@ pub trait CharExt {
147
147
fn to_digit ( self , radix : u32 ) -> Option < u32 > ;
148
148
fn escape_unicode ( self ) -> EscapeUnicode ;
149
149
fn escape_default ( self ) -> EscapeDefault ;
150
- fn needs_escape_default ( self ) -> bool ;
151
150
fn len_utf8 ( self ) -> usize ;
152
151
fn len_utf16 ( self ) -> usize ;
153
152
fn encode_utf8 ( self , dst : & mut [ u8 ] ) -> Option < usize > ;
@@ -186,24 +185,13 @@ impl CharExt for char {
186
185
'\t' => EscapeDefaultState :: Backslash ( 't' ) ,
187
186
'\r' => EscapeDefaultState :: Backslash ( 'r' ) ,
188
187
'\n' => EscapeDefaultState :: Backslash ( 'n' ) ,
189
- '\\' => EscapeDefaultState :: Backslash ( '\\' ) ,
190
- '\'' => EscapeDefaultState :: Backslash ( '\'' ) ,
191
- '"' => EscapeDefaultState :: Backslash ( '"' ) ,
188
+ '\\' | '\'' | '"' => EscapeDefaultState :: Backslash ( self ) ,
192
189
'\x20' ... '\x7e' => EscapeDefaultState :: Char ( self ) ,
193
190
_ => EscapeDefaultState :: Unicode ( self . escape_unicode ( ) )
194
191
} ;
195
192
EscapeDefault { state : init_state }
196
193
}
197
194
198
- #[ inline]
199
- fn needs_escape_default ( self ) -> bool {
200
- match self {
201
- '\\' | '\'' | '"' => true ,
202
- '\x20' ... '\x7e' => false ,
203
- _ => true
204
- }
205
- }
206
-
207
195
#[ inline]
208
196
fn len_utf8 ( self ) -> usize {
209
197
let code = self as u32 ;
@@ -390,4 +378,13 @@ impl Iterator for EscapeDefault {
390
378
EscapeDefaultState :: Unicode ( ref mut iter) => iter. next ( )
391
379
}
392
380
}
381
+
382
+ fn size_hint ( & self ) -> ( usize , Option < usize > ) {
383
+ match self . state {
384
+ EscapeDefaultState :: Char ( _) => ( 1 , Some ( 1 ) ) ,
385
+ EscapeDefaultState :: Backslash ( _) => ( 2 , Some ( 2 ) ) ,
386
+ EscapeDefaultState :: Unicode ( _) => ( 0 , Some ( 10 ) ) ,
387
+ _ => ( 0 , Some ( 0 ) )
388
+ }
389
+ }
393
390
}
0 commit comments