umya_spreadsheet/structs/
true_false_value.rs

1#[derive(Clone, Default, Debug)]
2pub struct TrueFalseValue {
3    value: Option<bool>,
4    value_default: bool,
5}
6impl TrueFalseValue {
7    #[inline]
8    pub(crate) fn get_value(&self) -> &bool {
9        self.value.as_ref().unwrap_or(&self.value_default)
10    }
11
12    #[inline]
13    pub(crate) fn get_value_string(&self) -> &str {
14        match self.get_value() {
15            true => "t",
16            false => "f",
17        }
18    }
19
20    #[inline]
21    pub(crate) fn set_value(&mut self, value: bool) -> &mut Self {
22        self.value = Some(value);
23        self
24    }
25
26    #[inline]
27    pub(crate) fn set_value_string<S: Into<String>>(&mut self, value: S) -> &mut Self {
28        let value: String = value.into();
29        self.set_value(!(value.eq_ignore_ascii_case("f") || value.eq_ignore_ascii_case("false")))
30    }
31
32    #[inline]
33    pub(crate) fn has_value(&self) -> bool {
34        self.value.is_some()
35    }
36
37    #[inline]
38    pub(crate) fn _get_hash_string(&self) -> &str {
39        if self.has_value() {
40            return self.get_value_string();
41        }
42        "empty!!"
43    }
44}