#include "common/assert.h"
#include "common/common.h"
#include "cpp-common/bt2c/c-string-view.hpp"
+#include "cpp-common/vendor/wise-enum/wise_enum.h"
#include "borrowed-object-iterator.hpp"
#include "borrowed-object.hpp"
template <typename LibObjT>
class CommonMapValue;
-enum class ValueType
-{
- NUL = BT_VALUE_TYPE_NULL,
- BOOL = BT_VALUE_TYPE_BOOL,
- UNSIGNED_INTEGER = BT_VALUE_TYPE_UNSIGNED_INTEGER,
- SIGNED_INTEGER = BT_VALUE_TYPE_SIGNED_INTEGER,
- REAL = BT_VALUE_TYPE_REAL,
- STRING = BT_VALUE_TYPE_STRING,
- ARRAY = BT_VALUE_TYPE_ARRAY,
- MAP = BT_VALUE_TYPE_MAP,
-};
+/* clang-format off */
+
+WISE_ENUM_CLASS(ValueType,
+ (Null, BT_VALUE_TYPE_NULL),
+ (Bool, BT_VALUE_TYPE_BOOL),
+ (UnsignedInteger, BT_VALUE_TYPE_UNSIGNED_INTEGER),
+ (SignedInteger, BT_VALUE_TYPE_SIGNED_INTEGER),
+ (Real, BT_VALUE_TYPE_REAL),
+ (String, BT_VALUE_TYPE_STRING),
+ (Array, BT_VALUE_TYPE_ARRAY),
+ (Map, BT_VALUE_TYPE_MAP));
+
+/* clang-format on */
template <typename ValueObjT>
class CommonValueRawValueProxy final