1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
use crate::rules::types::{RuleEntry, RulesMap};
use std::collections::HashMap;

#[macro_use]
pub(crate) mod import_on_top;
pub(crate) mod ordering;
pub(crate) mod visibility_modifier_order;

// List all rules
use crate::rules::order::import_on_top::ImportOnTop;
use crate::rules::order::ordering::Ordering;
use crate::rules::order::visibility_modifier_order::VisibilityModiferOrder;
use crate::rules::RuleBuilder;

pub fn create_default_rules() -> Vec<RuleEntry> {
    vec![
        ImportOnTop::create_default(),
        Ordering::create_default(),
        VisibilityModiferOrder::create_default(),
    ]
}

pub fn create_rules() -> RulesMap {
    let mut rules: HashMap<String, RuleBuilder> = HashMap::new();

    rules.insert(import_on_top::RULE_ID.to_string(), ImportOnTop::create);
    rules.insert(ordering::RULE_ID.to_string(), Ordering::create);
    rules.insert(
        visibility_modifier_order::RULE_ID.to_string(),
        VisibilityModiferOrder::create,
    );

    rules
}