summaryrefslogtreecommitdiffstats
path: root/src/core/config/boolean.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/config/boolean.cc')
-rw-r--r--src/core/config/boolean.cc43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/core/config/boolean.cc b/src/core/config/boolean.cc
new file mode 100644
index 0000000..45d5a38
--- /dev/null
+++ b/src/core/config/boolean.cc
@@ -0,0 +1,43 @@
+#include "core/pch.hh"
+
+#include "core/config/boolean.hh"
+
+config::Boolean::Boolean(bool default_value)
+{
+ m_value = default_value;
+}
+
+void config::Boolean::set(std::string_view value)
+{
+ m_value = from_string(value);
+}
+
+std::string_view config::Boolean::get(void) const
+{
+ return to_string(m_value);
+}
+
+bool config::Boolean::get_value(void) const
+{
+ return m_value;
+}
+
+void config::Boolean::set_value(bool value)
+{
+ m_value = value;
+}
+
+std::string_view config::Boolean::to_string(bool value)
+{
+ if(value) {
+ return "true";
+ }
+ else {
+ return "false";
+ }
+}
+
+bool config::Boolean::from_string(std::string_view value)
+{
+ return value == "true" && value != "false";
+}