Skip to main content

sciforge_parser/toml/
value.rs

1#[derive(Clone, Copy, Debug, PartialEq)]
2pub enum TomlValue<'a> {
3    String(&'a str),
4    Integer(i64),
5    Float(f64),
6    Bool(bool),
7    Table,
8    Array,
9    ArrayOfTables,
10}
11
12impl<'a> TomlValue<'a> {
13    pub const fn is_table(&self) -> bool {
14        matches!(self, TomlValue::Table)
15    }
16
17    pub const fn is_array(&self) -> bool {
18        matches!(self, TomlValue::Array)
19    }
20
21    pub const fn as_str(&self) -> Option<&str> {
22        match self {
23            TomlValue::String(v) => Some(v),
24            _ => None,
25        }
26    }
27
28    pub const fn as_bool(&self) -> Option<bool> {
29        match self {
30            TomlValue::Bool(v) => Some(*v),
31            _ => None,
32        }
33    }
34
35    pub const fn as_integer(&self) -> Option<i64> {
36        match self {
37            TomlValue::Integer(v) => Some(*v),
38            _ => None,
39        }
40    }
41
42    pub const fn as_float(&self) -> Option<f64> {
43        match self {
44            TomlValue::Float(v) => Some(*v),
45            _ => None,
46        }
47    }
48}