stepflow_data/value/
bool_value.rs1use super::{Value, BaseValue, InvalidValue};
2
3define_value!(BoolValue, bool);
4
5
6impl std::str::FromStr for BoolValue {
7 type Err = InvalidValue;
8
9 fn from_str(s: &str) -> Result<Self, Self::Err> {
10 match &s.to_lowercase()[..] {
11 "true" => Ok(BoolValue::new(true)),
12 "false" => Ok(BoolValue::new(false)),
13 _ => Err(InvalidValue::WrongValue),
14 }
15 }
16}
17
18#[cfg(test)]
19mod tests {
20 use super::{BoolValue, InvalidValue};
21
22 #[test]
23 fn from_str() {
24 let true_val = "tRuE".parse::<BoolValue>().unwrap();
25 assert_eq!(*true_val.val(), true);
26
27 let false_val = "FaLse".parse::<BoolValue>().unwrap();
28 assert_eq!(*false_val.val(), false);
29
30 let bad_val_result = "hiya".parse::<BoolValue>();
31 assert_eq!(bad_val_result, Err(InvalidValue::WrongValue));
32 }
33}