#[derive(Debug, Default, Clone, Copy)]
pub enum OutputFormat {
#[default]
Human,
Json,
Sarif,
Compact,
Markdown,
CodeClimate,
Badge,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn output_format_default_is_human() {
let format = OutputFormat::default();
assert!(matches!(format, OutputFormat::Human));
}
#[test]
fn output_format_all_variants_constructible() {
assert!(matches!(OutputFormat::Human, OutputFormat::Human));
assert!(matches!(OutputFormat::Json, OutputFormat::Json));
assert!(matches!(OutputFormat::Sarif, OutputFormat::Sarif));
assert!(matches!(OutputFormat::Compact, OutputFormat::Compact));
assert!(matches!(OutputFormat::Markdown, OutputFormat::Markdown));
assert!(matches!(
OutputFormat::CodeClimate,
OutputFormat::CodeClimate
));
assert!(matches!(OutputFormat::Badge, OutputFormat::Badge));
}
#[test]
fn output_format_debug_impl() {
let human = format!("{:?}", OutputFormat::Human);
assert_eq!(human, "Human");
let json = format!("{:?}", OutputFormat::Json);
assert_eq!(json, "Json");
let sarif = format!("{:?}", OutputFormat::Sarif);
assert_eq!(sarif, "Sarif");
let compact = format!("{:?}", OutputFormat::Compact);
assert_eq!(compact, "Compact");
let markdown = format!("{:?}", OutputFormat::Markdown);
assert_eq!(markdown, "Markdown");
let codeclimate = format!("{:?}", OutputFormat::CodeClimate);
assert_eq!(codeclimate, "CodeClimate");
let badge = format!("{:?}", OutputFormat::Badge);
assert_eq!(badge, "Badge");
}
#[test]
fn output_format_copy() {
let original = OutputFormat::Json;
let copied = original;
assert!(matches!(copied, OutputFormat::Json));
assert!(matches!(original, OutputFormat::Json));
}
}