use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum IssueClass {
Missing,
Invalid,
Weak,
Risk,
Opportunity,
Informational,
}
impl IssueClass {
pub fn affects_score(&self) -> bool {
!matches!(self, IssueClass::Opportunity | IssueClass::Informational)
}
pub fn label(&self) -> &'static str {
match self {
IssueClass::Missing => "Fehlend",
IssueClass::Invalid => "Ungültig",
IssueClass::Weak => "Schwach",
IssueClass::Risk => "Risiko",
IssueClass::Opportunity => "Optimierungspotenzial",
IssueClass::Informational => "Hinweis",
}
}
}
impl std::fmt::Display for IssueClass {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{}", self.label())
}
}