File indexing completed on 2026-09-28 09:31:57
0001
0002
0003
0004
0005
0006
0007
0008 #ifndef UPB_MINI_TABLE_DECODE_H_
0009 #define UPB_MINI_TABLE_DECODE_H_
0010
0011 #include <stddef.h>
0012
0013 #include "upb/base/status.h"
0014 #include "upb/mem/arena.h"
0015 #include "upb/mini_table/enum.h"
0016 #include "upb/mini_table/extension.h"
0017 #include "upb/mini_table/message.h"
0018 #include "upb/mini_table/sub.h"
0019
0020
0021
0022
0023 #include "upb/mini_descriptor/build_enum.h"
0024 #include "upb/mini_descriptor/link.h"
0025
0026
0027
0028 #include "upb/port/def.inc"
0029
0030 typedef enum {
0031 kUpb_MiniTablePlatform_32Bit,
0032 kUpb_MiniTablePlatform_64Bit,
0033 kUpb_MiniTablePlatform_Native =
0034 UPB_SIZE(kUpb_MiniTablePlatform_32Bit, kUpb_MiniTablePlatform_64Bit),
0035 } upb_MiniTablePlatform;
0036
0037 #ifdef __cplusplus
0038 extern "C" {
0039 #endif
0040
0041
0042
0043
0044
0045 upb_MiniTable* _upb_MiniTable_Build(const char* data, size_t len,
0046 upb_MiniTablePlatform platform,
0047 upb_Arena* arena, upb_Status* status);
0048
0049 UPB_API_INLINE upb_MiniTable* upb_MiniTable_Build(const char* data, size_t len,
0050 upb_Arena* arena,
0051 upb_Status* status) {
0052 return _upb_MiniTable_Build(data, len, kUpb_MiniTablePlatform_Native, arena,
0053 status);
0054 }
0055
0056
0057
0058
0059 const char* _upb_MiniTableExtension_Init(const char* data, size_t len,
0060 upb_MiniTableExtension* ext,
0061 const upb_MiniTable* extendee,
0062 upb_MiniTableSub sub,
0063 upb_MiniTablePlatform platform,
0064 upb_Status* status);
0065
0066 UPB_API_INLINE const char* upb_MiniTableExtension_Init(
0067 const char* data, size_t len, upb_MiniTableExtension* ext,
0068 const upb_MiniTable* extendee, upb_MiniTableSub sub, upb_Status* status) {
0069 return _upb_MiniTableExtension_Init(data, len, ext, extendee, sub,
0070 kUpb_MiniTablePlatform_Native, status);
0071 }
0072
0073 UPB_API upb_MiniTableExtension* _upb_MiniTableExtension_Build(
0074 const char* data, size_t len, const upb_MiniTable* extendee,
0075 upb_MiniTableSub sub, upb_MiniTablePlatform platform, upb_Arena* arena,
0076 upb_Status* status);
0077
0078 UPB_API_INLINE upb_MiniTableExtension* upb_MiniTableExtension_Build(
0079 const char* data, size_t len, const upb_MiniTable* extendee,
0080 upb_Arena* arena, upb_Status* status) {
0081 upb_MiniTableSub sub = upb_MiniTableSub_FromMessage(NULL);
0082 return _upb_MiniTableExtension_Build(
0083 data, len, extendee, sub, kUpb_MiniTablePlatform_Native, arena, status);
0084 }
0085
0086 UPB_API_INLINE upb_MiniTableExtension* upb_MiniTableExtension_BuildMessage(
0087 const char* data, size_t len, const upb_MiniTable* extendee,
0088 const upb_MiniTable* submsg, upb_Arena* arena, upb_Status* status) {
0089 upb_MiniTableSub sub = upb_MiniTableSub_FromMessage(submsg);
0090 return _upb_MiniTableExtension_Build(
0091 data, len, extendee, sub, kUpb_MiniTablePlatform_Native, arena, status);
0092 }
0093
0094 UPB_API_INLINE upb_MiniTableExtension* upb_MiniTableExtension_BuildEnum(
0095 const char* data, size_t len, const upb_MiniTable* extendee,
0096 const upb_MiniTableEnum* subenum, upb_Arena* arena, upb_Status* status) {
0097 upb_MiniTableSub sub = upb_MiniTableSub_FromEnum(subenum);
0098 return _upb_MiniTableExtension_Build(
0099 data, len, extendee, sub, kUpb_MiniTablePlatform_Native, arena, status);
0100 }
0101
0102
0103
0104
0105
0106
0107
0108
0109 upb_MiniTable* upb_MiniTable_BuildWithBuf(const char* data, size_t len,
0110 upb_MiniTablePlatform platform,
0111 upb_Arena* arena, void** buf,
0112 size_t* buf_size, upb_Status* status);
0113
0114 #ifdef __cplusplus
0115 }
0116 #endif
0117
0118 #include "upb/port/undef.inc"
0119
0120 #endif