umya_spreadsheet/structs/
boolean_value.rs

1#[derive(Clone, Default, Debug, Eq, Ord, PartialEq, PartialOrd)]
2pub struct BooleanValue {
3    value: Option<bool>,
4}
5
6impl BooleanValue {
7    #[inline]
8    pub(crate) fn get_value(&self) -> &bool {
9        self.value.as_ref().unwrap_or(&false)
10    }
11
12    #[inline]
13    pub(crate) fn get_value_string(&self) -> &str {
14        match *self.get_value() {
15            true => "1",
16            false => "0",
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        self.set_value(matches!(value.into().as_str(), "true" | "1"))
29    }
30
31    #[inline]
32    pub(crate) fn has_value(&self) -> bool {
33        self.value.is_some()
34    }
35
36    #[inline]
37    pub(crate) fn get_hash_string(&self) -> &str {
38        if self.has_value() {
39            return self.get_value_string();
40        }
41        "empty!!"
42    }
43}