1 #ifndef ZSERIO_ENUMS_H_INC 2 #define ZSERIO_ENUMS_H_INC 17 class BitStreamReader;
18 class BitStreamWriter;
48 T
valueToEnum(
typename std::underlying_type<T>::type rawValue);
58 constexpr
typename std::underlying_type<T>::type
enumToValue(T value)
60 return static_cast<typename std::underlying_type<T>::type
>(value);
86 [itemName](
const char* enumItemName){
return itemName.
compare(enumItemName) == 0; });
93 const size_t ordinal =
static_cast<size_t>(std::distance(
EnumTraits<T>::names.begin(), foundIt));
104 template <
typename T>
116 template <
typename PACKING_CONTEXT,
typename T>
128 template <
typename T>
141 template <
typename PACKING_CONTEXT,
typename T>
142 size_t bitSizeOf(PACKING_CONTEXT& context, T value);
155 template <
typename T>
170 template <
typename PACKING_CONTEXT,
typename T>
180 template <
typename T>
191 template <
typename T,
typename PACKING_CONTEXT>
200 template <
typename T>
210 template <
typename PACKING_CONTEXT,
typename T>
221 template <typename T, typename std::enable_if<std::is_enum<T>::value,
int>::type = 0>
230 #endif // ZSERIO_ENUMS_H_INC
T stringToEnum(StringView itemName)
int compare(BasicStringView other) const noexcept
const char * enumToString(T value)
size_t enumToOrdinal(T value)
T read(BitStreamReader &in)
void write(BitStreamWriter &out, T value)
constexpr std::underlying_type< T >::type enumToValue(T value)
uint32_t enumHashCode(T value)
size_t initializeOffsets(size_t bitPosition, T value)
T valueToEnum(typename std::underlying_type< T >::type rawValue)
void initPackingContext(PACKING_CONTEXT &context, T value)
size_t bitSizeOf(T value)
CppRuntimeException & operator<<(CppRuntimeException &exception, const BasicBitBuffer< ALLOC > &bitBuffer)