pedant_core/check_config/
pattern.rs1use std::sync::Arc;
2
3use serde::Deserialize;
4
5use super::string_list::deserialize_arc_str_slice;
6
7#[derive(Debug, Deserialize, Default, Clone)]
9#[serde(deny_unknown_fields)]
10pub struct PatternCheck {
11 #[serde(default)]
13 pub enabled: bool,
14 #[serde(default, deserialize_with = "deserialize_arc_str_slice")]
16 pub patterns: Arc<[Arc<str>]>,
17}
18
19impl PatternCheck {
20 pub fn apply_override(&mut self, ovr: &PatternOverride) {
22 if let Some(enabled) = ovr.enabled {
23 self.enabled = enabled;
24 }
25 if !ovr.patterns.is_empty() {
26 self.patterns = ovr.patterns.clone();
27 }
28 }
29}
30
31#[derive(Debug, Deserialize, Default, Clone)]
33#[serde(deny_unknown_fields)]
34pub struct PatternOverride {
35 pub enabled: Option<bool>,
37 #[serde(default, deserialize_with = "deserialize_arc_str_slice")]
39 pub patterns: Arc<[Arc<str>]>,
40}