stepflow_data/value/
bool_value.rs

1use 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}