@@ -3,20 +3,17 @@ use std::borrow::Cow;
3
3
4
4
impl Printer {
5
5
/// "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 } )
11
8
}
12
9
13
10
/// Inconsistent breaking box
14
- pub fn ibox ( & mut self , indent : usize ) {
11
+ pub fn ibox ( & mut self , indent : isize ) {
15
12
self . rbox ( indent, Breaks :: Inconsistent )
16
13
}
17
14
18
15
/// Consistent breaking box
19
- pub fn cbox ( & mut self , indent : usize ) {
16
+ pub fn cbox ( & mut self , indent : isize ) {
20
17
self . rbox ( indent, Breaks :: Consistent )
21
18
}
22
19
@@ -25,7 +22,11 @@ impl Printer {
25
22
}
26
23
27
24
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
+ } ) ;
29
30
}
30
31
31
32
pub fn end ( & mut self ) {
@@ -66,12 +67,24 @@ impl Printer {
66
67
}
67
68
68
69
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
+ } ) ;
70
83
}
71
84
}
72
85
73
86
impl Token {
74
87
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 )
76
89
}
77
90
}
0 commit comments