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
35
36
37
#[cfg(feature = "spectrum-scale")]
mod spectrum_scale;
mod universal;

use crate::log;
use crate::output::{self, Output};
use crate::Config;
use crate::Result;

pub fn run(dir: &str, config: &Config) {
    let result = run_conditional(dir, config);

    match result {
        Ok(acc) => match config.output {
            Output::Pretty => output::pretty(dir, acc),
            Output::Oneline => output::oneline(dir, acc),
        },

        Err(error) => {
            log::error(format!("skipping directory {}: {}", dir, error));
        }
    }
}

#[cfg(not(feature = "spectrum-scale"))]
fn run_conditional(dir: &str, config: &Config) -> Result {
    crate::analysis::universal::run(dir, config)
}

#[cfg(feature = "spectrum-scale")]
fn run_conditional(dir: &str, config: &Config) -> Result {
    if config.spectrum_scale {
        crate::analysis::spectrum_scale::run(dir, config)
    } else {
        crate::analysis::universal::run(dir, config)
    }
}