use crate::rules::RuleSeverity;
use serde::{Deserialize, Serialize};
use std::collections::HashSet;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(default)]
pub struct SeverityConfig {
pub default: RuleSeverity,
#[serde(default)]
pub warn: HashSet<String>,
#[serde(default)]
pub ignore: HashSet<String>,
}
impl Default for SeverityConfig {
fn default() -> Self {
Self {
default: RuleSeverity::Error,
warn: HashSet::new(),
ignore: HashSet::new(),
}
}
}
impl SeverityConfig {
pub fn get_rule_severity(&self, rule_id: &str) -> Option<RuleSeverity> {
if self.ignore.contains(rule_id) {
return None; }
if self.warn.contains(rule_id) {
return Some(RuleSeverity::Warn);
}
Some(self.default)
}
}