|
31 | 31 |
|
32 | 32 | #include "common/utils/utils_enum.h" // Ensure this provides ToValue and FromValue |
33 | 33 |
|
34 | | -namespace common |
35 | | -{ |
36 | | - |
| 34 | +namespace common { |
37 | 35 | template <typename E> |
38 | 36 | requires std::is_enum_v<E> |
39 | | -constexpr E operator|(E lhs, E rhs) |
40 | | -{ |
| 37 | +constexpr E operator|(E lhs, E rhs) { |
41 | 38 | return static_cast<E>(ToValue(lhs) | ToValue(rhs)); |
42 | 39 | } |
43 | 40 |
|
44 | 41 | template <typename E> |
45 | 42 | requires std::is_enum_v<E> |
46 | | -constexpr E operator&(E lhs, E rhs) |
47 | | -{ |
| 43 | +constexpr E operator&(E lhs, E rhs) { |
48 | 44 | return static_cast<E>(ToValue(lhs) & ToValue(rhs)); |
49 | 45 | } |
50 | 46 |
|
51 | 47 | template <typename E> |
52 | 48 | requires std::is_enum_v<E> |
53 | | -constexpr E operator~(E e) |
54 | | -{ |
| 49 | +constexpr E operator~(E e) { |
55 | 50 | return static_cast<E>(~ToValue(e)); |
56 | 51 | } |
57 | 52 |
|
58 | 53 | template <typename E> |
59 | 54 | requires std::is_enum_v<E> |
60 | | -constexpr E& operator|=(E& lhs, E rhs) |
61 | | -{ |
| 55 | +constexpr E& operator|=(E& lhs, E rhs) { |
62 | 56 | lhs = lhs | rhs; |
63 | 57 | return lhs; |
64 | 58 | } |
65 | 59 |
|
66 | 60 | template <typename E> |
67 | 61 | requires std::is_enum_v<E> |
68 | | -constexpr E& operator&=(E& lhs, E rhs) |
69 | | -{ |
| 62 | +constexpr E& operator&=(E& lhs, E rhs) { |
70 | 63 | lhs = lhs & rhs; |
71 | 64 | return lhs; |
72 | 65 | } |
73 | 66 |
|
74 | 67 | template <typename E> |
75 | 68 | requires std::is_enum_v<E> |
76 | | -constexpr void SetFlag(uint32_t& flags, E bit, bool enable) |
77 | | -{ |
78 | | - if (enable) |
79 | | - { |
| 69 | +constexpr void SetFlag(uint32_t& flags, E bit, bool enable) { |
| 70 | + if (enable) { |
80 | 71 | flags |= ToValue(bit); |
81 | | - } |
82 | | - else |
83 | | - { |
| 72 | + } else { |
84 | 73 | flags &= ~ToValue(bit); |
85 | 74 | } |
86 | 75 | } |
87 | 76 |
|
88 | 77 | template <typename E> |
89 | 78 | requires std::is_enum_v<E> |
90 | | -constexpr uint32_t SetFlagValue(uint32_t flags, E bit, bool enable) |
91 | | -{ |
92 | | - if (enable) |
93 | | - { |
| 79 | +constexpr uint32_t SetFlagValue(uint32_t flags, E bit, bool enable) { |
| 80 | + if (enable) { |
94 | 81 | return flags | ToValue(bit); |
95 | 82 | } |
96 | | - else |
97 | | - { |
98 | | - return flags & ~ToValue(bit); |
99 | | - } |
| 83 | + |
| 84 | + return flags & ~ToValue(bit); |
100 | 85 | } |
101 | 86 |
|
102 | 87 | template <typename E> |
103 | | -requires std::is_enum_v<E> |
| 88 | + requires std::is_enum_v<E> |
104 | 89 | constexpr bool IsFlagSet(uint32_t flags, E bit) { |
105 | 90 | return (flags & ToValue(bit)) != 0; |
106 | 91 | } |
107 | | - |
108 | 92 | } // namespace common |
109 | 93 |
|
110 | | -#endif // COMMON_UTILS_UTILS_FLAGS_H_ |
| 94 | +#endif // COMMON_UTILS_UTILS_FLAGS_H_ |
0 commit comments