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;
92 explicit Variant(std::string
const& val);
97 explicit Variant(
char const* val);
99 explicit Variant(VariantMap
const& val);
101 explicit Variant(VariantArray
const& val);
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;
169 bool is_null()
const;
177 Type which()
const noexcept;
192 std::string serialize_json()
const;
196 static Variant deserialize_json(std::string
const& json_string);
200 Variant(internal::NullVariant
const&);
202 std::unique_ptr<internal::VariantImpl> p;
203 friend class VariantImpl;
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
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
void swap(Variant &, Variant &) noexcept
Swaps the contents of two Variants.
Definition: Variant.cpp:290