@@ -147,7 +147,6 @@ pub trait CharExt {
147147 fn to_digit ( self , radix : u32 ) -> Option < u32 > ;
148148 fn escape_unicode ( self ) -> EscapeUnicode ;
149149 fn escape_default ( self ) -> EscapeDefault ;
150- fn needs_escape_default ( self ) -> bool ;
151150 fn len_utf8 ( self ) -> usize ;
152151 fn len_utf16 ( self ) -> usize ;
153152 fn encode_utf8 ( self , dst : & mut [ u8 ] ) -> Option < usize > ;
@@ -186,24 +185,13 @@ impl CharExt for char {
186185 '\t' => EscapeDefaultState :: Backslash ( 't' ) ,
187186 '\r' => EscapeDefaultState :: Backslash ( 'r' ) ,
188187 '\n' => EscapeDefaultState :: Backslash ( 'n' ) ,
189- '\\' => EscapeDefaultState :: Backslash ( '\\' ) ,
190- '\'' => EscapeDefaultState :: Backslash ( '\'' ) ,
191- '"' => EscapeDefaultState :: Backslash ( '"' ) ,
188+ '\\' | '\'' | '"' => EscapeDefaultState :: Backslash ( self ) ,
192189 '\x20' ... '\x7e' => EscapeDefaultState :: Char ( self ) ,
193190 _ => EscapeDefaultState :: Unicode ( self . escape_unicode ( ) )
194191 } ;
195192 EscapeDefault { state : init_state }
196193 }
197194
198- #[ inline]
199- fn needs_escape_default ( self ) -> bool {
200- match self {
201- '\\' | '\'' | '"' => true ,
202- '\x20' ... '\x7e' => false ,
203- _ => true
204- }
205- }
206-
207195 #[ inline]
208196 fn len_utf8 ( self ) -> usize {
209197 let code = self as u32 ;
@@ -390,4 +378,13 @@ impl Iterator for EscapeDefault {
390378 EscapeDefaultState :: Unicode ( ref mut iter) => iter. next ( )
391379 }
392380 }
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+ }
393390}
0 commit comments