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 #ifndef UPB_MINI_TABLE_INTERNAL_FILE_H_ 9 #define UPB_MINI_TABLE_INTERNAL_FILE_H_ 10 11 // Must be last. 12 #include "upb/port/def.inc" 13 14 struct upb_MiniTableFile { 15 const struct upb_MiniTable** UPB_PRIVATE(msgs); 16 const struct upb_MiniTableEnum** UPB_PRIVATE(enums); 17 const struct upb_MiniTableExtension** UPB_PRIVATE(exts); 18 int UPB_PRIVATE(msg_count); 19 int UPB_PRIVATE(enum_count); 20 int UPB_PRIVATE(ext_count); 21 }; 22 23 #ifdef __cplusplus 24 extern "C" { 25 #endif 26 upb_MiniTableFile_EnumCount(const struct upb_MiniTableFile * f)27UPB_API_INLINE int upb_MiniTableFile_EnumCount( 28 const struct upb_MiniTableFile* f) { 29 return f->UPB_PRIVATE(enum_count); 30 } 31 upb_MiniTableFile_ExtensionCount(const struct upb_MiniTableFile * f)32UPB_API_INLINE int upb_MiniTableFile_ExtensionCount( 33 const struct upb_MiniTableFile* f) { 34 return f->UPB_PRIVATE(ext_count); 35 } 36 upb_MiniTableFile_MessageCount(const struct upb_MiniTableFile * f)37UPB_API_INLINE int upb_MiniTableFile_MessageCount( 38 const struct upb_MiniTableFile* f) { 39 return f->UPB_PRIVATE(msg_count); 40 } 41 upb_MiniTableFile_Enum(const struct upb_MiniTableFile * f,int i)42UPB_API_INLINE const struct upb_MiniTableEnum* upb_MiniTableFile_Enum( 43 const struct upb_MiniTableFile* f, int i) { 44 UPB_ASSERT(i < f->UPB_PRIVATE(enum_count)); 45 return f->UPB_PRIVATE(enums)[i]; 46 } 47 upb_MiniTableFile_Extension(const struct upb_MiniTableFile * f,int i)48UPB_API_INLINE const struct upb_MiniTableExtension* upb_MiniTableFile_Extension( 49 const struct upb_MiniTableFile* f, int i) { 50 UPB_ASSERT(i < f->UPB_PRIVATE(ext_count)); 51 return f->UPB_PRIVATE(exts)[i]; 52 } 53 upb_MiniTableFile_Message(const struct upb_MiniTableFile * f,int i)54UPB_API_INLINE const struct upb_MiniTable* upb_MiniTableFile_Message( 55 const struct upb_MiniTableFile* f, int i) { 56 UPB_ASSERT(i < f->UPB_PRIVATE(msg_count)); 57 return f->UPB_PRIVATE(msgs)[i]; 58 } 59 60 #ifdef __cplusplus 61 } /* extern "C" */ 62 #endif 63 64 #include "upb/port/undef.inc" 65 66 #endif /* UPB_MINI_TABLE_INTERNAL_FILE_H_ */ 67