]> git.lizzy.rs Git - rust.git/blob - src/tools/rustfmt/src/emitter/modified_lines.rs
Auto merge of #84111 - bstrie:hashfrom, r=joshtriplett
[rust.git] / src / tools / rustfmt / src / emitter / modified_lines.rs
1 use super::*;
2 use crate::rustfmt_diff::{make_diff, ModifiedLines};
3 use std::io::Write;
4
5 #[derive(Debug, Default)]
6 pub(crate) struct ModifiedLinesEmitter;
7
8 impl Emitter for ModifiedLinesEmitter {
9     fn emit_formatted_file(
10         &mut self,
11         output: &mut dyn Write,
12         FormattedFile {
13             original_text,
14             formatted_text,
15             ..
16         }: FormattedFile<'_>,
17     ) -> Result<EmitterResult, io::Error> {
18         const CONTEXT_SIZE: usize = 0;
19         let mismatch = make_diff(original_text, formatted_text, CONTEXT_SIZE);
20         let has_diff = !mismatch.is_empty();
21         write!(output, "{}", ModifiedLines::from(mismatch))?;
22         Ok(EmitterResult { has_diff })
23     }
24 }