1 pub(crate) struct Pretty;
2 
3 impl crate::visit_mut::VisitMut for Pretty {
visit_document_mut(&mut self, node: &mut crate::Document)4     fn visit_document_mut(&mut self, node: &mut crate::Document) {
5         crate::visit_mut::visit_document_mut(self, node);
6     }
7 
visit_item_mut(&mut self, node: &mut crate::Item)8     fn visit_item_mut(&mut self, node: &mut crate::Item) {
9         node.make_item();
10 
11         crate::visit_mut::visit_item_mut(self, node);
12     }
13 
visit_table_mut(&mut self, node: &mut crate::Table)14     fn visit_table_mut(&mut self, node: &mut crate::Table) {
15         node.decor_mut().clear();
16 
17         // Empty tables could be semantically meaningful, so make sure they are not implicit
18         if !node.is_empty() {
19             node.set_implicit(true);
20         }
21 
22         crate::visit_mut::visit_table_mut(self, node);
23     }
24 
visit_value_mut(&mut self, node: &mut crate::Value)25     fn visit_value_mut(&mut self, node: &mut crate::Value) {
26         node.decor_mut().clear();
27 
28         crate::visit_mut::visit_value_mut(self, node);
29     }
30 
visit_array_mut(&mut self, node: &mut crate::Array)31     fn visit_array_mut(&mut self, node: &mut crate::Array) {
32         crate::visit_mut::visit_array_mut(self, node);
33 
34         if (0..=1).contains(&node.len()) {
35             node.set_trailing("");
36             node.set_trailing_comma(false);
37         } else {
38             for item in node.iter_mut() {
39                 item.decor_mut().set_prefix("\n    ");
40             }
41             node.set_trailing("\n");
42             node.set_trailing_comma(true);
43         }
44     }
45 }
46