#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
pub enum SandboxMode {
#[default]
PlatformDefault,
Enabled,
Disabled,
}
pub fn resolve_no_sandbox(mode: SandboxMode) -> bool {
match mode {
SandboxMode::Enabled => false,
SandboxMode::Disabled => true,
SandboxMode::PlatformDefault => {
#[cfg(target_os = "macos")]
{
cfg!(feature = "debug")
}
#[cfg(not(target_os = "macos"))]
{
true
}
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn enabled_means_sandbox_on() {
assert!(!resolve_no_sandbox(SandboxMode::Enabled));
}
#[test]
fn disabled_means_no_sandbox() {
assert!(resolve_no_sandbox(SandboxMode::Disabled));
}
#[cfg(not(target_os = "macos"))]
#[test]
fn platform_default_is_no_sandbox_on_non_macos() {
assert!(resolve_no_sandbox(SandboxMode::PlatformDefault));
}
}