pub fn to_bool(value: &str) -> bool {
let lower = value.trim().to_lowercase();
if lower == "true" || lower == "yes" || lower == "1" || lower == "on" {
return true;
}
if lower == "false" || lower == "no" || lower == "0" || lower == "off" || lower == "none" {
return false;
}
false
}
pub fn is_truthy(value: &str) -> bool {
!value.trim().is_empty() && to_bool(value)
}
pub fn is_falsy(value: &str) -> bool {
value.trim().is_empty() || !to_bool(value)
}
pub fn parse_env_bool(key: &str) -> Option<bool> {
std::env::var(key).ok().map(|v| to_bool(&v))
}
pub fn is_env_truthy(key: &str) -> bool {
parse_env_bool(key).unwrap_or(false)
}