use crate::rule_config_serde::RuleConfig;
use serde::{Deserialize, Serialize};
use std::collections::HashMap;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default, Serialize, Deserialize)]
#[serde(rename_all = "kebab-case")]
pub enum LanguageStyle {
#[default]
Disabled,
Consistent,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default, Serialize, Deserialize)]
#[serde(rename_all = "kebab-case")]
pub enum UnknownLanguageAction {
#[default]
Ignore,
Warn,
Error,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
#[serde(rename_all = "kebab-case")]
pub struct MD040Config {
#[serde(default)]
pub style: LanguageStyle,
#[serde(default, alias = "preferred_aliases")]
pub preferred_aliases: HashMap<String, String>,
#[serde(default, alias = "allowed_languages")]
pub allowed_languages: Vec<String>,
#[serde(default, alias = "disallowed_languages")]
pub disallowed_languages: Vec<String>,
#[serde(default, alias = "unknown_language_action")]
pub unknown_language_action: UnknownLanguageAction,
}
impl RuleConfig for MD040Config {
const RULE_NAME: &'static str = "MD040";
}