use crate::rule_config_serde::RuleConfig;
use serde::{Deserialize, Serialize};
fn default_true() -> bool {
true
}
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "kebab-case")]
pub(super) struct MD093Config {
#[serde(default = "default_true")]
pub(super) code: bool,
#[serde(default = "default_true")]
pub(super) strong: bool,
#[serde(default = "default_true")]
pub(super) emphasis: bool,
}
impl Default for MD093Config {
fn default() -> Self {
Self {
code: true,
strong: true,
emphasis: true,
}
}
}
impl RuleConfig for MD093Config {
const RULE_NAME: &'static str = "MD093";
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn every_construct_is_reported_by_default() {
let config = MD093Config::default();
assert!(config.code);
assert!(config.strong);
assert!(config.emphasis);
}
#[test]
fn a_single_construct_can_be_turned_off() {
let config: MD093Config = toml::from_str("code = false\n").unwrap();
assert!(!config.code);
assert!(config.strong);
assert!(config.emphasis);
}
}