#pragma once #include #include #include struct IkarusPropertySource { public: using Data = boost::variant2::variant; public: explicit IkarusPropertySource(Data data); IkarusPropertySource(IkarusPropertySource const &) = default; IkarusPropertySource(IkarusPropertySource &&) = default; IkarusPropertySource & operator=(IkarusPropertySource const &) = default; IkarusPropertySource & operator=(IkarusPropertySource &&) = default; virtual ~IkarusPropertySource() = default; public: [[nodiscard]] IkarusId get_id() const; public: Data data; };