From bae92cea3bcbacd7883499da61a0e54f13da6d23 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Mon, 26 Nov 2018 20:47:47 +0100 Subject: wanda: architecture rework --- src/variant.hpp | 47 ----------------------------------------------- 1 file changed, 47 deletions(-) delete mode 100644 src/variant.hpp (limited to 'src/variant.hpp') 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 - -#include -#include -#include - -namespace wanda { - -struct variant { - - explicit variant(GVariant * variant); - - ~variant(); - - template std::optional get() const { - if(!m_value) { - return std::nullopt; - } - - if constexpr(std::is_same_v) { - if(is_of_type(G_VARIANT_TYPE_BOOLEAN)) { - return static_cast(g_variant_get_boolean(m_value)); - } - } else if constexpr(std::is_same_v) { - 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(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 -- cgit v1.2.3