• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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