1use crate::config::ResolvedConfig;
2use crate::report_types::StaticFlag;
3use crate::types::FileRecord;
4
5#[path = "scorer_control_flow.rs"]
6mod control_flow;
7#[path = "scorer_file.rs"]
8mod file;
9#[path = "scorer_method.rs"]
10mod method;
11#[path = "scorer_rules.rs"]
12mod rules;
13#[path = "scorer_tiers.rs"]
14mod tiers;
15
16fn score_file_record(file: &FileRecord, config: &ResolvedConfig) -> Vec<StaticFlag> {
17 let mut flags = file::build_file_flags(file, config);
18 method::collect_method_flags(method::MethodFlagInput {
19 file,
20 config,
21 flags: &mut flags,
22 });
23
24 flags
25}
26
27pub fn score(file_records: &[FileRecord], config: &ResolvedConfig) -> Vec<StaticFlag> {
28 let mut flags = Vec::new();
29
30 for file in file_records {
31 let mut file_flags = score_file_record(file, config);
32 flags.append(&mut file_flags);
33 }
34
35 flags
36}