Summary: This adds logic to the enum generator to generate C++ style scoped enums. This gives us a few nicities over C enums, even if both must exist: 1. We can add types and keep unsgined enums directly in bitfields 2. Style/readability 3. Avoiding implicit int conversion Differential Revision: D49267996 fbshipit-source-id: 0ba9a79e19616f55abdc15012fbfd26933c6d179
50 lines
1.1 KiB
C++
50 lines
1.1 KiB
C++
/*
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
// @generated by enums.py
|
|
// clang-format off
|
|
#pragma once
|
|
|
|
#include <cstdint>
|
|
#include <yoga/YGEnums.h>
|
|
#include <yoga/enums/YogaEnums.h>
|
|
|
|
namespace facebook::yoga {
|
|
|
|
enum class Justify : uint8_t {
|
|
FlexStart = YGJustifyFlexStart,
|
|
Center = YGJustifyCenter,
|
|
FlexEnd = YGJustifyFlexEnd,
|
|
SpaceBetween = YGJustifySpaceBetween,
|
|
SpaceAround = YGJustifySpaceAround,
|
|
SpaceEvenly = YGJustifySpaceEvenly,
|
|
};
|
|
|
|
template <>
|
|
constexpr inline int32_t ordinalCount<Justify>() {
|
|
return 6;
|
|
}
|
|
|
|
template <>
|
|
constexpr inline int32_t bitCount<Justify>() {
|
|
return 3;
|
|
}
|
|
|
|
constexpr inline Justify scopedEnum(YGJustify unscoped) {
|
|
return static_cast<Justify>(unscoped);
|
|
}
|
|
|
|
constexpr inline YGJustify unscopedEnum(Justify scoped) {
|
|
return static_cast<YGJustify>(scoped);
|
|
}
|
|
|
|
inline const char* toString(Justify e) {
|
|
return YGJustifyToString(unscopedEnum(e));
|
|
}
|
|
|
|
} // namespace facebook::yoga
|