#pragma once #include #include #include struct IkarusValue { public: using Data = boost::variant2::variant; constexpr static auto SMALL_VEC_VALUE_SIZE = 8; 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: Data data; };