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_FIELD_H_ 9 #define UPB_MINI_TABLE_FIELD_H_ 10 11 #include <stdint.h> 12 13 #include "upb/base/descriptor_constants.h" 14 #include "upb/mini_table/internal/field.h" 15 16 // Must be last. 17 #include "upb/port/def.inc" 18 19 typedef struct upb_MiniTableField upb_MiniTableField; 20 21 #ifdef __cplusplus 22 extern "C" { 23 #endif 24 25 UPB_API_INLINE upb_CType upb_MiniTableField_CType(const upb_MiniTableField* f); 26 27 UPB_API_INLINE bool upb_MiniTableField_HasPresence(const upb_MiniTableField* f); 28 29 UPB_API_INLINE bool upb_MiniTableField_IsArray(const upb_MiniTableField* f); 30 31 UPB_API_INLINE bool upb_MiniTableField_IsClosedEnum( 32 const upb_MiniTableField* f); 33 34 UPB_API_INLINE bool upb_MiniTableField_IsExtension(const upb_MiniTableField* f); 35 36 UPB_API_INLINE bool upb_MiniTableField_IsInOneof(const upb_MiniTableField* f); 37 38 UPB_API_INLINE bool upb_MiniTableField_IsMap(const upb_MiniTableField* f); 39 40 UPB_API_INLINE bool upb_MiniTableField_IsPacked(const upb_MiniTableField* f); 41 42 UPB_API_INLINE bool upb_MiniTableField_IsScalar(const upb_MiniTableField* f); 43 44 UPB_API_INLINE bool upb_MiniTableField_IsSubMessage( 45 const upb_MiniTableField* f); 46 47 UPB_API_INLINE uint32_t upb_MiniTableField_Number(const upb_MiniTableField* f); 48 49 UPB_API_INLINE upb_FieldType 50 upb_MiniTableField_Type(const upb_MiniTableField* f); 51 52 #ifdef __cplusplus 53 } /* extern "C" */ 54 #endif 55 56 #include "upb/port/undef.inc" 57 58 #endif /* UPB_MINI_TABLE_FIELD_H_ */ 59