63 enum Type { Null, Int, Bool, String, Double, Dict, Array, Int64 };
75 explicit
Variant(
int val) noexcept;
77 explicit
Variant(int64_t val) noexcept;
82 explicit
Variant(
double val) noexcept;
87 explicit
Variant(
bool val) noexcept;
97 explicit
Variant(
char const* val);
99 explicit
Variant(VariantMap const& val);
101 explicit
Variant(VariantArray const& val);
119 Variant& operator=(Variant const&);
120 Variant& operator=(Variant&&);
129 Variant& operator=(
int val) noexcept;
130 Variant& operator=(int64_t val) noexcept;
131 Variant& operator=(
double val) noexcept;
132 Variant& operator=(
bool val) noexcept;
133 Variant& operator=(
std::
string const& val);
134 Variant& operator=(
char const* val);
135 Variant& operator=(VariantMap const& val);
136 Variant& operator=(VariantArray const& val);
147 bool operator==(Variant const&) const noexcept;
148 bool operator<(Variant const&) const noexcept;
158 int64_t get_int64_t() const;
159 double get_double() const;
160 bool get_bool() const;
161 std::
string get_string() const;
162 VariantMap get_dict() const;
163 VariantArray get_array() const;
184 void swap(Variant& other) noexcept;
200 Variant(
internal::NullVariant const&);
203 friend class VariantImpl;
209 void swap(Variant&, Variant&) noexcept;
std::vector< Variant > VariantArray
An array of variants.
Definition: Variant.h:43
Simple variant class that can hold an integer, boolean, string, double, dictionary, array or null value.
Definition: Variant.h:57
bool is_null() const
Test if variant holds null value.
Definition: Variant.cpp:274
void swap(Variant &other) noexcept
Swaps the contents of this Variant with other.
Definition: Variant.cpp:285
Variant() noexcept
The default constructor creates a Variant instance containing a null.
Definition: Variant.cpp:57
static Variant deserialize_json(std::string const &json_string)
Deserializes a JSON encoded string to a Variant.
Definition: Variant.cpp:301
Top-level namespace for all things Unity-related.
Definition: Version.h:49
std::map< std::string, Variant > VariantMap
A dictionary of (string, Variant) pairs.
Definition: Variant.h:38
Definition: ActionMetadata.h:31
Type
Type of value held by a Variant instance.
Definition: Variant.h:63
std::string serialize_json() const
Serializes the variant to a JSON encoded string.
Definition: Variant.cpp:295
Type which() const noexcept
Returns the type of value currently stored by this Variant.
Definition: Variant.cpp:279
static Variant const & null()
Construct a null variant.
Definition: Variant.cpp:111