Files
yoga/yoga/enums/Justify.h
Nick Gerleman 1f4c524b0e C++ style enums 1/N: Generator
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
2023-09-14 20:50:01 -07:00

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