pub fn kstrtobool(string: &CStr) -> Result<bool>Expand description
Convert common user inputs into boolean values using the kernel’s kstrtobool function.
This routine returns Ok(bool) if the first character is one of ‘YyTt1NnFf0’, or
[oO][NnFf] for “on” and “off”. Otherwise it will return Err(EINVAL).
§Examples
// Lowercase
assert_eq!(kstrtobool(c"true"), Ok(true));
assert_eq!(kstrtobool(c"tr"), Ok(true));
assert_eq!(kstrtobool(c"t"), Ok(true));
assert_eq!(kstrtobool(c"twrong"), Ok(true));
assert_eq!(kstrtobool(c"false"), Ok(false));
assert_eq!(kstrtobool(c"f"), Ok(false));
assert_eq!(kstrtobool(c"yes"), Ok(true));
assert_eq!(kstrtobool(c"no"), Ok(false));
assert_eq!(kstrtobool(c"on"), Ok(true));
assert_eq!(kstrtobool(c"off"), Ok(false));
// Camel case
assert_eq!(kstrtobool(c"True"), Ok(true));
assert_eq!(kstrtobool(c"False"), Ok(false));
assert_eq!(kstrtobool(c"Yes"), Ok(true));
assert_eq!(kstrtobool(c"No"), Ok(false));
assert_eq!(kstrtobool(c"On"), Ok(true));
assert_eq!(kstrtobool(c"Off"), Ok(false));
// All caps
assert_eq!(kstrtobool(c"TRUE"), Ok(true));
assert_eq!(kstrtobool(c"FALSE"), Ok(false));
assert_eq!(kstrtobool(c"YES"), Ok(true));
assert_eq!(kstrtobool(c"NO"), Ok(false));
assert_eq!(kstrtobool(c"ON"), Ok(true));
assert_eq!(kstrtobool(c"OFF"), Ok(false));
// Numeric
assert_eq!(kstrtobool(c"1"), Ok(true));
assert_eq!(kstrtobool(c"0"), Ok(false));
// Invalid input
assert_eq!(kstrtobool(c"invalid"), Err(EINVAL));
assert_eq!(kstrtobool(c"2"), Err(EINVAL));