@@ -163,7 +163,7 @@ pub enum Token {
163
163
// In practice a string token contains either a `&'static str` or a
164
164
// `String`. `Cow` is overkill for this because we never modify the data,
165
165
// but it's more convenient than rolling our own more specialized type.
166
- String ( Cow < ' static , str > , isize ) ,
166
+ String ( Cow < ' static , str > ) ,
167
167
Break ( BreakToken ) ,
168
168
Begin ( BeginToken ) ,
169
169
End ,
@@ -194,7 +194,7 @@ impl Token {
194
194
impl fmt:: Display for Token {
195
195
fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
196
196
match * self {
197
- Token :: String ( ref s, len ) => write ! ( f, "STR({},{})" , s, len) ,
197
+ Token :: String ( ref s) => write ! ( f, "STR({},{})" , s, s . len( ) ) ,
198
198
Token :: Break ( _) => f. write_str ( "BREAK" ) ,
199
199
Token :: Begin ( _) => f. write_str ( "BEGIN" ) ,
200
200
Token :: End => f. write_str ( "END" ) ,
@@ -358,16 +358,17 @@ impl Printer {
358
358
self . right_total += b. blank_space ;
359
359
}
360
360
361
- fn scan_string ( & mut self , s : Cow < ' static , str > , len : isize ) {
361
+ fn scan_string ( & mut self , s : Cow < ' static , str > ) {
362
362
if self . scan_stack . is_empty ( ) {
363
363
debug ! ( "pp String('{}')/print Vec<{},{}>" ,
364
364
s, self . left, self . right) ;
365
- self . print_string ( s, len ) ;
365
+ self . print_string ( s) ;
366
366
} else {
367
367
debug ! ( "pp String('{}')/buffer Vec<{},{}>" ,
368
368
s, self . left, self . right) ;
369
369
self . advance_right ( ) ;
370
- self . buf [ self . right ] = BufEntry { token : Token :: String ( s, len) , size : len } ;
370
+ let len = s. len ( ) as isize ;
371
+ self . buf [ self . right ] = BufEntry { token : Token :: String ( s) , size : len } ;
371
372
self . right_total += len;
372
373
self . check_stream ( ) ;
373
374
}
@@ -430,7 +431,8 @@ impl Printer {
430
431
431
432
let len = match left {
432
433
Token :: Break ( b) => b. blank_space ,
433
- Token :: String ( _, len) => {
434
+ Token :: String ( ref s) => {
435
+ let len = s. len ( ) as isize ;
434
436
assert_eq ! ( len, left_size) ;
435
437
len
436
438
}
@@ -554,7 +556,8 @@ impl Printer {
554
556
}
555
557
}
556
558
557
- fn print_string ( & mut self , s : Cow < ' static , str > , len : isize ) {
559
+ fn print_string ( & mut self , s : Cow < ' static , str > ) {
560
+ let len = s. len ( ) as isize ;
558
561
debug ! ( "print String({})" , s) ;
559
562
// assert!(len <= space);
560
563
self . space -= len;
@@ -582,9 +585,10 @@ impl Printer {
582
585
Token :: Begin ( b) => self . print_begin ( b, l) ,
583
586
Token :: End => self . print_end ( ) ,
584
587
Token :: Break ( b) => self . print_break ( b, l) ,
585
- Token :: String ( s, len) => {
588
+ Token :: String ( s) => {
589
+ let len = s. len ( ) as isize ;
586
590
assert_eq ! ( len, l) ;
587
- self . print_string ( s, len ) ;
591
+ self . print_string ( s) ;
588
592
}
589
593
Token :: Eof => panic ! ( ) , // Eof should never get here.
590
594
}
@@ -628,8 +632,7 @@ impl Printer {
628
632
629
633
pub fn word < S : Into < Cow < ' static , str > > > ( & mut self , wrd : S ) {
630
634
let s = wrd. into ( ) ;
631
- let len = s. len ( ) as isize ;
632
- self . scan_string ( s, len)
635
+ self . scan_string ( s)
633
636
}
634
637
635
638
fn spaces ( & mut self , n : usize ) {
0 commit comments