haste_artifact_patcher/rules/
mod.rs1mod clippy_doc_markdown;
6
7use serde_json::Value;
8
9#[derive(Debug, Clone)]
11pub struct Edit {
12 pub pointer: String,
14 pub before: Value,
15 pub after: Value,
16}
17
18pub trait Rule: Sync {
19 fn name(&self) -> &'static str;
21 fn apply(&self, resource: &mut Value) -> Vec<Edit>;
23}
24
25static RULES: &[&dyn Rule] = &[&clippy_doc_markdown::ClippyDocMarkdown];
26
27#[must_use]
29pub fn find(name: &str) -> Option<&'static dyn Rule> {
30 RULES.iter().copied().find(|rule| rule.name() == name)
31}
32
33#[must_use]
35pub fn names() -> Vec<&'static str> {
36 RULES.iter().map(|rule| rule.name()).collect()
37}