1515#ifndef THIRD_PARTY_CEL_CPP_COMMON_TYPE_KIND_H_
1616#define THIRD_PARTY_CEL_CPP_COMMON_TYPE_KIND_H_
1717
18+ #include < cstdint>
1819#include < type_traits>
1920
2021#include " absl/base/attributes.h"
@@ -28,35 +29,35 @@ namespace cel {
2829// All `TypeKind` are valid `Kind`, but it is not guaranteed that all `Kind` are
2930// valid `TypeKind`.
3031enum class TypeKind : std::underlying_type_t <Kind> {
31- kNull = static_cast <int >(Kind::kNull ),
32- kBool = static_cast <int >(Kind::kBool ),
33- kInt = static_cast <int >(Kind::kInt ),
34- kUint = static_cast <int >(Kind::kUint ),
35- kDouble = static_cast <int >(Kind::kDouble ),
36- kString = static_cast <int >(Kind::kString ),
37- kBytes = static_cast <int >(Kind::kBytes ),
38- kStruct = static_cast <int >(Kind::kStruct ),
39- kDuration = static_cast <int >(Kind::kDuration ),
40- kTimestamp = static_cast <int >(Kind::kTimestamp ),
41- kList = static_cast <int >(Kind::kList ),
42- kMap = static_cast <int >(Kind::kMap ),
43- kUnknown = static_cast <int >(Kind::kUnknown ),
44- kType = static_cast <int >(Kind::kType ),
45- kError = static_cast <int >(Kind::kError ),
46- kAny = static_cast <int >(Kind::kAny ),
47- kDyn = static_cast <int >(Kind::kDyn ),
48- kOpaque = static_cast <int >(Kind::kOpaque ),
49-
50- kBoolWrapper = static_cast <int >(Kind::kBoolWrapper ),
51- kIntWrapper = static_cast <int >(Kind::kIntWrapper ),
52- kUintWrapper = static_cast <int >(Kind::kUintWrapper ),
53- kDoubleWrapper = static_cast <int >(Kind::kDoubleWrapper ),
54- kStringWrapper = static_cast <int >(Kind::kStringWrapper ),
55- kBytesWrapper = static_cast <int >(Kind::kBytesWrapper ),
56-
57- kTypeParam = static_cast <int >(Kind::kTypeParam ),
58- kFunction = static_cast <int >(Kind::kFunction ),
59- kEnum = static_cast <int >(Kind::kEnum ),
32+ kNull = static_cast <uint8_t >(Kind::kNull ),
33+ kBool = static_cast <uint8_t >(Kind::kBool ),
34+ kInt = static_cast <uint8_t >(Kind::kInt ),
35+ kUint = static_cast <uint8_t >(Kind::kUint ),
36+ kDouble = static_cast <uint8_t >(Kind::kDouble ),
37+ kString = static_cast <uint8_t >(Kind::kString ),
38+ kBytes = static_cast <uint8_t >(Kind::kBytes ),
39+ kStruct = static_cast <uint8_t >(Kind::kStruct ),
40+ kDuration = static_cast <uint8_t >(Kind::kDuration ),
41+ kTimestamp = static_cast <uint8_t >(Kind::kTimestamp ),
42+ kList = static_cast <uint8_t >(Kind::kList ),
43+ kMap = static_cast <uint8_t >(Kind::kMap ),
44+ kUnknown = static_cast <uint8_t >(Kind::kUnknown ),
45+ kType = static_cast <uint8_t >(Kind::kType ),
46+ kError = static_cast <uint8_t >(Kind::kError ),
47+ kAny = static_cast <uint8_t >(Kind::kAny ),
48+ kDyn = static_cast <uint8_t >(Kind::kDyn ),
49+ kOpaque = static_cast <uint8_t >(Kind::kOpaque ),
50+
51+ kBoolWrapper = static_cast <uint8_t >(Kind::kBoolWrapper ),
52+ kIntWrapper = static_cast <uint8_t >(Kind::kIntWrapper ),
53+ kUintWrapper = static_cast <uint8_t >(Kind::kUintWrapper ),
54+ kDoubleWrapper = static_cast <uint8_t >(Kind::kDoubleWrapper ),
55+ kStringWrapper = static_cast <uint8_t >(Kind::kStringWrapper ),
56+ kBytesWrapper = static_cast <uint8_t >(Kind::kBytesWrapper ),
57+
58+ kTypeParam = static_cast <uint8_t >(Kind::kTypeParam ),
59+ kFunction = static_cast <uint8_t >(Kind::kFunction ),
60+ kEnum = static_cast <uint8_t >(Kind::kEnum ),
6061
6162 // Legacy aliases, deprecated do not use.
6263 kNullType = kNull ,
@@ -69,7 +70,7 @@ enum class TypeKind : std::underlying_type_t<Kind> {
6970 // INTERNAL: Do not exceed 63. Implementation details rely on the fact that
7071 // we can store `Kind` using 6 bits.
7172 kNotForUseWithExhaustiveSwitchStatements =
72- static_cast <int >(Kind::kNotForUseWithExhaustiveSwitchStatements ),
73+ static_cast <uint8_t >(Kind::kNotForUseWithExhaustiveSwitchStatements ),
7374};
7475
7576constexpr Kind TypeKindToKind (TypeKind kind) {
0 commit comments