#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum Outcome {
Clean,
Findings,
CompatMismatch,
}
impl Outcome {
pub fn code(self) -> u8 {
match self {
Outcome::Clean => 0,
Outcome::Findings => 1,
Outcome::CompatMismatch => 3,
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_outcome_codes() {
assert_eq!(Outcome::Clean.code(), 0);
assert_eq!(Outcome::Findings.code(), 1);
assert_ne!(Outcome::Clean, Outcome::Findings);
}
#[test]
fn test_compat_mismatch_is_exit_code_3() {
assert_eq!(Outcome::CompatMismatch.code(), 3);
}
}