rustfmt_nightly/emitter/
files.rs
1use super::*;
2use std::fs;
3
4#[derive(Debug, Default)]
5pub(crate) struct FilesEmitter {
6 print_misformatted_file_names: bool,
7}
8
9impl FilesEmitter {
10 pub(crate) fn new(print_misformatted_file_names: bool) -> Self {
11 Self {
12 print_misformatted_file_names,
13 }
14 }
15}
16
17impl Emitter for FilesEmitter {
18 fn emit_formatted_file(
19 &mut self,
20 output: &mut dyn Write,
21 FormattedFile {
22 filename,
23 original_text,
24 formatted_text,
25 }: FormattedFile<'_>,
26 ) -> Result<EmitterResult, io::Error> {
27 let filename = ensure_real_path(filename);
29 if original_text != formatted_text {
30 fs::write(filename, formatted_text)?;
31 if self.print_misformatted_file_names {
32 writeln!(output, "{}", filename.display())?;
33 }
34 }
35 Ok(EmitterResult::default())
36 }
37}