solidhunter_lib/rules/best_practises/
mod.rs1use 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
17use 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}