use std::collections::HashSet;
pub const COMMON_SWITCHES: &[&str] = &["-verbose", "-debug"];
pub const COMMON_VALUE_PARAMS: &[&str] = &[
"-erroraction",
"-warningaction",
"-informationaction",
"-progressaction",
"-errorvariable",
"-warningvariable",
"-informationvariable",
"-outvariable",
"-outbuffer",
"-pipelinevariable",
];
pub fn common_parameters() -> HashSet<&'static str> {
let mut set = HashSet::new();
for s in COMMON_SWITCHES {
set.insert(*s);
}
for s in COMMON_VALUE_PARAMS {
set.insert(*s);
}
set
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_common_switches() {
assert!(COMMON_SWITCHES.contains(&"-verbose"));
assert!(COMMON_SWITCHES.contains(&"-debug"));
}
#[test]
fn test_common_value_params() {
assert!(COMMON_VALUE_PARAMS.contains(&"-erroraction"));
assert!(COMMON_VALUE_PARAMS.contains(&"-outvariable"));
}
#[test]
fn test_common_parameters() {
let params = common_parameters();
assert!(params.contains("-verbose"));
assert!(params.contains("-debug"));
assert!(params.contains("-erroraction"));
assert!(params.contains("-warningaction"));
assert!(params.contains("-outvariable"));
}
#[test]
fn test_common_parameters_count() {
let params = common_parameters();
assert_eq!(params.len(), 12);
}
#[test]
fn test_common_parameters_case_sensitive() {
let params = common_parameters();
assert!(params.contains("-verbose"));
assert!(!params.contains("-VERBOSE"));
}
}