leptosfmt_pretty_printer/
convenience.rs1use crate::algorithm::{self, BeginToken, BreakToken, Breaks, Printer};
2use std::borrow::Cow;
3
4impl Printer {
5 pub fn ibox_indent(&mut self) {
6 self.ibox(self.settings.tab_spaces);
7 }
8
9 pub fn ibox_dedent(&mut self) {
10 self.ibox(-self.settings.tab_spaces);
11 }
12
13 pub fn ibox(&mut self, indent: isize) {
14 self.scan_begin(BeginToken {
15 offset: indent,
16 breaks: Breaks::Inconsistent,
17 });
18 }
19
20 pub fn cbox_indent(&mut self) {
21 self.cbox(self.settings.tab_spaces);
22 }
23
24 pub fn cbox_dedent(&mut self) {
25 self.cbox(-self.settings.tab_spaces);
26 }
27
28 pub fn cbox(&mut self, indent: isize) {
29 self.scan_begin(BeginToken {
30 offset: indent,
31 breaks: Breaks::Consistent,
32 });
33 }
34
35 pub fn end_dedent(&mut self) {
36 self.offset(-self.settings.tab_spaces);
37 self.end();
38 }
39
40 pub fn end(&mut self) {
41 self.scan_end();
42 }
43
44 pub fn word<S: Into<Cow<'static, str>>>(&mut self, wrd: S) {
45 let s = wrd.into();
46 self.scan_string(s);
47 }
48
49 pub fn spaces(&mut self, n: usize) {
50 self.scan_break(BreakToken {
51 blank_space: n,
52 ..BreakToken::default()
53 });
54 }
55
56 pub fn zerobreak(&mut self) {
57 self.spaces(0);
58 }
59
60 pub fn space(&mut self) {
61 self.spaces(1);
62 }
63
64 pub fn nbsp(&mut self) {
65 self.word(" ");
66 }
67
68 pub fn hardbreak(&mut self) {
69 self.spaces(algorithm::SIZE_INFINITY as usize);
70 }
71
72 pub fn space_if_nonempty(&mut self) {
73 self.scan_break(BreakToken {
74 blank_space: 1,
75 if_nonempty: true,
76 ..BreakToken::default()
77 });
78 }
79
80 pub fn hardbreak_if_nonempty(&mut self) {
81 self.scan_break(BreakToken {
82 blank_space: algorithm::SIZE_INFINITY as usize,
83 if_nonempty: true,
84 ..BreakToken::default()
85 });
86 }
87
88 pub fn trailing_comma(&mut self, is_last: bool) {
89 if is_last {
90 self.scan_break(BreakToken {
91 pre_break: Some(','),
92 ..BreakToken::default()
93 });
94 } else {
95 self.word(",");
96 self.space();
97 }
98 }
99
100 pub fn trailing_comma_or_space(&mut self, is_last: bool) {
101 if is_last {
102 self.scan_break(BreakToken {
103 blank_space: 1,
104 pre_break: Some(','),
105 ..BreakToken::default()
106 });
107 } else {
108 self.word(",");
109 self.space();
110 }
111 }
112
113 pub fn neverbreak(&mut self) {
114 self.scan_break(BreakToken {
115 never_break: true,
116 ..BreakToken::default()
117 });
118 }
119}