use serde::{Deserialize, Serialize};
use crate::bridge::ids::RuleId;
const fn default_true() -> bool {
true
}
pub const RULE_CONFIG_FILENAME: &str = "config.yaml";
pub const DEFAULT_RULE_CONTENT_FILE: &str = "index.md";
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DiskRuleConfig {
pub id: RuleId,
pub name: String,
pub description: String,
#[serde(default = "default_true")]
pub enabled: bool,
#[serde(default, skip_serializing_if = "String::is_empty")]
pub file: String,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub tags: Vec<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub hosts: Vec<String>,
}
impl DiskRuleConfig {
#[must_use]
pub fn content_file(&self) -> &str {
if self.file.is_empty() {
DEFAULT_RULE_CONTENT_FILE
} else {
&self.file
}
}
}