// except according to those terms.
use std::io::{self, Write};
+use std::path::Path;
-use config::WriteMode;
use rustfmt_diff::{DiffLine, Mismatch};
-pub fn output_header<T>(out: &mut T, mode: WriteMode) -> Result<(), io::Error>
-where
- T: Write,
-{
- if mode == WriteMode::Checkstyle {
- let mut xml_heading = String::new();
- xml_heading.push_str("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
- xml_heading.push_str("\n");
- xml_heading.push_str("<checkstyle version=\"4.3\">");
- write!(out, "{}", xml_heading)?;
- }
- Ok(())
+/// The checkstyle header - should be emitted before the output of Rustfmt.
+///
+/// Note that emitting checkstyle output is not stable and may removed in a
+/// future version of Rustfmt.
+pub fn header() -> String {
+ let mut xml_heading = String::new();
+ xml_heading.push_str("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
+ xml_heading.push_str("\n");
+ xml_heading.push_str("<checkstyle version=\"4.3\">");
+ xml_heading
}
-pub fn output_footer<T>(out: &mut T, mode: WriteMode) -> Result<(), io::Error>
-where
- T: Write,
-{
- if mode == WriteMode::Checkstyle {
- let mut xml_tail = String::new();
- xml_tail.push_str("</checkstyle>\n");
- write!(out, "{}", xml_tail)?;
- }
- Ok(())
+/// The checkstyle footer - should be emitted after the output of Rustfmt.
+///
+/// Note that emitting checkstyle output is not stable and may removed in a
+/// future version of Rustfmt.
+pub fn footer() -> String {
+ "</checkstyle>\n".to_owned()
}
pub fn output_checkstyle_file<T>(
mut writer: T,
- filename: &str,
+ filename: &Path,
diff: Vec<Mismatch>,
) -> Result<(), io::Error>
where
T: Write,
{
- write!(writer, "<file name=\"{}\">", filename)?;
+ write!(writer, "<file name=\"{}\">", filename.display())?;
for mismatch in diff {
for line in mismatch.lines {
// Do nothing with `DiffLine::Context` and `DiffLine::Resulting`.