a9_prettyplease/file.rs
1use crate::algorithm::Printer;
2use crate::heuristics;
3use syn::File;
4
5impl Printer {
6 pub fn file(&mut self, file: &File) {
7 self.cbox(0);
8 if let Some(shebang) = &file.shebang {
9 self.word(shebang.clone());
10 self.hardbreak();
11 }
12 self.inner_attrs(&file.attrs);
13 let mut prev: Option<&syn::Item> = None;
14 for item in &file.items {
15 if let Some(prev_item) = prev {
16 if heuristics::should_blank_between_items(prev_item, item) {
17 self.hardbreak();
18 }
19 }
20 self.item(item);
21 prev = Some(item);
22 }
23 self.end();
24 }
25}