#pragma once #include #include #include struct IkarusValue { public: using Data = std::variant; public: explicit IkarusValue(Data data); IkarusValue(IkarusValue const&) = default; IkarusValue(IkarusValue&&) noexcept = default; IkarusValue& operator=(IkarusValue const&) = default; IkarusValue& operator=(IkarusValue&&) noexcept = default; virtual ~IkarusValue() = default; public: struct FromJsonError {}; [[nodiscard]] static cppbase::Result from_json(boost::json::value const& json); [[nodiscard]] boost::json::value to_json() const; public: bool indeterminate{false}; Data data; };