ralph_workflow/config/
parser.rs1#[must_use]
21pub fn parse_env_bool(value: &str) -> Option<bool> {
22 let normalized = value.trim().to_ascii_lowercase();
23 match normalized.as_str() {
24 "1" | "true" | "yes" | "y" | "on" => Some(true),
25 "0" | "false" | "no" | "n" | "off" => Some(false),
26 _ => None,
27 }
28}
29
30#[cfg(test)]
31mod tests {
32 use super::*;
33
34 #[test]
35 fn test_parse_env_bool() {
36 assert_eq!(parse_env_bool("1"), Some(true));
37 assert_eq!(parse_env_bool("true"), Some(true));
38 assert_eq!(parse_env_bool(" TRUE "), Some(true));
39 assert_eq!(parse_env_bool("on"), Some(true));
40 assert_eq!(parse_env_bool("yes"), Some(true));
41
42 assert_eq!(parse_env_bool("0"), Some(false));
43 assert_eq!(parse_env_bool("false"), Some(false));
44 assert_eq!(parse_env_bool(" FALSE "), Some(false));
45 assert_eq!(parse_env_bool("off"), Some(false));
46 assert_eq!(parse_env_bool("no"), Some(false));
47
48 assert_eq!(parse_env_bool(""), None);
49 assert_eq!(parse_env_bool("maybe"), None);
50 }
51}