Просмотр исходного кода

fix(json): correct brace formatting output for json flag

PThorpe92 2 лет назад
Родитель
Сommit
214557f593
1 измененных файлов с 13 добавлено и 13 удалено
  1. 13 13
      src/output/details.rs

+ 13 - 13
src/output/details.rs

@@ -227,23 +227,26 @@ impl<'a> Render<'a> {
         w: &mut W,
         w: &mut W,
         row: &TextCell,
         row: &TextCell,
         header: &Option<TextCell>,
         header: &Option<TextCell>,
+        file_num: usize,
     ) -> io::Result<()> {
     ) -> io::Result<()> {
+        let last = if file_num == self.files.len() - 1 {
+            "\n}"
+        } else {
+            "\n},"
+        };
         if self.opts.header {
         if self.opts.header {
             writeln!(w, "{{")?;
             writeln!(w, "{{")?;
         } else {
         } else {
             writeln!(w, "[")?;
             writeln!(w, "[")?;
         }
         }
-        let mut j: usize = 0;
+        let mut header_idx = 0usize;
         for (i, cell) in row.contents.iter().enumerate() {
         for (i, cell) in row.contents.iter().enumerate() {
             if cell.is_empty() || cell.trim().is_empty() {
             if cell.is_empty() || cell.trim().is_empty() {
                 continue;
                 continue;
             };
             };
-            match header {
-                Some(ref header) => {
-                    write!(w, "\"{}\": ", header.contents[j])?;
-                    j += 1;
-                }
-                None => {}
+            if let Some(ref header) = header {
+                write!(w, "\"{}\": ", header.contents[header_idx])?;
+                header_idx += 1;
             }
             }
             write!(w, "\"{cell}\"")?;
             write!(w, "\"{cell}\"")?;
             if (i + 1) < row.contents.len() {
             if (i + 1) < row.contents.len() {
@@ -251,7 +254,7 @@ impl<'a> Render<'a> {
             }
             }
         }
         }
         if self.opts.header {
         if self.opts.header {
-            writeln!(w, "}}")
+            writeln!(w, "{last}")
         } else {
         } else {
             writeln!(w, "]")
             writeln!(w, "]")
         }
         }
@@ -296,12 +299,9 @@ impl<'a> Render<'a> {
             };
             };
             writeln!(w, "\"files\":[")?;
             writeln!(w, "\"files\":[")?;
             for (i, row) in row_iter.enumerate() {
             for (i, row) in row_iter.enumerate() {
-                self.print_row(w, &row, &(header.clone()))?;
-                if (i + 1) < self.files.len() {
-                    writeln!(w, ",")?;
-                }
+                self.print_row(w, &row, &(header.clone()), i)?;
             }
             }
-            writeln!(w, "\n]\n}}")?;
+            writeln!(w, "]\n}}")?;
         } else {
         } else {
             self.add_files_to_table(
             self.add_files_to_table(
                 &mut pool,
                 &mut pool,