#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub enum ShellAccess {
Denied,
#[default]
Granted,
}
impl ShellAccess {
pub fn is_granted(self) -> bool {
matches!(self, Self::Granted)
}
pub fn from_flag(granted: bool) -> Self {
if granted { Self::Granted } else { Self::Denied }
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn commands_are_the_default() {
assert_eq!(ShellAccess::default(), ShellAccess::Granted);
assert!(ShellAccess::default().is_granted());
}
#[test]
fn a_flag_maps_both_ways() {
assert_eq!(ShellAccess::from_flag(true), ShellAccess::Granted);
assert_eq!(ShellAccess::from_flag(false), ShellAccess::Denied);
}
}