use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
#[non_exhaustive]
pub enum FindingStatus {
#[default]
Open,
Confirmed,
FalsePositive,
Resolved,
}
impl FindingStatus {
#[must_use]
pub fn label(&self) -> &'static str {
match self {
Self::Open => "OPEN",
Self::Confirmed => "CONF",
Self::FalsePositive => "F/P",
Self::Resolved => "FIXD",
}
}
}
impl std::fmt::Display for FindingStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
let s = match self {
Self::Open => "open",
Self::Confirmed => "confirmed",
Self::FalsePositive => "false_positive",
Self::Resolved => "resolved",
};
f.write_str(s)
}
}