rustfmt_nightly/emitter/
modified_lines.rs

1use super::*;
2use crate::rustfmt_diff::{ModifiedLines, make_diff};
3
4#[derive(Debug, Default)]
5pub(crate) struct ModifiedLinesEmitter;
6
7impl Emitter for ModifiedLinesEmitter {
8    fn emit_formatted_file(
9        &mut self,
10        output: &mut dyn Write,
11        FormattedFile {
12            original_text,
13            formatted_text,
14            ..
15        }: FormattedFile<'_>,
16    ) -> Result<EmitterResult, io::Error> {
17        const CONTEXT_SIZE: usize = 0;
18        let mismatch = make_diff(original_text, formatted_text, CONTEXT_SIZE);
19        let has_diff = !mismatch.is_empty();
20        write!(output, "{}", ModifiedLines::from(mismatch))?;
21        Ok(EmitterResult { has_diff })
22    }
23}