react_auditor/formatters/
compact.rs1use crate::formatters::Formatter;
2use crate::rules::Severity;
3use crate::scanner::ScanResult;
4
5pub struct CompactFormatter;
6
7impl Formatter for CompactFormatter {
8 fn format(&self, results: &[ScanResult], quiet: bool) -> String {
9 let mut output = String::new();
10
11 for result in results {
12 for v in &result.violations {
13 if quiet && v.severity != Severity::Error {
14 continue;
15 }
16
17 let severity_str = match v.severity {
18 Severity::Error => "E",
19 Severity::Warning => "W",
20 Severity::Off => continue,
21 };
22
23 output.push_str(&format!(
24 "{sev} {file}:{line}:{col} {rule} {msg}\n",
25 sev = severity_str,
26 file = v.file_path,
27 line = v.line,
28 col = v.column,
29 rule = v.rule_id,
30 msg = v.message,
31 ));
32 }
33 }
34
35 output
36 }
37}