solidhunter_lib/rules/best_practises/
mod.rs

1use crate::rules::types::{RuleEntry, RulesMap};
2use std::collections::HashMap;
3
4#[macro_use]
5pub mod max_line_length;
6pub mod custom_errors;
7pub mod explicit_types;
8pub mod function_max_lines;
9pub mod max_states_count;
10pub mod no_console;
11pub mod no_empty_block;
12pub mod no_global_import;
13pub mod one_contract_per_file;
14pub mod payable_fallback;
15pub mod reason_string;
16
17// List all rules
18use crate::rules::best_practises::custom_errors::CustomErrors;
19use crate::rules::best_practises::explicit_types::ExplicitTypes;
20use crate::rules::best_practises::function_max_lines::FunctionMaxLines;
21use crate::rules::best_practises::max_line_length::MaxLineLength;
22use crate::rules::best_practises::max_states_count::MaxStatesCount;
23use crate::rules::best_practises::no_console::NoConsole;
24use crate::rules::best_practises::no_empty_block::NoEmptyBlock;
25use crate::rules::best_practises::no_global_import::NoGlobalImport;
26use crate::rules::best_practises::one_contract_per_file::OneContractPerFile;
27use crate::rules::best_practises::payable_fallback::PayableFallback;
28use crate::rules::best_practises::reason_string::ReasonString;
29use crate::rules::RuleBuilder;
30
31pub fn create_default_rules() -> Vec<RuleEntry> {
32    vec![
33        MaxLineLength::create_default(),
34        MaxStatesCount::create_default(),
35        FunctionMaxLines::create_default(),
36        ReasonString::create_default(),
37        NoConsole::create_default(),
38        OneContractPerFile::create_default(),
39        CustomErrors::create_default(),
40        NoGlobalImport::create_default(),
41        NoEmptyBlock::create_default(),
42        ExplicitTypes::create_default(),
43        PayableFallback::create_default(),
44    ]
45}
46
47pub fn create_rules() -> RulesMap {
48    let mut rules: HashMap<String, RuleBuilder> = HashMap::new();
49
50    rules.insert(max_line_length::RULE_ID.to_string(), MaxLineLength::create);
51
52    rules.insert(
53        max_states_count::RULE_ID.to_string(),
54        MaxStatesCount::create,
55    );
56    rules.insert(
57        function_max_lines::RULE_ID.to_string(),
58        FunctionMaxLines::create,
59    );
60    rules.insert(custom_errors::RULE_ID.to_string(), CustomErrors::create);
61    rules.insert(reason_string::RULE_ID.to_string(), ReasonString::create);
62    rules.insert(
63        one_contract_per_file::RULE_ID.to_string(),
64        OneContractPerFile::create,
65    );
66    rules.insert(
67        no_global_import::RULE_ID.to_string(),
68        NoGlobalImport::create,
69    );
70    rules.insert(no_empty_block::RULE_ID.to_string(), NoEmptyBlock::create);
71    rules.insert(explicit_types::RULE_ID.to_string(), ExplicitTypes::create);
72    rules.insert(no_console::RULE_ID.to_string(), NoConsole::create);
73    rules.insert(
74        payable_fallback::RULE_ID.to_string(),
75        PayableFallback::create,
76    );
77
78    rules
79}