Browse Source

slightly nicer JSON write_all

edition-2021
Lynne Megido 3 months ago
parent
commit
1f46bef10b
Signed by: lynnesbian
GPG Key ID: F0A184B5213D9F90
  1. 23
      src/formats.rs

23
src/formats.rs

@ -12,7 +12,7 @@ use snailquote::escape;
use crate::findings::ScanError;
use crate::utils::clap_long_version;
use crate::Findings;
use itertools::Itertools;
use itertools::{Either, Itertools};
/// A macro for creating an array of `Writable`s without needing to pepper your code with `into()`s.
/// # Usage
@ -340,21 +340,12 @@ impl Format for Json {
findings: &'a Vec<&'a Findings>,
}
let result = serde_json::to_writer_pretty(
f,
&SerdeEntries {
errors: &entries
.iter()
.filter_map(|e| e.as_ref().err())
.sorted_unstable()
.collect(),
findings: &entries
.iter()
.filter_map(|f| f.as_ref().ok())
.sorted_unstable()
.collect(),
},
);
let (errors, findings) = &entries.iter().partition_map(|entry| match entry {
Err(e) => Either::Left(e),
Ok(f) => Either::Right(f),
});
let result = serde_json::to_writer_pretty(f, &SerdeEntries { errors, findings });
if let Err(err) = result {
log::error!("Error while serialising: {}", err);

Loading…
Cancel
Save