8#ifndef SEN_CORE_META_OPTIONAL_TRAITS_H
9#define SEN_CORE_META_OPTIONAL_TRAITS_H
51 auto hasValue = val.has_value();
62 bool hasValue =
false;
67 typename T::value_type content;
73 val = T(std::nullopt);
80 auto hasValue = val.has_value();
81 auto result = impl::getSerializedSize(hasValue);
110 val = T(std::nullopt);
114 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
OutputStreamTemplate< LittleEndian > OutputStream
Definition output_stream.h:64
Base class for enum traits.
Definition optional_traits.h:32
static void variantToValue(const Var &var, T &val)
Definition optional_traits.h:105
static void valueToVariant(const T &val, Var &var)
Definition optional_traits.h:92
static uint32_t serializedSize(T val) noexcept
Definition optional_traits.h:78
static void read(InputStream &in, T &val)
Definition optional_traits.h:60
static constexpr bool available
Definition optional_traits.h:33
static void write(OutputStream &out, T val)
Definition optional_traits.h:49
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