summaryrefslogtreecommitdiffstats
path: root/core/config
diff options
context:
space:
mode:
Diffstat (limited to 'core/config')
-rw-r--r--core/config/CMakeLists.txt7
-rw-r--r--core/config/boolean.cc43
-rw-r--r--core/config/boolean.hh25
-rw-r--r--core/config/ivalue.hh11
-rw-r--r--core/config/number.hh130
-rw-r--r--core/config/string.cc18
-rw-r--r--core/config/string.hh31
7 files changed, 0 insertions, 265 deletions
diff --git a/core/config/CMakeLists.txt b/core/config/CMakeLists.txt
deleted file mode 100644
index 39752d4..0000000
--- a/core/config/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-target_sources(core PRIVATE
- "${CMAKE_CURRENT_LIST_DIR}/boolean.cc"
- "${CMAKE_CURRENT_LIST_DIR}/boolean.hh"
- "${CMAKE_CURRENT_LIST_DIR}/ivalue.hh"
- "${CMAKE_CURRENT_LIST_DIR}/number.hh"
- "${CMAKE_CURRENT_LIST_DIR}/string.cc"
- "${CMAKE_CURRENT_LIST_DIR}/string.hh")
diff --git a/core/config/boolean.cc b/core/config/boolean.cc
deleted file mode 100644
index 5981b6d..0000000
--- a/core/config/boolean.cc
+++ /dev/null
@@ -1,43 +0,0 @@
-#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";
-}
diff --git a/core/config/boolean.hh b/core/config/boolean.hh
deleted file mode 100644
index f4d3acd..0000000
--- a/core/config/boolean.hh
+++ /dev/null
@@ -1,25 +0,0 @@
-#pragma once
-
-#include "core/config/ivalue.hh"
-
-namespace config
-{
-class Boolean : public IValue {
-public:
- explicit Boolean(bool default_value = false);
- virtual ~Boolean(void) = default;
-
- virtual void set(std::string_view value) override;
- virtual std::string_view get(void) const override;
-
- bool get_value(void) const;
- void set_value(bool value);
-
-private:
- bool m_value;
-
-public:
- static std::string_view to_string(bool value);
- static bool from_string(std::string_view value);
-};
-} // namespace config
diff --git a/core/config/ivalue.hh b/core/config/ivalue.hh
deleted file mode 100644
index 782da76..0000000
--- a/core/config/ivalue.hh
+++ /dev/null
@@ -1,11 +0,0 @@
-#pragma once
-
-namespace config
-{
-class IValue {
-public:
- virtual ~IValue(void) = default;
- virtual void set(std::string_view value) = 0;
- virtual std::string_view get(void) const = 0;
-};
-} // namespace config
diff --git a/core/config/number.hh b/core/config/number.hh
deleted file mode 100644
index 59d3f47..0000000
--- a/core/config/number.hh
+++ /dev/null
@@ -1,130 +0,0 @@
-#pragma once
-
-#include "core/config/ivalue.hh"
-
-#include "core/math/concepts.hh"
-
-namespace config
-{
-template<math::arithmetic T>
-class Number : public IValue {
-public:
- explicit Number(T default_value = T(0));
- explicit Number(T default_value, T min_value, T max_value);
- virtual ~Number(void) = default;
-
- virtual void set(std::string_view value) override;
- virtual std::string_view get(void) const override;
-
- T get_value(void) const;
- void set_value(T value);
-
- T get_min_value(void) const;
- T get_max_value(void) const;
- void set_limits(T min_value, T max_value);
-
-private:
- T m_value;
- T m_min_value;
- T m_max_value;
- std::string m_string;
-};
-} // namespace config
-
-namespace config
-{
-class Int final : public Number<int> {
-public:
- using Number<int>::Number;
-};
-
-class Float final : public Number<float> {
-public:
- using Number<float>::Number;
-};
-
-class Unsigned final : public Number<unsigned int> {
-public:
- using Number<unsigned int>::Number;
-};
-
-class Unsigned64 final : public Number<std::uint64_t> {
-public:
- using Number<std::uint64_t>::Number;
-};
-
-class SizeType final : public Number<std::size_t> {
-public:
- using Number<std::size_t>::Number;
-};
-} // namespace config
-
-template<math::arithmetic T>
-inline config::Number<T>::Number(T default_value)
-{
- m_value = default_value;
- m_min_value = std::numeric_limits<T>::lowest();
- m_max_value = std::numeric_limits<T>::max();
- m_string = std::to_string(default_value);
-}
-
-template<math::arithmetic T>
-inline config::Number<T>::Number(T default_value, T min_value, T max_value)
-{
- m_value = default_value;
- m_min_value = min_value;
- m_max_value = max_value;
- m_string = std::to_string(default_value);
-}
-
-template<math::arithmetic T>
-inline void config::Number<T>::set(std::string_view value)
-{
- T parsed_value;
- auto result = std::from_chars(value.data(), value.data() + value.size(), parsed_value);
-
- if(result.ec == std::errc()) {
- m_value = std::clamp(parsed_value, m_min_value, m_max_value);
- m_string = std::to_string(m_value);
- }
-}
-
-template<math::arithmetic T>
-inline std::string_view config::Number<T>::get(void) const
-{
- return m_string;
-}
-
-template<math::arithmetic T>
-inline T config::Number<T>::get_value(void) const
-{
- return m_value;
-}
-
-template<math::arithmetic T>
-inline void config::Number<T>::set_value(T value)
-{
- m_value = std::clamp(value, m_min_value, m_max_value);
- m_string = std::to_string(m_value);
-}
-
-template<math::arithmetic T>
-inline T config::Number<T>::get_min_value(void) const
-{
- return m_min_value;
-}
-
-template<math::arithmetic T>
-inline T config::Number<T>::get_max_value(void) const
-{
- return m_max_value;
-}
-
-template<math::arithmetic T>
-inline void config::Number<T>::set_limits(T min_value, T max_value)
-{
- m_min_value = min_value;
- m_max_value = max_value;
- m_value = std::clamp(m_value, m_min_value, m_max_value);
- m_string = std::to_string(m_value);
-}
diff --git a/core/config/string.cc b/core/config/string.cc
deleted file mode 100644
index 8fb9d70..0000000
--- a/core/config/string.cc
+++ /dev/null
@@ -1,18 +0,0 @@
-#include "core/pch.hh"
-
-#include "core/config/string.hh"
-
-config::String::String(std::string_view default_value)
-{
- m_value = default_value;
-}
-
-void config::String::set(std::string_view value)
-{
- m_value = value;
-}
-
-std::string_view config::String::get(void) const
-{
- return m_value;
-}
diff --git a/core/config/string.hh b/core/config/string.hh
deleted file mode 100644
index d7bbbc1..0000000
--- a/core/config/string.hh
+++ /dev/null
@@ -1,31 +0,0 @@
-#pragma once
-
-#include "core/config/ivalue.hh"
-
-namespace config
-{
-class String : public IValue {
-public:
- explicit String(std::string_view default_value);
- virtual ~String(void) = default;
-
- virtual void set(std::string_view value) override;
- virtual std::string_view get(void) const override;
-
- constexpr const std::string& get_value(void) const noexcept;
- constexpr const char* c_str(void) const noexcept;
-
-private:
- std::string m_value;
-};
-} // namespace config
-
-constexpr const std::string& config::String::get_value(void) const noexcept
-{
- return m_value;
-}
-
-constexpr const char* config::String::c_str(void) const noexcept
-{
- return m_value.c_str();
-}