pub type PresetBools = (bool, bool, bool);
pub fn preset_bools(name: &str) -> Option<PresetBools> {
match name.to_lowercase().as_str() {
"just_me" | "just-me" | "justme" | "personal" | "1" => Some((true, false, true)),
"my_team" | "my-team" | "myteam" | "team" | "2" => Some((true, true, true)),
"my_organization" | "my-organization" | "myorganization" | "organization" | "org" | "3" => {
Some((false, true, false))
}
_ => None,
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn preset_tuples_match_the_diet_table() {
assert_eq!(preset_bools("just_me"), Some((true, false, true)));
assert_eq!(preset_bools("my_team"), Some((true, true, true)));
assert_eq!(preset_bools("my_organization"), Some((false, true, false)));
}
#[test]
fn preset_aliases_resolve() {
assert_eq!(preset_bools("just-me"), Some((true, false, true)));
assert_eq!(preset_bools("team"), Some((true, true, true)));
assert_eq!(preset_bools("org"), Some((false, true, false)));
assert_eq!(preset_bools("1"), Some((true, false, true)));
assert_eq!(preset_bools("3"), Some((false, true, false)));
}
#[test]
fn unknown_preset_is_none() {
assert_eq!(preset_bools("invalid"), None);
assert_eq!(preset_bools(""), None);
}
}