1 // Protocol Buffers - Google's data interchange format 2 // Copyright 2023 Google LLC. All rights reserved. 3 // 4 // Use of this source code is governed by a BSD-style 5 // license that can be found in the LICENSE file or at 6 // https://developers.google.com/open-source/licenses/bsd 7 8 // IWYU pragma: private, include "upb/reflection/def.h" 9 10 #ifndef UPB_REFLECTION_ENUM_DEF_H_ 11 #define UPB_REFLECTION_ENUM_DEF_H_ 12 13 #include "upb/base/string_view.h" 14 #include "upb/reflection/common.h" 15 16 // Must be last. 17 #include "upb/port/def.inc" 18 19 #ifdef __cplusplus 20 extern "C" { 21 #endif 22 23 bool upb_EnumDef_CheckNumber(const upb_EnumDef* e, int32_t num); 24 const upb_MessageDef* upb_EnumDef_ContainingType(const upb_EnumDef* e); 25 int32_t upb_EnumDef_Default(const upb_EnumDef* e); 26 UPB_API const upb_FileDef* upb_EnumDef_File(const upb_EnumDef* e); 27 const upb_EnumValueDef* upb_EnumDef_FindValueByName(const upb_EnumDef* e, 28 const char* name); 29 UPB_API const upb_EnumValueDef* upb_EnumDef_FindValueByNameWithSize( 30 const upb_EnumDef* e, const char* name, size_t size); 31 UPB_API const upb_EnumValueDef* upb_EnumDef_FindValueByNumber( 32 const upb_EnumDef* e, int32_t num); 33 UPB_API const char* upb_EnumDef_FullName(const upb_EnumDef* e); 34 bool upb_EnumDef_HasOptions(const upb_EnumDef* e); 35 bool upb_EnumDef_IsClosed(const upb_EnumDef* e); 36 bool upb_EnumDef_IsSpecifiedAsClosed(const upb_EnumDef* e); 37 38 // Creates a mini descriptor string for an enum, returns true on success. 39 bool upb_EnumDef_MiniDescriptorEncode(const upb_EnumDef* e, upb_Arena* a, 40 upb_StringView* out); 41 42 const char* upb_EnumDef_Name(const upb_EnumDef* e); 43 const UPB_DESC(EnumOptions) * upb_EnumDef_Options(const upb_EnumDef* e); 44 const UPB_DESC(FeatureSet) * upb_EnumDef_ResolvedFeatures(const upb_EnumDef* e); 45 46 upb_StringView upb_EnumDef_ReservedName(const upb_EnumDef* e, int i); 47 int upb_EnumDef_ReservedNameCount(const upb_EnumDef* e); 48 49 const upb_EnumReservedRange* upb_EnumDef_ReservedRange(const upb_EnumDef* e, 50 int i); 51 int upb_EnumDef_ReservedRangeCount(const upb_EnumDef* e); 52 53 UPB_API const upb_EnumValueDef* upb_EnumDef_Value(const upb_EnumDef* e, int i); 54 UPB_API int upb_EnumDef_ValueCount(const upb_EnumDef* e); 55 56 #ifdef __cplusplus 57 } /* extern "C" */ 58 #endif 59 60 #include "upb/port/undef.inc" 61 62 #endif /* UPB_REFLECTION_ENUM_DEF_H_ */ 63