Skip to main content

sniff/
scorer.rs

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}