aboutsummaryrefslogtreecommitdiff
path: root/src/variant.hpp
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2018-11-26 20:47:47 +0100
committerFelix Morgner <felix.morgner@gmail.com>2018-11-26 20:47:47 +0100
commitbae92cea3bcbacd7883499da61a0e54f13da6d23 (patch)
treefc6c44d8d52ef57ee0b154ab97257db5fa542c6a /src/variant.hpp
parent817a09c2192953b72cd1b5fbc0c4f9c96ae44776 (diff)
downloadwanda-bae92cea3bcbacd7883499da61a0e54f13da6d23.tar.xz
wanda-bae92cea3bcbacd7883499da61a0e54f13da6d23.zip
wanda: architecture rework
Diffstat (limited to 'src/variant.hpp')
-rw-r--r--src/variant.hpp47
1 files changed, 0 insertions, 47 deletions
diff --git a/src/variant.hpp b/src/variant.hpp
deleted file mode 100644
index 8a5fb03..0000000
--- a/src/variant.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef WANDA_VARIANT_HPP
-#define WANDA_VARIANT_HPP
-
-#include <gio/gio.h>
-
-#include <optional>
-#include <string>
-#include <type_traits>
-
-namespace wanda {
-
-struct variant {
-
- explicit variant(GVariant * variant);
-
- ~variant();
-
- template<typename Type> std::optional<Type> get() const {
- if(!m_value) {
- return std::nullopt;
- }
-
- if constexpr(std::is_same_v<Type, bool>) {
- if(is_of_type(G_VARIANT_TYPE_BOOLEAN)) {
- return static_cast<bool>(g_variant_get_boolean(m_value));
- }
- } else if constexpr(std::is_same_v<Type, std::string>) {
- if(is_of_type(G_VARIANT_TYPE_STRING)) {
- auto length = gsize{};
- auto value = g_variant_get_string(m_value, &length);
- return std::string(value, static_cast<std::size_t>(length));
- }
- }
-
- return std::nullopt;
- }
-
-
-private:
- bool is_of_type(GVariantType const * const type) const;
-
- GVariant * const m_value;
-};
-
-}
-
-#endif \ No newline at end of file