8#ifndef SEN_CORE_META_OPTIONAL_TRAITS_H
9#define SEN_CORE_META_OPTIONAL_TRAITS_H
67 auto hasValue = val.has_value();
78 bool hasValue =
false;
83 typename T::value_type content {};
89 val = T(std::nullopt);
96 auto hasValue = val.has_value();
97 auto result = impl::getSerializedSize(hasValue);
126 val = T(std::nullopt);
130 typename T::value_type content {};
void writeBool(bool val)
Definition output_stream.h:36
InputStreamTemplate< LittleEndian > InputStream
Definition input_stream.h:84
Definition type_traits.h:47
Definition type_traits.h:34
std::map< std::string, Var, std::less<> > VarMap
A map of vars to represent structures.
Definition var.h:107
std::string toJson(const Var &var, int indent=2)
Converts a variant into its Json representation. See https://www.Json.org/Json-en....
Var fromJson(const std::string &str)
Inverse as toJson.
OutputStreamTemplate< LittleEndian > OutputStream
Definition output_stream.h:64
Base class for enum traits.
Definition optional_traits.h:35
static void fromJsonString(const std::string &str, T &val)
Definition optional_traits.h:51
static void variantToValue(const Var &var, T &val)
Definition optional_traits.h:121
static std::string toJsonString(const T &val)
Definition optional_traits.h:44
static void valueToVariant(const T &val, Var &var)
Definition optional_traits.h:108
static uint32_t serializedSize(T val) noexcept
Definition optional_traits.h:94
static void read(InputStream &in, T &val)
Definition optional_traits.h:76
static constexpr bool available
Definition optional_traits.h:36
static void write(OutputStream &out, T val)
Definition optional_traits.h:65
Can hold any supported value type. Wraps std::variant to allow recursion and implements some helpers.
Definition var.h:119
constexpr bool isEmpty() const noexcept
True if the Var holds a value of std::monostate.
Definition var.h:199
constexpr T & get()
Same as std::get<T>(this->value);.
Definition var.h:210
constexpr bool holds() const noexcept
True if the Var holds a value of T.
Definition var.h:177