rumdl_lib/rules/md040_fenced_code_language/
md040_config.rs1use crate::rule_config_serde::RuleConfig;
2use serde::{Deserialize, Serialize};
3use std::collections::HashMap;
4
5#[derive(Debug, Clone, Copy, PartialEq, Eq, Default, Serialize, Deserialize)]
7#[serde(rename_all = "kebab-case")]
8pub enum LanguageStyle {
9 #[default]
11 Disabled,
12 Consistent,
14}
15
16#[derive(Debug, Clone, Copy, PartialEq, Eq, Default, Serialize, Deserialize)]
18#[serde(rename_all = "kebab-case")]
19pub enum UnknownLanguageAction {
20 #[default]
22 Ignore,
23 Warn,
25 Error,
27}
28
29#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
31#[serde(rename_all = "kebab-case")]
32pub struct MD040Config {
33 #[serde(default)]
35 pub style: LanguageStyle,
36
37 #[serde(default, alias = "preferred_aliases")]
40 pub preferred_aliases: HashMap<String, String>,
41
42 #[serde(default, alias = "allowed_languages")]
45 pub allowed_languages: Vec<String>,
46
47 #[serde(default, alias = "disallowed_languages")]
50 pub disallowed_languages: Vec<String>,
51
52 #[serde(default, alias = "unknown_language_action")]
54 pub unknown_language_action: UnknownLanguageAction,
55}
56
57impl RuleConfig for MD040Config {
58 const RULE_NAME: &'static str = "MD040";
59}