implement IkarusPropertySource and switch to cppbase::overloaded

Signed-off-by: Folling <mail@folling.io>
This commit is contained in:
Folling 2023-12-11 16:16:34 +01:00 committed by Folling
parent 700d9a92f9
commit 8fa56decd0
Signed by: folling
SSH key fingerprint: SHA256:S9qEx5WCFFLK49tE/LKnKuJYM5sw+++Dn6qJbbyxnCY
10 changed files with 90 additions and 50 deletions

View file

@ -1,16 +1,15 @@
#pragma once
#include <variant>
#include <boost/variant2.hpp>
#include <ikarus/objects/properties/property_source.h>
struct IkarusPropertySource {
public:
using Data = std::variant<IkarusBlueprint *, IkarusEntity *>;
using Data = boost::variant2::variant<IkarusBlueprint *, IkarusEntity *>;
public:
inline explicit IkarusPropertySource(Data data):
_data{data} {}
explicit IkarusPropertySource(Data data);
IkarusPropertySource(IkarusPropertySource const&) = default;
IkarusPropertySource(IkarusPropertySource&&) = default;
@ -18,13 +17,8 @@ public:
IkarusPropertySource& operator=(IkarusPropertySource const&) = default;
IkarusPropertySource& operator=(IkarusPropertySource&&) = default;
~IkarusPropertySource() = default;
virtual ~IkarusPropertySource() = default;
public:
[[nodiscard]] inline Data const& get_data() const {
return _data;
}
private:
std::variant<IkarusBlueprint *, IkarusEntity *> _data;
Data data;
};