use std::rc::Rc;
use crate::linter::{Context, RuleLinter};
pub mod md001;
pub mod md003;
pub mod md004;
pub mod md005;
pub mod md007;
pub mod md009;
pub mod md010;
pub mod md011;
pub mod md012;
pub mod md013;
pub mod md014;
pub mod md018;
pub mod md019;
pub mod md020;
pub mod md021;
pub mod md022;
pub mod md023;
pub mod md024;
pub mod md025;
pub mod md026;
pub mod md027;
pub mod md028;
pub mod md029;
pub mod md030;
pub mod md031;
pub mod md032;
pub mod md033;
pub mod md034;
pub mod md035;
pub mod md036;
pub mod md037;
pub mod md038;
pub mod md039;
pub mod md040;
pub mod md041;
pub mod md042;
pub mod md043;
pub mod md044;
pub mod md045;
pub mod md046;
pub mod md047;
pub mod md048;
pub mod md049;
pub mod md050;
pub mod md051;
pub mod md052;
pub mod md053;
pub mod md054;
pub mod md055;
pub mod md056;
pub mod md058;
pub mod md059;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum RuleType {
Line,
Token,
Document,
Hybrid,
}
#[derive(Debug)]
pub struct Rule {
pub id: &'static str,
pub alias: &'static str,
pub tags: &'static [&'static str],
pub description: &'static str,
pub rule_type: RuleType,
pub required_nodes: &'static [&'static str], pub new_linter: fn(Rc<Context>) -> Box<dyn RuleLinter>,
}
pub const ALL_RULES: &[Rule] = &[
md001::MD001,
md003::MD003,
md004::MD004,
md005::MD005,
md007::MD007,
md009::MD009,
md010::MD010,
md011::MD011,
md012::MD012,
md013::MD013,
md014::MD014,
md018::MD018,
md019::MD019,
md020::MD020,
md021::MD021,
md022::MD022,
md023::MD023,
md024::MD024,
md025::MD025,
md026::MD026,
md027::MD027,
md028::MD028,
md029::MD029,
md030::MD030,
md031::MD031,
md032::MD032,
md033::MD033,
md034::MD034,
md035::MD035,
md036::MD036,
md037::MD037,
md038::MD038,
md039::MD039,
md040::MD040,
md041::MD041,
md042::MD042,
md043::MD043,
md044::MD044,
md045::MD045,
md046::MD046,
md047::MD047,
md048::MD048,
md049::MD049,
md050::MD050,
md051::MD051,
md052::MD052,
md053::MD053,
md054::MD054,
md055::MD055,
md056::MD056,
md058::MD058,
md059::MD059,
];