1 #ifndef ZSERIO_ENUMS_H_INC
2 #define ZSERIO_ENUMS_H_INC
16 class BitStreamReader;
17 class BitStreamWriter;
46 T
valueToEnum(
typename std::underlying_type<T>::type rawValue);
56 constexpr
typename std::underlying_type<T>::type
enumToValue(T value)
58 return static_cast<typename std::underlying_type<T>::type
>(value);
84 [itemName](
const char* enumItemName) {
return itemName.
compare(enumItemName) == 0; });
91 const size_t ordinal =
static_cast<size_t>(std::distance(
EnumTraits<T>::names.begin(), foundIt));
102 template <
typename T>
114 template <
typename PACKING_CONTEXT,
typename T>
126 template <
typename T>
139 template <
typename PACKING_CONTEXT,
typename T>
153 template <
typename T>
168 template <
typename PACKING_CONTEXT,
typename T>
178 template <
typename T>
189 template <
typename T,
typename PACKING_CONTEXT>
198 template <
typename T>
208 template <
typename PACKING_CONTEXT,
typename T>
219 template <typename T, typename std::enable_if<std::is_enum<T>::value,
int>::type = 0>
int compare(BasicStringView other) const noexcept
T read(BitStreamReader &in)
constexpr std::underlying_type< T >::type enumToValue(T value)
void write(BitStreamWriter &out, T value)
T valueToEnum(typename std::underlying_type< T >::type rawValue)
T stringToEnum(StringView itemName)
CppRuntimeException & operator<<(CppRuntimeException &exception, const BasicBitBuffer< ALLOC > &bitBuffer)
size_t enumToOrdinal(T value)
size_t initializeOffsets(size_t bitPosition, T value)
const char * enumToString(T value)
void initPackingContext(PACKING_CONTEXT &context, T value)
uint32_t enumHashCode(T value)
size_t bitSizeOf(T value)