]> git.proxmox.com Git - rustc.git/blobdiff - src/tools/rustfmt/src/emitter/stdout.rs
Update upstream source from tag 'upstream/1.52.1+dfsg1'
[rustc.git] / src / tools / rustfmt / src / emitter / stdout.rs
diff --git a/src/tools/rustfmt/src/emitter/stdout.rs b/src/tools/rustfmt/src/emitter/stdout.rs
new file mode 100644 (file)
index 0000000..9fddd51
--- /dev/null
@@ -0,0 +1,32 @@
+use super::*;
+use crate::config::Verbosity;
+use std::io::Write;
+
+#[derive(Debug)]
+pub(crate) struct StdoutEmitter {
+    verbosity: Verbosity,
+}
+
+impl StdoutEmitter {
+    pub(crate) fn new(verbosity: Verbosity) -> Self {
+        Self { verbosity }
+    }
+}
+
+impl Emitter for StdoutEmitter {
+    fn emit_formatted_file(
+        &mut self,
+        output: &mut dyn Write,
+        FormattedFile {
+            filename,
+            formatted_text,
+            ..
+        }: FormattedFile<'_>,
+    ) -> Result<EmitterResult, io::Error> {
+        if self.verbosity != Verbosity::Quiet {
+            writeln!(output, "{}:\n", filename)?;
+        }
+        write!(output, "{}", formatted_text)?;
+        Ok(EmitterResult::default())
+    }
+}