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_PRIVATE(_upb_MiniTableFile_EnumCount)27UPB_INLINE int UPB_PRIVATE(_upb_MiniTableFile_EnumCount)( 28 const struct upb_MiniTableFile* f) { 29 return f->UPB_PRIVATE(enum_count); 30 } 31 UPB_PRIVATE(_upb_MiniTableFile_ExtensionCount)32UPB_INLINE int UPB_PRIVATE(_upb_MiniTableFile_ExtensionCount)( 33 const struct upb_MiniTableFile* f) { 34 return f->UPB_PRIVATE(ext_count); 35 } 36 UPB_PRIVATE(_upb_MiniTableFile_MessageCount)37UPB_INLINE int UPB_PRIVATE(_upb_MiniTableFile_MessageCount)( 38 const struct upb_MiniTableFile* f) { 39 return f->UPB_PRIVATE(msg_count); 40 } 41 UPB_PRIVATE(_upb_MiniTableFile_Enum)42UPB_INLINE const struct upb_MiniTableEnum* UPB_PRIVATE(_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_PRIVATE(_upb_MiniTableFile_Extension)48UPB_INLINE const struct upb_MiniTableExtension* UPB_PRIVATE( 49 _upb_MiniTableFile_Extension)(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_PRIVATE(_upb_MiniTableFile_Message)54UPB_INLINE const struct upb_MiniTable* UPB_PRIVATE(_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