@@ -3,20 +3,17 @@ use std::borrow::Cow;
33
44impl Printer {
55 /// "raw box"
6- pub fn rbox ( & mut self , indent : usize , breaks : Breaks ) {
7- self . scan_begin ( BeginToken {
8- indent : IndentStyle :: Block { offset : indent as isize } ,
9- breaks,
10- } )
6+ pub fn rbox ( & mut self , indent : isize , breaks : Breaks ) {
7+ self . scan_begin ( BeginToken { indent : IndentStyle :: Block { offset : indent } , breaks } )
118 }
129
1310 /// Inconsistent breaking box
14- pub fn ibox ( & mut self , indent : usize ) {
11+ pub fn ibox ( & mut self , indent : isize ) {
1512 self . rbox ( indent, Breaks :: Inconsistent )
1613 }
1714
1815 /// Consistent breaking box
19- pub fn cbox ( & mut self , indent : usize ) {
16+ pub fn cbox ( & mut self , indent : isize ) {
2017 self . rbox ( indent, Breaks :: Consistent )
2118 }
2219
@@ -25,7 +22,11 @@ impl Printer {
2522 }
2623
2724 pub fn break_offset ( & mut self , n : usize , off : isize ) {
28- self . scan_break ( BreakToken { offset : off, blank_space : n as isize } )
25+ self . scan_break ( BreakToken {
26+ offset : off,
27+ blank_space : n as isize ,
28+ ..BreakToken :: default ( )
29+ } ) ;
2930 }
3031
3132 pub fn end ( & mut self ) {
@@ -66,12 +67,24 @@ impl Printer {
6667 }
6768
6869 pub fn hardbreak_tok_offset ( off : isize ) -> Token {
69- Token :: Break ( BreakToken { offset : off, blank_space : SIZE_INFINITY } )
70+ Token :: Break ( BreakToken {
71+ offset : off,
72+ blank_space : SIZE_INFINITY ,
73+ ..BreakToken :: default ( )
74+ } )
75+ }
76+
77+ pub fn trailing_comma ( & mut self ) {
78+ self . scan_break ( BreakToken {
79+ blank_space : 1 ,
80+ pre_break : Some ( ',' ) ,
81+ ..BreakToken :: default ( )
82+ } ) ;
7083 }
7184}
7285
7386impl Token {
7487 pub fn is_hardbreak_tok ( & self ) -> bool {
75- matches ! ( self , Token :: Break ( BreakToken { offset : 0 , blank_space : SIZE_INFINITY } ) )
88+ * self == Printer :: hardbreak_tok_offset ( 0 )
7689 }
7790}
0 commit comments