blob: 7afc703a9cda016dcaf13f0289614dac50491ab8 [file] [log] [blame]
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07001// Ruby is still using proto3 enum semantics for proto2
2#define UPB_DISABLE_PROTO2_ENUM_CHECKING
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003/* Amalgamated source file */
Joshua Habermandd69a482021-05-17 22:40:33 -07004
5/*
Eric Salo8809a112022-11-21 13:01:06 -08006 * This is where we define internal portability macros used across upb.
Joshua Habermandd69a482021-05-17 22:40:33 -07007 *
Eric Salo8809a112022-11-21 13:01:06 -08008 * All of these macros are undef'd in undef.inc to avoid leaking them to users.
Joshua Habermandd69a482021-05-17 22:40:33 -07009 *
10 * The correct usage is:
11 *
12 * #include "upb/foobar.h"
13 * #include "upb/baz.h"
14 *
15 * // MUST be last included header.
Eric Salo8809a112022-11-21 13:01:06 -080016 * #include "upb/port/def.inc"
Joshua Habermandd69a482021-05-17 22:40:33 -070017 *
18 * // Code for this file.
19 * // <...>
20 *
21 * // Can be omitted for .c files, required for .h.
Eric Salo8809a112022-11-21 13:01:06 -080022 * #include "upb/port/undef.inc"
Joshua Habermandd69a482021-05-17 22:40:33 -070023 *
24 * This file is private and must not be included by users!
25 */
Joshua Haberman9abf6e22021-01-13 12:16:25 -080026
27#if !((defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
Mike Kruskalfd0b1a52022-10-14 16:27:22 -070028 (defined(__cplusplus) && __cplusplus >= 201402L) || \
Joshua Haberman9abf6e22021-01-13 12:16:25 -080029 (defined(_MSC_VER) && _MSC_VER >= 1900))
Mike Kruskalfd0b1a52022-10-14 16:27:22 -070030#error upb requires C99 or C++14 or MSVC >= 2015.
Joshua Haberman9abf6e22021-01-13 12:16:25 -080031#endif
32
Joshua Habermand3995ec2022-09-30 16:54:39 -070033// Portable check for GCC minimum version:
34// https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html
35#if defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEVEL__)
36#define UPB_GNUC_MIN(x, y) \
37 (__GNUC__ > (x) || __GNUC__ == (x) && __GNUC_MINOR__ >= (y))
38#else
39#define UPB_GNUC_MIN(x, y) 0
40#endif
41
42#include <assert.h>
43#include <setjmp.h>
44#include <stdbool.h>
Joshua Haberman9abf6e22021-01-13 12:16:25 -080045#include <stddef.h>
Joshua Habermand3995ec2022-09-30 16:54:39 -070046#include <stdint.h>
Eric Salo8809a112022-11-21 13:01:06 -080047#include <stdio.h>
Joshua Haberman9abf6e22021-01-13 12:16:25 -080048
49#if UINTPTR_MAX == 0xffffffff
50#define UPB_SIZE(size32, size64) size32
51#else
52#define UPB_SIZE(size32, size64) size64
53#endif
54
55/* If we always read/write as a consistent type to each address, this shouldn't
56 * violate aliasing.
57 */
58#define UPB_PTR_AT(msg, ofs, type) ((type*)((char*)(msg) + (ofs)))
59
Joshua Haberman9abf6e22021-01-13 12:16:25 -080060#define UPB_MAPTYPE_STRING 0
61
Eric Salo3f36a912022-12-05 14:12:25 -080062// UPB_EXPORT: always generate a public symbol.
63#if defined(__GNUC__) || defined(__clang__)
64#define UPB_EXPORT __attribute__((visibility("default"))) __attribute__((used))
65#else
66#define UPB_EXPORT
67#endif
68
69// UPB_INLINE: inline if possible, emit standalone code if required.
Joshua Haberman9abf6e22021-01-13 12:16:25 -080070#ifdef __cplusplus
71#define UPB_INLINE inline
72#elif defined (__GNUC__) || defined(__clang__)
73#define UPB_INLINE static __inline__
74#else
75#define UPB_INLINE static
76#endif
77
Eric Salo3f36a912022-12-05 14:12:25 -080078#ifdef UPB_BUILD_API
79#define UPB_API UPB_EXPORT
80#define UPB_API_INLINE UPB_EXPORT
81#else
82#define UPB_API
83#define UPB_API_INLINE UPB_INLINE
84#endif
85
Joshua Habermand3995ec2022-09-30 16:54:39 -070086#define UPB_MALLOC_ALIGN 8
Joshua Haberman9abf6e22021-01-13 12:16:25 -080087#define UPB_ALIGN_UP(size, align) (((size) + (align) - 1) / (align) * (align))
88#define UPB_ALIGN_DOWN(size, align) ((size) / (align) * (align))
Joshua Habermand3995ec2022-09-30 16:54:39 -070089#define UPB_ALIGN_MALLOC(size) UPB_ALIGN_UP(size, UPB_MALLOC_ALIGN)
Mike Kruskal232ecf42023-01-14 00:09:40 -080090#ifdef __clang__
91#define UPB_ALIGN_OF(type) _Alignof(type)
92#else
Joshua Haberman9abf6e22021-01-13 12:16:25 -080093#define UPB_ALIGN_OF(type) offsetof (struct { char c; type member; }, member)
Mike Kruskal232ecf42023-01-14 00:09:40 -080094#endif
Joshua Haberman9abf6e22021-01-13 12:16:25 -080095
Eric Salo8809a112022-11-21 13:01:06 -080096// Hints to the compiler about likely/unlikely branches.
Joshua Haberman9abf6e22021-01-13 12:16:25 -080097#if defined (__GNUC__) || defined(__clang__)
Eric Salo8809a112022-11-21 13:01:06 -080098#define UPB_LIKELY(x) __builtin_expect((bool)(x), 1)
99#define UPB_UNLIKELY(x) __builtin_expect((bool)(x), 0)
Joshua Haberman9abf6e22021-01-13 12:16:25 -0800100#else
101#define UPB_LIKELY(x) (x)
102#define UPB_UNLIKELY(x) (x)
103#endif
104
Eric Salo8809a112022-11-21 13:01:06 -0800105// Macros for function attributes on compilers that support them.
Joshua Haberman9abf6e22021-01-13 12:16:25 -0800106#ifdef __GNUC__
107#define UPB_FORCEINLINE __inline__ __attribute__((always_inline))
108#define UPB_NOINLINE __attribute__((noinline))
109#define UPB_NORETURN __attribute__((__noreturn__))
110#define UPB_PRINTF(str, first_vararg) __attribute__((format (printf, str, first_vararg)))
111#elif defined(_MSC_VER)
112#define UPB_NOINLINE
113#define UPB_FORCEINLINE
114#define UPB_NORETURN __declspec(noreturn)
115#define UPB_PRINTF(str, first_vararg)
116#else /* !defined(__GNUC__) */
117#define UPB_FORCEINLINE
118#define UPB_NOINLINE
119#define UPB_NORETURN
120#define UPB_PRINTF(str, first_vararg)
121#endif
122
123#define UPB_MAX(x, y) ((x) > (y) ? (x) : (y))
124#define UPB_MIN(x, y) ((x) < (y) ? (x) : (y))
125
126#define UPB_UNUSED(var) (void)var
127
Eric Salo8809a112022-11-21 13:01:06 -0800128// UPB_ASSUME(): in release mode, we tell the compiler to assume this is true.
Joshua Haberman9abf6e22021-01-13 12:16:25 -0800129#ifdef NDEBUG
130#ifdef __GNUC__
131#define UPB_ASSUME(expr) if (!(expr)) __builtin_unreachable()
132#elif defined _MSC_VER
133#define UPB_ASSUME(expr) if (!(expr)) __assume(0)
134#else
135#define UPB_ASSUME(expr) do {} while (false && (expr))
136#endif
137#else
138#define UPB_ASSUME(expr) assert(expr)
139#endif
140
141/* UPB_ASSERT(): in release mode, we use the expression without letting it be
142 * evaluated. This prevents "unused variable" warnings. */
143#ifdef NDEBUG
144#define UPB_ASSERT(expr) do {} while (false && (expr))
145#else
146#define UPB_ASSERT(expr) assert(expr)
147#endif
148
149#if defined(__GNUC__) || defined(__clang__)
150#define UPB_UNREACHABLE() do { assert(0); __builtin_unreachable(); } while(0)
Eric Salo10505992022-12-12 12:16:36 -0800151#elif defined(_MSC_VER)
152#define UPB_UNREACHABLE() \
153 do { \
154 assert(0); \
155 __assume(0); \
156 } while (0)
Joshua Haberman9abf6e22021-01-13 12:16:25 -0800157#else
158#define UPB_UNREACHABLE() do { assert(0); } while(0)
159#endif
160
161/* UPB_SETJMP() / UPB_LONGJMP(): avoid setting/restoring signal mask. */
162#ifdef __APPLE__
163#define UPB_SETJMP(buf) _setjmp(buf)
164#define UPB_LONGJMP(buf, val) _longjmp(buf, val)
165#else
166#define UPB_SETJMP(buf) setjmp(buf)
167#define UPB_LONGJMP(buf, val) longjmp(buf, val)
168#endif
169
Eric Salodfb71552023-03-22 12:35:09 -0700170#ifdef __GNUC__
171#define UPB_USE_C11_ATOMICS
Deanna Garciac7d979d2023-04-14 17:22:13 -0700172#define UPB_ATOMIC(T) _Atomic(T)
Eric Salodfb71552023-03-22 12:35:09 -0700173#else
Deanna Garciac7d979d2023-04-14 17:22:13 -0700174#define UPB_ATOMIC(T) T
Eric Salodfb71552023-03-22 12:35:09 -0700175#endif
176
Joshua Habermandd69a482021-05-17 22:40:33 -0700177/* UPB_PTRADD(ptr, ofs): add pointer while avoiding "NULL + 0" UB */
178#define UPB_PTRADD(ptr, ofs) ((ofs) ? (ptr) + (ofs) : (ptr))
179
Deanna Garciac7d979d2023-04-14 17:22:13 -0700180#define UPB_PRIVATE(x) x##_dont_copy_me__upb_internal_use_only
181
Joshua Haberman9abf6e22021-01-13 12:16:25 -0800182/* Configure whether fasttable is switched on or not. *************************/
183
Joshua Habermandd69a482021-05-17 22:40:33 -0700184#ifdef __has_attribute
185#define UPB_HAS_ATTRIBUTE(x) __has_attribute(x)
186#else
187#define UPB_HAS_ATTRIBUTE(x) 0
188#endif
189
190#if UPB_HAS_ATTRIBUTE(musttail)
191#define UPB_MUSTTAIL __attribute__((musttail))
192#else
193#define UPB_MUSTTAIL
194#endif
195
196#undef UPB_HAS_ATTRIBUTE
197
198/* This check is not fully robust: it does not require that we have "musttail"
199 * support available. We need tail calls to avoid consuming arbitrary amounts
200 * of stack space.
201 *
202 * GCC/Clang can mostly be trusted to generate tail calls as long as
203 * optimization is enabled, but, debug builds will not generate tail calls
204 * unless "musttail" is available.
205 *
206 * We should probably either:
207 * 1. require that the compiler supports musttail.
208 * 2. add some fallback code for when musttail isn't available (ie. return
209 * instead of tail calling). This is safe and portable, but this comes at
210 * a CPU cost.
211 */
212#if (defined(__x86_64__) || defined(__aarch64__)) && defined(__GNUC__)
Joshua Haberman9abf6e22021-01-13 12:16:25 -0800213#define UPB_FASTTABLE_SUPPORTED 1
214#else
215#define UPB_FASTTABLE_SUPPORTED 0
216#endif
217
218/* define UPB_ENABLE_FASTTABLE to force fast table support.
219 * This is useful when we want to ensure we are really getting fasttable,
220 * for example for testing or benchmarking. */
221#if defined(UPB_ENABLE_FASTTABLE)
222#if !UPB_FASTTABLE_SUPPORTED
Joshua Habermandd69a482021-05-17 22:40:33 -0700223#error fasttable is x86-64/ARM64 only and requires GCC or Clang.
Joshua Haberman9abf6e22021-01-13 12:16:25 -0800224#endif
225#define UPB_FASTTABLE 1
226/* Define UPB_TRY_ENABLE_FASTTABLE to use fasttable if possible.
227 * This is useful for releasing code that might be used on multiple platforms,
228 * for example the PHP or Ruby C extensions. */
229#elif defined(UPB_TRY_ENABLE_FASTTABLE)
230#define UPB_FASTTABLE UPB_FASTTABLE_SUPPORTED
231#else
232#define UPB_FASTTABLE 0
233#endif
234
235/* UPB_FASTTABLE_INIT() allows protos compiled for fasttable to gracefully
Mike Kruskal232ecf42023-01-14 00:09:40 -0800236 * degrade to non-fasttable if the runtime or platform do not support it. */
237#if !UPB_FASTTABLE
Joshua Haberman9abf6e22021-01-13 12:16:25 -0800238#define UPB_FASTTABLE_INIT(...)
Mike Kruskal232ecf42023-01-14 00:09:40 -0800239#define UPB_FASTTABLE_MASK(mask) -1
Joshua Haberman9abf6e22021-01-13 12:16:25 -0800240#else
241#define UPB_FASTTABLE_INIT(...) __VA_ARGS__
Mike Kruskal232ecf42023-01-14 00:09:40 -0800242#define UPB_FASTTABLE_MASK(mask) mask
Joshua Haberman9abf6e22021-01-13 12:16:25 -0800243#endif
244
245#undef UPB_FASTTABLE_SUPPORTED
246
Joshua Habermand3995ec2022-09-30 16:54:39 -0700247/* ASAN poisoning (for arena).
248 * If using UPB from an interpreted language like Ruby, a build of the
Joshua Haberman488b8b92022-09-30 18:07:16 -0700249 * interpreter compiled with ASAN enabled must be used in order to get sane and
Joshua Habermand3995ec2022-09-30 16:54:39 -0700250 * expected behavior.
251 */
Joshua Haberman9abf6e22021-01-13 12:16:25 -0800252
253#if defined(__SANITIZE_ADDRESS__)
254#define UPB_ASAN 1
255#ifdef __cplusplus
256extern "C" {
257#endif
258void __asan_poison_memory_region(void const volatile *addr, size_t size);
259void __asan_unpoison_memory_region(void const volatile *addr, size_t size);
260#ifdef __cplusplus
261} /* extern "C" */
262#endif
263#define UPB_POISON_MEMORY_REGION(addr, size) \
264 __asan_poison_memory_region((addr), (size))
265#define UPB_UNPOISON_MEMORY_REGION(addr, size) \
266 __asan_unpoison_memory_region((addr), (size))
267#else
268#define UPB_ASAN 0
269#define UPB_POISON_MEMORY_REGION(addr, size) \
270 ((void)(addr), (void)(size))
271#define UPB_UNPOISON_MEMORY_REGION(addr, size) \
272 ((void)(addr), (void)(size))
Joshua Habermandd69a482021-05-17 22:40:33 -0700273#endif
274
Joshua Haberman7ecf43f2022-03-14 13:11:29 -0700275/* Disable proto2 arena behavior (TEMPORARY) **********************************/
276
277#ifdef UPB_DISABLE_PROTO2_ENUM_CHECKING
278#define UPB_TREAT_PROTO2_ENUMS_LIKE_PROTO3 1
279#else
280#define UPB_TREAT_PROTO2_ENUMS_LIKE_PROTO3 0
281#endif
282
Joshua Habermand3995ec2022-09-30 16:54:39 -0700283#if defined(__cplusplus)
284#if defined(__clang__) || UPB_GNUC_MIN(6, 0)
285// https://gcc.gnu.org/gcc-6/changes.html
286#if __cplusplus >= 201402L
287#define UPB_DEPRECATED [[deprecated]]
288#else
289#define UPB_DEPRECATED __attribute__((deprecated))
290#endif
291#else
292#define UPB_DEPRECATED
293#endif
294#else
295#define UPB_DEPRECATED
296#endif
Joshua Haberman9abf6e22021-01-13 12:16:25 -0800297
Mike Kruskal232ecf42023-01-14 00:09:40 -0800298// begin:google_only
299// #define UPB_IS_GOOGLE3
300// end:google_only
301
302#if defined(UPB_IS_GOOGLE3) && !defined(UPB_BOOTSTRAP_STAGE0)
303#define UPB_DESC(sym) proto2_##sym
304#else
305#define UPB_DESC(sym) google_protobuf_##sym
306#endif
307
Eric Salo8809a112022-11-21 13:01:06 -0800308#ifndef UPB_BASE_STATUS_H_
309#define UPB_BASE_STATUS_H_
310
311#include <stdarg.h>
Mike Kruskal9cf9db82022-11-04 21:22:31 -0700312
313// Must be last.
314
Eric Salo8809a112022-11-21 13:01:06 -0800315#define _kUpb_Status_MaxMessage 127
316
317typedef struct {
318 bool ok;
319 char msg[_kUpb_Status_MaxMessage]; // Error message; NULL-terminated.
320} upb_Status;
321
Mike Kruskal9cf9db82022-11-04 21:22:31 -0700322#ifdef __cplusplus
323extern "C" {
324#endif
325
Eric Salo3f36a912022-12-05 14:12:25 -0800326UPB_API const char* upb_Status_ErrorMessage(const upb_Status* status);
327UPB_API bool upb_Status_IsOk(const upb_Status* status);
Mike Kruskal9cf9db82022-11-04 21:22:31 -0700328
Eric Salo8809a112022-11-21 13:01:06 -0800329// These are no-op if |status| is NULL.
Eric Salo3f36a912022-12-05 14:12:25 -0800330UPB_API void upb_Status_Clear(upb_Status* status);
Eric Salo8809a112022-11-21 13:01:06 -0800331void upb_Status_SetErrorMessage(upb_Status* status, const char* msg);
332void upb_Status_SetErrorFormat(upb_Status* status, const char* fmt, ...)
333 UPB_PRINTF(2, 3);
334void upb_Status_VSetErrorFormat(upb_Status* status, const char* fmt,
335 va_list args) UPB_PRINTF(2, 0);
336void upb_Status_VAppendErrorFormat(upb_Status* status, const char* fmt,
337 va_list args) UPB_PRINTF(2, 0);
Mike Kruskal9cf9db82022-11-04 21:22:31 -0700338
339#ifdef __cplusplus
340} /* extern "C" */
341#endif
342
343
Eric Salo8809a112022-11-21 13:01:06 -0800344#endif /* UPB_BASE_STATUS_H_ */
Mike Kruskal9cf9db82022-11-04 21:22:31 -0700345
346#ifndef UPB_INTERNAL_ARRAY_INTERNAL_H_
347#define UPB_INTERNAL_ARRAY_INTERNAL_H_
Joshua Habermand3995ec2022-09-30 16:54:39 -0700348
349#include <string.h>
Joshua Haberman9abf6e22021-01-13 12:16:25 -0800350
Joshua Habermandd69a482021-05-17 22:40:33 -0700351
Mike Kruskal9cf9db82022-11-04 21:22:31 -0700352#ifndef UPB_COLLECTIONS_ARRAY_H_
353#define UPB_COLLECTIONS_ARRAY_H_
Joshua Habermand3995ec2022-09-30 16:54:39 -0700354
355
Eric Salo8809a112022-11-21 13:01:06 -0800356#ifndef UPB_BASE_DESCRIPTOR_CONSTANTS_H_
357#define UPB_BASE_DESCRIPTOR_CONSTANTS_H_
358
Eric Salodfb71552023-03-22 12:35:09 -0700359// Must be last.
360
Eric Salo8809a112022-11-21 13:01:06 -0800361// The types a field can have. Note that this list is not identical to the
362// types defined in descriptor.proto, which gives INT32 and SINT32 separate
363// types (we distinguish the two with the "integer encoding" enum below).
364// This enum is an internal convenience only and has no meaning outside of upb.
365typedef enum {
366 kUpb_CType_Bool = 1,
367 kUpb_CType_Float = 2,
368 kUpb_CType_Int32 = 3,
369 kUpb_CType_UInt32 = 4,
Deanna Garciab26afb52023-04-25 13:37:18 -0700370 kUpb_CType_Enum = 5, // Enum values are int32. TODO(b/279178239): rename
Eric Salo8809a112022-11-21 13:01:06 -0800371 kUpb_CType_Message = 6,
372 kUpb_CType_Double = 7,
373 kUpb_CType_Int64 = 8,
374 kUpb_CType_UInt64 = 9,
375 kUpb_CType_String = 10,
376 kUpb_CType_Bytes = 11
377} upb_CType;
378
379// The repeated-ness of each field; this matches descriptor.proto.
380typedef enum {
381 kUpb_Label_Optional = 1,
382 kUpb_Label_Required = 2,
383 kUpb_Label_Repeated = 3
384} upb_Label;
385
386// Descriptor types, as defined in descriptor.proto.
387typedef enum {
388 kUpb_FieldType_Double = 1,
389 kUpb_FieldType_Float = 2,
390 kUpb_FieldType_Int64 = 3,
391 kUpb_FieldType_UInt64 = 4,
392 kUpb_FieldType_Int32 = 5,
393 kUpb_FieldType_Fixed64 = 6,
394 kUpb_FieldType_Fixed32 = 7,
395 kUpb_FieldType_Bool = 8,
396 kUpb_FieldType_String = 9,
397 kUpb_FieldType_Group = 10,
398 kUpb_FieldType_Message = 11,
399 kUpb_FieldType_Bytes = 12,
400 kUpb_FieldType_UInt32 = 13,
401 kUpb_FieldType_Enum = 14,
402 kUpb_FieldType_SFixed32 = 15,
403 kUpb_FieldType_SFixed64 = 16,
404 kUpb_FieldType_SInt32 = 17,
405 kUpb_FieldType_SInt64 = 18,
406} upb_FieldType;
407
408#define kUpb_FieldType_SizeOf 19
409
Eric Salodfb71552023-03-22 12:35:09 -0700410#ifdef __cplusplus
411extern "C" {
412#endif
413
414UPB_INLINE bool upb_FieldType_IsPackable(upb_FieldType type) {
415 // clang-format off
416 const unsigned kUnpackableTypes =
417 (1 << kUpb_FieldType_String) |
418 (1 << kUpb_FieldType_Bytes) |
419 (1 << kUpb_FieldType_Message) |
420 (1 << kUpb_FieldType_Group);
421 // clang-format on
422 return (1 << type) & ~kUnpackableTypes;
423}
424
425#ifdef __cplusplus
426} /* extern "C" */
427#endif
428
429
Eric Salo8809a112022-11-21 13:01:06 -0800430#endif /* UPB_BASE_DESCRIPTOR_CONSTANTS_H_ */
431
432// Users should include array.h or map.h instead.
433// IWYU pragma: private, include "upb/collections/array.h"
434
Joshua Habermand3995ec2022-09-30 16:54:39 -0700435#ifndef UPB_MESSAGE_VALUE_H_
436#define UPB_MESSAGE_VALUE_H_
437
438
Eric Salo8809a112022-11-21 13:01:06 -0800439#ifndef UPB_BASE_STRING_VIEW_H_
440#define UPB_BASE_STRING_VIEW_H_
441
442#include <string.h>
443
444// Must be last.
445
446#define UPB_STRINGVIEW_INIT(ptr, len) \
447 { ptr, len }
448
449#define UPB_STRINGVIEW_FORMAT "%.*s"
450#define UPB_STRINGVIEW_ARGS(view) (int)(view).size, (view).data
451
452// LINT.IfChange(struct_definition)
453typedef struct {
454 const char* data;
455 size_t size;
456} upb_StringView;
457// LINT.ThenChange(GoogleInternalName0)
458
459#ifdef __cplusplus
460extern "C" {
461#endif
462
Eric Salo3f36a912022-12-05 14:12:25 -0800463UPB_API_INLINE upb_StringView upb_StringView_FromDataAndSize(const char* data,
464 size_t size) {
Eric Salo8809a112022-11-21 13:01:06 -0800465 upb_StringView ret;
466 ret.data = data;
467 ret.size = size;
468 return ret;
469}
470
471UPB_INLINE upb_StringView upb_StringView_FromString(const char* data) {
472 return upb_StringView_FromDataAndSize(data, strlen(data));
473}
474
475UPB_INLINE bool upb_StringView_IsEqual(upb_StringView a, upb_StringView b) {
476 return a.size == b.size && memcmp(a.data, b.data, a.size) == 0;
477}
478
479#ifdef __cplusplus
480} /* extern "C" */
481#endif
482
483
484#endif /* UPB_BASE_STRING_VIEW_H_ */
485
486#ifndef UPB_MINI_TABLE_TYPES_H_
487#define UPB_MINI_TABLE_TYPES_H_
488
Jie Luo3560e232023-06-12 00:33:50 -0700489#include <stdint.h>
490
491// Must be last.
492
493#ifdef __cplusplus
494extern "C" {
495#endif
496
Eric Salo8809a112022-11-21 13:01:06 -0800497typedef void upb_Message;
498
499typedef struct upb_MiniTable upb_MiniTable;
500typedef struct upb_MiniTableEnum upb_MiniTableEnum;
501typedef struct upb_MiniTableExtension upb_MiniTableExtension;
502typedef struct upb_MiniTableField upb_MiniTableField;
503typedef struct upb_MiniTableFile upb_MiniTableFile;
504typedef union upb_MiniTableSub upb_MiniTableSub;
505
Jie Luo3560e232023-06-12 00:33:50 -0700506// When a upb_Message* is stored in a message, array, or map, it is stored in a
507// tagged form. If the tag bit is set, the referenced upb_Message is of type
508// _kUpb_MiniTable_Empty (a sentinel message type with no fields) instead of
509// that field's true message type. This forms the basis of what we call
510// "dynamic tree shaking."
511//
512// See the documentation for kUpb_DecodeOption_ExperimentalAllowUnlinked for
513// more information.
514typedef uintptr_t upb_TaggedMessagePtr;
515
516// Internal-only because empty messages cannot be created by the user.
517UPB_INLINE upb_TaggedMessagePtr _upb_TaggedMessagePtr_Pack(upb_Message* ptr,
518 bool empty) {
519 UPB_ASSERT(((uintptr_t)ptr & 1) == 0);
520 return (uintptr_t)ptr | (empty ? 1 : 0);
521}
522
523// Users who enable unlinked sub-messages must use this to test whether a
524// message is empty before accessing it. If a message is empty, it must be
525// first promoted using the interfaces in message/promote.h.
526UPB_INLINE bool upb_TaggedMessagePtr_IsEmpty(upb_TaggedMessagePtr ptr) {
527 return ptr & 1;
528}
529
530UPB_INLINE upb_Message* _upb_TaggedMessagePtr_GetMessage(
531 upb_TaggedMessagePtr ptr) {
532 return (upb_Message*)(ptr & ~(uintptr_t)1);
533}
534
535UPB_INLINE upb_Message* upb_TaggedMessagePtr_GetNonEmptyMessage(
536 upb_TaggedMessagePtr ptr) {
537 UPB_ASSERT(!upb_TaggedMessagePtr_IsEmpty(ptr));
538 return _upb_TaggedMessagePtr_GetMessage(ptr);
539}
540
541UPB_INLINE upb_Message* _upb_TaggedMessagePtr_GetEmptyMessage(
542 upb_TaggedMessagePtr ptr) {
543 UPB_ASSERT(upb_TaggedMessagePtr_IsEmpty(ptr));
544 return _upb_TaggedMessagePtr_GetMessage(ptr);
545}
546
547#ifdef __cplusplus
548} /* extern "C" */
549#endif
550
551
Eric Salo8809a112022-11-21 13:01:06 -0800552#endif /* UPB_MINI_TABLE_TYPES_H_ */
553
554// Must be last.
555
556typedef struct upb_Array upb_Array;
557typedef struct upb_Map upb_Map;
558
Jie Luo3560e232023-06-12 00:33:50 -0700559typedef uintptr_t upb_TaggedMessagePtr;
560
Eric Salo8809a112022-11-21 13:01:06 -0800561typedef union {
562 bool bool_val;
563 float float_val;
564 double double_val;
565 int32_t int32_val;
566 int64_t int64_val;
567 uint32_t uint32_val;
568 uint64_t uint64_val;
569 const upb_Array* array_val;
570 const upb_Map* map_val;
571 const upb_Message* msg_val;
572 upb_StringView str_val;
Jie Luo3560e232023-06-12 00:33:50 -0700573
574 // EXPERIMENTAL: A tagged upb_Message*. Users must use this instead of
575 // msg_val if unlinked sub-messages may possibly be in use. See the
576 // documentation in kUpb_DecodeOption_ExperimentalAllowUnlinked for more
577 // information.
578 upb_TaggedMessagePtr tagged_msg_val;
Eric Salo8809a112022-11-21 13:01:06 -0800579} upb_MessageValue;
580
581typedef union {
582 upb_Array* array;
583 upb_Map* map;
584 upb_Message* msg;
585} upb_MutableMessageValue;
586
587
588#endif /* UPB_MESSAGE_VALUE_H_ */
589
590/* upb_Arena is a specific allocator implementation that uses arena allocation.
591 * The user provides an allocator that will be used to allocate the underlying
592 * arena blocks. Arenas by nature do not require the individual allocations
593 * to be freed. However the Arena does allow users to register cleanup
594 * functions that will run when the arena is destroyed.
Joshua Habermandd69a482021-05-17 22:40:33 -0700595 *
Eric Salo8809a112022-11-21 13:01:06 -0800596 * A upb_Arena is *not* thread-safe.
597 *
598 * You could write a thread-safe arena allocator that satisfies the
599 * upb_alloc interface, but it would not be as efficient for the
600 * single-threaded case. */
Joshua Haberman9abf6e22021-01-13 12:16:25 -0800601
Mike Kruskal9cf9db82022-11-04 21:22:31 -0700602#ifndef UPB_MEM_ARENA_H_
603#define UPB_MEM_ARENA_H_
Joshua Habermandd69a482021-05-17 22:40:33 -0700604
Joshua Haberman9abf6e22021-01-13 12:16:25 -0800605#include <string.h>
606
607
Mike Kruskal9cf9db82022-11-04 21:22:31 -0700608#ifndef UPB_MEM_ALLOC_H_
609#define UPB_MEM_ALLOC_H_
Joshua Habermand3995ec2022-09-30 16:54:39 -0700610
611// Must be last.
612
Joshua Haberman9abf6e22021-01-13 12:16:25 -0800613#ifdef __cplusplus
614extern "C" {
615#endif
616
Joshua Habermand3995ec2022-09-30 16:54:39 -0700617typedef struct upb_alloc upb_alloc;
Joshua Haberman9abf6e22021-01-13 12:16:25 -0800618
Joshua Habermand3995ec2022-09-30 16:54:39 -0700619/* A combined `malloc()`/`free()` function.
620 * If `size` is 0 then the function acts like `free()`, otherwise it acts like
621 * `realloc()`. Only `oldsize` bytes from a previous allocation are
622 * preserved. */
623typedef void* upb_alloc_func(upb_alloc* alloc, void* ptr, size_t oldsize,
624 size_t size);
625
626/* A upb_alloc is a possibly-stateful allocator object.
627 *
628 * It could either be an arena allocator (which doesn't require individual
629 * `free()` calls) or a regular `malloc()` (which does). The client must
630 * therefore free memory unless it knows that the allocator is an arena
631 * allocator. */
632struct upb_alloc {
633 upb_alloc_func* func;
634};
635
636UPB_INLINE void* upb_malloc(upb_alloc* alloc, size_t size) {
637 UPB_ASSERT(alloc);
638 return alloc->func(alloc, NULL, 0, size);
639}
640
641UPB_INLINE void* upb_realloc(upb_alloc* alloc, void* ptr, size_t oldsize,
642 size_t size) {
643 UPB_ASSERT(alloc);
644 return alloc->func(alloc, ptr, oldsize, size);
645}
646
647UPB_INLINE void upb_free(upb_alloc* alloc, void* ptr) {
648 UPB_ASSERT(alloc);
649 alloc->func(alloc, ptr, 0, 0);
650}
651
Mike Kruskal9cf9db82022-11-04 21:22:31 -0700652// The global allocator used by upb. Uses the standard malloc()/free().
Joshua Habermand3995ec2022-09-30 16:54:39 -0700653
654extern upb_alloc upb_alloc_global;
655
656/* Functions that hard-code the global malloc.
657 *
658 * We still get benefit because we can put custom logic into our global
659 * allocator, like injecting out-of-memory faults in debug/testing builds. */
660
661UPB_INLINE void* upb_gmalloc(size_t size) {
662 return upb_malloc(&upb_alloc_global, size);
663}
664
665UPB_INLINE void* upb_grealloc(void* ptr, size_t oldsize, size_t size) {
666 return upb_realloc(&upb_alloc_global, ptr, oldsize, size);
667}
668
669UPB_INLINE void upb_gfree(void* ptr) { upb_free(&upb_alloc_global, ptr); }
670
671#ifdef __cplusplus
672} /* extern "C" */
673#endif
674
675
Mike Kruskal9cf9db82022-11-04 21:22:31 -0700676#endif /* UPB_MEM_ALLOC_H_ */
Joshua Habermand3995ec2022-09-30 16:54:39 -0700677
678// Must be last.
679
Joshua Habermand3995ec2022-09-30 16:54:39 -0700680typedef struct upb_Arena upb_Arena;
Joshua Haberman9abf6e22021-01-13 12:16:25 -0800681
Deanna Garciac7d979d2023-04-14 17:22:13 -0700682// LINT.IfChange(arena_head)
Eric Salo8809a112022-11-21 13:01:06 -0800683
Joshua Haberman9abf6e22021-01-13 12:16:25 -0800684typedef struct {
Joshua Habermand3995ec2022-09-30 16:54:39 -0700685 char *ptr, *end;
686} _upb_ArenaHead;
Joshua Haberman9abf6e22021-01-13 12:16:25 -0800687
Deanna Garciac7d979d2023-04-14 17:22:13 -0700688// LINT.ThenChange(//depot/google3/third_party/upb/js/impl/upb_bits/arena.ts:arena_head)
689
Eric Salo8809a112022-11-21 13:01:06 -0800690#ifdef __cplusplus
691extern "C" {
692#endif
693
Mike Kruskal3bc50492022-12-01 13:34:12 -0800694// Creates an arena from the given initial block (if any -- n may be 0).
695// Additional blocks will be allocated from |alloc|. If |alloc| is NULL, this
696// is a fixed-size arena and cannot grow.
Eric Salo3f36a912022-12-05 14:12:25 -0800697UPB_API upb_Arena* upb_Arena_Init(void* mem, size_t n, upb_alloc* alloc);
Mike Kruskal3bc50492022-12-01 13:34:12 -0800698
Eric Salo3f36a912022-12-05 14:12:25 -0800699UPB_API void upb_Arena_Free(upb_Arena* a);
Eric Salo3f36a912022-12-05 14:12:25 -0800700UPB_API bool upb_Arena_Fuse(upb_Arena* a, upb_Arena* b);
701
Joshua Habermand3995ec2022-09-30 16:54:39 -0700702void* _upb_Arena_SlowMalloc(upb_Arena* a, size_t size);
703size_t upb_Arena_SpaceAllocated(upb_Arena* arena);
704uint32_t upb_Arena_DebugRefCount(upb_Arena* arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -0800705
Joshua Habermand3995ec2022-09-30 16:54:39 -0700706UPB_INLINE size_t _upb_ArenaHas(upb_Arena* a) {
707 _upb_ArenaHead* h = (_upb_ArenaHead*)a;
708 return (size_t)(h->end - h->ptr);
709}
710
Eric Salo3f36a912022-12-05 14:12:25 -0800711UPB_API_INLINE void* upb_Arena_Malloc(upb_Arena* a, size_t size) {
Eric Salo8809a112022-11-21 13:01:06 -0800712 size = UPB_ALIGN_MALLOC(size);
713 if (UPB_UNLIKELY(_upb_ArenaHas(a) < size)) {
714 return _upb_Arena_SlowMalloc(a, size);
715 }
716
717 // We have enough space to do a fast malloc.
Joshua Habermand3995ec2022-09-30 16:54:39 -0700718 _upb_ArenaHead* h = (_upb_ArenaHead*)a;
719 void* ret = h->ptr;
720 UPB_ASSERT(UPB_ALIGN_MALLOC((uintptr_t)ret) == (uintptr_t)ret);
721 UPB_ASSERT(UPB_ALIGN_MALLOC(size) == size);
722 UPB_UNPOISON_MEMORY_REGION(ret, size);
723
724 h->ptr += size;
725
726#if UPB_ASAN
727 {
728 size_t guard_size = 32;
729 if (_upb_ArenaHas(a) >= guard_size) {
730 h->ptr += guard_size;
731 } else {
732 h->ptr = h->end;
733 }
734 }
735#endif
736
737 return ret;
738}
739
Joshua Habermand3995ec2022-09-30 16:54:39 -0700740// Shrinks the last alloc from arena.
741// REQUIRES: (ptr, oldsize) was the last malloc/realloc from this arena.
742// We could also add a upb_Arena_TryShrinkLast() which is simply a no-op if
743// this was not the last alloc.
Eric Salo3f36a912022-12-05 14:12:25 -0800744UPB_API_INLINE void upb_Arena_ShrinkLast(upb_Arena* a, void* ptr,
745 size_t oldsize, size_t size) {
Joshua Habermand3995ec2022-09-30 16:54:39 -0700746 _upb_ArenaHead* h = (_upb_ArenaHead*)a;
747 oldsize = UPB_ALIGN_MALLOC(oldsize);
748 size = UPB_ALIGN_MALLOC(size);
749 UPB_ASSERT((char*)ptr + oldsize == h->ptr); // Must be the last alloc.
750 UPB_ASSERT(size <= oldsize);
751 h->ptr = (char*)ptr + size;
752}
753
Eric Salo3f36a912022-12-05 14:12:25 -0800754UPB_API_INLINE void* upb_Arena_Realloc(upb_Arena* a, void* ptr, size_t oldsize,
755 size_t size) {
Joshua Habermand3995ec2022-09-30 16:54:39 -0700756 _upb_ArenaHead* h = (_upb_ArenaHead*)a;
757 oldsize = UPB_ALIGN_MALLOC(oldsize);
758 size = UPB_ALIGN_MALLOC(size);
759 bool is_most_recent_alloc = (uintptr_t)ptr + oldsize == (uintptr_t)h->ptr;
760
761 if (is_most_recent_alloc) {
762 ptrdiff_t diff = size - oldsize;
763 if ((ptrdiff_t)_upb_ArenaHas(a) >= diff) {
764 h->ptr += diff;
765 return ptr;
766 }
767 } else if (size <= oldsize) {
768 return ptr;
769 }
770
771 void* ret = upb_Arena_Malloc(a, size);
772
773 if (ret && oldsize > 0) {
774 memcpy(ret, ptr, UPB_MIN(oldsize, size));
775 }
776
777 return ret;
778}
779
Eric Salo3f36a912022-12-05 14:12:25 -0800780UPB_API_INLINE upb_Arena* upb_Arena_New(void) {
Joshua Habermand3995ec2022-09-30 16:54:39 -0700781 return upb_Arena_Init(NULL, 0, &upb_alloc_global);
782}
783
784#ifdef __cplusplus
785} /* extern "C" */
786#endif
787
788
Mike Kruskal9cf9db82022-11-04 21:22:31 -0700789#endif /* UPB_MEM_ARENA_H_ */
Joshua Habermand3995ec2022-09-30 16:54:39 -0700790
791// Must be last.
792
793#ifdef __cplusplus
794extern "C" {
795#endif
796
Eric Salob598b2d2022-12-22 23:14:27 -0800797// Creates a new array on the given arena that holds elements of this type.
798UPB_API upb_Array* upb_Array_New(upb_Arena* a, upb_CType type);
Joshua Habermand3995ec2022-09-30 16:54:39 -0700799
Eric Salob598b2d2022-12-22 23:14:27 -0800800// Returns the number of elements in the array.
801UPB_API size_t upb_Array_Size(const upb_Array* arr);
Joshua Habermand3995ec2022-09-30 16:54:39 -0700802
Eric Salob598b2d2022-12-22 23:14:27 -0800803// Returns the given element, which must be within the array's current size.
804UPB_API upb_MessageValue upb_Array_Get(const upb_Array* arr, size_t i);
Joshua Habermand3995ec2022-09-30 16:54:39 -0700805
Eric Salob598b2d2022-12-22 23:14:27 -0800806// Sets the given element, which must be within the array's current size.
807UPB_API void upb_Array_Set(upb_Array* arr, size_t i, upb_MessageValue val);
Joshua Habermand3995ec2022-09-30 16:54:39 -0700808
Eric Salob598b2d2022-12-22 23:14:27 -0800809// Appends an element to the array. Returns false on allocation failure.
810UPB_API bool upb_Array_Append(upb_Array* array, upb_MessageValue val,
811 upb_Arena* arena);
Joshua Habermand3995ec2022-09-30 16:54:39 -0700812
Eric Salob598b2d2022-12-22 23:14:27 -0800813// Moves elements within the array using memmove().
814// Like memmove(), the source and destination elements may be overlapping.
815UPB_API void upb_Array_Move(upb_Array* array, size_t dst_idx, size_t src_idx,
816 size_t count);
Joshua Habermand3995ec2022-09-30 16:54:39 -0700817
Eric Salob598b2d2022-12-22 23:14:27 -0800818// Inserts one or more empty elements into the array.
819// Existing elements are shifted right.
820// The new elements have undefined state and must be set with `upb_Array_Set()`.
821// REQUIRES: `i <= upb_Array_Size(arr)`
822UPB_API bool upb_Array_Insert(upb_Array* array, size_t i, size_t count,
823 upb_Arena* arena);
Joshua Habermand3995ec2022-09-30 16:54:39 -0700824
Eric Salob598b2d2022-12-22 23:14:27 -0800825// Deletes one or more elements from the array.
826// Existing elements are shifted left.
827// REQUIRES: `i + count <= upb_Array_Size(arr)`
828UPB_API void upb_Array_Delete(upb_Array* array, size_t i, size_t count);
Joshua Habermand3995ec2022-09-30 16:54:39 -0700829
Eric Salob598b2d2022-12-22 23:14:27 -0800830// Changes the size of a vector. New elements are initialized to NULL/0.
831// Returns false on allocation failure.
832UPB_API bool upb_Array_Resize(upb_Array* array, size_t size, upb_Arena* arena);
Joshua Habermand3995ec2022-09-30 16:54:39 -0700833
Jie Luo3560e232023-06-12 00:33:50 -0700834// Returns pointer to array data.
835UPB_API const void* upb_Array_DataPtr(const upb_Array* arr);
836
837// Returns mutable pointer to array data.
838UPB_API void* upb_Array_MutableDataPtr(upb_Array* arr);
839
Joshua Habermand3995ec2022-09-30 16:54:39 -0700840#ifdef __cplusplus
841} /* extern "C" */
842#endif
843
844
Mike Kruskal9cf9db82022-11-04 21:22:31 -0700845#endif /* UPB_COLLECTIONS_ARRAY_H_ */
Joshua Habermand3995ec2022-09-30 16:54:39 -0700846
847// Must be last.
848
849#ifdef __cplusplus
850extern "C" {
851#endif
852
Eric Salo8809a112022-11-21 13:01:06 -0800853// LINT.IfChange(struct_definition)
Mike Kruskal9cf9db82022-11-04 21:22:31 -0700854// Our internal representation for repeated fields.
Joshua Habermand3995ec2022-09-30 16:54:39 -0700855struct upb_Array {
856 uintptr_t data; /* Tagged ptr: low 3 bits of ptr are lg2(elem size). */
857 size_t size; /* The number of elements in the array. */
858 size_t capacity; /* Allocated storage. Measured in elements. */
Joshua Habermand3995ec2022-09-30 16:54:39 -0700859};
Eric Salo8809a112022-11-21 13:01:06 -0800860// LINT.ThenChange(GoogleInternalName1)
Joshua Habermand3995ec2022-09-30 16:54:39 -0700861
Eric Salob7d54ac2022-12-29 11:59:42 -0800862UPB_INLINE size_t _upb_Array_ElementSizeLg2(const upb_Array* arr) {
863 size_t ret = arr->data & 7;
864 UPB_ASSERT(ret <= 4);
865 return ret;
866}
867
Joshua Habermand3995ec2022-09-30 16:54:39 -0700868UPB_INLINE const void* _upb_array_constptr(const upb_Array* arr) {
Eric Salob7d54ac2022-12-29 11:59:42 -0800869 _upb_Array_ElementSizeLg2(arr); // Check assertion.
Joshua Habermand3995ec2022-09-30 16:54:39 -0700870 return (void*)(arr->data & ~(uintptr_t)7);
871}
872
873UPB_INLINE uintptr_t _upb_array_tagptr(void* ptr, int elem_size_lg2) {
874 UPB_ASSERT(elem_size_lg2 <= 4);
875 return (uintptr_t)ptr | elem_size_lg2;
876}
877
878UPB_INLINE void* _upb_array_ptr(upb_Array* arr) {
879 return (void*)_upb_array_constptr(arr);
880}
881
882UPB_INLINE uintptr_t _upb_tag_arrptr(void* ptr, int elem_size_lg2) {
883 UPB_ASSERT(elem_size_lg2 <= 4);
884 UPB_ASSERT(((uintptr_t)ptr & 7) == 0);
885 return (uintptr_t)ptr | (unsigned)elem_size_lg2;
886}
887
Eric Salob7d54ac2022-12-29 11:59:42 -0800888extern const char _upb_Array_CTypeSizeLg2Table[];
889
890UPB_INLINE size_t _upb_Array_CTypeSizeLg2(upb_CType ctype) {
891 return _upb_Array_CTypeSizeLg2Table[ctype];
892}
893
Joshua Habermand3995ec2022-09-30 16:54:39 -0700894UPB_INLINE upb_Array* _upb_Array_New(upb_Arena* a, size_t init_capacity,
895 int elem_size_lg2) {
Eric Salob7d54ac2022-12-29 11:59:42 -0800896 UPB_ASSERT(elem_size_lg2 <= 4);
Joshua Haberman77559732022-10-03 11:13:05 -0700897 const size_t arr_size = UPB_ALIGN_UP(sizeof(upb_Array), UPB_MALLOC_ALIGN);
898 const size_t bytes = arr_size + (init_capacity << elem_size_lg2);
Joshua Habermand3995ec2022-09-30 16:54:39 -0700899 upb_Array* arr = (upb_Array*)upb_Arena_Malloc(a, bytes);
900 if (!arr) return NULL;
901 arr->data = _upb_tag_arrptr(UPB_PTR_AT(arr, arr_size, void), elem_size_lg2);
902 arr->size = 0;
903 arr->capacity = init_capacity;
904 return arr;
905}
906
Mike Kruskal9cf9db82022-11-04 21:22:31 -0700907// Resizes the capacity of the array to be at least min_size.
Joshua Habermand3995ec2022-09-30 16:54:39 -0700908bool _upb_array_realloc(upb_Array* arr, size_t min_size, upb_Arena* arena);
909
Joshua Habermand3995ec2022-09-30 16:54:39 -0700910UPB_INLINE bool _upb_array_reserve(upb_Array* arr, size_t size,
911 upb_Arena* arena) {
912 if (arr->capacity < size) return _upb_array_realloc(arr, size, arena);
913 return true;
914}
915
Eric Salob598b2d2022-12-22 23:14:27 -0800916// Resize without initializing new elements.
917UPB_INLINE bool _upb_Array_ResizeUninitialized(upb_Array* arr, size_t size,
918 upb_Arena* arena) {
Deanna Garciabd6a0cf2023-04-20 10:30:44 -0700919 UPB_ASSERT(size <= arr->size || arena); // Allow NULL arena when shrinking.
Joshua Habermand3995ec2022-09-30 16:54:39 -0700920 if (!_upb_array_reserve(arr, size, arena)) return false;
921 arr->size = size;
922 return true;
923}
924
Eric Salob7d54ac2022-12-29 11:59:42 -0800925// This function is intended for situations where elem_size is compile-time
926// constant or a known expression of the form (1 << lg2), so that the expression
927// i*elem_size does not result in an actual multiplication.
928UPB_INLINE void _upb_Array_Set(upb_Array* arr, size_t i, const void* data,
929 size_t elem_size) {
930 UPB_ASSERT(i < arr->size);
931 UPB_ASSERT(elem_size == 1U << _upb_Array_ElementSizeLg2(arr));
932 char* arr_data = (char*)_upb_array_ptr(arr);
933 memcpy(arr_data + (i * elem_size), data, elem_size);
934}
935
Joshua Habermand3995ec2022-09-30 16:54:39 -0700936UPB_INLINE void _upb_array_detach(const void* msg, size_t ofs) {
937 *UPB_PTR_AT(msg, ofs, upb_Array*) = NULL;
938}
939
Joshua Habermand3995ec2022-09-30 16:54:39 -0700940#ifdef __cplusplus
941} /* extern "C" */
942#endif
943
944
Mike Kruskal9cf9db82022-11-04 21:22:31 -0700945#endif /* UPB_INTERNAL_ARRAY_INTERNAL_H_ */
Joshua Habermand3995ec2022-09-30 16:54:39 -0700946
Mike Kruskal9cf9db82022-11-04 21:22:31 -0700947#ifndef UPB_COLLECTIONS_MAP_H_
948#define UPB_COLLECTIONS_MAP_H_
Joshua Habermand3995ec2022-09-30 16:54:39 -0700949
950
951// Must be last.
952
953#ifdef __cplusplus
954extern "C" {
955#endif
956
Eric Salob7d54ac2022-12-29 11:59:42 -0800957// Creates a new map on the given arena with the given key/value size.
958UPB_API upb_Map* upb_Map_New(upb_Arena* a, upb_CType key_type,
959 upb_CType value_type);
Joshua Habermand3995ec2022-09-30 16:54:39 -0700960
Eric Salob7d54ac2022-12-29 11:59:42 -0800961// Returns the number of entries in the map.
962UPB_API size_t upb_Map_Size(const upb_Map* map);
Joshua Habermand3995ec2022-09-30 16:54:39 -0700963
Eric Salob7d54ac2022-12-29 11:59:42 -0800964// Stores a value for the given key into |*val| (or the zero value if the key is
965// not present). Returns whether the key was present. The |val| pointer may be
966// NULL, in which case the function tests whether the given key is present.
967UPB_API bool upb_Map_Get(const upb_Map* map, upb_MessageValue key,
968 upb_MessageValue* val);
Joshua Habermand3995ec2022-09-30 16:54:39 -0700969
Eric Salob7d54ac2022-12-29 11:59:42 -0800970// Removes all entries in the map.
971UPB_API void upb_Map_Clear(upb_Map* map);
Joshua Habermand3995ec2022-09-30 16:54:39 -0700972
973typedef enum {
Joshua Habermand3995ec2022-09-30 16:54:39 -0700974 kUpb_MapInsertStatus_Inserted = 0,
975 kUpb_MapInsertStatus_Replaced = 1,
976 kUpb_MapInsertStatus_OutOfMemory = 2,
Joshua Habermand3995ec2022-09-30 16:54:39 -0700977} upb_MapInsertStatus;
978
Eric Salob7d54ac2022-12-29 11:59:42 -0800979// Sets the given key to the given value, returning whether the key was inserted
980// or replaced. If the key was inserted, then any existing iterators will be
981// invalidated.
982UPB_API upb_MapInsertStatus upb_Map_Insert(upb_Map* map, upb_MessageValue key,
983 upb_MessageValue val,
984 upb_Arena* arena);
Joshua Habermand3995ec2022-09-30 16:54:39 -0700985
Eric Salob7d54ac2022-12-29 11:59:42 -0800986// Sets the given key to the given value. Returns false if memory allocation
987// failed. If the key is newly inserted, then any existing iterators will be
988// invalidated.
989UPB_API_INLINE bool upb_Map_Set(upb_Map* map, upb_MessageValue key,
990 upb_MessageValue val, upb_Arena* arena) {
Joshua Habermand3995ec2022-09-30 16:54:39 -0700991 return upb_Map_Insert(map, key, val, arena) !=
992 kUpb_MapInsertStatus_OutOfMemory;
993}
994
Eric Salo8809a112022-11-21 13:01:06 -0800995// Deletes this key from the table. Returns true if the key was present.
Eric Salob598b2d2022-12-22 23:14:27 -0800996// If present and |val| is non-NULL, stores the deleted value.
Eric Salob7d54ac2022-12-29 11:59:42 -0800997UPB_API bool upb_Map_Delete(upb_Map* map, upb_MessageValue key,
998 upb_MessageValue* val);
Eric Salob598b2d2022-12-22 23:14:27 -0800999
Eric Salob598b2d2022-12-22 23:14:27 -08001000// (DEPRECATED and going away soon. Do not use.)
Eric Salob7d54ac2022-12-29 11:59:42 -08001001UPB_INLINE bool upb_Map_Delete2(upb_Map* map, upb_MessageValue key,
1002 upb_MessageValue* val) {
1003 return upb_Map_Delete(map, key, val);
Eric Salob598b2d2022-12-22 23:14:27 -08001004}
Joshua Habermand3995ec2022-09-30 16:54:39 -07001005
Eric Salo8809a112022-11-21 13:01:06 -08001006// Map iteration:
1007//
1008// size_t iter = kUpb_Map_Begin;
1009// upb_MessageValue key, val;
1010// while (upb_Map_Next(map, &key, &val, &iter)) {
1011// ...
1012// }
1013
1014#define kUpb_Map_Begin ((size_t)-1)
1015
1016// Advances to the next entry. Returns false if no more entries are present.
1017// Otherwise returns true and populates both *key and *value.
Eric Salob7d54ac2022-12-29 11:59:42 -08001018UPB_API bool upb_Map_Next(const upb_Map* map, upb_MessageValue* key,
1019 upb_MessageValue* val, size_t* iter);
Eric Salo8809a112022-11-21 13:01:06 -08001020
Jie Luo3560e232023-06-12 00:33:50 -07001021// Sets the value for the entry pointed to by iter.
1022// WARNING: this does not currently work for string values!
1023UPB_API void upb_Map_SetEntryValue(upb_Map* map, size_t iter,
1024 upb_MessageValue val);
1025
Eric Salo8809a112022-11-21 13:01:06 -08001026// DEPRECATED iterator, slated for removal.
1027
Joshua Habermand3995ec2022-09-30 16:54:39 -07001028/* Map iteration:
1029 *
1030 * size_t iter = kUpb_Map_Begin;
1031 * while (upb_MapIterator_Next(map, &iter)) {
1032 * upb_MessageValue key = upb_MapIterator_Key(map, iter);
1033 * upb_MessageValue val = upb_MapIterator_Value(map, iter);
Joshua Habermand3995ec2022-09-30 16:54:39 -07001034 * }
1035 */
1036
Eric Salo8809a112022-11-21 13:01:06 -08001037// Advances to the next entry. Returns false if no more entries are present.
Joshua Habermand3995ec2022-09-30 16:54:39 -07001038bool upb_MapIterator_Next(const upb_Map* map, size_t* iter);
1039
Eric Salob7d54ac2022-12-29 11:59:42 -08001040// Returns true if the iterator still points to a valid entry, or false if the
1041// iterator is past the last element. It is an error to call this function with
1042// kUpb_Map_Begin (you must call next() at least once first).
Joshua Habermand3995ec2022-09-30 16:54:39 -07001043bool upb_MapIterator_Done(const upb_Map* map, size_t iter);
1044
Eric Salob7d54ac2022-12-29 11:59:42 -08001045// Returns the key and value for this entry of the map.
Joshua Habermand3995ec2022-09-30 16:54:39 -07001046upb_MessageValue upb_MapIterator_Key(const upb_Map* map, size_t iter);
1047upb_MessageValue upb_MapIterator_Value(const upb_Map* map, size_t iter);
1048
Joshua Habermand3995ec2022-09-30 16:54:39 -07001049#ifdef __cplusplus
1050} /* extern "C" */
1051#endif
1052
1053
Mike Kruskal9cf9db82022-11-04 21:22:31 -07001054#endif /* UPB_COLLECTIONS_MAP_H_ */
Joshua Habermand3995ec2022-09-30 16:54:39 -07001055
Eric Salo8809a112022-11-21 13:01:06 -08001056// EVERYTHING BELOW THIS LINE IS INTERNAL - DO NOT USE /////////////////////////
Joshua Habermand3995ec2022-09-30 16:54:39 -07001057
Eric Salo8809a112022-11-21 13:01:06 -08001058#ifndef UPB_COLLECTIONS_MAP_INTERNAL_H_
1059#define UPB_COLLECTIONS_MAP_INTERNAL_H_
Joshua Habermand3995ec2022-09-30 16:54:39 -07001060
1061
Eric Salo8809a112022-11-21 13:01:06 -08001062#ifndef UPB_HASH_STR_TABLE_H_
1063#define UPB_HASH_STR_TABLE_H_
Joshua Habermand3995ec2022-09-30 16:54:39 -07001064
1065
Joshua Habermandd69a482021-05-17 22:40:33 -07001066/*
1067 * upb_table
1068 *
1069 * This header is INTERNAL-ONLY! Its interfaces are not public or stable!
1070 * This file defines very fast int->upb_value (inttable) and string->upb_value
1071 * (strtable) hash tables.
1072 *
1073 * The table uses chained scatter with Brent's variation (inspired by the Lua
1074 * implementation of hash tables). The hash function for strings is Austin
1075 * Appleby's "MurmurHash."
1076 *
1077 * The inttable uses uintptr_t as its key, which guarantees it can be used to
1078 * store pointers or integers of at least 32 bits (upb isn't really useful on
1079 * systems where sizeof(void*) < 4).
1080 *
1081 * The table must be homogeneous (all values of the same type). In debug
1082 * mode, we check this on insert and lookup.
1083 */
1084
Eric Salo8809a112022-11-21 13:01:06 -08001085#ifndef UPB_HASH_COMMON_H_
1086#define UPB_HASH_COMMON_H_
Joshua Habermandd69a482021-05-17 22:40:33 -07001087
Joshua Habermandd69a482021-05-17 22:40:33 -07001088#include <string.h>
1089
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001090
Joshua Habermanf41049a2022-01-21 14:41:25 -08001091// Must be last.
1092
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001093#ifdef __cplusplus
1094extern "C" {
1095#endif
1096
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001097/* upb_value ******************************************************************/
1098
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001099typedef struct {
1100 uint64_t val;
1101} upb_value;
1102
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001103/* Variant that works with a length-delimited rather than NULL-delimited string,
1104 * as supported by strtable. */
Joshua Habermanf41049a2022-01-21 14:41:25 -08001105char* upb_strdup2(const char* s, size_t len, upb_Arena* a);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001106
Joshua Habermanf41049a2022-01-21 14:41:25 -08001107UPB_INLINE void _upb_value_setval(upb_value* v, uint64_t val) { v->val = val; }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001108
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001109/* For each value ctype, define the following set of functions:
1110 *
1111 * // Get/set an int32 from a upb_value.
1112 * int32_t upb_value_getint32(upb_value val);
1113 * void upb_value_setint32(upb_value *val, int32_t cval);
1114 *
1115 * // Construct a new upb_value from an int32.
1116 * upb_value upb_value_int32(int32_t val); */
Joshua Habermanf41049a2022-01-21 14:41:25 -08001117#define FUNCS(name, membername, type_t, converter, proto_type) \
1118 UPB_INLINE void upb_value_set##name(upb_value* val, type_t cval) { \
1119 val->val = (converter)cval; \
1120 } \
1121 UPB_INLINE upb_value upb_value_##name(type_t val) { \
1122 upb_value ret; \
1123 upb_value_set##name(&ret, val); \
1124 return ret; \
1125 } \
1126 UPB_INLINE type_t upb_value_get##name(upb_value val) { \
1127 return (type_t)(converter)val.val; \
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001128 }
1129
Joshua Habermanf41049a2022-01-21 14:41:25 -08001130FUNCS(int32, int32, int32_t, int32_t, UPB_CTYPE_INT32)
1131FUNCS(int64, int64, int64_t, int64_t, UPB_CTYPE_INT64)
1132FUNCS(uint32, uint32, uint32_t, uint32_t, UPB_CTYPE_UINT32)
1133FUNCS(uint64, uint64, uint64_t, uint64_t, UPB_CTYPE_UINT64)
1134FUNCS(bool, _bool, bool, bool, UPB_CTYPE_BOOL)
1135FUNCS(cstr, cstr, char*, uintptr_t, UPB_CTYPE_CSTR)
Jie Luo3560e232023-06-12 00:33:50 -07001136FUNCS(uintptr, uptr, uintptr_t, uintptr_t, UPB_CTYPE_UPTR)
Joshua Habermanf41049a2022-01-21 14:41:25 -08001137FUNCS(ptr, ptr, void*, uintptr_t, UPB_CTYPE_PTR)
1138FUNCS(constptr, constptr, const void*, uintptr_t, UPB_CTYPE_CONSTPTR)
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001139
1140#undef FUNCS
1141
Joshua Habermanf41049a2022-01-21 14:41:25 -08001142UPB_INLINE void upb_value_setfloat(upb_value* val, float cval) {
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001143 memcpy(&val->val, &cval, sizeof(cval));
1144}
1145
Joshua Habermanf41049a2022-01-21 14:41:25 -08001146UPB_INLINE void upb_value_setdouble(upb_value* val, double cval) {
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001147 memcpy(&val->val, &cval, sizeof(cval));
1148}
1149
1150UPB_INLINE upb_value upb_value_float(float cval) {
1151 upb_value ret;
1152 upb_value_setfloat(&ret, cval);
1153 return ret;
1154}
1155
1156UPB_INLINE upb_value upb_value_double(double cval) {
1157 upb_value ret;
1158 upb_value_setdouble(&ret, cval);
1159 return ret;
1160}
1161
1162#undef SET_TYPE
1163
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001164/* upb_tabkey *****************************************************************/
1165
1166/* Either:
1167 * 1. an actual integer key, or
1168 * 2. a pointer to a string prefixed by its uint32_t length, owned by us.
1169 *
1170 * ...depending on whether this is a string table or an int table. We would
1171 * make this a union of those two types, but C89 doesn't support statically
1172 * initializing a non-first union member. */
1173typedef uintptr_t upb_tabkey;
1174
Joshua Habermanf41049a2022-01-21 14:41:25 -08001175UPB_INLINE char* upb_tabstr(upb_tabkey key, uint32_t* len) {
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001176 char* mem = (char*)key;
1177 if (len) memcpy(len, mem, sizeof(*len));
1178 return mem + sizeof(*len);
1179}
1180
Joshua Habermanf41049a2022-01-21 14:41:25 -08001181UPB_INLINE upb_StringView upb_tabstrview(upb_tabkey key) {
1182 upb_StringView ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001183 uint32_t len;
1184 ret.data = upb_tabstr(key, &len);
1185 ret.size = len;
1186 return ret;
1187}
1188
1189/* upb_tabval *****************************************************************/
1190
1191typedef struct upb_tabval {
1192 uint64_t val;
1193} upb_tabval;
1194
Joshua Habermanf41049a2022-01-21 14:41:25 -08001195#define UPB_TABVALUE_EMPTY_INIT \
1196 { -1 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001197
1198/* upb_table ******************************************************************/
1199
1200typedef struct _upb_tabent {
1201 upb_tabkey key;
1202 upb_tabval val;
1203
1204 /* Internal chaining. This is const so we can create static initializers for
1205 * tables. We cast away const sometimes, but *only* when the containing
1206 * upb_table is known to be non-const. This requires a bit of care, but
1207 * the subtlety is confined to table.c. */
Joshua Habermanf41049a2022-01-21 14:41:25 -08001208 const struct _upb_tabent* next;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001209} upb_tabent;
1210
1211typedef struct {
Joshua Habermanf41049a2022-01-21 14:41:25 -08001212 size_t count; /* Number of entries in the hash part. */
1213 uint32_t mask; /* Mask to turn hash value -> bucket. */
1214 uint32_t max_count; /* Max count before we hit our load limit. */
1215 uint8_t size_lg2; /* Size of the hashtable part is 2^size_lg2 entries. */
1216 upb_tabent* entries;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001217} upb_table;
1218
Eric Salo8809a112022-11-21 13:01:06 -08001219UPB_INLINE size_t upb_table_size(const upb_table* t) {
1220 return t->size_lg2 ? 1 << t->size_lg2 : 0;
1221}
1222
1223// Internal-only functions, in .h file only out of necessity.
Mike Kruskal04e81352022-11-23 11:07:53 -08001224
Eric Salo8809a112022-11-21 13:01:06 -08001225UPB_INLINE bool upb_tabent_isempty(const upb_tabent* e) { return e->key == 0; }
1226
Mike Kruskal04e81352022-11-23 11:07:53 -08001227uint32_t _upb_Hash(const void* p, size_t n, uint64_t seed);
1228
Eric Salo8809a112022-11-21 13:01:06 -08001229#ifdef __cplusplus
1230} /* extern "C" */
1231#endif
1232
1233
1234#endif /* UPB_HASH_COMMON_H_ */
1235
1236// Must be last.
1237
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001238typedef struct {
1239 upb_table t;
1240} upb_strtable;
1241
Eric Salo8809a112022-11-21 13:01:06 -08001242#ifdef __cplusplus
1243extern "C" {
1244#endif
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001245
Eric Salo8809a112022-11-21 13:01:06 -08001246// Initialize a table. If memory allocation failed, false is returned and
1247// the table is uninitialized.
Joshua Habermanf41049a2022-01-21 14:41:25 -08001248bool upb_strtable_init(upb_strtable* table, size_t expected_size, upb_Arena* a);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001249
Eric Salo8809a112022-11-21 13:01:06 -08001250// Returns the number of values in the table.
Joshua Habermanf41049a2022-01-21 14:41:25 -08001251UPB_INLINE size_t upb_strtable_count(const upb_strtable* t) {
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001252 return t->t.count;
1253}
1254
Joshua Habermanf41049a2022-01-21 14:41:25 -08001255void upb_strtable_clear(upb_strtable* t);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001256
Eric Salo8809a112022-11-21 13:01:06 -08001257// Inserts the given key into the hashtable with the given value.
1258// The key must not already exist in the hash table. The key is not required
1259// to be NULL-terminated, and the table will make an internal copy of the key.
1260//
1261// If a table resize was required but memory allocation failed, false is
1262// returned and the table is unchanged. */
Joshua Habermanf41049a2022-01-21 14:41:25 -08001263bool upb_strtable_insert(upb_strtable* t, const char* key, size_t len,
1264 upb_value val, upb_Arena* a);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001265
Eric Salo8809a112022-11-21 13:01:06 -08001266// Looks up key in this table, returning "true" if the key was found.
1267// If v is non-NULL, copies the value for this key into *v.
Joshua Habermanf41049a2022-01-21 14:41:25 -08001268bool upb_strtable_lookup2(const upb_strtable* t, const char* key, size_t len,
1269 upb_value* v);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001270
Eric Salo8809a112022-11-21 13:01:06 -08001271// For NULL-terminated strings.
Joshua Habermanf41049a2022-01-21 14:41:25 -08001272UPB_INLINE bool upb_strtable_lookup(const upb_strtable* t, const char* key,
1273 upb_value* v) {
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001274 return upb_strtable_lookup2(t, key, strlen(key), v);
1275}
1276
Eric Salo8809a112022-11-21 13:01:06 -08001277// Removes an item from the table. Returns true if the remove was successful,
1278// and stores the removed item in *val if non-NULL.
Joshua Habermanf41049a2022-01-21 14:41:25 -08001279bool upb_strtable_remove2(upb_strtable* t, const char* key, size_t len,
1280 upb_value* val);
1281
1282UPB_INLINE bool upb_strtable_remove(upb_strtable* t, const char* key,
1283 upb_value* v) {
1284 return upb_strtable_remove2(t, key, strlen(key), v);
1285}
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001286
Eric Salo8809a112022-11-21 13:01:06 -08001287// Exposed for testing only.
Joshua Habermanf41049a2022-01-21 14:41:25 -08001288bool upb_strtable_resize(upb_strtable* t, size_t size_lg2, upb_Arena* a);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001289
Eric Salo8809a112022-11-21 13:01:06 -08001290/* Iteration over strtable:
Joshua Habermanf41049a2022-01-21 14:41:25 -08001291 *
Eric Salo8809a112022-11-21 13:01:06 -08001292 * intptr_t iter = UPB_STRTABLE_BEGIN;
Joshua Habermanf41049a2022-01-21 14:41:25 -08001293 * upb_StringView key;
1294 * upb_value val;
1295 * while (upb_strtable_next2(t, &key, &val, &iter)) {
1296 * // ...
1297 * }
1298 */
1299
1300#define UPB_STRTABLE_BEGIN -1
1301
1302bool upb_strtable_next2(const upb_strtable* t, upb_StringView* key,
1303 upb_value* val, intptr_t* iter);
1304void upb_strtable_removeiter(upb_strtable* t, intptr_t* iter);
Jie Luo3560e232023-06-12 00:33:50 -07001305void upb_strtable_setentryvalue(upb_strtable* t, intptr_t iter, upb_value v);
Joshua Habermanf41049a2022-01-21 14:41:25 -08001306
1307/* DEPRECATED iterators, slated for removal.
1308 *
Eric Salo8809a112022-11-21 13:01:06 -08001309 * Iterators for string tables. We are subject to some kind of unusual
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001310 * design constraints:
1311 *
1312 * For high-level languages:
1313 * - we must be able to guarantee that we don't crash or corrupt memory even if
1314 * the program accesses an invalidated iterator.
1315 *
1316 * For C++11 range-based for:
1317 * - iterators must be copyable
1318 * - iterators must be comparable
1319 * - it must be possible to construct an "end" value.
1320 *
1321 * Iteration order is undefined.
1322 *
1323 * Modifying the table invalidates iterators. upb_{str,int}table_done() is
1324 * guaranteed to work even on an invalidated iterator, as long as the table it
1325 * is iterating over has not been freed. Calling next() or accessing data from
1326 * an invalidated iterator yields unspecified elements from the table, but it is
1327 * guaranteed not to crash and to return real table elements (except when done()
1328 * is true). */
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001329/* upb_strtable_iter **********************************************************/
1330
1331/* upb_strtable_iter i;
1332 * upb_strtable_begin(&i, t);
1333 * for(; !upb_strtable_done(&i); upb_strtable_next(&i)) {
1334 * const char *key = upb_strtable_iter_key(&i);
1335 * const upb_value val = upb_strtable_iter_value(&i);
1336 * // ...
1337 * }
1338 */
1339
1340typedef struct {
Joshua Habermanf41049a2022-01-21 14:41:25 -08001341 const upb_strtable* t;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001342 size_t index;
1343} upb_strtable_iter;
1344
Eric Salo8809a112022-11-21 13:01:06 -08001345UPB_INLINE const upb_tabent* str_tabent(const upb_strtable_iter* i) {
1346 return &i->t->t.entries[i->index];
1347}
1348
Joshua Habermanf41049a2022-01-21 14:41:25 -08001349void upb_strtable_begin(upb_strtable_iter* i, const upb_strtable* t);
1350void upb_strtable_next(upb_strtable_iter* i);
1351bool upb_strtable_done(const upb_strtable_iter* i);
1352upb_StringView upb_strtable_iter_key(const upb_strtable_iter* i);
1353upb_value upb_strtable_iter_value(const upb_strtable_iter* i);
1354void upb_strtable_iter_setdone(upb_strtable_iter* i);
1355bool upb_strtable_iter_isequal(const upb_strtable_iter* i1,
1356 const upb_strtable_iter* i2);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001357
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001358#ifdef __cplusplus
Joshua Habermanf41049a2022-01-21 14:41:25 -08001359} /* extern "C" */
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001360#endif
1361
1362
Eric Salo8809a112022-11-21 13:01:06 -08001363#endif /* UPB_HASH_STR_TABLE_H_ */
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001364
Joshua Habermand3995ec2022-09-30 16:54:39 -07001365// Must be last.
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001366
Joshua Habermand3995ec2022-09-30 16:54:39 -07001367struct upb_Map {
Eric Salo8809a112022-11-21 13:01:06 -08001368 // Size of key and val, based on the map type.
1369 // Strings are represented as '0' because they must be handled specially.
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001370 char key_size;
1371 char val_size;
1372
1373 upb_strtable table;
Joshua Habermand3995ec2022-09-30 16:54:39 -07001374};
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001375
Eric Salo8809a112022-11-21 13:01:06 -08001376#ifdef __cplusplus
1377extern "C" {
1378#endif
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001379
Eric Salo8809a112022-11-21 13:01:06 -08001380// Converting between internal table representation and user values.
1381//
1382// _upb_map_tokey() and _upb_map_fromkey() are inverses.
1383// _upb_map_tovalue() and _upb_map_fromvalue() are inverses.
1384//
1385// These functions account for the fact that strings are treated differently
1386// from other types when stored in a map.
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001387
Joshua Habermanf41049a2022-01-21 14:41:25 -08001388UPB_INLINE upb_StringView _upb_map_tokey(const void* key, size_t size) {
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001389 if (size == UPB_MAPTYPE_STRING) {
Joshua Habermanf41049a2022-01-21 14:41:25 -08001390 return *(upb_StringView*)key;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001391 } else {
Joshua Habermanf41049a2022-01-21 14:41:25 -08001392 return upb_StringView_FromDataAndSize((const char*)key, size);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001393 }
1394}
1395
Joshua Habermanf41049a2022-01-21 14:41:25 -08001396UPB_INLINE void _upb_map_fromkey(upb_StringView key, void* out, size_t size) {
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001397 if (size == UPB_MAPTYPE_STRING) {
1398 memcpy(out, &key, sizeof(key));
1399 } else {
1400 memcpy(out, key.data, size);
1401 }
1402}
1403
Joshua Habermanf41049a2022-01-21 14:41:25 -08001404UPB_INLINE bool _upb_map_tovalue(const void* val, size_t size,
1405 upb_value* msgval, upb_Arena* a) {
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001406 if (size == UPB_MAPTYPE_STRING) {
Joshua Habermanf41049a2022-01-21 14:41:25 -08001407 upb_StringView* strp = (upb_StringView*)upb_Arena_Malloc(a, sizeof(*strp));
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001408 if (!strp) return false;
Joshua Habermanf41049a2022-01-21 14:41:25 -08001409 *strp = *(upb_StringView*)val;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001410 *msgval = upb_value_ptr(strp);
1411 } else {
1412 memcpy(msgval, val, size);
1413 }
1414 return true;
1415}
1416
1417UPB_INLINE void _upb_map_fromvalue(upb_value val, void* out, size_t size) {
1418 if (size == UPB_MAPTYPE_STRING) {
Joshua Habermanf41049a2022-01-21 14:41:25 -08001419 const upb_StringView* strp = (const upb_StringView*)upb_value_getptr(val);
1420 memcpy(out, strp, sizeof(upb_StringView));
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001421 } else {
1422 memcpy(out, &val, size);
1423 }
1424}
1425
Eric Salo8809a112022-11-21 13:01:06 -08001426UPB_INLINE void* _upb_map_next(const upb_Map* map, size_t* iter) {
1427 upb_strtable_iter it;
1428 it.t = &map->table;
1429 it.index = *iter;
1430 upb_strtable_next(&it);
1431 *iter = it.index;
1432 if (upb_strtable_done(&it)) return NULL;
1433 return (void*)str_tabent(&it);
1434}
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001435
Eric Salo8809a112022-11-21 13:01:06 -08001436UPB_INLINE void _upb_Map_Clear(upb_Map* map) {
1437 upb_strtable_clear(&map->table);
1438}
1439
Eric Salob598b2d2022-12-22 23:14:27 -08001440UPB_INLINE bool _upb_Map_Delete(upb_Map* map, const void* key, size_t key_size,
1441 upb_value* val) {
Eric Salo8809a112022-11-21 13:01:06 -08001442 upb_StringView k = _upb_map_tokey(key, key_size);
Eric Salob598b2d2022-12-22 23:14:27 -08001443 return upb_strtable_remove2(&map->table, k.data, k.size, val);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001444}
1445
Joshua Habermanf41049a2022-01-21 14:41:25 -08001446UPB_INLINE bool _upb_Map_Get(const upb_Map* map, const void* key,
1447 size_t key_size, void* val, size_t val_size) {
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001448 upb_value tabval;
Joshua Habermanf41049a2022-01-21 14:41:25 -08001449 upb_StringView k = _upb_map_tokey(key, key_size);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001450 bool ret = upb_strtable_lookup2(&map->table, k.data, k.size, &tabval);
1451 if (ret && val) {
1452 _upb_map_fromvalue(tabval, val, val_size);
1453 }
1454 return ret;
1455}
1456
Eric Salo8809a112022-11-21 13:01:06 -08001457UPB_INLINE upb_MapInsertStatus _upb_Map_Insert(upb_Map* map, const void* key,
1458 size_t key_size, void* val,
1459 size_t val_size, upb_Arena* a) {
Joshua Habermanf41049a2022-01-21 14:41:25 -08001460 upb_StringView strkey = _upb_map_tokey(key, key_size);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001461 upb_value tabval = {0};
Joshua Habermand3995ec2022-09-30 16:54:39 -07001462 if (!_upb_map_tovalue(val, val_size, &tabval, a)) {
Eric Salo8809a112022-11-21 13:01:06 -08001463 return kUpb_MapInsertStatus_OutOfMemory;
Joshua Habermand3995ec2022-09-30 16:54:39 -07001464 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001465
Eric Salo8809a112022-11-21 13:01:06 -08001466 // TODO(haberman): add overwrite operation to minimize number of lookups.
Joshua Habermand3995ec2022-09-30 16:54:39 -07001467 bool removed =
1468 upb_strtable_remove2(&map->table, strkey.data, strkey.size, NULL);
1469 if (!upb_strtable_insert(&map->table, strkey.data, strkey.size, tabval, a)) {
Eric Salo8809a112022-11-21 13:01:06 -08001470 return kUpb_MapInsertStatus_OutOfMemory;
Joshua Habermand3995ec2022-09-30 16:54:39 -07001471 }
Eric Salo8809a112022-11-21 13:01:06 -08001472 return removed ? kUpb_MapInsertStatus_Replaced
1473 : kUpb_MapInsertStatus_Inserted;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001474}
1475
Eric Salo8809a112022-11-21 13:01:06 -08001476UPB_INLINE size_t _upb_Map_Size(const upb_Map* map) {
1477 return map->table.t.count;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001478}
1479
Eric Salob7d54ac2022-12-29 11:59:42 -08001480// Strings/bytes are special-cased in maps.
1481extern char _upb_Map_CTypeSizeTable[12];
1482
1483UPB_INLINE size_t _upb_Map_CTypeSize(upb_CType ctype) {
1484 return _upb_Map_CTypeSizeTable[ctype];
1485}
1486
Eric Salo8809a112022-11-21 13:01:06 -08001487// Creates a new map on the given arena with this key/value type.
1488upb_Map* _upb_Map_New(upb_Arena* a, size_t key_size, size_t value_size);
1489
1490#ifdef __cplusplus
1491} /* extern "C" */
1492#endif
1493
1494
1495#endif /* UPB_COLLECTIONS_MAP_INTERNAL_H_ */
1496
Mike Kruskal3bc50492022-12-01 13:34:12 -08001497#ifndef UPB_BASE_LOG2_H_
1498#define UPB_BASE_LOG2_H_
1499
1500// Must be last.
1501
1502#ifdef __cplusplus
1503extern "C" {
1504#endif
1505
1506UPB_INLINE int upb_Log2Ceiling(int x) {
1507 if (x <= 1) return 0;
1508#ifdef __GNUC__
1509 return 32 - __builtin_clz(x - 1);
1510#else
1511 int lg2 = 0;
1512 while (1 << lg2 < x) lg2++;
1513 return lg2;
1514#endif
1515}
1516
1517UPB_INLINE int upb_Log2CeilingSize(int x) { return 1 << upb_Log2Ceiling(x); }
1518
1519#ifdef __cplusplus
1520} /* extern "C" */
1521#endif
1522
1523
1524#endif /* UPB_BASE_LOG2_H_ */
1525
1526// EVERYTHING BELOW THIS LINE IS INTERNAL - DO NOT USE /////////////////////////
1527
1528#ifndef UPB_COLLECTIONS_MAP_SORTER_INTERNAL_H_
1529#define UPB_COLLECTIONS_MAP_SORTER_INTERNAL_H_
1530
1531#include <stdlib.h>
1532
1533
Mike Kruskal3bc50492022-12-01 13:34:12 -08001534#ifndef UPB_MESSAGE_EXTENSION_INTERNAL_H_
1535#define UPB_MESSAGE_EXTENSION_INTERNAL_H_
1536
1537
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07001538// Public APIs for message operations that do not depend on the schema.
Eric Salo8809a112022-11-21 13:01:06 -08001539//
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07001540// MiniTable-based accessors live in accessors.h.
Eric Salo8809a112022-11-21 13:01:06 -08001541
1542#ifndef UPB_MESSAGE_MESSAGE_H_
1543#define UPB_MESSAGE_MESSAGE_H_
1544
1545
1546// Must be last.
1547
1548#ifdef __cplusplus
1549extern "C" {
1550#endif
1551
1552// Creates a new message with the given mini_table on the given arena.
Eric Salo10505992022-12-12 12:16:36 -08001553UPB_API upb_Message* upb_Message_New(const upb_MiniTable* mini_table,
1554 upb_Arena* arena);
Eric Salo8809a112022-11-21 13:01:06 -08001555
1556// Adds unknown data (serialized protobuf data) to the given message.
1557// The data is copied into the message instance.
1558void upb_Message_AddUnknown(upb_Message* msg, const char* data, size_t len,
1559 upb_Arena* arena);
1560
1561// Returns a reference to the message's unknown data.
1562const char* upb_Message_GetUnknown(const upb_Message* msg, size_t* len);
1563
1564// Removes partial unknown data from message.
1565void upb_Message_DeleteUnknown(upb_Message* msg, const char* data, size_t len);
1566
1567// Returns the number of extensions present in this message.
1568size_t upb_Message_ExtensionCount(const upb_Message* msg);
1569
1570#ifdef __cplusplus
1571} /* extern "C" */
1572#endif
1573
1574
1575#endif /* UPB_MESSAGE_MESSAGE_H_ */
1576
Eric Salo8809a112022-11-21 13:01:06 -08001577#ifndef UPB_MINI_TABLE_EXTENSION_INTERNAL_H_
1578#define UPB_MINI_TABLE_EXTENSION_INTERNAL_H_
1579
1580
1581#ifndef UPB_MINI_TABLE_FIELD_INTERNAL_H_
1582#define UPB_MINI_TABLE_FIELD_INTERNAL_H_
1583
1584
1585// Must be last.
1586
Deanna Garciac7d979d2023-04-14 17:22:13 -07001587// LINT.IfChange(mini_table_field_layout)
1588
Eric Salo8809a112022-11-21 13:01:06 -08001589struct upb_MiniTableField {
1590 uint32_t number;
1591 uint16_t offset;
1592 int16_t presence; // If >0, hasbit_index. If <0, ~oneof_index
Deanna Garciac7d979d2023-04-14 17:22:13 -07001593
1594 // Indexes into `upb_MiniTable.subs`
1595 // Will be set to `kUpb_NoSub` if `descriptortype` != MESSAGE/GROUP/ENUM
1596 uint16_t UPB_PRIVATE(submsg_index);
1597
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07001598 uint8_t UPB_PRIVATE(descriptortype);
Eric Salo8809a112022-11-21 13:01:06 -08001599
1600 // upb_FieldMode | upb_LabelFlags | (upb_FieldRep << kUpb_FieldRep_Shift)
1601 uint8_t mode;
1602};
1603
1604#define kUpb_NoSub ((uint16_t)-1)
1605
1606typedef enum {
1607 kUpb_FieldMode_Map = 0,
1608 kUpb_FieldMode_Array = 1,
1609 kUpb_FieldMode_Scalar = 2,
1610} upb_FieldMode;
1611
1612// Mask to isolate the upb_FieldMode from field.mode.
1613#define kUpb_FieldMode_Mask 3
1614
1615// Extra flags on the mode field.
1616typedef enum {
1617 kUpb_LabelFlags_IsPacked = 4,
1618 kUpb_LabelFlags_IsExtension = 8,
1619 // Indicates that this descriptor type is an "alternate type":
1620 // - for Int32, this indicates that the actual type is Enum (but was
1621 // rewritten to Int32 because it is an open enum that requires no check).
1622 // - for Bytes, this indicates that the actual type is String (but does
1623 // not require any UTF-8 check).
1624 kUpb_LabelFlags_IsAlternate = 16,
1625} upb_LabelFlags;
1626
1627// Note: we sort by this number when calculating layout order.
1628typedef enum {
1629 kUpb_FieldRep_1Byte = 0,
1630 kUpb_FieldRep_4Byte = 1,
1631 kUpb_FieldRep_StringView = 2,
1632 kUpb_FieldRep_8Byte = 3,
1633
Eric Salob7d54ac2022-12-29 11:59:42 -08001634 kUpb_FieldRep_NativePointer =
1635 UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte),
Eric Salo8809a112022-11-21 13:01:06 -08001636 kUpb_FieldRep_Max = kUpb_FieldRep_8Byte,
1637} upb_FieldRep;
1638
1639#define kUpb_FieldRep_Shift 6
1640
Deanna Garciac7d979d2023-04-14 17:22:13 -07001641// LINT.ThenChange(//depot/google3/third_party/upb/js/impl/upb_bits/mini_table_field.ts:mini_table_field_layout)
1642
Eric Salo8809a112022-11-21 13:01:06 -08001643UPB_INLINE upb_FieldRep
1644_upb_MiniTableField_GetRep(const upb_MiniTableField* field) {
1645 return (upb_FieldRep)(field->mode >> kUpb_FieldRep_Shift);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001646}
1647
Eric Salo8809a112022-11-21 13:01:06 -08001648#ifdef __cplusplus
1649extern "C" {
1650#endif
1651
1652UPB_INLINE upb_FieldMode upb_FieldMode_Get(const upb_MiniTableField* field) {
1653 return (upb_FieldMode)(field->mode & 3);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001654}
1655
Eric Salob7d54ac2022-12-29 11:59:42 -08001656UPB_INLINE void _upb_MiniTableField_CheckIsArray(
1657 const upb_MiniTableField* field) {
1658 UPB_ASSUME(_upb_MiniTableField_GetRep(field) == kUpb_FieldRep_NativePointer);
1659 UPB_ASSUME(upb_FieldMode_Get(field) == kUpb_FieldMode_Array);
1660 UPB_ASSUME(field->presence == 0);
1661}
1662
1663UPB_INLINE void _upb_MiniTableField_CheckIsMap(
1664 const upb_MiniTableField* field) {
1665 UPB_ASSUME(_upb_MiniTableField_GetRep(field) == kUpb_FieldRep_NativePointer);
1666 UPB_ASSUME(upb_FieldMode_Get(field) == kUpb_FieldMode_Map);
1667 UPB_ASSUME(field->presence == 0);
1668}
1669
Eric Salo8809a112022-11-21 13:01:06 -08001670UPB_INLINE bool upb_IsRepeatedOrMap(const upb_MiniTableField* field) {
1671 // This works because upb_FieldMode has no value 3.
1672 return !(field->mode & kUpb_FieldMode_Scalar);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001673}
1674
Eric Salo8809a112022-11-21 13:01:06 -08001675UPB_INLINE bool upb_IsSubMessage(const upb_MiniTableField* field) {
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07001676 return field->UPB_PRIVATE(descriptortype) == kUpb_FieldType_Message ||
1677 field->UPB_PRIVATE(descriptortype) == kUpb_FieldType_Group;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001678}
1679
Eric Salo8809a112022-11-21 13:01:06 -08001680// LINT.IfChange(presence_logic)
1681
1682// Hasbit access ///////////////////////////////////////////////////////////////
1683
1684UPB_INLINE size_t _upb_hasbit_ofs(size_t idx) { return idx / 8; }
1685
1686UPB_INLINE char _upb_hasbit_mask(size_t idx) { return 1 << (idx % 8); }
1687
1688UPB_INLINE bool _upb_hasbit(const upb_Message* msg, size_t idx) {
1689 return (*UPB_PTR_AT(msg, _upb_hasbit_ofs(idx), const char) &
1690 _upb_hasbit_mask(idx)) != 0;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001691}
1692
Eric Salo8809a112022-11-21 13:01:06 -08001693UPB_INLINE void _upb_sethas(const upb_Message* msg, size_t idx) {
1694 (*UPB_PTR_AT(msg, _upb_hasbit_ofs(idx), char)) |= _upb_hasbit_mask(idx);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001695}
1696
Eric Salo8809a112022-11-21 13:01:06 -08001697UPB_INLINE void _upb_clearhas(const upb_Message* msg, size_t idx) {
1698 (*UPB_PTR_AT(msg, _upb_hasbit_ofs(idx), char)) &= ~_upb_hasbit_mask(idx);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001699}
1700
Eric Salo8809a112022-11-21 13:01:06 -08001701UPB_INLINE size_t _upb_Message_Hasidx(const upb_MiniTableField* f) {
1702 UPB_ASSERT(f->presence > 0);
1703 return f->presence;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08001704}
1705
Eric Salo8809a112022-11-21 13:01:06 -08001706UPB_INLINE bool _upb_hasbit_field(const upb_Message* msg,
1707 const upb_MiniTableField* f) {
1708 return _upb_hasbit(msg, _upb_Message_Hasidx(f));
1709}
1710
1711UPB_INLINE void _upb_sethas_field(const upb_Message* msg,
1712 const upb_MiniTableField* f) {
1713 _upb_sethas(msg, _upb_Message_Hasidx(f));
1714}
1715
Eric Salo8809a112022-11-21 13:01:06 -08001716// Oneof case access ///////////////////////////////////////////////////////////
1717
Eric Salo8809a112022-11-21 13:01:06 -08001718UPB_INLINE size_t _upb_oneofcase_ofs(const upb_MiniTableField* f) {
1719 UPB_ASSERT(f->presence < 0);
1720 return ~(ptrdiff_t)f->presence;
1721}
1722
1723UPB_INLINE uint32_t* _upb_oneofcase_field(upb_Message* msg,
1724 const upb_MiniTableField* f) {
Eric Salob598b2d2022-12-22 23:14:27 -08001725 return UPB_PTR_AT(msg, _upb_oneofcase_ofs(f), uint32_t);
Eric Salo8809a112022-11-21 13:01:06 -08001726}
1727
1728UPB_INLINE uint32_t _upb_getoneofcase_field(const upb_Message* msg,
1729 const upb_MiniTableField* f) {
Eric Salob598b2d2022-12-22 23:14:27 -08001730 return *_upb_oneofcase_field((upb_Message*)msg, f);
Eric Salo8809a112022-11-21 13:01:06 -08001731}
1732
1733// LINT.ThenChange(GoogleInternalName2)
Deanna Garciac7d979d2023-04-14 17:22:13 -07001734// LINT.ThenChange(//depot/google3/third_party/upb/js/impl/upb_bits/presence.ts:presence_logic)
Eric Salo8809a112022-11-21 13:01:06 -08001735
1736#ifdef __cplusplus
1737} /* extern "C" */
1738#endif
1739
1740
1741#endif /* UPB_MINI_TABLE_FIELD_INTERNAL_H_ */
1742
1743#ifndef UPB_MINI_TABLE_SUB_INTERNAL_H_
1744#define UPB_MINI_TABLE_SUB_INTERNAL_H_
1745
1746
1747union upb_MiniTableSub {
1748 const upb_MiniTable* submsg;
1749 const upb_MiniTableEnum* subenum;
1750};
1751
1752#endif /* UPB_MINI_TABLE_SUB_INTERNAL_H_ */
1753
1754// Must be last.
1755
1756struct upb_MiniTableExtension {
Deanna Garcia59cfc2f2023-01-31 13:19:28 -08001757 // Do not move this field. We need to be able to alias pointers.
Eric Salo8809a112022-11-21 13:01:06 -08001758 upb_MiniTableField field;
Deanna Garcia59cfc2f2023-01-31 13:19:28 -08001759
Eric Salo8809a112022-11-21 13:01:06 -08001760 const upb_MiniTable* extendee;
1761 upb_MiniTableSub sub; // NULL unless submessage or proto2 enum
1762};
1763
1764
1765#endif /* UPB_MINI_TABLE_EXTENSION_INTERNAL_H_ */
1766
1767// Must be last.
1768
1769// The internal representation of an extension is self-describing: it contains
1770// enough information that we can serialize it to binary format without needing
1771// to look it up in a upb_ExtensionRegistry.
1772//
1773// This representation allocates 16 bytes to data on 64-bit platforms.
1774// This is rather wasteful for scalars (in the extreme case of bool,
1775// it wastes 15 bytes). We accept this because we expect messages to be
1776// the most common extension type.
1777typedef struct {
1778 const upb_MiniTableExtension* ext;
1779 union {
1780 upb_StringView str;
1781 void* ptr;
1782 char scalar_data[8];
1783 } data;
1784} upb_Message_Extension;
1785
1786#ifdef __cplusplus
1787extern "C" {
1788#endif
1789
1790// Adds the given extension data to the given message.
1791// |ext| is copied into the message instance.
1792// This logically replaces any previously-added extension with this number.
1793upb_Message_Extension* _upb_Message_GetOrCreateExtension(
1794 upb_Message* msg, const upb_MiniTableExtension* ext, upb_Arena* arena);
1795
1796// Returns an array of extensions for this message.
1797// Note: the array is ordered in reverse relative to the order of creation.
1798const upb_Message_Extension* _upb_Message_Getexts(const upb_Message* msg,
1799 size_t* count);
1800
1801// Returns an extension for the given field number, or NULL if no extension
1802// exists for this field number.
1803const upb_Message_Extension* _upb_Message_Getext(
1804 const upb_Message* msg, const upb_MiniTableExtension* ext);
1805
Eric Salo8809a112022-11-21 13:01:06 -08001806#ifdef __cplusplus
1807} /* extern "C" */
1808#endif
1809
1810
1811#endif /* UPB_MESSAGE_EXTENSION_INTERNAL_H_ */
1812
Jakob Buchgraberc0c79b22023-03-20 08:13:52 -07001813#ifndef UPB_MINI_TABLE_MESSAGE_INTERNAL_H_
1814#define UPB_MINI_TABLE_MESSAGE_INTERNAL_H_
1815
1816
1817// Must be last.
1818
1819struct upb_Decoder;
1820typedef const char* _upb_FieldParser(struct upb_Decoder* d, const char* ptr,
1821 upb_Message* msg, intptr_t table,
1822 uint64_t hasbits, uint64_t data);
1823typedef struct {
1824 uint64_t field_data;
1825 _upb_FieldParser* field_parser;
1826} _upb_FastTable_Entry;
1827
1828typedef enum {
1829 kUpb_ExtMode_NonExtendable = 0, // Non-extendable message.
1830 kUpb_ExtMode_Extendable = 1, // Normal extendable message.
1831 kUpb_ExtMode_IsMessageSet = 2, // MessageSet message.
1832 kUpb_ExtMode_IsMessageSet_ITEM =
1833 3, // MessageSet item (temporary only, see decode.c)
1834
1835 // During table building we steal a bit to indicate that the message is a map
1836 // entry. *Only* used during table building!
1837 kUpb_ExtMode_IsMapEntry = 4,
1838} upb_ExtMode;
1839
Deanna Garciac7d979d2023-04-14 17:22:13 -07001840// LINT.IfChange(mini_table_layout)
1841
Jakob Buchgraberc0c79b22023-03-20 08:13:52 -07001842// upb_MiniTable represents the memory layout of a given upb_MessageDef.
1843// The members are public so generated code can initialize them,
1844// but users MUST NOT directly read or write any of its members.
1845struct upb_MiniTable {
1846 const upb_MiniTableSub* subs;
1847 const upb_MiniTableField* fields;
1848
1849 // Must be aligned to sizeof(void*). Doesn't include internal members like
1850 // unknown fields, extension dict, pointer to msglayout, etc.
1851 uint16_t size;
1852
1853 uint16_t field_count;
1854 uint8_t ext; // upb_ExtMode, declared as uint8_t so sizeof(ext) == 1
1855 uint8_t dense_below;
1856 uint8_t table_mask;
1857 uint8_t required_count; // Required fields have the lowest hasbits.
1858
1859 // To statically initialize the tables of variable length, we need a flexible
1860 // array member, and we need to compile in gnu99 mode (constant initialization
1861 // of flexible array members is a GNU extension, not in C99 unfortunately.
1862 _upb_FastTable_Entry fasttable[];
1863};
1864
Deanna Garciac7d979d2023-04-14 17:22:13 -07001865// LINT.ThenChange(//depot/google3/third_party/upb/js/impl/upb_bits/mini_table.ts:presence_logic)
1866
Jakob Buchgraberc0c79b22023-03-20 08:13:52 -07001867// Map entries aren't actually stored for map fields, they are only used during
1868// parsing. For parsing, it helps a lot if all map entry messages have the same
1869// layout. The layout code in mini_table/decode.c will ensure that all map
1870// entries have this layout.
1871//
1872// Note that users can and do create map entries directly, which will also use
1873// this layout.
1874//
1875// NOTE: sync with mini_table/decode.c.
1876typedef struct {
1877 // We only need 2 hasbits max, but due to alignment we'll use 8 bytes here,
1878 // and the uint64_t helps make this clear.
1879 uint64_t hasbits;
1880 union {
1881 upb_StringView str; // For str/bytes.
1882 upb_value val; // For all other types.
1883 } k;
1884 union {
1885 upb_StringView str; // For str/bytes.
1886 upb_value val; // For all other types.
1887 } v;
1888} upb_MapEntryData;
1889
1890typedef struct {
1891 void* internal_data;
1892 upb_MapEntryData data;
1893} upb_MapEntry;
1894
1895#ifdef __cplusplus
1896extern "C" {
1897#endif
1898
Jie Luo3560e232023-06-12 00:33:50 -07001899// A MiniTable for an empty message, used for unlinked sub-messages.
1900extern const upb_MiniTable _kUpb_MiniTable_Empty;
1901
Jakob Buchgraberc0c79b22023-03-20 08:13:52 -07001902// Computes a bitmask in which the |l->required_count| lowest bits are set,
1903// except that we skip the lowest bit (because upb never uses hasbit 0).
1904//
1905// Sample output:
1906// requiredmask(1) => 0b10 (0x2)
1907// requiredmask(5) => 0b111110 (0x3e)
1908UPB_INLINE uint64_t upb_MiniTable_requiredmask(const upb_MiniTable* l) {
1909 int n = l->required_count;
1910 assert(0 < n && n <= 63);
1911 return ((1ULL << n) - 1) << 1;
1912}
1913
1914#ifdef __cplusplus
1915} /* extern "C" */
1916#endif
1917
1918
1919#endif /* UPB_MINI_TABLE_MESSAGE_INTERNAL_H_ */
1920
1921// Must be last.
1922
1923#ifdef __cplusplus
1924extern "C" {
1925#endif
1926
1927// _upb_mapsorter sorts maps and provides ordered iteration over the entries.
1928// Since maps can be recursive (map values can be messages which contain other
1929// maps), _upb_mapsorter can contain a stack of maps.
1930
1931typedef struct {
1932 void const** entries;
1933 int size;
1934 int cap;
1935} _upb_mapsorter;
1936
1937typedef struct {
1938 int start;
1939 int pos;
1940 int end;
1941} _upb_sortedmap;
1942
1943UPB_INLINE void _upb_mapsorter_init(_upb_mapsorter* s) {
1944 s->entries = NULL;
1945 s->size = 0;
1946 s->cap = 0;
1947}
1948
1949UPB_INLINE void _upb_mapsorter_destroy(_upb_mapsorter* s) {
1950 if (s->entries) free(s->entries);
1951}
1952
1953UPB_INLINE bool _upb_sortedmap_next(_upb_mapsorter* s, const upb_Map* map,
1954 _upb_sortedmap* sorted, upb_MapEntry* ent) {
1955 if (sorted->pos == sorted->end) return false;
1956 const upb_tabent* tabent = (const upb_tabent*)s->entries[sorted->pos++];
1957 upb_StringView key = upb_tabstrview(tabent->key);
1958 _upb_map_fromkey(key, &ent->data.k, map->key_size);
1959 upb_value val = {tabent->val.val};
1960 _upb_map_fromvalue(val, &ent->data.v, map->val_size);
1961 return true;
1962}
1963
1964UPB_INLINE bool _upb_sortedmap_nextext(_upb_mapsorter* s,
1965 _upb_sortedmap* sorted,
1966 const upb_Message_Extension** ext) {
1967 if (sorted->pos == sorted->end) return false;
1968 *ext = (const upb_Message_Extension*)s->entries[sorted->pos++];
1969 return true;
1970}
1971
1972UPB_INLINE void _upb_mapsorter_popmap(_upb_mapsorter* s,
1973 _upb_sortedmap* sorted) {
1974 s->size = sorted->start;
1975}
1976
1977bool _upb_mapsorter_pushmap(_upb_mapsorter* s, upb_FieldType key_type,
1978 const upb_Map* map, _upb_sortedmap* sorted);
1979
1980bool _upb_mapsorter_pushexts(_upb_mapsorter* s,
1981 const upb_Message_Extension* exts, size_t count,
1982 _upb_sortedmap* sorted);
1983
1984#ifdef __cplusplus
1985} /* extern "C" */
1986#endif
1987
1988
1989#endif /* UPB_COLLECTIONS_MAP_SORTER_INTERNAL_H_ */
1990
1991/*
1992** Our memory representation for parsing tables and messages themselves.
1993** Functions in this file are used by generated code and possibly reflection.
1994**
1995** The definitions in this file are internal to upb.
1996**/
1997
1998#ifndef UPB_MESSAGE_INTERNAL_H_
1999#define UPB_MESSAGE_INTERNAL_H_
2000
2001#include <stdlib.h>
2002#include <string.h>
2003
2004
Mike Kruskal3bc50492022-12-01 13:34:12 -08002005#ifndef UPB_MINI_TABLE_EXTENSION_REGISTRY_H_
2006#define UPB_MINI_TABLE_EXTENSION_REGISTRY_H_
2007
2008
2009// Must be last.
2010
2011#ifdef __cplusplus
2012extern "C" {
2013#endif
2014
2015/* Extension registry: a dynamic data structure that stores a map of:
2016 * (upb_MiniTable, number) -> extension info
2017 *
2018 * upb_decode() uses upb_ExtensionRegistry to look up extensions while parsing
2019 * binary format.
2020 *
2021 * upb_ExtensionRegistry is part of the mini-table (msglayout) family of
2022 * objects. Like all mini-table objects, it is suitable for reflection-less
2023 * builds that do not want to expose names into the binary.
2024 *
2025 * Unlike most mini-table types, upb_ExtensionRegistry requires dynamic memory
2026 * allocation and dynamic initialization:
2027 * * If reflection is being used, then upb_DefPool will construct an appropriate
2028 * upb_ExtensionRegistry automatically.
2029 * * For a mini-table only build, the user must manually construct the
2030 * upb_ExtensionRegistry and populate it with all of the extensions the user
2031 * cares about.
2032 * * A third alternative is to manually unpack relevant extensions after the
2033 * main parse is complete, similar to how Any works. This is perhaps the
2034 * nicest solution from the perspective of reducing dependencies, avoiding
2035 * dynamic memory allocation, and avoiding the need to parse uninteresting
2036 * extensions. The downsides are:
2037 * (1) parse errors are not caught during the main parse
2038 * (2) the CPU hit of parsing comes during access, which could cause an
2039 * undesirable stutter in application performance.
2040 *
2041 * Users cannot directly get or put into this map. Users can only add the
2042 * extensions from a generated module and pass the extension registry to the
2043 * binary decoder.
2044 *
2045 * A upb_DefPool provides a upb_ExtensionRegistry, so any users who use
2046 * reflection do not need to populate a upb_ExtensionRegistry directly.
2047 */
2048
2049typedef struct upb_ExtensionRegistry upb_ExtensionRegistry;
2050
2051// Creates a upb_ExtensionRegistry in the given arena.
2052// The arena must outlive any use of the extreg.
Eric Salo10505992022-12-12 12:16:36 -08002053UPB_API upb_ExtensionRegistry* upb_ExtensionRegistry_New(upb_Arena* arena);
Mike Kruskal3bc50492022-12-01 13:34:12 -08002054
Jakob Buchgraberc0c79b22023-03-20 08:13:52 -07002055UPB_API bool upb_ExtensionRegistry_Add(upb_ExtensionRegistry* r,
2056 const upb_MiniTableExtension* e);
2057
Mike Kruskal3bc50492022-12-01 13:34:12 -08002058// Adds the given extension info for the array |e| of size |count| into the
2059// registry. If there are any errors, the entire array is backed out.
2060// The extensions must outlive the registry.
2061// Possible errors include OOM or an extension number that already exists.
Jakob Buchgraberc0c79b22023-03-20 08:13:52 -07002062// TODO(salo): There is currently no way to know the exact reason for failure.
Mike Kruskal3bc50492022-12-01 13:34:12 -08002063bool upb_ExtensionRegistry_AddArray(upb_ExtensionRegistry* r,
2064 const upb_MiniTableExtension** e,
2065 size_t count);
2066
2067// Looks up the extension (if any) defined for message type |t| and field
2068// number |num|. Returns the extension if found, otherwise NULL.
Jakob Buchgraberc0c79b22023-03-20 08:13:52 -07002069UPB_API const upb_MiniTableExtension* upb_ExtensionRegistry_Lookup(
Mike Kruskal3bc50492022-12-01 13:34:12 -08002070 const upb_ExtensionRegistry* r, const upb_MiniTable* t, uint32_t num);
2071
2072#ifdef __cplusplus
2073} /* extern "C" */
2074#endif
2075
2076
2077#endif /* UPB_MINI_TABLE_EXTENSION_REGISTRY_H_ */
2078
Eric Salo8809a112022-11-21 13:01:06 -08002079#ifndef UPB_MINI_TABLE_FILE_INTERNAL_H_
2080#define UPB_MINI_TABLE_FILE_INTERNAL_H_
2081
2082
2083// Must be last.
2084
2085struct upb_MiniTableFile {
2086 const upb_MiniTable** msgs;
2087 const upb_MiniTableEnum** enums;
2088 const upb_MiniTableExtension** exts;
2089 int msg_count;
2090 int enum_count;
2091 int ext_count;
2092};
2093
2094
2095#endif /* UPB_MINI_TABLE_FILE_INTERNAL_H_ */
2096
Eric Salo8809a112022-11-21 13:01:06 -08002097// Must be last.
Mike Kruskal9cf9db82022-11-04 21:22:31 -07002098
Eric Salo8809a112022-11-21 13:01:06 -08002099#ifdef __cplusplus
2100extern "C" {
2101#endif
Mike Kruskal9cf9db82022-11-04 21:22:31 -07002102
Eric Salo8809a112022-11-21 13:01:06 -08002103extern const float kUpb_FltInfinity;
2104extern const double kUpb_Infinity;
2105extern const double kUpb_NaN;
2106
2107/* Internal members of a upb_Message that track unknown fields and/or
2108 * extensions. We can change this without breaking binary compatibility. We put
2109 * these before the user's data. The user's upb_Message* points after the
2110 * upb_Message_Internal. */
2111
2112typedef struct {
2113 /* Total size of this structure, including the data that follows.
2114 * Must be aligned to 8, which is alignof(upb_Message_Extension) */
2115 uint32_t size;
2116
2117 /* Offsets relative to the beginning of this structure.
2118 *
2119 * Unknown data grows forward from the beginning to unknown_end.
2120 * Extension data grows backward from size to ext_begin.
2121 * When the two meet, we're out of data and have to realloc.
2122 *
2123 * If we imagine that the final member of this struct is:
2124 * char data[size - overhead]; // overhead =
2125 * sizeof(upb_Message_InternalData)
2126 *
2127 * Then we have:
2128 * unknown data: data[0 .. (unknown_end - overhead)]
2129 * extensions data: data[(ext_begin - overhead) .. (size - overhead)] */
2130 uint32_t unknown_end;
2131 uint32_t ext_begin;
2132 /* Data follows, as if there were an array:
2133 * char data[size - sizeof(upb_Message_InternalData)]; */
2134} upb_Message_InternalData;
2135
2136typedef struct {
2137 upb_Message_InternalData* internal;
2138 /* Message data follows. */
2139} upb_Message_Internal;
2140
2141/* Maps upb_CType -> memory size. */
2142extern char _upb_CTypeo_size[12];
2143
2144UPB_INLINE size_t upb_msg_sizeof(const upb_MiniTable* t) {
2145 return t->size + sizeof(upb_Message_Internal);
2146}
2147
2148// Inline version upb_Message_New(), for internal use.
2149UPB_INLINE upb_Message* _upb_Message_New(const upb_MiniTable* mini_table,
2150 upb_Arena* arena) {
2151 size_t size = upb_msg_sizeof(mini_table);
2152 void* mem = upb_Arena_Malloc(arena, size + sizeof(upb_Message_Internal));
2153 if (UPB_UNLIKELY(!mem)) return NULL;
2154 upb_Message* msg = UPB_PTR_AT(mem, sizeof(upb_Message_Internal), upb_Message);
2155 memset(mem, 0, size);
2156 return msg;
2157}
2158
2159UPB_INLINE upb_Message_Internal* upb_Message_Getinternal(
2160 const upb_Message* msg) {
2161 ptrdiff_t size = sizeof(upb_Message_Internal);
2162 return (upb_Message_Internal*)((char*)msg - size);
2163}
2164
Eric Salo8809a112022-11-21 13:01:06 -08002165// Discards the unknown fields for this message only.
2166void _upb_Message_DiscardUnknown_shallow(upb_Message* msg);
2167
2168// Adds unknown data (serialized protobuf data) to the given message.
2169// The data is copied into the message instance.
2170bool _upb_Message_AddUnknown(upb_Message* msg, const char* data, size_t len,
2171 upb_Arena* arena);
2172
Eric Salo8809a112022-11-21 13:01:06 -08002173#ifdef __cplusplus
2174} /* extern "C" */
2175#endif
2176
2177
2178#endif /* UPB_MESSAGE_INTERNAL_H_ */
Mike Kruskal9cf9db82022-11-04 21:22:31 -07002179
Eric Salo8809a112022-11-21 13:01:06 -08002180#ifndef UPB_MINI_TABLE_ENUM_INTERNAL_H_
2181#define UPB_MINI_TABLE_ENUM_INTERNAL_H_
2182
2183
2184// Must be last.
2185
2186struct upb_MiniTableEnum {
2187 uint32_t mask_limit; // Limit enum value that can be tested with mask.
2188 uint32_t value_count; // Number of values after the bitfield.
2189 uint32_t data[]; // Bitmask + enumerated values follow.
2190};
2191
2192typedef enum {
2193 _kUpb_FastEnumCheck_ValueIsInEnum = 0,
2194 _kUpb_FastEnumCheck_ValueIsNotInEnum = 1,
2195 _kUpb_FastEnumCheck_CannotCheckFast = 2,
2196} _kUpb_FastEnumCheck_Status;
2197
2198#ifdef __cplusplus
2199extern "C" {
2200#endif
2201
2202UPB_INLINE _kUpb_FastEnumCheck_Status
2203_upb_MiniTable_CheckEnumValueFast(const upb_MiniTableEnum* e, uint32_t val) {
2204 if (UPB_UNLIKELY(val >= 64)) return _kUpb_FastEnumCheck_CannotCheckFast;
2205 uint64_t mask = e->data[0] | ((uint64_t)e->data[1] << 32);
2206 return (mask & (1ULL << val)) ? _kUpb_FastEnumCheck_ValueIsInEnum
2207 : _kUpb_FastEnumCheck_ValueIsNotInEnum;
2208}
2209
2210UPB_INLINE bool _upb_MiniTable_CheckEnumValueSlow(const upb_MiniTableEnum* e,
2211 uint32_t val) {
2212 if (val < e->mask_limit) return e->data[val / 32] & (1ULL << (val % 32));
2213 // OPT: binary search long lists?
2214 const uint32_t* start = &e->data[e->mask_limit / 32];
2215 const uint32_t* limit = &e->data[(e->mask_limit / 32) + e->value_count];
2216 for (const uint32_t* p = start; p < limit; p++) {
2217 if (*p == val) return true;
2218 }
2219 return false;
2220}
2221
2222// Validates enum value against range defined by enum mini table.
2223UPB_INLINE bool upb_MiniTableEnum_CheckValue(const upb_MiniTableEnum* e,
2224 uint32_t val) {
2225 _kUpb_FastEnumCheck_Status status = _upb_MiniTable_CheckEnumValueFast(e, val);
2226 if (UPB_UNLIKELY(status == _kUpb_FastEnumCheck_CannotCheckFast)) {
2227 return _upb_MiniTable_CheckEnumValueSlow(e, val);
2228 }
2229 return status == _kUpb_FastEnumCheck_ValueIsInEnum ? true : false;
2230}
2231
2232#ifdef __cplusplus
2233} /* extern "C" */
2234#endif
2235
2236
2237#endif /* UPB_MINI_TABLE_ENUM_INTERNAL_H_ */
Joshua Habermand3995ec2022-09-30 16:54:39 -07002238/* This file was generated by upbc (the upb compiler) from the input
2239 * file:
2240 *
2241 * google/protobuf/descriptor.proto
2242 *
2243 * Do not edit -- your changes will be discarded when the file is
2244 * regenerated. */
Joshua Haberman9abf6e22021-01-13 12:16:25 -08002245
Joshua Habermand3995ec2022-09-30 16:54:39 -07002246#ifndef GOOGLE_PROTOBUF_DESCRIPTOR_PROTO_UPB_H_
2247#define GOOGLE_PROTOBUF_DESCRIPTOR_PROTO_UPB_H_
Joshua Haberman9abf6e22021-01-13 12:16:25 -08002248
2249
Eric Salo8809a112022-11-21 13:01:06 -08002250// These functions are only used by generated code.
2251
2252#ifndef UPB_COLLECTIONS_MAP_GENCODE_UTIL_H_
2253#define UPB_COLLECTIONS_MAP_GENCODE_UTIL_H_
2254
2255
2256// Must be last.
2257
2258#ifdef __cplusplus
2259extern "C" {
2260#endif
2261
2262// Message map operations, these get the map from the message first.
2263
Eric Salo8809a112022-11-21 13:01:06 -08002264UPB_INLINE void _upb_msg_map_key(const void* msg, void* key, size_t size) {
2265 const upb_tabent* ent = (const upb_tabent*)msg;
2266 uint32_t u32len;
2267 upb_StringView k;
2268 k.data = upb_tabstr(ent->key, &u32len);
2269 k.size = u32len;
2270 _upb_map_fromkey(k, key, size);
2271}
2272
2273UPB_INLINE void _upb_msg_map_value(const void* msg, void* val, size_t size) {
2274 const upb_tabent* ent = (const upb_tabent*)msg;
2275 upb_value v = {ent->val.val};
2276 _upb_map_fromvalue(v, val, size);
2277}
2278
2279UPB_INLINE void _upb_msg_map_set_value(void* msg, const void* val,
2280 size_t size) {
2281 upb_tabent* ent = (upb_tabent*)msg;
2282 // This is like _upb_map_tovalue() except the entry already exists
2283 // so we can reuse the allocated upb_StringView for string fields.
2284 if (size == UPB_MAPTYPE_STRING) {
2285 upb_StringView* strp = (upb_StringView*)(uintptr_t)ent->val.val;
2286 memcpy(strp, val, sizeof(*strp));
2287 } else {
2288 memcpy(&ent->val.val, val, size);
2289 }
2290}
2291
2292#ifdef __cplusplus
2293} /* extern "C" */
2294#endif
2295
2296
2297#endif /* UPB_COLLECTIONS_MAP_GENCODE_UTIL_H_ */
2298
2299#ifndef UPB_MESSAGE_ACCESSORS_H_
2300#define UPB_MESSAGE_ACCESSORS_H_
2301
2302
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002303#ifndef UPB_MESSAGE_ACCESSORS_INTERNAL_H_
2304#define UPB_MESSAGE_ACCESSORS_INTERNAL_H_
2305
2306
Eric Salo8809a112022-11-21 13:01:06 -08002307#ifndef UPB_MINI_TABLE_COMMON_H_
2308#define UPB_MINI_TABLE_COMMON_H_
2309
2310
2311// Must be last.
2312
2313typedef enum {
2314 kUpb_FieldModifier_IsRepeated = 1 << 0,
2315 kUpb_FieldModifier_IsPacked = 1 << 1,
2316 kUpb_FieldModifier_IsClosedEnum = 1 << 2,
2317 kUpb_FieldModifier_IsProto3Singular = 1 << 3,
2318 kUpb_FieldModifier_IsRequired = 1 << 4,
2319} kUpb_FieldModifier;
2320
2321typedef enum {
2322 kUpb_MessageModifier_ValidateUtf8 = 1 << 0,
2323 kUpb_MessageModifier_DefaultIsPacked = 1 << 1,
2324 kUpb_MessageModifier_IsExtendable = 1 << 2,
2325} kUpb_MessageModifier;
2326
2327#ifdef __cplusplus
2328extern "C" {
2329#endif
2330
Eric Salo3f36a912022-12-05 14:12:25 -08002331UPB_API const upb_MiniTableField* upb_MiniTable_FindFieldByNumber(
Eric Salo8809a112022-11-21 13:01:06 -08002332 const upb_MiniTable* table, uint32_t number);
2333
Jakob Buchgraberc0c79b22023-03-20 08:13:52 -07002334UPB_API_INLINE const upb_MiniTableField* upb_MiniTable_GetFieldByIndex(
2335 const upb_MiniTable* t, uint32_t index) {
2336 return &t->fields[index];
2337}
2338
Jie Luo3560e232023-06-12 00:33:50 -07002339UPB_API_INLINE upb_FieldType
2340upb_MiniTableField_Type(const upb_MiniTableField* field) {
2341 if (field->mode & kUpb_LabelFlags_IsAlternate) {
2342 if (field->UPB_PRIVATE(descriptortype) == kUpb_FieldType_Int32) {
2343 return kUpb_FieldType_Enum;
2344 } else if (field->UPB_PRIVATE(descriptortype) == kUpb_FieldType_Bytes) {
2345 return kUpb_FieldType_String;
2346 } else {
2347 UPB_ASSERT(false);
2348 }
2349 }
2350 return (upb_FieldType)field->UPB_PRIVATE(descriptortype);
2351}
Eric Salo8809a112022-11-21 13:01:06 -08002352
Eric Salob7d54ac2022-12-29 11:59:42 -08002353UPB_API_INLINE upb_CType upb_MiniTableField_CType(const upb_MiniTableField* f) {
Jie Luo3560e232023-06-12 00:33:50 -07002354 switch (upb_MiniTableField_Type(f)) {
Eric Salob7d54ac2022-12-29 11:59:42 -08002355 case kUpb_FieldType_Double:
2356 return kUpb_CType_Double;
2357 case kUpb_FieldType_Float:
2358 return kUpb_CType_Float;
2359 case kUpb_FieldType_Int64:
2360 case kUpb_FieldType_SInt64:
2361 case kUpb_FieldType_SFixed64:
2362 return kUpb_CType_Int64;
2363 case kUpb_FieldType_Int32:
2364 case kUpb_FieldType_SFixed32:
2365 case kUpb_FieldType_SInt32:
2366 return kUpb_CType_Int32;
2367 case kUpb_FieldType_UInt64:
2368 case kUpb_FieldType_Fixed64:
2369 return kUpb_CType_UInt64;
2370 case kUpb_FieldType_UInt32:
2371 case kUpb_FieldType_Fixed32:
2372 return kUpb_CType_UInt32;
2373 case kUpb_FieldType_Enum:
2374 return kUpb_CType_Enum;
2375 case kUpb_FieldType_Bool:
2376 return kUpb_CType_Bool;
2377 case kUpb_FieldType_String:
2378 return kUpb_CType_String;
2379 case kUpb_FieldType_Bytes:
2380 return kUpb_CType_Bytes;
2381 case kUpb_FieldType_Group:
2382 case kUpb_FieldType_Message:
2383 return kUpb_CType_Message;
2384 }
2385 UPB_UNREACHABLE();
2386}
Eric Salob598b2d2022-12-22 23:14:27 -08002387
Eric Salo3f36a912022-12-05 14:12:25 -08002388UPB_API_INLINE bool upb_MiniTableField_IsExtension(
Eric Salo8809a112022-11-21 13:01:06 -08002389 const upb_MiniTableField* field) {
2390 return field->mode & kUpb_LabelFlags_IsExtension;
2391}
2392
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002393UPB_API_INLINE bool upb_MiniTableField_IsClosedEnum(
2394 const upb_MiniTableField* field) {
2395 return field->UPB_PRIVATE(descriptortype) == kUpb_FieldType_Enum;
2396}
2397
Eric Salo3f36a912022-12-05 14:12:25 -08002398UPB_API_INLINE bool upb_MiniTableField_HasPresence(
Mike Kruskal3bc50492022-12-01 13:34:12 -08002399 const upb_MiniTableField* field) {
2400 if (upb_MiniTableField_IsExtension(field)) {
2401 return !upb_IsRepeatedOrMap(field);
2402 } else {
2403 return field->presence != 0;
2404 }
2405}
2406
Deanna Garciac7d979d2023-04-14 17:22:13 -07002407// Returns the MiniTable for this message field. If the field is unlinked,
2408// returns NULL.
Eric Salo3f36a912022-12-05 14:12:25 -08002409UPB_API_INLINE const upb_MiniTable* upb_MiniTable_GetSubMessageTable(
Eric Salo8809a112022-11-21 13:01:06 -08002410 const upb_MiniTable* mini_table, const upb_MiniTableField* field) {
Deanna Garciac7d979d2023-04-14 17:22:13 -07002411 UPB_ASSERT(upb_MiniTableField_CType(field) == kUpb_CType_Message);
Jie Luo3560e232023-06-12 00:33:50 -07002412 const upb_MiniTable* ret =
2413 mini_table->subs[field->UPB_PRIVATE(submsg_index)].submsg;
2414 UPB_ASSUME(ret);
2415 return ret == &_kUpb_MiniTable_Empty ? NULL : ret;
Eric Salo8809a112022-11-21 13:01:06 -08002416}
2417
Deanna Garciac7d979d2023-04-14 17:22:13 -07002418// Returns the MiniTableEnum for this enum field. If the field is unlinked,
2419// returns NULL.
Eric Salo3f36a912022-12-05 14:12:25 -08002420UPB_API_INLINE const upb_MiniTableEnum* upb_MiniTable_GetSubEnumTable(
Eric Salo8809a112022-11-21 13:01:06 -08002421 const upb_MiniTable* mini_table, const upb_MiniTableField* field) {
Deanna Garciac7d979d2023-04-14 17:22:13 -07002422 UPB_ASSERT(upb_MiniTableField_CType(field) == kUpb_CType_Enum);
2423 return mini_table->subs[field->UPB_PRIVATE(submsg_index)].subenum;
2424}
2425
2426// Returns true if this MiniTable field is linked to a MiniTable for the
2427// sub-message.
2428UPB_API_INLINE bool upb_MiniTable_MessageFieldIsLinked(
2429 const upb_MiniTable* mini_table, const upb_MiniTableField* field) {
2430 return upb_MiniTable_GetSubMessageTable(mini_table, field) != NULL;
Eric Salo8809a112022-11-21 13:01:06 -08002431}
2432
Mike Kruskalccbdaa72023-02-02 20:42:14 -08002433// If this field is in a oneof, returns the first field in the oneof.
2434//
2435// Otherwise returns NULL.
2436//
2437// Usage:
2438// const upb_MiniTableField* field = upb_MiniTable_GetOneof(m, f);
2439// do {
2440// ..
2441// } while (upb_MiniTable_NextOneofField(m, &field);
2442//
2443const upb_MiniTableField* upb_MiniTable_GetOneof(const upb_MiniTable* m,
2444 const upb_MiniTableField* f);
2445
Jakob Buchgraberc0c79b22023-03-20 08:13:52 -07002446// Iterates to the next field in the oneof. If this is the last field in the
2447// oneof, returns false. The ordering of fields in the oneof is not
Mike Kruskalccbdaa72023-02-02 20:42:14 -08002448// guaranteed.
Jakob Buchgraberc0c79b22023-03-20 08:13:52 -07002449// REQUIRES: |f| is the field initialized by upb_MiniTable_GetOneof and updated
2450// by prior upb_MiniTable_NextOneofField calls.
Mike Kruskalccbdaa72023-02-02 20:42:14 -08002451bool upb_MiniTable_NextOneofField(const upb_MiniTable* m,
2452 const upb_MiniTableField** f);
2453
Eric Salo8809a112022-11-21 13:01:06 -08002454#ifdef __cplusplus
2455} /* extern "C" */
2456#endif
2457
2458
2459#endif /* UPB_MINI_TABLE_COMMON_H_ */
2460
2461// Must be last.
2462
Eric Salob7d54ac2022-12-29 11:59:42 -08002463#if defined(__GNUC__) && !defined(__clang__)
2464// GCC raises incorrect warnings in these functions. It thinks that we are
2465// overrunning buffers, but we carefully write the functions in this file to
2466// guarantee that this is impossible. GCC gets this wrong due it its failure
2467// to perform constant propagation as we expect:
2468// - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108217
2469// - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108226
2470//
2471// Unfortunately this also indicates that GCC is not optimizing away the
2472// switch() in cases where it should be, compromising the performance.
2473#pragma GCC diagnostic push
2474#pragma GCC diagnostic ignored "-Warray-bounds"
2475#pragma GCC diagnostic ignored "-Wstringop-overflow"
Mike Kruskal232ecf42023-01-14 00:09:40 -08002476#if __GNUC__ >= 11
Eric Salob7d54ac2022-12-29 11:59:42 -08002477#pragma GCC diagnostic ignored "-Wstringop-overread"
2478#endif
Mike Kruskal232ecf42023-01-14 00:09:40 -08002479#endif
Eric Salob7d54ac2022-12-29 11:59:42 -08002480
Eric Salo8809a112022-11-21 13:01:06 -08002481#ifdef __cplusplus
2482extern "C" {
2483#endif
2484
2485UPB_INLINE bool _upb_MiniTableField_InOneOf(const upb_MiniTableField* field) {
2486 return field->presence < 0;
2487}
2488
2489UPB_INLINE void* _upb_MiniTableField_GetPtr(upb_Message* msg,
2490 const upb_MiniTableField* field) {
2491 return (char*)msg + field->offset;
2492}
2493
2494UPB_INLINE const void* _upb_MiniTableField_GetConstPtr(
2495 const upb_Message* msg, const upb_MiniTableField* field) {
2496 return (char*)msg + field->offset;
2497}
2498
Eric Salo10505992022-12-12 12:16:36 -08002499UPB_INLINE void _upb_Message_SetPresence(upb_Message* msg,
2500 const upb_MiniTableField* field) {
Eric Salo8809a112022-11-21 13:01:06 -08002501 if (field->presence > 0) {
2502 _upb_sethas_field(msg, field);
2503 } else if (_upb_MiniTableField_InOneOf(field)) {
2504 *_upb_oneofcase_field(msg, field) = field->number;
2505 }
2506}
2507
Deanna Garciac7d979d2023-04-14 17:22:13 -07002508// LINT.IfChange(message_raw_fields)
2509
Mike Kruskal3bc50492022-12-01 13:34:12 -08002510UPB_INLINE bool _upb_MiniTable_ValueIsNonZero(const void* default_val,
2511 const upb_MiniTableField* field) {
Eric Salo8809a112022-11-21 13:01:06 -08002512 char zero[16] = {0};
2513 switch (_upb_MiniTableField_GetRep(field)) {
2514 case kUpb_FieldRep_1Byte:
2515 return memcmp(&zero, default_val, 1) != 0;
2516 case kUpb_FieldRep_4Byte:
2517 return memcmp(&zero, default_val, 4) != 0;
2518 case kUpb_FieldRep_8Byte:
2519 return memcmp(&zero, default_val, 8) != 0;
2520 case kUpb_FieldRep_StringView: {
2521 const upb_StringView* sv = (const upb_StringView*)default_val;
2522 return sv->size != 0;
2523 }
2524 }
2525 UPB_UNREACHABLE();
2526}
2527
2528UPB_INLINE void _upb_MiniTable_CopyFieldData(void* to, const void* from,
2529 const upb_MiniTableField* field) {
2530 switch (_upb_MiniTableField_GetRep(field)) {
2531 case kUpb_FieldRep_1Byte:
2532 memcpy(to, from, 1);
2533 return;
2534 case kUpb_FieldRep_4Byte:
2535 memcpy(to, from, 4);
2536 return;
2537 case kUpb_FieldRep_8Byte:
2538 memcpy(to, from, 8);
2539 return;
2540 case kUpb_FieldRep_StringView: {
2541 memcpy(to, from, sizeof(upb_StringView));
2542 return;
2543 }
2544 }
2545 UPB_UNREACHABLE();
2546}
2547
Deanna Garciac7d979d2023-04-14 17:22:13 -07002548// LINT.ThenChange(//depot/google3/third_party/upb/js/impl/upb_bits/message.ts:message_raw_fields)
2549
Eric Salob7d54ac2022-12-29 11:59:42 -08002550UPB_INLINE size_t
2551_upb_MiniTable_ElementSizeLg2(const upb_MiniTableField* field) {
2552 const unsigned char table[] = {
2553 0,
2554 3, // kUpb_FieldType_Double = 1,
2555 2, // kUpb_FieldType_Float = 2,
2556 3, // kUpb_FieldType_Int64 = 3,
2557 3, // kUpb_FieldType_UInt64 = 4,
2558 2, // kUpb_FieldType_Int32 = 5,
2559 3, // kUpb_FieldType_Fixed64 = 6,
2560 2, // kUpb_FieldType_Fixed32 = 7,
2561 0, // kUpb_FieldType_Bool = 8,
2562 UPB_SIZE(3, 4), // kUpb_FieldType_String = 9,
2563 UPB_SIZE(2, 3), // kUpb_FieldType_Group = 10,
2564 UPB_SIZE(2, 3), // kUpb_FieldType_Message = 11,
2565 UPB_SIZE(3, 4), // kUpb_FieldType_Bytes = 12,
2566 2, // kUpb_FieldType_UInt32 = 13,
2567 2, // kUpb_FieldType_Enum = 14,
2568 2, // kUpb_FieldType_SFixed32 = 15,
2569 3, // kUpb_FieldType_SFixed64 = 16,
2570 2, // kUpb_FieldType_SInt32 = 17,
2571 3, // kUpb_FieldType_SInt64 = 18,
2572 };
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002573 return table[field->UPB_PRIVATE(descriptortype)];
Eric Salob7d54ac2022-12-29 11:59:42 -08002574}
2575
Eric Salo8809a112022-11-21 13:01:06 -08002576// Here we define universal getter/setter functions for message fields.
2577// These look very branchy and inefficient, but as long as the MiniTableField
2578// values are known at compile time, all the branches are optimized away and
2579// we are left with ideal code. This can happen either through through
2580// literals or UPB_ASSUME():
2581//
Eric Salob598b2d2022-12-22 23:14:27 -08002582// // Via struct literals.
Eric Salo8809a112022-11-21 13:01:06 -08002583// bool FooMessage_set_bool_field(const upb_Message* msg, bool val) {
2584// const upb_MiniTableField field = {1, 0, 0, /* etc... */};
2585// // All value in "field" are compile-time known.
Eric Salo10505992022-12-12 12:16:36 -08002586// _upb_Message_SetNonExtensionField(msg, &field, &value);
Eric Salo8809a112022-11-21 13:01:06 -08002587// }
2588//
2589// // Via UPB_ASSUME().
Eric Salo10505992022-12-12 12:16:36 -08002590// UPB_INLINE bool upb_Message_SetBool(upb_Message* msg,
2591// const upb_MiniTableField* field,
2592// bool value, upb_Arena* a) {
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002593// UPB_ASSUME(field->UPB_PRIVATE(descriptortype) == kUpb_FieldType_Bool);
Eric Salo8809a112022-11-21 13:01:06 -08002594// UPB_ASSUME(!upb_IsRepeatedOrMap(field));
2595// UPB_ASSUME(_upb_MiniTableField_GetRep(field) == kUpb_FieldRep_1Byte);
Eric Salo10505992022-12-12 12:16:36 -08002596// _upb_Message_SetField(msg, field, &value, a);
Eric Salo8809a112022-11-21 13:01:06 -08002597// }
2598//
2599// As a result, we can use these universal getters/setters for *all* message
2600// accessors: generated code, MiniTable accessors, and reflection. The only
2601// exception is the binary encoder/decoder, which need to be a bit more clever
Eric Salob598b2d2022-12-22 23:14:27 -08002602// about how they read/write the message data, for efficiency.
Eric Salo10505992022-12-12 12:16:36 -08002603//
2604// These functions work on both extensions and non-extensions. If the field
2605// of a setter is known to be a non-extension, the arena may be NULL and the
2606// returned bool value may be ignored since it will always succeed.
Eric Salo8809a112022-11-21 13:01:06 -08002607
Eric Salo10505992022-12-12 12:16:36 -08002608UPB_INLINE bool _upb_Message_HasExtensionField(
2609 const upb_Message* msg, const upb_MiniTableExtension* ext) {
2610 UPB_ASSERT(upb_MiniTableField_HasPresence(&ext->field));
2611 return _upb_Message_Getext(msg, ext) != NULL;
2612}
2613
2614UPB_INLINE bool _upb_Message_HasNonExtensionField(
2615 const upb_Message* msg, const upb_MiniTableField* field) {
2616 UPB_ASSERT(upb_MiniTableField_HasPresence(field));
2617 UPB_ASSUME(!upb_MiniTableField_IsExtension(field));
2618 if (_upb_MiniTableField_InOneOf(field)) {
2619 return _upb_getoneofcase_field(msg, field) == field->number;
2620 } else {
2621 return _upb_hasbit_field(msg, field);
2622 }
2623}
2624
2625static UPB_FORCEINLINE void _upb_Message_GetNonExtensionField(
Eric Salo8809a112022-11-21 13:01:06 -08002626 const upb_Message* msg, const upb_MiniTableField* field,
2627 const void* default_val, void* val) {
2628 UPB_ASSUME(!upb_MiniTableField_IsExtension(field));
2629 if ((_upb_MiniTableField_InOneOf(field) ||
Mike Kruskal3bc50492022-12-01 13:34:12 -08002630 _upb_MiniTable_ValueIsNonZero(default_val, field)) &&
Eric Salo10505992022-12-12 12:16:36 -08002631 !_upb_Message_HasNonExtensionField(msg, field)) {
Eric Salo8809a112022-11-21 13:01:06 -08002632 _upb_MiniTable_CopyFieldData(val, default_val, field);
2633 return;
2634 }
2635 _upb_MiniTable_CopyFieldData(val, _upb_MiniTableField_GetConstPtr(msg, field),
2636 field);
2637}
2638
Eric Salo10505992022-12-12 12:16:36 -08002639UPB_INLINE void _upb_Message_GetExtensionField(
Eric Salo8809a112022-11-21 13:01:06 -08002640 const upb_Message* msg, const upb_MiniTableExtension* mt_ext,
2641 const void* default_val, void* val) {
2642 UPB_ASSUME(upb_MiniTableField_IsExtension(&mt_ext->field));
2643 const upb_Message_Extension* ext = _upb_Message_Getext(msg, mt_ext);
2644 if (ext) {
2645 _upb_MiniTable_CopyFieldData(val, &ext->data, &mt_ext->field);
2646 } else {
2647 _upb_MiniTable_CopyFieldData(val, default_val, &mt_ext->field);
2648 }
2649}
2650
Eric Salo10505992022-12-12 12:16:36 -08002651UPB_INLINE void _upb_Message_GetField(const upb_Message* msg,
2652 const upb_MiniTableField* field,
2653 const void* default_val, void* val) {
Eric Salo8809a112022-11-21 13:01:06 -08002654 if (upb_MiniTableField_IsExtension(field)) {
Eric Salo10505992022-12-12 12:16:36 -08002655 _upb_Message_GetExtensionField(msg, (upb_MiniTableExtension*)field,
2656 default_val, val);
Eric Salo8809a112022-11-21 13:01:06 -08002657 } else {
Eric Salo10505992022-12-12 12:16:36 -08002658 _upb_Message_GetNonExtensionField(msg, field, default_val, val);
Eric Salo8809a112022-11-21 13:01:06 -08002659 }
2660}
2661
Eric Salo10505992022-12-12 12:16:36 -08002662UPB_INLINE void _upb_Message_SetNonExtensionField(
Eric Salo8809a112022-11-21 13:01:06 -08002663 upb_Message* msg, const upb_MiniTableField* field, const void* val) {
2664 UPB_ASSUME(!upb_MiniTableField_IsExtension(field));
Eric Salo10505992022-12-12 12:16:36 -08002665 _upb_Message_SetPresence(msg, field);
Eric Salo8809a112022-11-21 13:01:06 -08002666 _upb_MiniTable_CopyFieldData(_upb_MiniTableField_GetPtr(msg, field), val,
2667 field);
2668}
2669
Eric Salo10505992022-12-12 12:16:36 -08002670UPB_INLINE bool _upb_Message_SetExtensionField(
Eric Salo8809a112022-11-21 13:01:06 -08002671 upb_Message* msg, const upb_MiniTableExtension* mt_ext, const void* val,
2672 upb_Arena* a) {
Eric Salo10505992022-12-12 12:16:36 -08002673 UPB_ASSERT(a);
Eric Salo8809a112022-11-21 13:01:06 -08002674 upb_Message_Extension* ext =
2675 _upb_Message_GetOrCreateExtension(msg, mt_ext, a);
2676 if (!ext) return false;
2677 _upb_MiniTable_CopyFieldData(&ext->data, val, &mt_ext->field);
2678 return true;
2679}
2680
Eric Salo10505992022-12-12 12:16:36 -08002681UPB_INLINE bool _upb_Message_SetField(upb_Message* msg,
2682 const upb_MiniTableField* field,
2683 const void* val, upb_Arena* a) {
Eric Salo8809a112022-11-21 13:01:06 -08002684 if (upb_MiniTableField_IsExtension(field)) {
Eric Salo10505992022-12-12 12:16:36 -08002685 const upb_MiniTableExtension* ext = (const upb_MiniTableExtension*)field;
2686 return _upb_Message_SetExtensionField(msg, ext, val, a);
Eric Salo8809a112022-11-21 13:01:06 -08002687 } else {
Eric Salo10505992022-12-12 12:16:36 -08002688 _upb_Message_SetNonExtensionField(msg, field, val);
Eric Salo8809a112022-11-21 13:01:06 -08002689 return true;
2690 }
2691}
2692
Eric Salo10505992022-12-12 12:16:36 -08002693UPB_INLINE void _upb_Message_ClearExtensionField(
2694 upb_Message* msg, const upb_MiniTableExtension* ext_l) {
2695 upb_Message_Internal* in = upb_Message_Getinternal(msg);
2696 if (!in->internal) return;
2697 const upb_Message_Extension* base =
2698 UPB_PTR_AT(in->internal, in->internal->ext_begin, upb_Message_Extension);
2699 upb_Message_Extension* ext =
2700 (upb_Message_Extension*)_upb_Message_Getext(msg, ext_l);
2701 if (ext) {
2702 *ext = *base;
2703 in->internal->ext_begin += sizeof(upb_Message_Extension);
Mike Kruskal3bc50492022-12-01 13:34:12 -08002704 }
2705}
2706
Eric Salo10505992022-12-12 12:16:36 -08002707UPB_INLINE void _upb_Message_ClearNonExtensionField(
Mike Kruskal3bc50492022-12-01 13:34:12 -08002708 upb_Message* msg, const upb_MiniTableField* field) {
2709 if (field->presence > 0) {
Eric Salob598b2d2022-12-22 23:14:27 -08002710 _upb_clearhas(msg, _upb_Message_Hasidx(field));
Mike Kruskal3bc50492022-12-01 13:34:12 -08002711 } else if (_upb_MiniTableField_InOneOf(field)) {
2712 uint32_t* oneof_case = _upb_oneofcase_field(msg, field);
2713 if (*oneof_case != field->number) return;
2714 *oneof_case = 0;
2715 }
2716 const char zeros[16] = {0};
2717 _upb_MiniTable_CopyFieldData(_upb_MiniTableField_GetPtr(msg, field), zeros,
2718 field);
2719}
2720
Jie Luo3560e232023-06-12 00:33:50 -07002721UPB_INLINE void _upb_Message_AssertMapIsUntagged(
2722 const upb_Message* msg, const upb_MiniTableField* field) {
2723 _upb_MiniTableField_CheckIsMap(field);
2724#ifndef NDEBUG
2725 upb_TaggedMessagePtr default_val = 0;
2726 upb_TaggedMessagePtr tagged;
2727 _upb_Message_GetNonExtensionField(msg, field, &default_val, &tagged);
2728 UPB_ASSERT(!upb_TaggedMessagePtr_IsEmpty(tagged));
2729#endif
2730}
2731
Mike Kruskal232ecf42023-01-14 00:09:40 -08002732UPB_INLINE upb_Map* _upb_Message_GetOrCreateMutableMap(
Eric Salob7d54ac2022-12-29 11:59:42 -08002733 upb_Message* msg, const upb_MiniTableField* field, size_t key_size,
2734 size_t val_size, upb_Arena* arena) {
2735 _upb_MiniTableField_CheckIsMap(field);
Jie Luo3560e232023-06-12 00:33:50 -07002736 _upb_Message_AssertMapIsUntagged(msg, field);
Eric Salob7d54ac2022-12-29 11:59:42 -08002737 upb_Map* map = NULL;
2738 upb_Map* default_map_value = NULL;
2739 _upb_Message_GetNonExtensionField(msg, field, &default_map_value, &map);
2740 if (!map) {
2741 map = _upb_Map_New(arena, key_size, val_size);
2742 // Check again due to: https://godbolt.org/z/7WfaoKG1r
2743 _upb_MiniTableField_CheckIsMap(field);
2744 _upb_Message_SetNonExtensionField(msg, field, &map);
2745 }
2746 return map;
2747}
2748
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002749#ifdef __cplusplus
2750} /* extern "C" */
2751#endif
2752
2753#if defined(__GNUC__) && !defined(__clang__)
2754#pragma GCC diagnostic pop
2755#endif
2756
2757
2758#endif // UPB_MESSAGE_ACCESSORS_INTERNAL_H_
2759
2760// Must be last.
2761
2762#ifdef __cplusplus
2763extern "C" {
2764#endif
Eric Salo10505992022-12-12 12:16:36 -08002765
2766UPB_API_INLINE void upb_Message_ClearField(upb_Message* msg,
2767 const upb_MiniTableField* field) {
Mike Kruskal3bc50492022-12-01 13:34:12 -08002768 if (upb_MiniTableField_IsExtension(field)) {
Eric Salo10505992022-12-12 12:16:36 -08002769 const upb_MiniTableExtension* ext = (const upb_MiniTableExtension*)field;
2770 _upb_Message_ClearExtensionField(msg, ext);
Mike Kruskal3bc50492022-12-01 13:34:12 -08002771 } else {
Eric Salo10505992022-12-12 12:16:36 -08002772 _upb_Message_ClearNonExtensionField(msg, field);
Mike Kruskal3bc50492022-12-01 13:34:12 -08002773 }
2774}
2775
Jie Luof36a5c62023-05-23 17:56:18 -07002776UPB_API_INLINE void upb_Message_Clear(upb_Message* msg,
2777 const upb_MiniTable* l) {
2778 // Note: Can't use UPB_PTR_AT() here because we are doing pointer subtraction.
2779 char* mem = (char*)msg - sizeof(upb_Message_Internal);
2780 memset(mem, 0, upb_msg_sizeof(l));
2781}
2782
Eric Salo10505992022-12-12 12:16:36 -08002783UPB_API_INLINE bool upb_Message_HasField(const upb_Message* msg,
2784 const upb_MiniTableField* field) {
2785 if (upb_MiniTableField_IsExtension(field)) {
2786 const upb_MiniTableExtension* ext = (const upb_MiniTableExtension*)field;
2787 return _upb_Message_HasExtensionField(msg, ext);
2788 } else {
2789 return _upb_Message_HasNonExtensionField(msg, field);
2790 }
Mike Kruskal3bc50492022-12-01 13:34:12 -08002791}
Eric Salo8809a112022-11-21 13:01:06 -08002792
Eric Salob598b2d2022-12-22 23:14:27 -08002793UPB_API_INLINE uint32_t upb_Message_WhichOneofFieldNumber(
2794 const upb_Message* message, const upb_MiniTableField* oneof_field) {
2795 UPB_ASSUME(_upb_MiniTableField_InOneOf(oneof_field));
2796 return _upb_getoneofcase_field(message, oneof_field);
2797}
2798
Eric Salo10505992022-12-12 12:16:36 -08002799UPB_API_INLINE bool upb_Message_GetBool(const upb_Message* msg,
2800 const upb_MiniTableField* field,
2801 bool default_val) {
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002802 UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_Bool);
Eric Salo8809a112022-11-21 13:01:06 -08002803 UPB_ASSUME(_upb_MiniTableField_GetRep(field) == kUpb_FieldRep_1Byte);
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002804 UPB_ASSUME(!upb_IsRepeatedOrMap(field));
Eric Salo8809a112022-11-21 13:01:06 -08002805 bool ret;
Eric Salo10505992022-12-12 12:16:36 -08002806 _upb_Message_GetField(msg, field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08002807 return ret;
2808}
2809
Eric Salo10505992022-12-12 12:16:36 -08002810UPB_API_INLINE bool upb_Message_SetBool(upb_Message* msg,
2811 const upb_MiniTableField* field,
2812 bool value, upb_Arena* a) {
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002813 UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_Bool);
Eric Salo8809a112022-11-21 13:01:06 -08002814 UPB_ASSUME(_upb_MiniTableField_GetRep(field) == kUpb_FieldRep_1Byte);
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002815 UPB_ASSUME(!upb_IsRepeatedOrMap(field));
Eric Salo10505992022-12-12 12:16:36 -08002816 return _upb_Message_SetField(msg, field, &value, a);
Eric Salo8809a112022-11-21 13:01:06 -08002817}
2818
Eric Salo10505992022-12-12 12:16:36 -08002819UPB_API_INLINE int32_t upb_Message_GetInt32(const upb_Message* msg,
2820 const upb_MiniTableField* field,
2821 int32_t default_val) {
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002822 UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_Int32 ||
2823 upb_MiniTableField_CType(field) == kUpb_CType_Enum);
Eric Salo8809a112022-11-21 13:01:06 -08002824 UPB_ASSUME(_upb_MiniTableField_GetRep(field) == kUpb_FieldRep_4Byte);
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002825 UPB_ASSUME(!upb_IsRepeatedOrMap(field));
Eric Salo8809a112022-11-21 13:01:06 -08002826 int32_t ret;
Eric Salo10505992022-12-12 12:16:36 -08002827 _upb_Message_GetField(msg, field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08002828 return ret;
2829}
2830
Eric Salo10505992022-12-12 12:16:36 -08002831UPB_API_INLINE bool upb_Message_SetInt32(upb_Message* msg,
2832 const upb_MiniTableField* field,
2833 int32_t value, upb_Arena* a) {
Deanna Garciab26afb52023-04-25 13:37:18 -07002834 UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_Int32 ||
2835 upb_MiniTableField_CType(field) == kUpb_CType_Enum);
Eric Salo8809a112022-11-21 13:01:06 -08002836 UPB_ASSUME(_upb_MiniTableField_GetRep(field) == kUpb_FieldRep_4Byte);
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002837 UPB_ASSUME(!upb_IsRepeatedOrMap(field));
Eric Salo10505992022-12-12 12:16:36 -08002838 return _upb_Message_SetField(msg, field, &value, a);
Eric Salo8809a112022-11-21 13:01:06 -08002839}
2840
Eric Salo10505992022-12-12 12:16:36 -08002841UPB_API_INLINE uint32_t upb_Message_GetUInt32(const upb_Message* msg,
2842 const upb_MiniTableField* field,
2843 uint32_t default_val) {
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002844 UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_UInt32);
Eric Salo8809a112022-11-21 13:01:06 -08002845 UPB_ASSUME(_upb_MiniTableField_GetRep(field) == kUpb_FieldRep_4Byte);
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002846 UPB_ASSUME(!upb_IsRepeatedOrMap(field));
Eric Salo8809a112022-11-21 13:01:06 -08002847 uint32_t ret;
Eric Salo10505992022-12-12 12:16:36 -08002848 _upb_Message_GetField(msg, field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08002849 return ret;
2850}
2851
Eric Salo10505992022-12-12 12:16:36 -08002852UPB_API_INLINE bool upb_Message_SetUInt32(upb_Message* msg,
2853 const upb_MiniTableField* field,
2854 uint32_t value, upb_Arena* a) {
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002855 UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_UInt32);
Eric Salo8809a112022-11-21 13:01:06 -08002856 UPB_ASSUME(_upb_MiniTableField_GetRep(field) == kUpb_FieldRep_4Byte);
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002857 UPB_ASSUME(!upb_IsRepeatedOrMap(field));
Eric Salo10505992022-12-12 12:16:36 -08002858 return _upb_Message_SetField(msg, field, &value, a);
Eric Salo8809a112022-11-21 13:01:06 -08002859}
2860
Deanna Garciab26afb52023-04-25 13:37:18 -07002861UPB_API_INLINE void upb_Message_SetClosedEnum(
Eric Salo3f36a912022-12-05 14:12:25 -08002862 upb_Message* msg, const upb_MiniTable* msg_mini_table,
2863 const upb_MiniTableField* field, int32_t value) {
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002864 UPB_ASSERT(upb_MiniTableField_IsClosedEnum(field));
Eric Salo8809a112022-11-21 13:01:06 -08002865 UPB_ASSUME(_upb_MiniTableField_GetRep(field) == kUpb_FieldRep_4Byte);
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002866 UPB_ASSUME(!upb_IsRepeatedOrMap(field));
Eric Salo8809a112022-11-21 13:01:06 -08002867 UPB_ASSERT(upb_MiniTableEnum_CheckValue(
2868 upb_MiniTable_GetSubEnumTable(msg_mini_table, field), value));
Eric Salo10505992022-12-12 12:16:36 -08002869 _upb_Message_SetNonExtensionField(msg, field, &value);
Eric Salo8809a112022-11-21 13:01:06 -08002870}
2871
Eric Salo10505992022-12-12 12:16:36 -08002872UPB_API_INLINE int64_t upb_Message_GetInt64(const upb_Message* msg,
2873 const upb_MiniTableField* field,
2874 uint64_t default_val) {
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002875 UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_Int64);
Eric Salo8809a112022-11-21 13:01:06 -08002876 UPB_ASSUME(_upb_MiniTableField_GetRep(field) == kUpb_FieldRep_8Byte);
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002877 UPB_ASSUME(!upb_IsRepeatedOrMap(field));
Eric Salo8809a112022-11-21 13:01:06 -08002878 int64_t ret;
Eric Salo10505992022-12-12 12:16:36 -08002879 _upb_Message_GetField(msg, field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08002880 return ret;
2881}
2882
Eric Salo10505992022-12-12 12:16:36 -08002883UPB_API_INLINE bool upb_Message_SetInt64(upb_Message* msg,
2884 const upb_MiniTableField* field,
2885 int64_t value, upb_Arena* a) {
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002886 UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_Int64);
Eric Salo8809a112022-11-21 13:01:06 -08002887 UPB_ASSUME(_upb_MiniTableField_GetRep(field) == kUpb_FieldRep_8Byte);
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002888 UPB_ASSUME(!upb_IsRepeatedOrMap(field));
Eric Salo10505992022-12-12 12:16:36 -08002889 return _upb_Message_SetField(msg, field, &value, a);
Eric Salo8809a112022-11-21 13:01:06 -08002890}
2891
Eric Salo10505992022-12-12 12:16:36 -08002892UPB_API_INLINE uint64_t upb_Message_GetUInt64(const upb_Message* msg,
2893 const upb_MiniTableField* field,
2894 uint64_t default_val) {
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002895 UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_UInt64);
Eric Salo8809a112022-11-21 13:01:06 -08002896 UPB_ASSUME(_upb_MiniTableField_GetRep(field) == kUpb_FieldRep_8Byte);
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002897 UPB_ASSUME(!upb_IsRepeatedOrMap(field));
Eric Salo8809a112022-11-21 13:01:06 -08002898 uint64_t ret;
Eric Salo10505992022-12-12 12:16:36 -08002899 _upb_Message_GetField(msg, field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08002900 return ret;
2901}
2902
Eric Salo10505992022-12-12 12:16:36 -08002903UPB_API_INLINE bool upb_Message_SetUInt64(upb_Message* msg,
2904 const upb_MiniTableField* field,
2905 uint64_t value, upb_Arena* a) {
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002906 UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_UInt64);
Eric Salo8809a112022-11-21 13:01:06 -08002907 UPB_ASSUME(_upb_MiniTableField_GetRep(field) == kUpb_FieldRep_8Byte);
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002908 UPB_ASSUME(!upb_IsRepeatedOrMap(field));
Eric Salo10505992022-12-12 12:16:36 -08002909 return _upb_Message_SetField(msg, field, &value, a);
Eric Salo8809a112022-11-21 13:01:06 -08002910}
2911
Eric Salo10505992022-12-12 12:16:36 -08002912UPB_API_INLINE float upb_Message_GetFloat(const upb_Message* msg,
2913 const upb_MiniTableField* field,
2914 float default_val) {
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002915 UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_Float);
Eric Salo8809a112022-11-21 13:01:06 -08002916 UPB_ASSUME(_upb_MiniTableField_GetRep(field) == kUpb_FieldRep_4Byte);
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002917 UPB_ASSUME(!upb_IsRepeatedOrMap(field));
Eric Salo8809a112022-11-21 13:01:06 -08002918 float ret;
Eric Salo10505992022-12-12 12:16:36 -08002919 _upb_Message_GetField(msg, field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08002920 return ret;
2921}
2922
Eric Salo10505992022-12-12 12:16:36 -08002923UPB_API_INLINE bool upb_Message_SetFloat(upb_Message* msg,
2924 const upb_MiniTableField* field,
2925 float value, upb_Arena* a) {
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002926 UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_Float);
Eric Salo8809a112022-11-21 13:01:06 -08002927 UPB_ASSUME(_upb_MiniTableField_GetRep(field) == kUpb_FieldRep_4Byte);
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002928 UPB_ASSUME(!upb_IsRepeatedOrMap(field));
Eric Salo10505992022-12-12 12:16:36 -08002929 return _upb_Message_SetField(msg, field, &value, a);
Eric Salo8809a112022-11-21 13:01:06 -08002930}
2931
Eric Salo10505992022-12-12 12:16:36 -08002932UPB_API_INLINE double upb_Message_GetDouble(const upb_Message* msg,
2933 const upb_MiniTableField* field,
2934 double default_val) {
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002935 UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_Double);
Eric Salo8809a112022-11-21 13:01:06 -08002936 UPB_ASSUME(_upb_MiniTableField_GetRep(field) == kUpb_FieldRep_8Byte);
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002937 UPB_ASSUME(!upb_IsRepeatedOrMap(field));
Eric Salo8809a112022-11-21 13:01:06 -08002938 double ret;
Eric Salo10505992022-12-12 12:16:36 -08002939 _upb_Message_GetField(msg, field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08002940 return ret;
2941}
2942
Eric Salo10505992022-12-12 12:16:36 -08002943UPB_API_INLINE bool upb_Message_SetDouble(upb_Message* msg,
2944 const upb_MiniTableField* field,
2945 double value, upb_Arena* a) {
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002946 UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_Double);
Eric Salo8809a112022-11-21 13:01:06 -08002947 UPB_ASSUME(_upb_MiniTableField_GetRep(field) == kUpb_FieldRep_8Byte);
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002948 UPB_ASSUME(!upb_IsRepeatedOrMap(field));
Eric Salo10505992022-12-12 12:16:36 -08002949 return _upb_Message_SetField(msg, field, &value, a);
Eric Salo8809a112022-11-21 13:01:06 -08002950}
2951
Eric Salo3f36a912022-12-05 14:12:25 -08002952UPB_API_INLINE upb_StringView
Eric Salo10505992022-12-12 12:16:36 -08002953upb_Message_GetString(const upb_Message* msg, const upb_MiniTableField* field,
2954 upb_StringView def_val) {
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002955 UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_String ||
2956 upb_MiniTableField_CType(field) == kUpb_CType_Bytes);
Eric Salo8809a112022-11-21 13:01:06 -08002957 UPB_ASSUME(_upb_MiniTableField_GetRep(field) == kUpb_FieldRep_StringView);
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002958 UPB_ASSUME(!upb_IsRepeatedOrMap(field));
Eric Salo8809a112022-11-21 13:01:06 -08002959 upb_StringView ret;
Eric Salo10505992022-12-12 12:16:36 -08002960 _upb_Message_GetField(msg, field, &def_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08002961 return ret;
2962}
2963
Eric Salo10505992022-12-12 12:16:36 -08002964UPB_API_INLINE bool upb_Message_SetString(upb_Message* msg,
2965 const upb_MiniTableField* field,
2966 upb_StringView value, upb_Arena* a) {
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002967 UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_String ||
2968 upb_MiniTableField_CType(field) == kUpb_CType_Bytes);
Eric Salo8809a112022-11-21 13:01:06 -08002969 UPB_ASSUME(_upb_MiniTableField_GetRep(field) == kUpb_FieldRep_StringView);
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002970 UPB_ASSUME(!upb_IsRepeatedOrMap(field));
Eric Salo10505992022-12-12 12:16:36 -08002971 return _upb_Message_SetField(msg, field, &value, a);
Eric Salo8809a112022-11-21 13:01:06 -08002972}
2973
Jie Luo3560e232023-06-12 00:33:50 -07002974UPB_API_INLINE upb_TaggedMessagePtr upb_Message_GetTaggedMessagePtr(
Eric Salo8809a112022-11-21 13:01:06 -08002975 const upb_Message* msg, const upb_MiniTableField* field,
2976 upb_Message* default_val) {
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002977 UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_Message);
Eric Salo8809a112022-11-21 13:01:06 -08002978 UPB_ASSUME(_upb_MiniTableField_GetRep(field) ==
2979 UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte));
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07002980 UPB_ASSUME(!upb_IsRepeatedOrMap(field));
Jie Luo3560e232023-06-12 00:33:50 -07002981 upb_TaggedMessagePtr tagged;
2982 _upb_Message_GetNonExtensionField(msg, field, &default_val, &tagged);
2983 return tagged;
Eric Salo8809a112022-11-21 13:01:06 -08002984}
2985
Jie Luo3560e232023-06-12 00:33:50 -07002986UPB_API_INLINE const upb_Message* upb_Message_GetMessage(
2987 const upb_Message* msg, const upb_MiniTableField* field,
2988 upb_Message* default_val) {
2989 upb_TaggedMessagePtr tagged =
2990 upb_Message_GetTaggedMessagePtr(msg, field, default_val);
2991 return upb_TaggedMessagePtr_GetNonEmptyMessage(tagged);
2992}
2993
2994// For internal use only; users cannot set tagged messages because only the
2995// parser and the message copier are allowed to directly create an empty
2996// message.
2997UPB_API_INLINE void _upb_Message_SetTaggedMessagePtr(
2998 upb_Message* msg, const upb_MiniTable* mini_table,
2999 const upb_MiniTableField* field, upb_TaggedMessagePtr sub_message) {
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07003000 UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_Message);
Eric Salo8809a112022-11-21 13:01:06 -08003001 UPB_ASSUME(_upb_MiniTableField_GetRep(field) ==
3002 UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte));
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07003003 UPB_ASSUME(!upb_IsRepeatedOrMap(field));
Deanna Garciac7d979d2023-04-14 17:22:13 -07003004 UPB_ASSERT(mini_table->subs[field->UPB_PRIVATE(submsg_index)].submsg);
Eric Salo10505992022-12-12 12:16:36 -08003005 _upb_Message_SetNonExtensionField(msg, field, &sub_message);
Eric Salo8809a112022-11-21 13:01:06 -08003006}
3007
Jie Luo3560e232023-06-12 00:33:50 -07003008UPB_API_INLINE void upb_Message_SetMessage(upb_Message* msg,
3009 const upb_MiniTable* mini_table,
3010 const upb_MiniTableField* field,
3011 upb_Message* sub_message) {
3012 _upb_Message_SetTaggedMessagePtr(
3013 msg, mini_table, field, _upb_TaggedMessagePtr_Pack(sub_message, false));
3014}
3015
Mike Kruskal232ecf42023-01-14 00:09:40 -08003016UPB_API_INLINE upb_Message* upb_Message_GetOrCreateMutableMessage(
Eric Salo8809a112022-11-21 13:01:06 -08003017 upb_Message* msg, const upb_MiniTable* mini_table,
3018 const upb_MiniTableField* field, upb_Arena* arena) {
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07003019 UPB_ASSERT(arena);
3020 UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_Message);
Eric Salo8809a112022-11-21 13:01:06 -08003021 upb_Message* sub_message = *UPB_PTR_AT(msg, field->offset, upb_Message*);
3022 if (!sub_message) {
3023 const upb_MiniTable* sub_mini_table =
Deanna Garciac7d979d2023-04-14 17:22:13 -07003024 mini_table->subs[field->UPB_PRIVATE(submsg_index)].submsg;
Eric Salo8809a112022-11-21 13:01:06 -08003025 UPB_ASSERT(sub_mini_table);
3026 sub_message = _upb_Message_New(sub_mini_table, arena);
3027 *UPB_PTR_AT(msg, field->offset, upb_Message*) = sub_message;
Eric Salo10505992022-12-12 12:16:36 -08003028 _upb_Message_SetPresence(msg, field);
Eric Salo8809a112022-11-21 13:01:06 -08003029 }
3030 return sub_message;
3031}
3032
Eric Salob598b2d2022-12-22 23:14:27 -08003033UPB_API_INLINE const upb_Array* upb_Message_GetArray(
Eric Salo8809a112022-11-21 13:01:06 -08003034 const upb_Message* msg, const upb_MiniTableField* field) {
Eric Salob7d54ac2022-12-29 11:59:42 -08003035 _upb_MiniTableField_CheckIsArray(field);
Deanna Garciac7d979d2023-04-14 17:22:13 -07003036 upb_Array* ret;
Eric Salo8809a112022-11-21 13:01:06 -08003037 const upb_Array* default_val = NULL;
Eric Salo10505992022-12-12 12:16:36 -08003038 _upb_Message_GetNonExtensionField(msg, field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08003039 return ret;
3040}
3041
Eric Salob598b2d2022-12-22 23:14:27 -08003042UPB_API_INLINE upb_Array* upb_Message_GetMutableArray(
Eric Salo8809a112022-11-21 13:01:06 -08003043 upb_Message* msg, const upb_MiniTableField* field) {
Eric Salob7d54ac2022-12-29 11:59:42 -08003044 _upb_MiniTableField_CheckIsArray(field);
Eric Salob598b2d2022-12-22 23:14:27 -08003045 return (upb_Array*)upb_Message_GetArray(msg, field);
Eric Salo8809a112022-11-21 13:01:06 -08003046}
3047
Eric Salob598b2d2022-12-22 23:14:27 -08003048UPB_API_INLINE upb_Array* upb_Message_GetOrCreateMutableArray(
Eric Salob7d54ac2022-12-29 11:59:42 -08003049 upb_Message* msg, const upb_MiniTableField* field, upb_Arena* arena) {
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07003050 UPB_ASSERT(arena);
Eric Salob7d54ac2022-12-29 11:59:42 -08003051 _upb_MiniTableField_CheckIsArray(field);
Eric Salob598b2d2022-12-22 23:14:27 -08003052 upb_Array* array = upb_Message_GetMutableArray(msg, field);
3053 if (!array) {
Eric Salob7d54ac2022-12-29 11:59:42 -08003054 array = _upb_Array_New(arena, 4, _upb_MiniTable_ElementSizeLg2(field));
3055 // Check again due to: https://godbolt.org/z/7WfaoKG1r
3056 _upb_MiniTableField_CheckIsArray(field);
Eric Salob598b2d2022-12-22 23:14:27 -08003057 _upb_Message_SetField(msg, field, &array, arena);
3058 }
3059 return array;
3060}
3061
Jie Luof36a5c62023-05-23 17:56:18 -07003062UPB_API_INLINE void* upb_Message_ResizeArrayUninitialized(
Eric Salob7d54ac2022-12-29 11:59:42 -08003063 upb_Message* msg, const upb_MiniTableField* field, size_t size,
3064 upb_Arena* arena) {
3065 _upb_MiniTableField_CheckIsArray(field);
3066 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, field, arena);
3067 if (!arr || !_upb_Array_ResizeUninitialized(arr, size, arena)) return NULL;
Eric Salob7d54ac2022-12-29 11:59:42 -08003068 return _upb_array_ptr(arr);
3069}
Eric Salo10505992022-12-12 12:16:36 -08003070
Eric Salob7d54ac2022-12-29 11:59:42 -08003071UPB_API_INLINE const upb_Map* upb_Message_GetMap(
3072 const upb_Message* msg, const upb_MiniTableField* field) {
3073 _upb_MiniTableField_CheckIsMap(field);
Jie Luo3560e232023-06-12 00:33:50 -07003074 _upb_Message_AssertMapIsUntagged(msg, field);
Deanna Garciac7d979d2023-04-14 17:22:13 -07003075 upb_Map* ret;
Eric Salob7d54ac2022-12-29 11:59:42 -08003076 const upb_Map* default_val = NULL;
3077 _upb_Message_GetNonExtensionField(msg, field, &default_val, &ret);
3078 return ret;
3079}
3080
Jie Luo3560e232023-06-12 00:33:50 -07003081UPB_API_INLINE upb_Map* upb_Message_GetMutableMap(
3082 upb_Message* msg, const upb_MiniTableField* field) {
3083 return (upb_Map*)upb_Message_GetMap(msg, field);
3084}
3085
Mike Kruskal232ecf42023-01-14 00:09:40 -08003086UPB_API_INLINE upb_Map* upb_Message_GetOrCreateMutableMap(
Eric Salob598b2d2022-12-22 23:14:27 -08003087 upb_Message* msg, const upb_MiniTable* map_entry_mini_table,
3088 const upb_MiniTableField* field, upb_Arena* arena) {
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07003089 UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_Message);
Eric Salob7d54ac2022-12-29 11:59:42 -08003090 const upb_MiniTableField* map_entry_key_field =
3091 &map_entry_mini_table->fields[0];
3092 const upb_MiniTableField* map_entry_value_field =
3093 &map_entry_mini_table->fields[1];
Mike Kruskal232ecf42023-01-14 00:09:40 -08003094 return _upb_Message_GetOrCreateMutableMap(
Eric Salob7d54ac2022-12-29 11:59:42 -08003095 msg, field,
3096 _upb_Map_CTypeSize(upb_MiniTableField_CType(map_entry_key_field)),
3097 _upb_Map_CTypeSize(upb_MiniTableField_CType(map_entry_value_field)),
3098 arena);
Eric Salob598b2d2022-12-22 23:14:27 -08003099}
3100
3101// Updates a map entry given an entry message.
3102upb_MapInsertStatus upb_Message_InsertMapEntry(upb_Map* map,
3103 const upb_MiniTable* mini_table,
3104 const upb_MiniTableField* field,
3105 upb_Message* map_entry_message,
3106 upb_Arena* arena);
3107
Eric Salo8809a112022-11-21 13:01:06 -08003108#ifdef __cplusplus
3109} /* extern "C" */
3110#endif
3111
Eric Salo8809a112022-11-21 13:01:06 -08003112
3113#endif // UPB_MESSAGE_ACCESSORS_H_
3114
Mike Kruskal9cf9db82022-11-04 21:22:31 -07003115// upb_decode: parsing into a upb_Message using a upb_MiniTable.
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003116
Mike Kruskal9cf9db82022-11-04 21:22:31 -07003117#ifndef UPB_WIRE_DECODE_H_
3118#define UPB_WIRE_DECODE_H_
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003119
3120
Joshua Habermand3995ec2022-09-30 16:54:39 -07003121// Must be last.
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003122
3123#ifdef __cplusplus
3124extern "C" {
3125#endif
3126
3127enum {
Joshua Habermand3995ec2022-09-30 16:54:39 -07003128 /* If set, strings will alias the input buffer instead of copying into the
3129 * arena. */
3130 kUpb_DecodeOption_AliasString = 1,
3131
3132 /* If set, the parse will return failure if any message is missing any
3133 * required fields when the message data ends. The parse will still continue,
3134 * and the failure will only be reported at the end.
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003135 *
Joshua Habermand3995ec2022-09-30 16:54:39 -07003136 * IMPORTANT CAVEATS:
3137 *
3138 * 1. This can throw a false positive failure if an incomplete message is seen
3139 * on the wire but is later completed when the sub-message occurs again.
3140 * For this reason, a second pass is required to verify a failure, to be
3141 * truly robust.
3142 *
3143 * 2. This can return a false success if you are decoding into a message that
3144 * already has some sub-message fields present. If the sub-message does
3145 * not occur in the binary payload, we will never visit it and discover the
3146 * incomplete sub-message. For this reason, this check is only useful for
3147 * implemting ParseFromString() semantics. For MergeFromString(), a
3148 * post-parse validation step will always be necessary. */
3149 kUpb_DecodeOption_CheckRequired = 2,
Jie Luo3560e232023-06-12 00:33:50 -07003150
3151 /* EXPERIMENTAL:
3152 *
3153 * If set, the parser will allow parsing of sub-message fields that were not
3154 * previously linked using upb_MiniTable_SetSubMessage(). The data will be
3155 * parsed into an internal "empty" message type that cannot be accessed
3156 * directly, but can be later promoted into the true message type if the
3157 * sub-message fields are linked at a later time.
3158 *
3159 * Users should set this option if they intend to perform dynamic tree shaking
3160 * and promoting using the interfaces in message/promote.h. If this option is
3161 * enabled, it is important that the resulting messages are only accessed by
3162 * code that is aware of promotion rules:
3163 *
3164 * 1. Message pointers in upb_Message, upb_Array, and upb_Map are represented
3165 * by a tagged pointer upb_TaggedMessagePointer. The tag indicates whether
3166 * the message uses the internal "empty" type.
3167 *
3168 * 2. Any code *reading* these message pointers must test whether the "empty"
3169 * tag bit is set, using the interfaces in mini_table/types.h. However
3170 * writing of message pointers should always use plain upb_Message*, since
3171 * users are not allowed to create "empty" messages.
3172 *
3173 * 3. It is always safe to test whether a field is present or test the array
3174 * length; these interfaces will reflect that empty messages are present,
3175 * even though their data cannot be accessed without promoting first.
3176 *
3177 * 4. If a message pointer is indeed tagged as empty, the message may not be
3178 * accessed directly, only promoted through the interfaces in
3179 * message/promote.h.
3180 *
3181 * 5. Tagged/empty messages may never be created by the user. They may only
3182 * be created by the parser or the message-copying logic in message/copy.h.
3183 */
3184 kUpb_DecodeOption_ExperimentalAllowUnlinked = 4,
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003185};
3186
Deanna Garciac7d979d2023-04-14 17:22:13 -07003187UPB_INLINE uint32_t upb_DecodeOptions_MaxDepth(uint16_t depth) {
3188 return (uint32_t)depth << 16;
3189}
3190
3191UPB_INLINE uint16_t upb_DecodeOptions_GetMaxDepth(uint32_t options) {
3192 return options >> 16;
3193}
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003194
Jakob Buchgraberc0c79b22023-03-20 08:13:52 -07003195// Enforce an upper bound on recursion depth.
3196UPB_INLINE int upb_Decode_LimitDepth(uint32_t decode_options, uint32_t limit) {
Deanna Garciac7d979d2023-04-14 17:22:13 -07003197 uint32_t max_depth = upb_DecodeOptions_GetMaxDepth(decode_options);
Jakob Buchgraberc0c79b22023-03-20 08:13:52 -07003198 if (max_depth > limit) max_depth = limit;
Deanna Garciac7d979d2023-04-14 17:22:13 -07003199 return upb_DecodeOptions_MaxDepth(max_depth) | (decode_options & 0xffff);
Jakob Buchgraberc0c79b22023-03-20 08:13:52 -07003200}
3201
Joshua Habermand3995ec2022-09-30 16:54:39 -07003202typedef enum {
3203 kUpb_DecodeStatus_Ok = 0,
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07003204 kUpb_DecodeStatus_Malformed = 1, // Wire format was corrupt
3205 kUpb_DecodeStatus_OutOfMemory = 2, // Arena alloc failed
3206 kUpb_DecodeStatus_BadUtf8 = 3, // String field had bad UTF-8
3207 kUpb_DecodeStatus_MaxDepthExceeded =
3208 4, // Exceeded upb_DecodeOptions_MaxDepth
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003209
Joshua Habermand3995ec2022-09-30 16:54:39 -07003210 // kUpb_DecodeOption_CheckRequired failed (see above), but the parse otherwise
3211 // succeeded.
3212 kUpb_DecodeStatus_MissingRequired = 5,
Jie Luo3560e232023-06-12 00:33:50 -07003213
3214 // Unlinked sub-message field was present, but
3215 // kUpb_DecodeOptions_ExperimentalAllowUnlinked was not specified in the list
3216 // of options.
3217 kUpb_DecodeStatus_UnlinkedSubMessage = 6,
Joshua Habermand3995ec2022-09-30 16:54:39 -07003218} upb_DecodeStatus;
3219
Eric Salo10505992022-12-12 12:16:36 -08003220UPB_API upb_DecodeStatus upb_Decode(const char* buf, size_t size,
3221 upb_Message* msg, const upb_MiniTable* l,
3222 const upb_ExtensionRegistry* extreg,
3223 int options, upb_Arena* arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003224
3225#ifdef __cplusplus
Joshua Habermanf41049a2022-01-21 14:41:25 -08003226} /* extern "C" */
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003227#endif
3228
Joshua Habermandd69a482021-05-17 22:40:33 -07003229
Mike Kruskal9cf9db82022-11-04 21:22:31 -07003230#endif /* UPB_WIRE_DECODE_H_ */
Joshua Habermand3995ec2022-09-30 16:54:39 -07003231
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003232// These are the specialized field parser functions for the fast parser.
3233// Generated tables will refer to these by name.
3234//
3235// The function names are encoded with names like:
3236//
3237// // 123 4
3238// upb_pss_1bt(); // Parse singular string, 1 byte tag.
3239//
3240// In position 1:
3241// - 'p' for parse, most function use this
3242// - 'c' for copy, for when we are copying strings instead of aliasing
3243//
3244// In position 2 (cardinality):
3245// - 's' for singular, with or without hasbit
3246// - 'o' for oneof
3247// - 'r' for non-packed repeated
3248// - 'p' for packed repeated
3249//
3250// In position 3 (type):
3251// - 'b1' for bool
3252// - 'v4' for 4-byte varint
3253// - 'v8' for 8-byte varint
3254// - 'z4' for zig-zag-encoded 4-byte varint
3255// - 'z8' for zig-zag-encoded 8-byte varint
3256// - 'f4' for 4-byte fixed
3257// - 'f8' for 8-byte fixed
3258// - 'm' for sub-message
3259// - 's' for string (validate UTF-8)
3260// - 'b' for bytes
3261//
3262// In position 4 (tag length):
3263// - '1' for one-byte tags (field numbers 1-15)
3264// - '2' for two-byte tags (field numbers 16-2048)
3265
Mike Kruskal9cf9db82022-11-04 21:22:31 -07003266#ifndef UPB_WIRE_DECODE_FAST_H_
3267#define UPB_WIRE_DECODE_FAST_H_
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003268
3269
Joshua Habermand3995ec2022-09-30 16:54:39 -07003270// Must be last.
3271
3272#ifdef __cplusplus
3273extern "C" {
3274#endif
3275
Joshua Habermanf41049a2022-01-21 14:41:25 -08003276struct upb_Decoder;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003277
3278// The fallback, generic parsing function that can handle any field type.
3279// This just uses the regular (non-fast) parser to parse a single field.
Joshua Habermand3995ec2022-09-30 16:54:39 -07003280const char* _upb_FastDecoder_DecodeGeneric(struct upb_Decoder* d,
3281 const char* ptr, upb_Message* msg,
3282 intptr_t table, uint64_t hasbits,
3283 uint64_t data);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003284
Joshua Habermanf41049a2022-01-21 14:41:25 -08003285#define UPB_PARSE_PARAMS \
3286 struct upb_Decoder *d, const char *ptr, upb_Message *msg, intptr_t table, \
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003287 uint64_t hasbits, uint64_t data
3288
3289/* primitive fields ***********************************************************/
3290
3291#define F(card, type, valbytes, tagbytes) \
Joshua Habermanf41049a2022-01-21 14:41:25 -08003292 const char* upb_p##card##type##valbytes##_##tagbytes##bt(UPB_PARSE_PARAMS);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003293
3294#define TYPES(card, tagbytes) \
3295 F(card, b, 1, tagbytes) \
3296 F(card, v, 4, tagbytes) \
3297 F(card, v, 8, tagbytes) \
3298 F(card, z, 4, tagbytes) \
3299 F(card, z, 8, tagbytes) \
3300 F(card, f, 4, tagbytes) \
3301 F(card, f, 8, tagbytes)
3302
3303#define TAGBYTES(card) \
3304 TYPES(card, 1) \
3305 TYPES(card, 2)
3306
3307TAGBYTES(s)
3308TAGBYTES(o)
3309TAGBYTES(r)
3310TAGBYTES(p)
3311
3312#undef F
3313#undef TYPES
3314#undef TAGBYTES
3315
3316/* string fields **************************************************************/
3317
3318#define F(card, tagbytes, type) \
Joshua Habermanf41049a2022-01-21 14:41:25 -08003319 const char* upb_p##card##type##_##tagbytes##bt(UPB_PARSE_PARAMS); \
3320 const char* upb_c##card##type##_##tagbytes##bt(UPB_PARSE_PARAMS);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003321
3322#define UTF8(card, tagbytes) \
3323 F(card, tagbytes, s) \
3324 F(card, tagbytes, b)
3325
3326#define TAGBYTES(card) \
3327 UTF8(card, 1) \
3328 UTF8(card, 2)
3329
3330TAGBYTES(s)
3331TAGBYTES(o)
3332TAGBYTES(r)
3333
3334#undef F
3335#undef TAGBYTES
3336
3337/* sub-message fields *********************************************************/
3338
3339#define F(card, tagbytes, size_ceil, ceil_arg) \
Joshua Habermanf41049a2022-01-21 14:41:25 -08003340 const char* upb_p##card##m_##tagbytes##bt_max##size_ceil##b(UPB_PARSE_PARAMS);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003341
3342#define SIZES(card, tagbytes) \
Joshua Habermanf41049a2022-01-21 14:41:25 -08003343 F(card, tagbytes, 64, 64) \
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003344 F(card, tagbytes, 128, 128) \
3345 F(card, tagbytes, 192, 192) \
3346 F(card, tagbytes, 256, 256) \
3347 F(card, tagbytes, max, -1)
3348
3349#define TAGBYTES(card) \
Joshua Habermanf41049a2022-01-21 14:41:25 -08003350 SIZES(card, 1) \
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003351 SIZES(card, 2)
3352
3353TAGBYTES(s)
3354TAGBYTES(o)
3355TAGBYTES(r)
3356
3357#undef TAGBYTES
3358#undef SIZES
3359#undef F
3360
3361#undef UPB_PARSE_PARAMS
3362
Joshua Habermand3995ec2022-09-30 16:54:39 -07003363#ifdef __cplusplus
3364} /* extern "C" */
3365#endif
3366
3367
Mike Kruskal9cf9db82022-11-04 21:22:31 -07003368#endif /* UPB_WIRE_DECODE_FAST_H_ */
Joshua Habermandd69a482021-05-17 22:40:33 -07003369
Eric Salo8809a112022-11-21 13:01:06 -08003370// upb_Encode: parsing from a upb_Message using a upb_MiniTable.
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003371
Mike Kruskal9cf9db82022-11-04 21:22:31 -07003372#ifndef UPB_WIRE_ENCODE_H_
3373#define UPB_WIRE_ENCODE_H_
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003374
3375
Joshua Habermand3995ec2022-09-30 16:54:39 -07003376// Must be last.
3377
3378#ifdef __cplusplus
3379extern "C" {
3380#endif
3381
3382enum {
3383 /* If set, the results of serializing will be deterministic across all
3384 * instances of this binary. There are no guarantees across different
3385 * binary builds.
3386 *
3387 * If your proto contains maps, the encoder will need to malloc()/free()
3388 * memory during encode. */
3389 kUpb_EncodeOption_Deterministic = 1,
3390
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07003391 // When set, unknown fields are not printed.
Joshua Habermand3995ec2022-09-30 16:54:39 -07003392 kUpb_EncodeOption_SkipUnknown = 2,
3393
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07003394 // When set, the encode will fail if any required fields are missing.
Joshua Habermand3995ec2022-09-30 16:54:39 -07003395 kUpb_EncodeOption_CheckRequired = 4,
3396};
3397
Joshua Habermand3995ec2022-09-30 16:54:39 -07003398typedef enum {
3399 kUpb_EncodeStatus_Ok = 0,
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07003400 kUpb_EncodeStatus_OutOfMemory = 1, // Arena alloc failed
3401 kUpb_EncodeStatus_MaxDepthExceeded = 2,
Joshua Habermand3995ec2022-09-30 16:54:39 -07003402
3403 // kUpb_EncodeOption_CheckRequired failed but the parse otherwise succeeded.
3404 kUpb_EncodeStatus_MissingRequired = 3,
3405} upb_EncodeStatus;
3406
Deanna Garciabd6a0cf2023-04-20 10:30:44 -07003407UPB_INLINE uint32_t upb_EncodeOptions_MaxDepth(uint16_t depth) {
3408 return (uint32_t)depth << 16;
3409}
3410
3411UPB_INLINE uint16_t upb_EncodeOptions_GetMaxDepth(uint32_t options) {
3412 return options >> 16;
3413}
3414
3415// Enforce an upper bound on recursion depth.
3416UPB_INLINE int upb_Encode_LimitDepth(uint32_t encode_options, uint32_t limit) {
3417 uint32_t max_depth = upb_EncodeOptions_GetMaxDepth(encode_options);
3418 if (max_depth > limit) max_depth = limit;
3419 return upb_EncodeOptions_MaxDepth(max_depth) | (encode_options & 0xffff);
3420}
3421
Joshua Habermand3995ec2022-09-30 16:54:39 -07003422upb_EncodeStatus upb_Encode(const void* msg, const upb_MiniTable* l,
3423 int options, upb_Arena* arena, char** buf,
3424 size_t* size);
3425
3426#ifdef __cplusplus
3427} /* extern "C" */
3428#endif
3429
3430
Mike Kruskal9cf9db82022-11-04 21:22:31 -07003431#endif /* UPB_WIRE_ENCODE_H_ */
Joshua Habermand3995ec2022-09-30 16:54:39 -07003432
Mike Kruskal232ecf42023-01-14 00:09:40 -08003433// Must be last.
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003434
3435#ifdef __cplusplus
3436extern "C" {
3437#endif
3438
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003439typedef struct google_protobuf_FileDescriptorSet google_protobuf_FileDescriptorSet;
3440typedef struct google_protobuf_FileDescriptorProto google_protobuf_FileDescriptorProto;
3441typedef struct google_protobuf_DescriptorProto google_protobuf_DescriptorProto;
3442typedef struct google_protobuf_DescriptorProto_ExtensionRange google_protobuf_DescriptorProto_ExtensionRange;
3443typedef struct google_protobuf_DescriptorProto_ReservedRange google_protobuf_DescriptorProto_ReservedRange;
3444typedef struct google_protobuf_ExtensionRangeOptions google_protobuf_ExtensionRangeOptions;
Mike Kruskal145900f2023-03-27 09:55:52 -07003445typedef struct google_protobuf_ExtensionRangeOptions_Declaration google_protobuf_ExtensionRangeOptions_Declaration;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003446typedef struct google_protobuf_FieldDescriptorProto google_protobuf_FieldDescriptorProto;
3447typedef struct google_protobuf_OneofDescriptorProto google_protobuf_OneofDescriptorProto;
3448typedef struct google_protobuf_EnumDescriptorProto google_protobuf_EnumDescriptorProto;
3449typedef struct google_protobuf_EnumDescriptorProto_EnumReservedRange google_protobuf_EnumDescriptorProto_EnumReservedRange;
3450typedef struct google_protobuf_EnumValueDescriptorProto google_protobuf_EnumValueDescriptorProto;
3451typedef struct google_protobuf_ServiceDescriptorProto google_protobuf_ServiceDescriptorProto;
3452typedef struct google_protobuf_MethodDescriptorProto google_protobuf_MethodDescriptorProto;
3453typedef struct google_protobuf_FileOptions google_protobuf_FileOptions;
3454typedef struct google_protobuf_MessageOptions google_protobuf_MessageOptions;
3455typedef struct google_protobuf_FieldOptions google_protobuf_FieldOptions;
Mike Kruskal4f9e4172023-06-30 20:14:50 -07003456typedef struct google_protobuf_FieldOptions_EditionDefault google_protobuf_FieldOptions_EditionDefault;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003457typedef struct google_protobuf_OneofOptions google_protobuf_OneofOptions;
3458typedef struct google_protobuf_EnumOptions google_protobuf_EnumOptions;
3459typedef struct google_protobuf_EnumValueOptions google_protobuf_EnumValueOptions;
3460typedef struct google_protobuf_ServiceOptions google_protobuf_ServiceOptions;
3461typedef struct google_protobuf_MethodOptions google_protobuf_MethodOptions;
3462typedef struct google_protobuf_UninterpretedOption google_protobuf_UninterpretedOption;
3463typedef struct google_protobuf_UninterpretedOption_NamePart google_protobuf_UninterpretedOption_NamePart;
Mike Kruskal4f9e4172023-06-30 20:14:50 -07003464typedef struct google_protobuf_FeatureSet google_protobuf_FeatureSet;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003465typedef struct google_protobuf_SourceCodeInfo google_protobuf_SourceCodeInfo;
3466typedef struct google_protobuf_SourceCodeInfo_Location google_protobuf_SourceCodeInfo_Location;
3467typedef struct google_protobuf_GeneratedCodeInfo google_protobuf_GeneratedCodeInfo;
3468typedef struct google_protobuf_GeneratedCodeInfo_Annotation google_protobuf_GeneratedCodeInfo_Annotation;
Joshua Habermand3995ec2022-09-30 16:54:39 -07003469extern const upb_MiniTable google_protobuf_FileDescriptorSet_msg_init;
3470extern const upb_MiniTable google_protobuf_FileDescriptorProto_msg_init;
3471extern const upb_MiniTable google_protobuf_DescriptorProto_msg_init;
3472extern const upb_MiniTable google_protobuf_DescriptorProto_ExtensionRange_msg_init;
3473extern const upb_MiniTable google_protobuf_DescriptorProto_ReservedRange_msg_init;
3474extern const upb_MiniTable google_protobuf_ExtensionRangeOptions_msg_init;
Mike Kruskal145900f2023-03-27 09:55:52 -07003475extern const upb_MiniTable google_protobuf_ExtensionRangeOptions_Declaration_msg_init;
Joshua Habermand3995ec2022-09-30 16:54:39 -07003476extern const upb_MiniTable google_protobuf_FieldDescriptorProto_msg_init;
3477extern const upb_MiniTable google_protobuf_OneofDescriptorProto_msg_init;
3478extern const upb_MiniTable google_protobuf_EnumDescriptorProto_msg_init;
3479extern const upb_MiniTable google_protobuf_EnumDescriptorProto_EnumReservedRange_msg_init;
3480extern const upb_MiniTable google_protobuf_EnumValueDescriptorProto_msg_init;
3481extern const upb_MiniTable google_protobuf_ServiceDescriptorProto_msg_init;
3482extern const upb_MiniTable google_protobuf_MethodDescriptorProto_msg_init;
3483extern const upb_MiniTable google_protobuf_FileOptions_msg_init;
3484extern const upb_MiniTable google_protobuf_MessageOptions_msg_init;
3485extern const upb_MiniTable google_protobuf_FieldOptions_msg_init;
Mike Kruskal4f9e4172023-06-30 20:14:50 -07003486extern const upb_MiniTable google_protobuf_FieldOptions_EditionDefault_msg_init;
Joshua Habermand3995ec2022-09-30 16:54:39 -07003487extern const upb_MiniTable google_protobuf_OneofOptions_msg_init;
3488extern const upb_MiniTable google_protobuf_EnumOptions_msg_init;
3489extern const upb_MiniTable google_protobuf_EnumValueOptions_msg_init;
3490extern const upb_MiniTable google_protobuf_ServiceOptions_msg_init;
3491extern const upb_MiniTable google_protobuf_MethodOptions_msg_init;
3492extern const upb_MiniTable google_protobuf_UninterpretedOption_msg_init;
3493extern const upb_MiniTable google_protobuf_UninterpretedOption_NamePart_msg_init;
Mike Kruskal4f9e4172023-06-30 20:14:50 -07003494extern const upb_MiniTable google_protobuf_FeatureSet_msg_init;
Joshua Habermand3995ec2022-09-30 16:54:39 -07003495extern const upb_MiniTable google_protobuf_SourceCodeInfo_msg_init;
3496extern const upb_MiniTable google_protobuf_SourceCodeInfo_Location_msg_init;
3497extern const upb_MiniTable google_protobuf_GeneratedCodeInfo_msg_init;
3498extern const upb_MiniTable google_protobuf_GeneratedCodeInfo_Annotation_msg_init;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003499
3500typedef enum {
Protobuf Team Bot469f0272023-04-21 18:12:45 -07003501 google_protobuf_ExtensionRangeOptions_DECLARATION = 0,
3502 google_protobuf_ExtensionRangeOptions_UNVERIFIED = 1
3503} google_protobuf_ExtensionRangeOptions_VerificationState;
3504
3505typedef enum {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07003506 google_protobuf_FeatureSet_ENUM_TYPE_UNKNOWN = 0,
3507 google_protobuf_FeatureSet_OPEN = 1,
3508 google_protobuf_FeatureSet_CLOSED = 2
3509} google_protobuf_FeatureSet_EnumType;
3510
3511typedef enum {
3512 google_protobuf_FeatureSet_FIELD_PRESENCE_UNKNOWN = 0,
3513 google_protobuf_FeatureSet_EXPLICIT = 1,
3514 google_protobuf_FeatureSet_IMPLICIT = 2,
3515 google_protobuf_FeatureSet_LEGACY_REQUIRED = 3
3516} google_protobuf_FeatureSet_FieldPresence;
3517
3518typedef enum {
3519 google_protobuf_FeatureSet_JSON_FORMAT_UNKNOWN = 0,
3520 google_protobuf_FeatureSet_ALLOW = 1,
3521 google_protobuf_FeatureSet_LEGACY_BEST_EFFORT = 2
3522} google_protobuf_FeatureSet_JsonFormat;
3523
3524typedef enum {
3525 google_protobuf_FeatureSet_MESSAGE_ENCODING_UNKNOWN = 0,
3526 google_protobuf_FeatureSet_LENGTH_PREFIXED = 1,
3527 google_protobuf_FeatureSet_DELIMITED = 2
3528} google_protobuf_FeatureSet_MessageEncoding;
3529
3530typedef enum {
3531 google_protobuf_FeatureSet_REPEATED_FIELD_ENCODING_UNKNOWN = 0,
3532 google_protobuf_FeatureSet_PACKED = 1,
3533 google_protobuf_FeatureSet_EXPANDED = 2
3534} google_protobuf_FeatureSet_RepeatedFieldEncoding;
3535
3536typedef enum {
3537 google_protobuf_FeatureSet_STRING_FIELD_VALIDATION_UNKNOWN = 0,
3538 google_protobuf_FeatureSet_MANDATORY = 1,
3539 google_protobuf_FeatureSet_HINT = 2,
3540 google_protobuf_FeatureSet_NONE = 3
3541} google_protobuf_FeatureSet_StringFieldValidation;
3542
3543typedef enum {
Mike Kruskalccbdaa72023-02-02 20:42:14 -08003544 google_protobuf_FieldDescriptorProto_LABEL_OPTIONAL = 1,
3545 google_protobuf_FieldDescriptorProto_LABEL_REQUIRED = 2,
3546 google_protobuf_FieldDescriptorProto_LABEL_REPEATED = 3
3547} google_protobuf_FieldDescriptorProto_Label;
3548
3549typedef enum {
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003550 google_protobuf_FieldDescriptorProto_TYPE_DOUBLE = 1,
3551 google_protobuf_FieldDescriptorProto_TYPE_FLOAT = 2,
3552 google_protobuf_FieldDescriptorProto_TYPE_INT64 = 3,
3553 google_protobuf_FieldDescriptorProto_TYPE_UINT64 = 4,
3554 google_protobuf_FieldDescriptorProto_TYPE_INT32 = 5,
3555 google_protobuf_FieldDescriptorProto_TYPE_FIXED64 = 6,
3556 google_protobuf_FieldDescriptorProto_TYPE_FIXED32 = 7,
3557 google_protobuf_FieldDescriptorProto_TYPE_BOOL = 8,
3558 google_protobuf_FieldDescriptorProto_TYPE_STRING = 9,
3559 google_protobuf_FieldDescriptorProto_TYPE_GROUP = 10,
3560 google_protobuf_FieldDescriptorProto_TYPE_MESSAGE = 11,
3561 google_protobuf_FieldDescriptorProto_TYPE_BYTES = 12,
3562 google_protobuf_FieldDescriptorProto_TYPE_UINT32 = 13,
3563 google_protobuf_FieldDescriptorProto_TYPE_ENUM = 14,
3564 google_protobuf_FieldDescriptorProto_TYPE_SFIXED32 = 15,
3565 google_protobuf_FieldDescriptorProto_TYPE_SFIXED64 = 16,
3566 google_protobuf_FieldDescriptorProto_TYPE_SINT32 = 17,
3567 google_protobuf_FieldDescriptorProto_TYPE_SINT64 = 18
3568} google_protobuf_FieldDescriptorProto_Type;
3569
3570typedef enum {
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003571 google_protobuf_FieldOptions_STRING = 0,
3572 google_protobuf_FieldOptions_CORD = 1,
3573 google_protobuf_FieldOptions_STRING_PIECE = 2
3574} google_protobuf_FieldOptions_CType;
3575
3576typedef enum {
3577 google_protobuf_FieldOptions_JS_NORMAL = 0,
3578 google_protobuf_FieldOptions_JS_STRING = 1,
3579 google_protobuf_FieldOptions_JS_NUMBER = 2
3580} google_protobuf_FieldOptions_JSType;
3581
3582typedef enum {
Adam Cozzette90ff32c2023-01-21 15:04:56 -08003583 google_protobuf_FieldOptions_RETENTION_UNKNOWN = 0,
3584 google_protobuf_FieldOptions_RETENTION_RUNTIME = 1,
3585 google_protobuf_FieldOptions_RETENTION_SOURCE = 2
3586} google_protobuf_FieldOptions_OptionRetention;
3587
3588typedef enum {
3589 google_protobuf_FieldOptions_TARGET_TYPE_UNKNOWN = 0,
3590 google_protobuf_FieldOptions_TARGET_TYPE_FILE = 1,
3591 google_protobuf_FieldOptions_TARGET_TYPE_EXTENSION_RANGE = 2,
3592 google_protobuf_FieldOptions_TARGET_TYPE_MESSAGE = 3,
3593 google_protobuf_FieldOptions_TARGET_TYPE_FIELD = 4,
3594 google_protobuf_FieldOptions_TARGET_TYPE_ONEOF = 5,
3595 google_protobuf_FieldOptions_TARGET_TYPE_ENUM = 6,
3596 google_protobuf_FieldOptions_TARGET_TYPE_ENUM_ENTRY = 7,
3597 google_protobuf_FieldOptions_TARGET_TYPE_SERVICE = 8,
3598 google_protobuf_FieldOptions_TARGET_TYPE_METHOD = 9
3599} google_protobuf_FieldOptions_OptionTargetType;
3600
3601typedef enum {
Mike Kruskalccbdaa72023-02-02 20:42:14 -08003602 google_protobuf_FileOptions_SPEED = 1,
3603 google_protobuf_FileOptions_CODE_SIZE = 2,
3604 google_protobuf_FileOptions_LITE_RUNTIME = 3
3605} google_protobuf_FileOptions_OptimizeMode;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003606
3607typedef enum {
Joshua Habermand3995ec2022-09-30 16:54:39 -07003608 google_protobuf_GeneratedCodeInfo_Annotation_NONE = 0,
3609 google_protobuf_GeneratedCodeInfo_Annotation_SET = 1,
3610 google_protobuf_GeneratedCodeInfo_Annotation_ALIAS = 2
3611} google_protobuf_GeneratedCodeInfo_Annotation_Semantic;
3612
Mike Kruskalccbdaa72023-02-02 20:42:14 -08003613typedef enum {
3614 google_protobuf_MethodOptions_IDEMPOTENCY_UNKNOWN = 0,
3615 google_protobuf_MethodOptions_NO_SIDE_EFFECTS = 1,
3616 google_protobuf_MethodOptions_IDEMPOTENT = 2
3617} google_protobuf_MethodOptions_IdempotencyLevel;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003618
Mike Kruskalccbdaa72023-02-02 20:42:14 -08003619
Protobuf Team Bot469f0272023-04-21 18:12:45 -07003620extern const upb_MiniTableEnum google_protobuf_ExtensionRangeOptions_VerificationState_enum_init;
Mike Kruskal4f9e4172023-06-30 20:14:50 -07003621extern const upb_MiniTableEnum google_protobuf_FeatureSet_EnumType_enum_init;
3622extern const upb_MiniTableEnum google_protobuf_FeatureSet_FieldPresence_enum_init;
3623extern const upb_MiniTableEnum google_protobuf_FeatureSet_JsonFormat_enum_init;
3624extern const upb_MiniTableEnum google_protobuf_FeatureSet_MessageEncoding_enum_init;
3625extern const upb_MiniTableEnum google_protobuf_FeatureSet_RepeatedFieldEncoding_enum_init;
3626extern const upb_MiniTableEnum google_protobuf_FeatureSet_StringFieldValidation_enum_init;
Mike Kruskal232ecf42023-01-14 00:09:40 -08003627extern const upb_MiniTableEnum google_protobuf_FieldDescriptorProto_Label_enum_init;
Mike Kruskalccbdaa72023-02-02 20:42:14 -08003628extern const upb_MiniTableEnum google_protobuf_FieldDescriptorProto_Type_enum_init;
Eric Salo8809a112022-11-21 13:01:06 -08003629extern const upb_MiniTableEnum google_protobuf_FieldOptions_CType_enum_init;
3630extern const upb_MiniTableEnum google_protobuf_FieldOptions_JSType_enum_init;
Adam Cozzette90ff32c2023-01-21 15:04:56 -08003631extern const upb_MiniTableEnum google_protobuf_FieldOptions_OptionRetention_enum_init;
3632extern const upb_MiniTableEnum google_protobuf_FieldOptions_OptionTargetType_enum_init;
Mike Kruskalccbdaa72023-02-02 20:42:14 -08003633extern const upb_MiniTableEnum google_protobuf_FileOptions_OptimizeMode_enum_init;
Mike Kruskal232ecf42023-01-14 00:09:40 -08003634extern const upb_MiniTableEnum google_protobuf_GeneratedCodeInfo_Annotation_Semantic_enum_init;
Mike Kruskalccbdaa72023-02-02 20:42:14 -08003635extern const upb_MiniTableEnum google_protobuf_MethodOptions_IdempotencyLevel_enum_init;
Joshua Habermanf41049a2022-01-21 14:41:25 -08003636
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003637/* google.protobuf.FileDescriptorSet */
3638
Joshua Habermanf41049a2022-01-21 14:41:25 -08003639UPB_INLINE google_protobuf_FileDescriptorSet* google_protobuf_FileDescriptorSet_new(upb_Arena* arena) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07003640 return (google_protobuf_FileDescriptorSet*)_upb_Message_New(&google_protobuf_FileDescriptorSet_msg_init, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003641}
Joshua Habermanf41049a2022-01-21 14:41:25 -08003642UPB_INLINE google_protobuf_FileDescriptorSet* google_protobuf_FileDescriptorSet_parse(const char* buf, size_t size, upb_Arena* arena) {
3643 google_protobuf_FileDescriptorSet* ret = google_protobuf_FileDescriptorSet_new(arena);
Joshua Haberman9d578a32021-08-02 15:32:01 -07003644 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07003645 if (upb_Decode(buf, size, ret, &google_protobuf_FileDescriptorSet_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
Joshua Haberman9d578a32021-08-02 15:32:01 -07003646 return NULL;
3647 }
3648 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003649}
Joshua Habermanf41049a2022-01-21 14:41:25 -08003650UPB_INLINE google_protobuf_FileDescriptorSet* google_protobuf_FileDescriptorSet_parse_ex(const char* buf, size_t size,
3651 const upb_ExtensionRegistry* extreg,
3652 int options, upb_Arena* arena) {
3653 google_protobuf_FileDescriptorSet* ret = google_protobuf_FileDescriptorSet_new(arena);
3654 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07003655 if (upb_Decode(buf, size, ret, &google_protobuf_FileDescriptorSet_msg_init, extreg, options, arena) !=
Joshua Habermanf41049a2022-01-21 14:41:25 -08003656 kUpb_DecodeStatus_Ok) {
3657 return NULL;
3658 }
3659 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003660}
Joshua Habermanf41049a2022-01-21 14:41:25 -08003661UPB_INLINE char* google_protobuf_FileDescriptorSet_serialize(const google_protobuf_FileDescriptorSet* msg, upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07003662 char* ptr;
3663 (void)upb_Encode(msg, &google_protobuf_FileDescriptorSet_msg_init, 0, arena, &ptr, len);
3664 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08003665}
3666UPB_INLINE char* google_protobuf_FileDescriptorSet_serialize_ex(const google_protobuf_FileDescriptorSet* msg, int options,
3667 upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07003668 char* ptr;
3669 (void)upb_Encode(msg, &google_protobuf_FileDescriptorSet_msg_init, options, arena, &ptr, len);
3670 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08003671}
Mike Kruskal3bc50492022-12-01 13:34:12 -08003672UPB_INLINE void google_protobuf_FileDescriptorSet_clear_file(google_protobuf_FileDescriptorSet* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07003673 const upb_MiniTableField field = {1, 0, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08003674 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07003675}
Eric Salob7d54ac2022-12-29 11:59:42 -08003676UPB_INLINE const google_protobuf_FileDescriptorProto* const* google_protobuf_FileDescriptorSet_file(const google_protobuf_FileDescriptorSet* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07003677 const upb_MiniTableField field = {1, 0, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08003678 const upb_Array* arr = upb_Message_GetArray(msg, &field);
3679 if (arr) {
3680 if (size) *size = arr->size;
3681 return (const google_protobuf_FileDescriptorProto* const*)_upb_array_constptr(arr);
3682 } else {
3683 if (size) *size = 0;
3684 return NULL;
3685 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07003686}
Deanna Garciab26afb52023-04-25 13:37:18 -07003687UPB_INLINE const upb_Array* _google_protobuf_FileDescriptorSet_file_upb_array(const google_protobuf_FileDescriptorSet* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07003688 const upb_MiniTableField field = {1, 0, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07003689 const upb_Array* arr = upb_Message_GetArray(msg, &field);
3690 if (size) {
3691 *size = arr ? arr->size : 0;
3692 }
3693 return arr;
3694}
3695UPB_INLINE upb_Array* _google_protobuf_FileDescriptorSet_file_mutable_upb_array(const google_protobuf_FileDescriptorSet* msg, size_t* size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07003696 const upb_MiniTableField field = {1, 0, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07003697 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
3698 (upb_Message*)msg, &field, arena);
3699 if (size) {
3700 *size = arr ? arr->size : 0;
3701 }
3702 return arr;
3703}
Mike Kruskal3bc50492022-12-01 13:34:12 -08003704UPB_INLINE bool google_protobuf_FileDescriptorSet_has_file(const google_protobuf_FileDescriptorSet* msg) {
3705 size_t size;
3706 google_protobuf_FileDescriptorSet_file(msg, &size);
3707 return size != 0;
3708}
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003709
Eric Salob7d54ac2022-12-29 11:59:42 -08003710UPB_INLINE google_protobuf_FileDescriptorProto** google_protobuf_FileDescriptorSet_mutable_file(google_protobuf_FileDescriptorSet* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07003711 upb_MiniTableField field = {1, 0, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08003712 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
3713 if (arr) {
3714 if (size) *size = arr->size;
3715 return (google_protobuf_FileDescriptorProto**)_upb_array_ptr(arr);
3716 } else {
3717 if (size) *size = 0;
3718 return NULL;
3719 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003720}
Eric Salob7d54ac2022-12-29 11:59:42 -08003721UPB_INLINE google_protobuf_FileDescriptorProto** google_protobuf_FileDescriptorSet_resize_file(google_protobuf_FileDescriptorSet* msg, size_t size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07003722 upb_MiniTableField field = {1, 0, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07003723 return (google_protobuf_FileDescriptorProto**)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003724}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07003725UPB_INLINE struct google_protobuf_FileDescriptorProto* google_protobuf_FileDescriptorSet_add_file(google_protobuf_FileDescriptorSet* msg, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07003726 upb_MiniTableField field = {1, 0, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08003727 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
3728 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
3729 return NULL;
3730 }
Joshua Habermand3995ec2022-09-30 16:54:39 -07003731 struct google_protobuf_FileDescriptorProto* sub = (struct google_protobuf_FileDescriptorProto*)_upb_Message_New(&google_protobuf_FileDescriptorProto_msg_init, arena);
Eric Salob7d54ac2022-12-29 11:59:42 -08003732 if (!arr || !sub) return NULL;
3733 _upb_Array_Set(arr, arr->size - 1, &sub, sizeof(sub));
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003734 return sub;
3735}
3736
3737/* google.protobuf.FileDescriptorProto */
3738
Joshua Habermanf41049a2022-01-21 14:41:25 -08003739UPB_INLINE google_protobuf_FileDescriptorProto* google_protobuf_FileDescriptorProto_new(upb_Arena* arena) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07003740 return (google_protobuf_FileDescriptorProto*)_upb_Message_New(&google_protobuf_FileDescriptorProto_msg_init, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003741}
Joshua Habermanf41049a2022-01-21 14:41:25 -08003742UPB_INLINE google_protobuf_FileDescriptorProto* google_protobuf_FileDescriptorProto_parse(const char* buf, size_t size, upb_Arena* arena) {
3743 google_protobuf_FileDescriptorProto* ret = google_protobuf_FileDescriptorProto_new(arena);
Joshua Haberman9d578a32021-08-02 15:32:01 -07003744 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07003745 if (upb_Decode(buf, size, ret, &google_protobuf_FileDescriptorProto_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
Joshua Haberman9d578a32021-08-02 15:32:01 -07003746 return NULL;
3747 }
3748 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003749}
Joshua Habermanf41049a2022-01-21 14:41:25 -08003750UPB_INLINE google_protobuf_FileDescriptorProto* google_protobuf_FileDescriptorProto_parse_ex(const char* buf, size_t size,
3751 const upb_ExtensionRegistry* extreg,
3752 int options, upb_Arena* arena) {
3753 google_protobuf_FileDescriptorProto* ret = google_protobuf_FileDescriptorProto_new(arena);
3754 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07003755 if (upb_Decode(buf, size, ret, &google_protobuf_FileDescriptorProto_msg_init, extreg, options, arena) !=
Joshua Habermanf41049a2022-01-21 14:41:25 -08003756 kUpb_DecodeStatus_Ok) {
3757 return NULL;
3758 }
3759 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08003760}
Joshua Habermanf41049a2022-01-21 14:41:25 -08003761UPB_INLINE char* google_protobuf_FileDescriptorProto_serialize(const google_protobuf_FileDescriptorProto* msg, upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07003762 char* ptr;
3763 (void)upb_Encode(msg, &google_protobuf_FileDescriptorProto_msg_init, 0, arena, &ptr, len);
3764 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08003765}
3766UPB_INLINE char* google_protobuf_FileDescriptorProto_serialize_ex(const google_protobuf_FileDescriptorProto* msg, int options,
3767 upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07003768 char* ptr;
3769 (void)upb_Encode(msg, &google_protobuf_FileDescriptorProto_msg_init, options, arena, &ptr, len);
3770 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08003771}
Mike Kruskal3bc50492022-12-01 13:34:12 -08003772UPB_INLINE void google_protobuf_FileDescriptorProto_clear_name(google_protobuf_FileDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07003773 const upb_MiniTableField field = {1, UPB_SIZE(40, 8), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08003774 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07003775}
Joshua Habermanf41049a2022-01-21 14:41:25 -08003776UPB_INLINE upb_StringView google_protobuf_FileDescriptorProto_name(const google_protobuf_FileDescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08003777 upb_StringView default_val = upb_StringView_FromString("");
3778 upb_StringView ret;
Jie Luo3560e232023-06-12 00:33:50 -07003779 const upb_MiniTableField field = {1, UPB_SIZE(40, 8), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08003780 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08003781 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08003782}
Mike Kruskal3bc50492022-12-01 13:34:12 -08003783UPB_INLINE bool google_protobuf_FileDescriptorProto_has_name(const google_protobuf_FileDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07003784 const upb_MiniTableField field = {1, UPB_SIZE(40, 8), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08003785 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07003786}
Mike Kruskal3bc50492022-12-01 13:34:12 -08003787UPB_INLINE void google_protobuf_FileDescriptorProto_clear_package(google_protobuf_FileDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07003788 const upb_MiniTableField field = {2, UPB_SIZE(48, 24), 2, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08003789 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07003790}
Joshua Habermanf41049a2022-01-21 14:41:25 -08003791UPB_INLINE upb_StringView google_protobuf_FileDescriptorProto_package(const google_protobuf_FileDescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08003792 upb_StringView default_val = upb_StringView_FromString("");
3793 upb_StringView ret;
Jie Luo3560e232023-06-12 00:33:50 -07003794 const upb_MiniTableField field = {2, UPB_SIZE(48, 24), 2, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08003795 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08003796 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08003797}
Mike Kruskal3bc50492022-12-01 13:34:12 -08003798UPB_INLINE bool google_protobuf_FileDescriptorProto_has_package(const google_protobuf_FileDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07003799 const upb_MiniTableField field = {2, UPB_SIZE(48, 24), 2, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08003800 return _upb_Message_HasNonExtensionField(msg, &field);
Mike Kruskal3bc50492022-12-01 13:34:12 -08003801}
3802UPB_INLINE void google_protobuf_FileDescriptorProto_clear_dependency(google_protobuf_FileDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07003803 const upb_MiniTableField field = {3, UPB_SIZE(4, 40), 0, kUpb_NoSub, 12, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08003804 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07003805}
Eric Salob7d54ac2022-12-29 11:59:42 -08003806UPB_INLINE upb_StringView const* google_protobuf_FileDescriptorProto_dependency(const google_protobuf_FileDescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07003807 const upb_MiniTableField field = {3, UPB_SIZE(4, 40), 0, kUpb_NoSub, 12, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08003808 const upb_Array* arr = upb_Message_GetArray(msg, &field);
3809 if (arr) {
3810 if (size) *size = arr->size;
3811 return (upb_StringView const*)_upb_array_constptr(arr);
3812 } else {
3813 if (size) *size = 0;
3814 return NULL;
3815 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07003816}
Deanna Garciab26afb52023-04-25 13:37:18 -07003817UPB_INLINE const upb_Array* _google_protobuf_FileDescriptorProto_dependency_upb_array(const google_protobuf_FileDescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07003818 const upb_MiniTableField field = {3, UPB_SIZE(4, 40), 0, kUpb_NoSub, 12, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07003819 const upb_Array* arr = upb_Message_GetArray(msg, &field);
3820 if (size) {
3821 *size = arr ? arr->size : 0;
3822 }
3823 return arr;
3824}
3825UPB_INLINE upb_Array* _google_protobuf_FileDescriptorProto_dependency_mutable_upb_array(const google_protobuf_FileDescriptorProto* msg, size_t* size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07003826 const upb_MiniTableField field = {3, UPB_SIZE(4, 40), 0, kUpb_NoSub, 12, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07003827 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
3828 (upb_Message*)msg, &field, arena);
3829 if (size) {
3830 *size = arr ? arr->size : 0;
3831 }
3832 return arr;
3833}
Mike Kruskal3bc50492022-12-01 13:34:12 -08003834UPB_INLINE bool google_protobuf_FileDescriptorProto_has_dependency(const google_protobuf_FileDescriptorProto* msg) {
3835 size_t size;
3836 google_protobuf_FileDescriptorProto_dependency(msg, &size);
3837 return size != 0;
Joshua Habermand3995ec2022-09-30 16:54:39 -07003838}
Mike Kruskal3bc50492022-12-01 13:34:12 -08003839UPB_INLINE void google_protobuf_FileDescriptorProto_clear_message_type(google_protobuf_FileDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07003840 const upb_MiniTableField field = {4, UPB_SIZE(8, 48), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08003841 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07003842}
Eric Salob7d54ac2022-12-29 11:59:42 -08003843UPB_INLINE const google_protobuf_DescriptorProto* const* google_protobuf_FileDescriptorProto_message_type(const google_protobuf_FileDescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07003844 const upb_MiniTableField field = {4, UPB_SIZE(8, 48), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08003845 const upb_Array* arr = upb_Message_GetArray(msg, &field);
3846 if (arr) {
3847 if (size) *size = arr->size;
3848 return (const google_protobuf_DescriptorProto* const*)_upb_array_constptr(arr);
3849 } else {
3850 if (size) *size = 0;
3851 return NULL;
3852 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07003853}
Deanna Garciab26afb52023-04-25 13:37:18 -07003854UPB_INLINE const upb_Array* _google_protobuf_FileDescriptorProto_message_type_upb_array(const google_protobuf_FileDescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07003855 const upb_MiniTableField field = {4, UPB_SIZE(8, 48), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07003856 const upb_Array* arr = upb_Message_GetArray(msg, &field);
3857 if (size) {
3858 *size = arr ? arr->size : 0;
3859 }
3860 return arr;
3861}
3862UPB_INLINE upb_Array* _google_protobuf_FileDescriptorProto_message_type_mutable_upb_array(const google_protobuf_FileDescriptorProto* msg, size_t* size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07003863 const upb_MiniTableField field = {4, UPB_SIZE(8, 48), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07003864 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
3865 (upb_Message*)msg, &field, arena);
3866 if (size) {
3867 *size = arr ? arr->size : 0;
3868 }
3869 return arr;
3870}
Mike Kruskal3bc50492022-12-01 13:34:12 -08003871UPB_INLINE bool google_protobuf_FileDescriptorProto_has_message_type(const google_protobuf_FileDescriptorProto* msg) {
3872 size_t size;
3873 google_protobuf_FileDescriptorProto_message_type(msg, &size);
3874 return size != 0;
Joshua Habermand3995ec2022-09-30 16:54:39 -07003875}
Mike Kruskal3bc50492022-12-01 13:34:12 -08003876UPB_INLINE void google_protobuf_FileDescriptorProto_clear_enum_type(google_protobuf_FileDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07003877 const upb_MiniTableField field = {5, UPB_SIZE(12, 56), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08003878 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07003879}
Eric Salob7d54ac2022-12-29 11:59:42 -08003880UPB_INLINE const google_protobuf_EnumDescriptorProto* const* google_protobuf_FileDescriptorProto_enum_type(const google_protobuf_FileDescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07003881 const upb_MiniTableField field = {5, UPB_SIZE(12, 56), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08003882 const upb_Array* arr = upb_Message_GetArray(msg, &field);
3883 if (arr) {
3884 if (size) *size = arr->size;
3885 return (const google_protobuf_EnumDescriptorProto* const*)_upb_array_constptr(arr);
3886 } else {
3887 if (size) *size = 0;
3888 return NULL;
3889 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07003890}
Deanna Garciab26afb52023-04-25 13:37:18 -07003891UPB_INLINE const upb_Array* _google_protobuf_FileDescriptorProto_enum_type_upb_array(const google_protobuf_FileDescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07003892 const upb_MiniTableField field = {5, UPB_SIZE(12, 56), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07003893 const upb_Array* arr = upb_Message_GetArray(msg, &field);
3894 if (size) {
3895 *size = arr ? arr->size : 0;
3896 }
3897 return arr;
3898}
3899UPB_INLINE upb_Array* _google_protobuf_FileDescriptorProto_enum_type_mutable_upb_array(const google_protobuf_FileDescriptorProto* msg, size_t* size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07003900 const upb_MiniTableField field = {5, UPB_SIZE(12, 56), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07003901 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
3902 (upb_Message*)msg, &field, arena);
3903 if (size) {
3904 *size = arr ? arr->size : 0;
3905 }
3906 return arr;
3907}
Mike Kruskal3bc50492022-12-01 13:34:12 -08003908UPB_INLINE bool google_protobuf_FileDescriptorProto_has_enum_type(const google_protobuf_FileDescriptorProto* msg) {
3909 size_t size;
3910 google_protobuf_FileDescriptorProto_enum_type(msg, &size);
3911 return size != 0;
Joshua Habermand3995ec2022-09-30 16:54:39 -07003912}
Mike Kruskal3bc50492022-12-01 13:34:12 -08003913UPB_INLINE void google_protobuf_FileDescriptorProto_clear_service(google_protobuf_FileDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07003914 const upb_MiniTableField field = {6, UPB_SIZE(16, 64), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08003915 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07003916}
Eric Salob7d54ac2022-12-29 11:59:42 -08003917UPB_INLINE const google_protobuf_ServiceDescriptorProto* const* google_protobuf_FileDescriptorProto_service(const google_protobuf_FileDescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07003918 const upb_MiniTableField field = {6, UPB_SIZE(16, 64), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08003919 const upb_Array* arr = upb_Message_GetArray(msg, &field);
3920 if (arr) {
3921 if (size) *size = arr->size;
3922 return (const google_protobuf_ServiceDescriptorProto* const*)_upb_array_constptr(arr);
3923 } else {
3924 if (size) *size = 0;
3925 return NULL;
3926 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07003927}
Deanna Garciab26afb52023-04-25 13:37:18 -07003928UPB_INLINE const upb_Array* _google_protobuf_FileDescriptorProto_service_upb_array(const google_protobuf_FileDescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07003929 const upb_MiniTableField field = {6, UPB_SIZE(16, 64), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07003930 const upb_Array* arr = upb_Message_GetArray(msg, &field);
3931 if (size) {
3932 *size = arr ? arr->size : 0;
3933 }
3934 return arr;
3935}
3936UPB_INLINE upb_Array* _google_protobuf_FileDescriptorProto_service_mutable_upb_array(const google_protobuf_FileDescriptorProto* msg, size_t* size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07003937 const upb_MiniTableField field = {6, UPB_SIZE(16, 64), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07003938 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
3939 (upb_Message*)msg, &field, arena);
3940 if (size) {
3941 *size = arr ? arr->size : 0;
3942 }
3943 return arr;
3944}
Mike Kruskal3bc50492022-12-01 13:34:12 -08003945UPB_INLINE bool google_protobuf_FileDescriptorProto_has_service(const google_protobuf_FileDescriptorProto* msg) {
3946 size_t size;
3947 google_protobuf_FileDescriptorProto_service(msg, &size);
3948 return size != 0;
Joshua Habermand3995ec2022-09-30 16:54:39 -07003949}
Mike Kruskal3bc50492022-12-01 13:34:12 -08003950UPB_INLINE void google_protobuf_FileDescriptorProto_clear_extension(google_protobuf_FileDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07003951 const upb_MiniTableField field = {7, UPB_SIZE(20, 72), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08003952 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07003953}
Eric Salob7d54ac2022-12-29 11:59:42 -08003954UPB_INLINE const google_protobuf_FieldDescriptorProto* const* google_protobuf_FileDescriptorProto_extension(const google_protobuf_FileDescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07003955 const upb_MiniTableField field = {7, UPB_SIZE(20, 72), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08003956 const upb_Array* arr = upb_Message_GetArray(msg, &field);
3957 if (arr) {
3958 if (size) *size = arr->size;
3959 return (const google_protobuf_FieldDescriptorProto* const*)_upb_array_constptr(arr);
3960 } else {
3961 if (size) *size = 0;
3962 return NULL;
3963 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07003964}
Deanna Garciab26afb52023-04-25 13:37:18 -07003965UPB_INLINE const upb_Array* _google_protobuf_FileDescriptorProto_extension_upb_array(const google_protobuf_FileDescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07003966 const upb_MiniTableField field = {7, UPB_SIZE(20, 72), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07003967 const upb_Array* arr = upb_Message_GetArray(msg, &field);
3968 if (size) {
3969 *size = arr ? arr->size : 0;
3970 }
3971 return arr;
3972}
3973UPB_INLINE upb_Array* _google_protobuf_FileDescriptorProto_extension_mutable_upb_array(const google_protobuf_FileDescriptorProto* msg, size_t* size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07003974 const upb_MiniTableField field = {7, UPB_SIZE(20, 72), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07003975 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
3976 (upb_Message*)msg, &field, arena);
3977 if (size) {
3978 *size = arr ? arr->size : 0;
3979 }
3980 return arr;
3981}
Mike Kruskal3bc50492022-12-01 13:34:12 -08003982UPB_INLINE bool google_protobuf_FileDescriptorProto_has_extension(const google_protobuf_FileDescriptorProto* msg) {
3983 size_t size;
3984 google_protobuf_FileDescriptorProto_extension(msg, &size);
3985 return size != 0;
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07003986}
Mike Kruskal3bc50492022-12-01 13:34:12 -08003987UPB_INLINE void google_protobuf_FileDescriptorProto_clear_options(google_protobuf_FileDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07003988 const upb_MiniTableField field = {8, UPB_SIZE(24, 80), 3, 4, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08003989 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07003990}
Joshua Habermanf41049a2022-01-21 14:41:25 -08003991UPB_INLINE const google_protobuf_FileOptions* google_protobuf_FileDescriptorProto_options(const google_protobuf_FileDescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08003992 const google_protobuf_FileOptions* default_val = NULL;
3993 const google_protobuf_FileOptions* ret;
Jie Luo3560e232023-06-12 00:33:50 -07003994 const upb_MiniTableField field = {8, UPB_SIZE(24, 80), 3, 4, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08003995 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08003996 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08003997}
Mike Kruskal3bc50492022-12-01 13:34:12 -08003998UPB_INLINE bool google_protobuf_FileDescriptorProto_has_options(const google_protobuf_FileDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07003999 const upb_MiniTableField field = {8, UPB_SIZE(24, 80), 3, 4, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004000 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004001}
Mike Kruskal3bc50492022-12-01 13:34:12 -08004002UPB_INLINE void google_protobuf_FileDescriptorProto_clear_source_code_info(google_protobuf_FileDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07004003 const upb_MiniTableField field = {9, UPB_SIZE(28, 88), 4, 5, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004004 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07004005}
Joshua Habermanf41049a2022-01-21 14:41:25 -08004006UPB_INLINE const google_protobuf_SourceCodeInfo* google_protobuf_FileDescriptorProto_source_code_info(const google_protobuf_FileDescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08004007 const google_protobuf_SourceCodeInfo* default_val = NULL;
4008 const google_protobuf_SourceCodeInfo* ret;
Jie Luo3560e232023-06-12 00:33:50 -07004009 const upb_MiniTableField field = {9, UPB_SIZE(28, 88), 4, 5, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004010 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08004011 return ret;
Joshua Habermand3995ec2022-09-30 16:54:39 -07004012}
Mike Kruskal3bc50492022-12-01 13:34:12 -08004013UPB_INLINE bool google_protobuf_FileDescriptorProto_has_source_code_info(const google_protobuf_FileDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07004014 const upb_MiniTableField field = {9, UPB_SIZE(28, 88), 4, 5, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004015 return _upb_Message_HasNonExtensionField(msg, &field);
Mike Kruskal3bc50492022-12-01 13:34:12 -08004016}
4017UPB_INLINE void google_protobuf_FileDescriptorProto_clear_public_dependency(google_protobuf_FileDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07004018 const upb_MiniTableField field = {10, UPB_SIZE(32, 96), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004019 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermanf41049a2022-01-21 14:41:25 -08004020}
Eric Salob7d54ac2022-12-29 11:59:42 -08004021UPB_INLINE int32_t const* google_protobuf_FileDescriptorProto_public_dependency(const google_protobuf_FileDescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004022 const upb_MiniTableField field = {10, UPB_SIZE(32, 96), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004023 const upb_Array* arr = upb_Message_GetArray(msg, &field);
4024 if (arr) {
4025 if (size) *size = arr->size;
4026 return (int32_t const*)_upb_array_constptr(arr);
4027 } else {
4028 if (size) *size = 0;
4029 return NULL;
4030 }
Joshua Habermand3995ec2022-09-30 16:54:39 -07004031}
Deanna Garciab26afb52023-04-25 13:37:18 -07004032UPB_INLINE const upb_Array* _google_protobuf_FileDescriptorProto_public_dependency_upb_array(const google_protobuf_FileDescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004033 const upb_MiniTableField field = {10, UPB_SIZE(32, 96), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07004034 const upb_Array* arr = upb_Message_GetArray(msg, &field);
4035 if (size) {
4036 *size = arr ? arr->size : 0;
4037 }
4038 return arr;
4039}
4040UPB_INLINE upb_Array* _google_protobuf_FileDescriptorProto_public_dependency_mutable_upb_array(const google_protobuf_FileDescriptorProto* msg, size_t* size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004041 const upb_MiniTableField field = {10, UPB_SIZE(32, 96), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07004042 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
4043 (upb_Message*)msg, &field, arena);
4044 if (size) {
4045 *size = arr ? arr->size : 0;
4046 }
4047 return arr;
4048}
Mike Kruskal3bc50492022-12-01 13:34:12 -08004049UPB_INLINE bool google_protobuf_FileDescriptorProto_has_public_dependency(const google_protobuf_FileDescriptorProto* msg) {
4050 size_t size;
4051 google_protobuf_FileDescriptorProto_public_dependency(msg, &size);
4052 return size != 0;
4053}
4054UPB_INLINE void google_protobuf_FileDescriptorProto_clear_weak_dependency(google_protobuf_FileDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07004055 const upb_MiniTableField field = {11, UPB_SIZE(36, 104), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004056 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004057}
Eric Salob7d54ac2022-12-29 11:59:42 -08004058UPB_INLINE int32_t const* google_protobuf_FileDescriptorProto_weak_dependency(const google_protobuf_FileDescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004059 const upb_MiniTableField field = {11, UPB_SIZE(36, 104), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004060 const upb_Array* arr = upb_Message_GetArray(msg, &field);
4061 if (arr) {
4062 if (size) *size = arr->size;
4063 return (int32_t const*)_upb_array_constptr(arr);
4064 } else {
4065 if (size) *size = 0;
4066 return NULL;
4067 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004068}
Deanna Garciab26afb52023-04-25 13:37:18 -07004069UPB_INLINE const upb_Array* _google_protobuf_FileDescriptorProto_weak_dependency_upb_array(const google_protobuf_FileDescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004070 const upb_MiniTableField field = {11, UPB_SIZE(36, 104), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07004071 const upb_Array* arr = upb_Message_GetArray(msg, &field);
4072 if (size) {
4073 *size = arr ? arr->size : 0;
4074 }
4075 return arr;
4076}
4077UPB_INLINE upb_Array* _google_protobuf_FileDescriptorProto_weak_dependency_mutable_upb_array(const google_protobuf_FileDescriptorProto* msg, size_t* size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004078 const upb_MiniTableField field = {11, UPB_SIZE(36, 104), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07004079 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
4080 (upb_Message*)msg, &field, arena);
4081 if (size) {
4082 *size = arr ? arr->size : 0;
4083 }
4084 return arr;
4085}
Mike Kruskal3bc50492022-12-01 13:34:12 -08004086UPB_INLINE bool google_protobuf_FileDescriptorProto_has_weak_dependency(const google_protobuf_FileDescriptorProto* msg) {
4087 size_t size;
4088 google_protobuf_FileDescriptorProto_weak_dependency(msg, &size);
4089 return size != 0;
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004090}
Mike Kruskal3bc50492022-12-01 13:34:12 -08004091UPB_INLINE void google_protobuf_FileDescriptorProto_clear_syntax(google_protobuf_FileDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07004092 const upb_MiniTableField field = {12, UPB_SIZE(56, 112), 5, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004093 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07004094}
Joshua Habermanf41049a2022-01-21 14:41:25 -08004095UPB_INLINE upb_StringView google_protobuf_FileDescriptorProto_syntax(const google_protobuf_FileDescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08004096 upb_StringView default_val = upb_StringView_FromString("");
4097 upb_StringView ret;
Jie Luo3560e232023-06-12 00:33:50 -07004098 const upb_MiniTableField field = {12, UPB_SIZE(56, 112), 5, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004099 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08004100 return ret;
Joshua Habermand3995ec2022-09-30 16:54:39 -07004101}
Mike Kruskal3bc50492022-12-01 13:34:12 -08004102UPB_INLINE bool google_protobuf_FileDescriptorProto_has_syntax(const google_protobuf_FileDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07004103 const upb_MiniTableField field = {12, UPB_SIZE(56, 112), 5, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004104 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07004105}
Mike Kruskal3bc50492022-12-01 13:34:12 -08004106UPB_INLINE void google_protobuf_FileDescriptorProto_clear_edition(google_protobuf_FileDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07004107 const upb_MiniTableField field = {13, UPB_SIZE(64, 128), 6, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004108 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07004109}
4110UPB_INLINE upb_StringView google_protobuf_FileDescriptorProto_edition(const google_protobuf_FileDescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08004111 upb_StringView default_val = upb_StringView_FromString("");
4112 upb_StringView ret;
Jie Luo3560e232023-06-12 00:33:50 -07004113 const upb_MiniTableField field = {13, UPB_SIZE(64, 128), 6, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004114 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08004115 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08004116}
Mike Kruskal3bc50492022-12-01 13:34:12 -08004117UPB_INLINE bool google_protobuf_FileDescriptorProto_has_edition(const google_protobuf_FileDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07004118 const upb_MiniTableField field = {13, UPB_SIZE(64, 128), 6, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004119 return _upb_Message_HasNonExtensionField(msg, &field);
Mike Kruskal3bc50492022-12-01 13:34:12 -08004120}
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004121
Joshua Habermanf41049a2022-01-21 14:41:25 -08004122UPB_INLINE void google_protobuf_FileDescriptorProto_set_name(google_protobuf_FileDescriptorProto *msg, upb_StringView value) {
Jie Luo3560e232023-06-12 00:33:50 -07004123 const upb_MiniTableField field = {1, UPB_SIZE(40, 8), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004124 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08004125}
4126UPB_INLINE void google_protobuf_FileDescriptorProto_set_package(google_protobuf_FileDescriptorProto *msg, upb_StringView value) {
Jie Luo3560e232023-06-12 00:33:50 -07004127 const upb_MiniTableField field = {2, UPB_SIZE(48, 24), 2, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004128 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08004129}
4130UPB_INLINE upb_StringView* google_protobuf_FileDescriptorProto_mutable_dependency(google_protobuf_FileDescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004131 upb_MiniTableField field = {3, UPB_SIZE(4, 40), 0, kUpb_NoSub, 12, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004132 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
4133 if (arr) {
4134 if (size) *size = arr->size;
4135 return (upb_StringView*)_upb_array_ptr(arr);
4136 } else {
4137 if (size) *size = 0;
4138 return NULL;
4139 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004140}
Eric Salob7d54ac2022-12-29 11:59:42 -08004141UPB_INLINE upb_StringView* google_protobuf_FileDescriptorProto_resize_dependency(google_protobuf_FileDescriptorProto* msg, size_t size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004142 upb_MiniTableField field = {3, UPB_SIZE(4, 40), 0, kUpb_NoSub, 12, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07004143 return (upb_StringView*)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004144}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004145UPB_INLINE bool google_protobuf_FileDescriptorProto_add_dependency(google_protobuf_FileDescriptorProto* msg, upb_StringView val, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004146 upb_MiniTableField field = {3, UPB_SIZE(4, 40), 0, kUpb_NoSub, 12, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004147 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
4148 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
4149 return false;
4150 }
4151 _upb_Array_Set(arr, arr->size - 1, &val, sizeof(val));
4152 return true;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004153}
Eric Salob7d54ac2022-12-29 11:59:42 -08004154UPB_INLINE google_protobuf_DescriptorProto** google_protobuf_FileDescriptorProto_mutable_message_type(google_protobuf_FileDescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004155 upb_MiniTableField field = {4, UPB_SIZE(8, 48), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004156 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
4157 if (arr) {
4158 if (size) *size = arr->size;
4159 return (google_protobuf_DescriptorProto**)_upb_array_ptr(arr);
4160 } else {
4161 if (size) *size = 0;
4162 return NULL;
4163 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004164}
Eric Salob7d54ac2022-12-29 11:59:42 -08004165UPB_INLINE google_protobuf_DescriptorProto** google_protobuf_FileDescriptorProto_resize_message_type(google_protobuf_FileDescriptorProto* msg, size_t size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004166 upb_MiniTableField field = {4, UPB_SIZE(8, 48), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07004167 return (google_protobuf_DescriptorProto**)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004168}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004169UPB_INLINE struct google_protobuf_DescriptorProto* google_protobuf_FileDescriptorProto_add_message_type(google_protobuf_FileDescriptorProto* msg, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004170 upb_MiniTableField field = {4, UPB_SIZE(8, 48), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004171 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
4172 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
4173 return NULL;
4174 }
Joshua Habermand3995ec2022-09-30 16:54:39 -07004175 struct google_protobuf_DescriptorProto* sub = (struct google_protobuf_DescriptorProto*)_upb_Message_New(&google_protobuf_DescriptorProto_msg_init, arena);
Eric Salob7d54ac2022-12-29 11:59:42 -08004176 if (!arr || !sub) return NULL;
4177 _upb_Array_Set(arr, arr->size - 1, &sub, sizeof(sub));
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004178 return sub;
4179}
Eric Salob7d54ac2022-12-29 11:59:42 -08004180UPB_INLINE google_protobuf_EnumDescriptorProto** google_protobuf_FileDescriptorProto_mutable_enum_type(google_protobuf_FileDescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004181 upb_MiniTableField field = {5, UPB_SIZE(12, 56), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004182 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
4183 if (arr) {
4184 if (size) *size = arr->size;
4185 return (google_protobuf_EnumDescriptorProto**)_upb_array_ptr(arr);
4186 } else {
4187 if (size) *size = 0;
4188 return NULL;
4189 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004190}
Eric Salob7d54ac2022-12-29 11:59:42 -08004191UPB_INLINE google_protobuf_EnumDescriptorProto** google_protobuf_FileDescriptorProto_resize_enum_type(google_protobuf_FileDescriptorProto* msg, size_t size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004192 upb_MiniTableField field = {5, UPB_SIZE(12, 56), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07004193 return (google_protobuf_EnumDescriptorProto**)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004194}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004195UPB_INLINE struct google_protobuf_EnumDescriptorProto* google_protobuf_FileDescriptorProto_add_enum_type(google_protobuf_FileDescriptorProto* msg, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004196 upb_MiniTableField field = {5, UPB_SIZE(12, 56), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004197 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
4198 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
4199 return NULL;
4200 }
Joshua Habermand3995ec2022-09-30 16:54:39 -07004201 struct google_protobuf_EnumDescriptorProto* sub = (struct google_protobuf_EnumDescriptorProto*)_upb_Message_New(&google_protobuf_EnumDescriptorProto_msg_init, arena);
Eric Salob7d54ac2022-12-29 11:59:42 -08004202 if (!arr || !sub) return NULL;
4203 _upb_Array_Set(arr, arr->size - 1, &sub, sizeof(sub));
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004204 return sub;
4205}
Eric Salob7d54ac2022-12-29 11:59:42 -08004206UPB_INLINE google_protobuf_ServiceDescriptorProto** google_protobuf_FileDescriptorProto_mutable_service(google_protobuf_FileDescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004207 upb_MiniTableField field = {6, UPB_SIZE(16, 64), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004208 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
4209 if (arr) {
4210 if (size) *size = arr->size;
4211 return (google_protobuf_ServiceDescriptorProto**)_upb_array_ptr(arr);
4212 } else {
4213 if (size) *size = 0;
4214 return NULL;
4215 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004216}
Eric Salob7d54ac2022-12-29 11:59:42 -08004217UPB_INLINE google_protobuf_ServiceDescriptorProto** google_protobuf_FileDescriptorProto_resize_service(google_protobuf_FileDescriptorProto* msg, size_t size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004218 upb_MiniTableField field = {6, UPB_SIZE(16, 64), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07004219 return (google_protobuf_ServiceDescriptorProto**)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004220}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004221UPB_INLINE struct google_protobuf_ServiceDescriptorProto* google_protobuf_FileDescriptorProto_add_service(google_protobuf_FileDescriptorProto* msg, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004222 upb_MiniTableField field = {6, UPB_SIZE(16, 64), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004223 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
4224 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
4225 return NULL;
4226 }
Joshua Habermand3995ec2022-09-30 16:54:39 -07004227 struct google_protobuf_ServiceDescriptorProto* sub = (struct google_protobuf_ServiceDescriptorProto*)_upb_Message_New(&google_protobuf_ServiceDescriptorProto_msg_init, arena);
Eric Salob7d54ac2022-12-29 11:59:42 -08004228 if (!arr || !sub) return NULL;
4229 _upb_Array_Set(arr, arr->size - 1, &sub, sizeof(sub));
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004230 return sub;
4231}
Eric Salob7d54ac2022-12-29 11:59:42 -08004232UPB_INLINE google_protobuf_FieldDescriptorProto** google_protobuf_FileDescriptorProto_mutable_extension(google_protobuf_FileDescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004233 upb_MiniTableField field = {7, UPB_SIZE(20, 72), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004234 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
4235 if (arr) {
4236 if (size) *size = arr->size;
4237 return (google_protobuf_FieldDescriptorProto**)_upb_array_ptr(arr);
4238 } else {
4239 if (size) *size = 0;
4240 return NULL;
4241 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004242}
Eric Salob7d54ac2022-12-29 11:59:42 -08004243UPB_INLINE google_protobuf_FieldDescriptorProto** google_protobuf_FileDescriptorProto_resize_extension(google_protobuf_FileDescriptorProto* msg, size_t size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004244 upb_MiniTableField field = {7, UPB_SIZE(20, 72), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07004245 return (google_protobuf_FieldDescriptorProto**)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004246}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004247UPB_INLINE struct google_protobuf_FieldDescriptorProto* google_protobuf_FileDescriptorProto_add_extension(google_protobuf_FileDescriptorProto* msg, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004248 upb_MiniTableField field = {7, UPB_SIZE(20, 72), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004249 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
4250 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
4251 return NULL;
4252 }
Joshua Habermand3995ec2022-09-30 16:54:39 -07004253 struct google_protobuf_FieldDescriptorProto* sub = (struct google_protobuf_FieldDescriptorProto*)_upb_Message_New(&google_protobuf_FieldDescriptorProto_msg_init, arena);
Eric Salob7d54ac2022-12-29 11:59:42 -08004254 if (!arr || !sub) return NULL;
4255 _upb_Array_Set(arr, arr->size - 1, &sub, sizeof(sub));
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004256 return sub;
4257}
4258UPB_INLINE void google_protobuf_FileDescriptorProto_set_options(google_protobuf_FileDescriptorProto *msg, google_protobuf_FileOptions* value) {
Jie Luo3560e232023-06-12 00:33:50 -07004259 const upb_MiniTableField field = {8, UPB_SIZE(24, 80), 3, 4, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004260 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08004261}
4262UPB_INLINE struct google_protobuf_FileOptions* google_protobuf_FileDescriptorProto_mutable_options(google_protobuf_FileDescriptorProto* msg, upb_Arena* arena) {
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004263 struct google_protobuf_FileOptions* sub = (struct google_protobuf_FileOptions*)google_protobuf_FileDescriptorProto_options(msg);
4264 if (sub == NULL) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07004265 sub = (struct google_protobuf_FileOptions*)_upb_Message_New(&google_protobuf_FileOptions_msg_init, arena);
Eric Salo8809a112022-11-21 13:01:06 -08004266 if (sub) google_protobuf_FileDescriptorProto_set_options(msg, sub);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004267 }
4268 return sub;
4269}
4270UPB_INLINE void google_protobuf_FileDescriptorProto_set_source_code_info(google_protobuf_FileDescriptorProto *msg, google_protobuf_SourceCodeInfo* value) {
Jie Luo3560e232023-06-12 00:33:50 -07004271 const upb_MiniTableField field = {9, UPB_SIZE(28, 88), 4, 5, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004272 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08004273}
4274UPB_INLINE struct google_protobuf_SourceCodeInfo* google_protobuf_FileDescriptorProto_mutable_source_code_info(google_protobuf_FileDescriptorProto* msg, upb_Arena* arena) {
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004275 struct google_protobuf_SourceCodeInfo* sub = (struct google_protobuf_SourceCodeInfo*)google_protobuf_FileDescriptorProto_source_code_info(msg);
4276 if (sub == NULL) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07004277 sub = (struct google_protobuf_SourceCodeInfo*)_upb_Message_New(&google_protobuf_SourceCodeInfo_msg_init, arena);
Eric Salo8809a112022-11-21 13:01:06 -08004278 if (sub) google_protobuf_FileDescriptorProto_set_source_code_info(msg, sub);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004279 }
4280 return sub;
4281}
Eric Salob7d54ac2022-12-29 11:59:42 -08004282UPB_INLINE int32_t* google_protobuf_FileDescriptorProto_mutable_public_dependency(google_protobuf_FileDescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004283 upb_MiniTableField field = {10, UPB_SIZE(32, 96), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004284 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
4285 if (arr) {
4286 if (size) *size = arr->size;
4287 return (int32_t*)_upb_array_ptr(arr);
4288 } else {
4289 if (size) *size = 0;
4290 return NULL;
4291 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004292}
Eric Salob7d54ac2022-12-29 11:59:42 -08004293UPB_INLINE int32_t* google_protobuf_FileDescriptorProto_resize_public_dependency(google_protobuf_FileDescriptorProto* msg, size_t size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004294 upb_MiniTableField field = {10, UPB_SIZE(32, 96), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07004295 return (int32_t*)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004296}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004297UPB_INLINE bool google_protobuf_FileDescriptorProto_add_public_dependency(google_protobuf_FileDescriptorProto* msg, int32_t val, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004298 upb_MiniTableField field = {10, UPB_SIZE(32, 96), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004299 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
4300 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
4301 return false;
4302 }
4303 _upb_Array_Set(arr, arr->size - 1, &val, sizeof(val));
4304 return true;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004305}
Eric Salob7d54ac2022-12-29 11:59:42 -08004306UPB_INLINE int32_t* google_protobuf_FileDescriptorProto_mutable_weak_dependency(google_protobuf_FileDescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004307 upb_MiniTableField field = {11, UPB_SIZE(36, 104), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004308 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
4309 if (arr) {
4310 if (size) *size = arr->size;
4311 return (int32_t*)_upb_array_ptr(arr);
4312 } else {
4313 if (size) *size = 0;
4314 return NULL;
4315 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004316}
Eric Salob7d54ac2022-12-29 11:59:42 -08004317UPB_INLINE int32_t* google_protobuf_FileDescriptorProto_resize_weak_dependency(google_protobuf_FileDescriptorProto* msg, size_t size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004318 upb_MiniTableField field = {11, UPB_SIZE(36, 104), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07004319 return (int32_t*)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004320}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004321UPB_INLINE bool google_protobuf_FileDescriptorProto_add_weak_dependency(google_protobuf_FileDescriptorProto* msg, int32_t val, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004322 upb_MiniTableField field = {11, UPB_SIZE(36, 104), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004323 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
4324 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
4325 return false;
4326 }
4327 _upb_Array_Set(arr, arr->size - 1, &val, sizeof(val));
4328 return true;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004329}
Joshua Habermanf41049a2022-01-21 14:41:25 -08004330UPB_INLINE void google_protobuf_FileDescriptorProto_set_syntax(google_protobuf_FileDescriptorProto *msg, upb_StringView value) {
Jie Luo3560e232023-06-12 00:33:50 -07004331 const upb_MiniTableField field = {12, UPB_SIZE(56, 112), 5, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004332 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08004333}
4334UPB_INLINE void google_protobuf_FileDescriptorProto_set_edition(google_protobuf_FileDescriptorProto *msg, upb_StringView value) {
Jie Luo3560e232023-06-12 00:33:50 -07004335 const upb_MiniTableField field = {13, UPB_SIZE(64, 128), 6, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004336 _upb_Message_SetNonExtensionField(msg, &field, &value);
Joshua Habermand3995ec2022-09-30 16:54:39 -07004337}
Mike Kruskal232ecf42023-01-14 00:09:40 -08004338
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004339/* google.protobuf.DescriptorProto */
4340
Joshua Habermanf41049a2022-01-21 14:41:25 -08004341UPB_INLINE google_protobuf_DescriptorProto* google_protobuf_DescriptorProto_new(upb_Arena* arena) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07004342 return (google_protobuf_DescriptorProto*)_upb_Message_New(&google_protobuf_DescriptorProto_msg_init, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004343}
Joshua Habermanf41049a2022-01-21 14:41:25 -08004344UPB_INLINE google_protobuf_DescriptorProto* google_protobuf_DescriptorProto_parse(const char* buf, size_t size, upb_Arena* arena) {
4345 google_protobuf_DescriptorProto* ret = google_protobuf_DescriptorProto_new(arena);
Joshua Haberman9d578a32021-08-02 15:32:01 -07004346 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07004347 if (upb_Decode(buf, size, ret, &google_protobuf_DescriptorProto_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
Joshua Haberman9d578a32021-08-02 15:32:01 -07004348 return NULL;
4349 }
4350 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004351}
Joshua Habermanf41049a2022-01-21 14:41:25 -08004352UPB_INLINE google_protobuf_DescriptorProto* google_protobuf_DescriptorProto_parse_ex(const char* buf, size_t size,
4353 const upb_ExtensionRegistry* extreg,
4354 int options, upb_Arena* arena) {
4355 google_protobuf_DescriptorProto* ret = google_protobuf_DescriptorProto_new(arena);
4356 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07004357 if (upb_Decode(buf, size, ret, &google_protobuf_DescriptorProto_msg_init, extreg, options, arena) !=
Joshua Habermanf41049a2022-01-21 14:41:25 -08004358 kUpb_DecodeStatus_Ok) {
4359 return NULL;
4360 }
4361 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004362}
Joshua Habermanf41049a2022-01-21 14:41:25 -08004363UPB_INLINE char* google_protobuf_DescriptorProto_serialize(const google_protobuf_DescriptorProto* msg, upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07004364 char* ptr;
4365 (void)upb_Encode(msg, &google_protobuf_DescriptorProto_msg_init, 0, arena, &ptr, len);
4366 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08004367}
4368UPB_INLINE char* google_protobuf_DescriptorProto_serialize_ex(const google_protobuf_DescriptorProto* msg, int options,
4369 upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07004370 char* ptr;
4371 (void)upb_Encode(msg, &google_protobuf_DescriptorProto_msg_init, options, arena, &ptr, len);
4372 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08004373}
Mike Kruskal3bc50492022-12-01 13:34:12 -08004374UPB_INLINE void google_protobuf_DescriptorProto_clear_name(google_protobuf_DescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07004375 const upb_MiniTableField field = {1, UPB_SIZE(40, 8), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004376 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07004377}
Joshua Habermanf41049a2022-01-21 14:41:25 -08004378UPB_INLINE upb_StringView google_protobuf_DescriptorProto_name(const google_protobuf_DescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08004379 upb_StringView default_val = upb_StringView_FromString("");
4380 upb_StringView ret;
Jie Luo3560e232023-06-12 00:33:50 -07004381 const upb_MiniTableField field = {1, UPB_SIZE(40, 8), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004382 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08004383 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08004384}
Mike Kruskal3bc50492022-12-01 13:34:12 -08004385UPB_INLINE bool google_protobuf_DescriptorProto_has_name(const google_protobuf_DescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07004386 const upb_MiniTableField field = {1, UPB_SIZE(40, 8), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004387 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07004388}
Mike Kruskal3bc50492022-12-01 13:34:12 -08004389UPB_INLINE void google_protobuf_DescriptorProto_clear_field(google_protobuf_DescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07004390 const upb_MiniTableField field = {2, UPB_SIZE(4, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004391 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004392}
Eric Salob7d54ac2022-12-29 11:59:42 -08004393UPB_INLINE const google_protobuf_FieldDescriptorProto* const* google_protobuf_DescriptorProto_field(const google_protobuf_DescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004394 const upb_MiniTableField field = {2, UPB_SIZE(4, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004395 const upb_Array* arr = upb_Message_GetArray(msg, &field);
4396 if (arr) {
4397 if (size) *size = arr->size;
4398 return (const google_protobuf_FieldDescriptorProto* const*)_upb_array_constptr(arr);
4399 } else {
4400 if (size) *size = 0;
4401 return NULL;
4402 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004403}
Deanna Garciab26afb52023-04-25 13:37:18 -07004404UPB_INLINE const upb_Array* _google_protobuf_DescriptorProto_field_upb_array(const google_protobuf_DescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004405 const upb_MiniTableField field = {2, UPB_SIZE(4, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07004406 const upb_Array* arr = upb_Message_GetArray(msg, &field);
4407 if (size) {
4408 *size = arr ? arr->size : 0;
4409 }
4410 return arr;
4411}
4412UPB_INLINE upb_Array* _google_protobuf_DescriptorProto_field_mutable_upb_array(const google_protobuf_DescriptorProto* msg, size_t* size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004413 const upb_MiniTableField field = {2, UPB_SIZE(4, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07004414 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
4415 (upb_Message*)msg, &field, arena);
4416 if (size) {
4417 *size = arr ? arr->size : 0;
4418 }
4419 return arr;
4420}
Mike Kruskal3bc50492022-12-01 13:34:12 -08004421UPB_INLINE bool google_protobuf_DescriptorProto_has_field(const google_protobuf_DescriptorProto* msg) {
4422 size_t size;
4423 google_protobuf_DescriptorProto_field(msg, &size);
4424 return size != 0;
Joshua Habermand3995ec2022-09-30 16:54:39 -07004425}
Mike Kruskal3bc50492022-12-01 13:34:12 -08004426UPB_INLINE void google_protobuf_DescriptorProto_clear_nested_type(google_protobuf_DescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07004427 const upb_MiniTableField field = {3, UPB_SIZE(8, 32), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004428 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004429}
Eric Salob7d54ac2022-12-29 11:59:42 -08004430UPB_INLINE const google_protobuf_DescriptorProto* const* google_protobuf_DescriptorProto_nested_type(const google_protobuf_DescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004431 const upb_MiniTableField field = {3, UPB_SIZE(8, 32), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004432 const upb_Array* arr = upb_Message_GetArray(msg, &field);
4433 if (arr) {
4434 if (size) *size = arr->size;
4435 return (const google_protobuf_DescriptorProto* const*)_upb_array_constptr(arr);
4436 } else {
4437 if (size) *size = 0;
4438 return NULL;
4439 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004440}
Deanna Garciab26afb52023-04-25 13:37:18 -07004441UPB_INLINE const upb_Array* _google_protobuf_DescriptorProto_nested_type_upb_array(const google_protobuf_DescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004442 const upb_MiniTableField field = {3, UPB_SIZE(8, 32), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07004443 const upb_Array* arr = upb_Message_GetArray(msg, &field);
4444 if (size) {
4445 *size = arr ? arr->size : 0;
4446 }
4447 return arr;
4448}
4449UPB_INLINE upb_Array* _google_protobuf_DescriptorProto_nested_type_mutable_upb_array(const google_protobuf_DescriptorProto* msg, size_t* size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004450 const upb_MiniTableField field = {3, UPB_SIZE(8, 32), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07004451 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
4452 (upb_Message*)msg, &field, arena);
4453 if (size) {
4454 *size = arr ? arr->size : 0;
4455 }
4456 return arr;
4457}
Mike Kruskal3bc50492022-12-01 13:34:12 -08004458UPB_INLINE bool google_protobuf_DescriptorProto_has_nested_type(const google_protobuf_DescriptorProto* msg) {
4459 size_t size;
4460 google_protobuf_DescriptorProto_nested_type(msg, &size);
4461 return size != 0;
Joshua Habermand3995ec2022-09-30 16:54:39 -07004462}
Mike Kruskal3bc50492022-12-01 13:34:12 -08004463UPB_INLINE void google_protobuf_DescriptorProto_clear_enum_type(google_protobuf_DescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07004464 const upb_MiniTableField field = {4, UPB_SIZE(12, 40), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004465 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004466}
Eric Salob7d54ac2022-12-29 11:59:42 -08004467UPB_INLINE const google_protobuf_EnumDescriptorProto* const* google_protobuf_DescriptorProto_enum_type(const google_protobuf_DescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004468 const upb_MiniTableField field = {4, UPB_SIZE(12, 40), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004469 const upb_Array* arr = upb_Message_GetArray(msg, &field);
4470 if (arr) {
4471 if (size) *size = arr->size;
4472 return (const google_protobuf_EnumDescriptorProto* const*)_upb_array_constptr(arr);
4473 } else {
4474 if (size) *size = 0;
4475 return NULL;
4476 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004477}
Deanna Garciab26afb52023-04-25 13:37:18 -07004478UPB_INLINE const upb_Array* _google_protobuf_DescriptorProto_enum_type_upb_array(const google_protobuf_DescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004479 const upb_MiniTableField field = {4, UPB_SIZE(12, 40), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07004480 const upb_Array* arr = upb_Message_GetArray(msg, &field);
4481 if (size) {
4482 *size = arr ? arr->size : 0;
4483 }
4484 return arr;
4485}
4486UPB_INLINE upb_Array* _google_protobuf_DescriptorProto_enum_type_mutable_upb_array(const google_protobuf_DescriptorProto* msg, size_t* size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004487 const upb_MiniTableField field = {4, UPB_SIZE(12, 40), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07004488 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
4489 (upb_Message*)msg, &field, arena);
4490 if (size) {
4491 *size = arr ? arr->size : 0;
4492 }
4493 return arr;
4494}
Mike Kruskal3bc50492022-12-01 13:34:12 -08004495UPB_INLINE bool google_protobuf_DescriptorProto_has_enum_type(const google_protobuf_DescriptorProto* msg) {
4496 size_t size;
4497 google_protobuf_DescriptorProto_enum_type(msg, &size);
4498 return size != 0;
Joshua Habermand3995ec2022-09-30 16:54:39 -07004499}
Mike Kruskal3bc50492022-12-01 13:34:12 -08004500UPB_INLINE void google_protobuf_DescriptorProto_clear_extension_range(google_protobuf_DescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07004501 const upb_MiniTableField field = {5, UPB_SIZE(16, 48), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004502 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004503}
Eric Salob7d54ac2022-12-29 11:59:42 -08004504UPB_INLINE const google_protobuf_DescriptorProto_ExtensionRange* const* google_protobuf_DescriptorProto_extension_range(const google_protobuf_DescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004505 const upb_MiniTableField field = {5, UPB_SIZE(16, 48), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004506 const upb_Array* arr = upb_Message_GetArray(msg, &field);
4507 if (arr) {
4508 if (size) *size = arr->size;
4509 return (const google_protobuf_DescriptorProto_ExtensionRange* const*)_upb_array_constptr(arr);
4510 } else {
4511 if (size) *size = 0;
4512 return NULL;
4513 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004514}
Deanna Garciab26afb52023-04-25 13:37:18 -07004515UPB_INLINE const upb_Array* _google_protobuf_DescriptorProto_extension_range_upb_array(const google_protobuf_DescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004516 const upb_MiniTableField field = {5, UPB_SIZE(16, 48), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07004517 const upb_Array* arr = upb_Message_GetArray(msg, &field);
4518 if (size) {
4519 *size = arr ? arr->size : 0;
4520 }
4521 return arr;
4522}
4523UPB_INLINE upb_Array* _google_protobuf_DescriptorProto_extension_range_mutable_upb_array(const google_protobuf_DescriptorProto* msg, size_t* size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004524 const upb_MiniTableField field = {5, UPB_SIZE(16, 48), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07004525 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
4526 (upb_Message*)msg, &field, arena);
4527 if (size) {
4528 *size = arr ? arr->size : 0;
4529 }
4530 return arr;
4531}
Mike Kruskal3bc50492022-12-01 13:34:12 -08004532UPB_INLINE bool google_protobuf_DescriptorProto_has_extension_range(const google_protobuf_DescriptorProto* msg) {
4533 size_t size;
4534 google_protobuf_DescriptorProto_extension_range(msg, &size);
4535 return size != 0;
Joshua Habermand3995ec2022-09-30 16:54:39 -07004536}
Mike Kruskal3bc50492022-12-01 13:34:12 -08004537UPB_INLINE void google_protobuf_DescriptorProto_clear_extension(google_protobuf_DescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07004538 const upb_MiniTableField field = {6, UPB_SIZE(20, 56), 0, 4, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004539 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004540}
Eric Salob7d54ac2022-12-29 11:59:42 -08004541UPB_INLINE const google_protobuf_FieldDescriptorProto* const* google_protobuf_DescriptorProto_extension(const google_protobuf_DescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004542 const upb_MiniTableField field = {6, UPB_SIZE(20, 56), 0, 4, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004543 const upb_Array* arr = upb_Message_GetArray(msg, &field);
4544 if (arr) {
4545 if (size) *size = arr->size;
4546 return (const google_protobuf_FieldDescriptorProto* const*)_upb_array_constptr(arr);
4547 } else {
4548 if (size) *size = 0;
4549 return NULL;
4550 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004551}
Deanna Garciab26afb52023-04-25 13:37:18 -07004552UPB_INLINE const upb_Array* _google_protobuf_DescriptorProto_extension_upb_array(const google_protobuf_DescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004553 const upb_MiniTableField field = {6, UPB_SIZE(20, 56), 0, 4, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07004554 const upb_Array* arr = upb_Message_GetArray(msg, &field);
4555 if (size) {
4556 *size = arr ? arr->size : 0;
4557 }
4558 return arr;
4559}
4560UPB_INLINE upb_Array* _google_protobuf_DescriptorProto_extension_mutable_upb_array(const google_protobuf_DescriptorProto* msg, size_t* size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004561 const upb_MiniTableField field = {6, UPB_SIZE(20, 56), 0, 4, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07004562 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
4563 (upb_Message*)msg, &field, arena);
4564 if (size) {
4565 *size = arr ? arr->size : 0;
4566 }
4567 return arr;
4568}
Mike Kruskal3bc50492022-12-01 13:34:12 -08004569UPB_INLINE bool google_protobuf_DescriptorProto_has_extension(const google_protobuf_DescriptorProto* msg) {
4570 size_t size;
4571 google_protobuf_DescriptorProto_extension(msg, &size);
4572 return size != 0;
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004573}
Mike Kruskal3bc50492022-12-01 13:34:12 -08004574UPB_INLINE void google_protobuf_DescriptorProto_clear_options(google_protobuf_DescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07004575 const upb_MiniTableField field = {7, UPB_SIZE(24, 64), 2, 5, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004576 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07004577}
Joshua Habermanf41049a2022-01-21 14:41:25 -08004578UPB_INLINE const google_protobuf_MessageOptions* google_protobuf_DescriptorProto_options(const google_protobuf_DescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08004579 const google_protobuf_MessageOptions* default_val = NULL;
4580 const google_protobuf_MessageOptions* ret;
Jie Luo3560e232023-06-12 00:33:50 -07004581 const upb_MiniTableField field = {7, UPB_SIZE(24, 64), 2, 5, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004582 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08004583 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08004584}
Mike Kruskal3bc50492022-12-01 13:34:12 -08004585UPB_INLINE bool google_protobuf_DescriptorProto_has_options(const google_protobuf_DescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07004586 const upb_MiniTableField field = {7, UPB_SIZE(24, 64), 2, 5, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004587 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004588}
Mike Kruskal3bc50492022-12-01 13:34:12 -08004589UPB_INLINE void google_protobuf_DescriptorProto_clear_oneof_decl(google_protobuf_DescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07004590 const upb_MiniTableField field = {8, UPB_SIZE(28, 72), 0, 6, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004591 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07004592}
Eric Salob7d54ac2022-12-29 11:59:42 -08004593UPB_INLINE const google_protobuf_OneofDescriptorProto* const* google_protobuf_DescriptorProto_oneof_decl(const google_protobuf_DescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004594 const upb_MiniTableField field = {8, UPB_SIZE(28, 72), 0, 6, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004595 const upb_Array* arr = upb_Message_GetArray(msg, &field);
4596 if (arr) {
4597 if (size) *size = arr->size;
4598 return (const google_protobuf_OneofDescriptorProto* const*)_upb_array_constptr(arr);
4599 } else {
4600 if (size) *size = 0;
4601 return NULL;
4602 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004603}
Deanna Garciab26afb52023-04-25 13:37:18 -07004604UPB_INLINE const upb_Array* _google_protobuf_DescriptorProto_oneof_decl_upb_array(const google_protobuf_DescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004605 const upb_MiniTableField field = {8, UPB_SIZE(28, 72), 0, 6, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07004606 const upb_Array* arr = upb_Message_GetArray(msg, &field);
4607 if (size) {
4608 *size = arr ? arr->size : 0;
4609 }
4610 return arr;
4611}
4612UPB_INLINE upb_Array* _google_protobuf_DescriptorProto_oneof_decl_mutable_upb_array(const google_protobuf_DescriptorProto* msg, size_t* size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004613 const upb_MiniTableField field = {8, UPB_SIZE(28, 72), 0, 6, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07004614 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
4615 (upb_Message*)msg, &field, arena);
4616 if (size) {
4617 *size = arr ? arr->size : 0;
4618 }
4619 return arr;
4620}
Mike Kruskal3bc50492022-12-01 13:34:12 -08004621UPB_INLINE bool google_protobuf_DescriptorProto_has_oneof_decl(const google_protobuf_DescriptorProto* msg) {
4622 size_t size;
4623 google_protobuf_DescriptorProto_oneof_decl(msg, &size);
4624 return size != 0;
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004625}
Mike Kruskal3bc50492022-12-01 13:34:12 -08004626UPB_INLINE void google_protobuf_DescriptorProto_clear_reserved_range(google_protobuf_DescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07004627 const upb_MiniTableField field = {9, UPB_SIZE(32, 80), 0, 7, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004628 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07004629}
Eric Salob7d54ac2022-12-29 11:59:42 -08004630UPB_INLINE const google_protobuf_DescriptorProto_ReservedRange* const* google_protobuf_DescriptorProto_reserved_range(const google_protobuf_DescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004631 const upb_MiniTableField field = {9, UPB_SIZE(32, 80), 0, 7, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004632 const upb_Array* arr = upb_Message_GetArray(msg, &field);
4633 if (arr) {
4634 if (size) *size = arr->size;
4635 return (const google_protobuf_DescriptorProto_ReservedRange* const*)_upb_array_constptr(arr);
4636 } else {
4637 if (size) *size = 0;
4638 return NULL;
4639 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004640}
Deanna Garciab26afb52023-04-25 13:37:18 -07004641UPB_INLINE const upb_Array* _google_protobuf_DescriptorProto_reserved_range_upb_array(const google_protobuf_DescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004642 const upb_MiniTableField field = {9, UPB_SIZE(32, 80), 0, 7, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07004643 const upb_Array* arr = upb_Message_GetArray(msg, &field);
4644 if (size) {
4645 *size = arr ? arr->size : 0;
4646 }
4647 return arr;
4648}
4649UPB_INLINE upb_Array* _google_protobuf_DescriptorProto_reserved_range_mutable_upb_array(const google_protobuf_DescriptorProto* msg, size_t* size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004650 const upb_MiniTableField field = {9, UPB_SIZE(32, 80), 0, 7, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07004651 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
4652 (upb_Message*)msg, &field, arena);
4653 if (size) {
4654 *size = arr ? arr->size : 0;
4655 }
4656 return arr;
4657}
Mike Kruskal3bc50492022-12-01 13:34:12 -08004658UPB_INLINE bool google_protobuf_DescriptorProto_has_reserved_range(const google_protobuf_DescriptorProto* msg) {
4659 size_t size;
4660 google_protobuf_DescriptorProto_reserved_range(msg, &size);
4661 return size != 0;
4662}
4663UPB_INLINE void google_protobuf_DescriptorProto_clear_reserved_name(google_protobuf_DescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07004664 const upb_MiniTableField field = {10, UPB_SIZE(36, 88), 0, kUpb_NoSub, 12, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004665 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07004666}
Eric Salob7d54ac2022-12-29 11:59:42 -08004667UPB_INLINE upb_StringView const* google_protobuf_DescriptorProto_reserved_name(const google_protobuf_DescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004668 const upb_MiniTableField field = {10, UPB_SIZE(36, 88), 0, kUpb_NoSub, 12, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004669 const upb_Array* arr = upb_Message_GetArray(msg, &field);
4670 if (arr) {
4671 if (size) *size = arr->size;
4672 return (upb_StringView const*)_upb_array_constptr(arr);
4673 } else {
4674 if (size) *size = 0;
4675 return NULL;
4676 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004677}
Deanna Garciab26afb52023-04-25 13:37:18 -07004678UPB_INLINE const upb_Array* _google_protobuf_DescriptorProto_reserved_name_upb_array(const google_protobuf_DescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004679 const upb_MiniTableField field = {10, UPB_SIZE(36, 88), 0, kUpb_NoSub, 12, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07004680 const upb_Array* arr = upb_Message_GetArray(msg, &field);
4681 if (size) {
4682 *size = arr ? arr->size : 0;
4683 }
4684 return arr;
4685}
4686UPB_INLINE upb_Array* _google_protobuf_DescriptorProto_reserved_name_mutable_upb_array(const google_protobuf_DescriptorProto* msg, size_t* size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004687 const upb_MiniTableField field = {10, UPB_SIZE(36, 88), 0, kUpb_NoSub, 12, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07004688 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
4689 (upb_Message*)msg, &field, arena);
4690 if (size) {
4691 *size = arr ? arr->size : 0;
4692 }
4693 return arr;
4694}
Mike Kruskal3bc50492022-12-01 13:34:12 -08004695UPB_INLINE bool google_protobuf_DescriptorProto_has_reserved_name(const google_protobuf_DescriptorProto* msg) {
4696 size_t size;
4697 google_protobuf_DescriptorProto_reserved_name(msg, &size);
4698 return size != 0;
4699}
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004700
Joshua Habermanf41049a2022-01-21 14:41:25 -08004701UPB_INLINE void google_protobuf_DescriptorProto_set_name(google_protobuf_DescriptorProto *msg, upb_StringView value) {
Jie Luo3560e232023-06-12 00:33:50 -07004702 const upb_MiniTableField field = {1, UPB_SIZE(40, 8), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004703 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08004704}
4705UPB_INLINE google_protobuf_FieldDescriptorProto** google_protobuf_DescriptorProto_mutable_field(google_protobuf_DescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004706 upb_MiniTableField field = {2, UPB_SIZE(4, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004707 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
4708 if (arr) {
4709 if (size) *size = arr->size;
4710 return (google_protobuf_FieldDescriptorProto**)_upb_array_ptr(arr);
4711 } else {
4712 if (size) *size = 0;
4713 return NULL;
4714 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004715}
Eric Salob7d54ac2022-12-29 11:59:42 -08004716UPB_INLINE google_protobuf_FieldDescriptorProto** google_protobuf_DescriptorProto_resize_field(google_protobuf_DescriptorProto* msg, size_t size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004717 upb_MiniTableField field = {2, UPB_SIZE(4, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07004718 return (google_protobuf_FieldDescriptorProto**)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004719}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004720UPB_INLINE struct google_protobuf_FieldDescriptorProto* google_protobuf_DescriptorProto_add_field(google_protobuf_DescriptorProto* msg, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004721 upb_MiniTableField field = {2, UPB_SIZE(4, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004722 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
4723 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
4724 return NULL;
4725 }
Joshua Habermand3995ec2022-09-30 16:54:39 -07004726 struct google_protobuf_FieldDescriptorProto* sub = (struct google_protobuf_FieldDescriptorProto*)_upb_Message_New(&google_protobuf_FieldDescriptorProto_msg_init, arena);
Eric Salob7d54ac2022-12-29 11:59:42 -08004727 if (!arr || !sub) return NULL;
4728 _upb_Array_Set(arr, arr->size - 1, &sub, sizeof(sub));
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004729 return sub;
4730}
Eric Salob7d54ac2022-12-29 11:59:42 -08004731UPB_INLINE google_protobuf_DescriptorProto** google_protobuf_DescriptorProto_mutable_nested_type(google_protobuf_DescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004732 upb_MiniTableField field = {3, UPB_SIZE(8, 32), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004733 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
4734 if (arr) {
4735 if (size) *size = arr->size;
4736 return (google_protobuf_DescriptorProto**)_upb_array_ptr(arr);
4737 } else {
4738 if (size) *size = 0;
4739 return NULL;
4740 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004741}
Eric Salob7d54ac2022-12-29 11:59:42 -08004742UPB_INLINE google_protobuf_DescriptorProto** google_protobuf_DescriptorProto_resize_nested_type(google_protobuf_DescriptorProto* msg, size_t size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004743 upb_MiniTableField field = {3, UPB_SIZE(8, 32), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07004744 return (google_protobuf_DescriptorProto**)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004745}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004746UPB_INLINE struct google_protobuf_DescriptorProto* google_protobuf_DescriptorProto_add_nested_type(google_protobuf_DescriptorProto* msg, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004747 upb_MiniTableField field = {3, UPB_SIZE(8, 32), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004748 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
4749 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
4750 return NULL;
4751 }
Joshua Habermand3995ec2022-09-30 16:54:39 -07004752 struct google_protobuf_DescriptorProto* sub = (struct google_protobuf_DescriptorProto*)_upb_Message_New(&google_protobuf_DescriptorProto_msg_init, arena);
Eric Salob7d54ac2022-12-29 11:59:42 -08004753 if (!arr || !sub) return NULL;
4754 _upb_Array_Set(arr, arr->size - 1, &sub, sizeof(sub));
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004755 return sub;
4756}
Eric Salob7d54ac2022-12-29 11:59:42 -08004757UPB_INLINE google_protobuf_EnumDescriptorProto** google_protobuf_DescriptorProto_mutable_enum_type(google_protobuf_DescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004758 upb_MiniTableField field = {4, UPB_SIZE(12, 40), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004759 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
4760 if (arr) {
4761 if (size) *size = arr->size;
4762 return (google_protobuf_EnumDescriptorProto**)_upb_array_ptr(arr);
4763 } else {
4764 if (size) *size = 0;
4765 return NULL;
4766 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004767}
Eric Salob7d54ac2022-12-29 11:59:42 -08004768UPB_INLINE google_protobuf_EnumDescriptorProto** google_protobuf_DescriptorProto_resize_enum_type(google_protobuf_DescriptorProto* msg, size_t size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004769 upb_MiniTableField field = {4, UPB_SIZE(12, 40), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07004770 return (google_protobuf_EnumDescriptorProto**)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004771}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004772UPB_INLINE struct google_protobuf_EnumDescriptorProto* google_protobuf_DescriptorProto_add_enum_type(google_protobuf_DescriptorProto* msg, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004773 upb_MiniTableField field = {4, UPB_SIZE(12, 40), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004774 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
4775 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
4776 return NULL;
4777 }
Joshua Habermand3995ec2022-09-30 16:54:39 -07004778 struct google_protobuf_EnumDescriptorProto* sub = (struct google_protobuf_EnumDescriptorProto*)_upb_Message_New(&google_protobuf_EnumDescriptorProto_msg_init, arena);
Eric Salob7d54ac2022-12-29 11:59:42 -08004779 if (!arr || !sub) return NULL;
4780 _upb_Array_Set(arr, arr->size - 1, &sub, sizeof(sub));
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004781 return sub;
4782}
Eric Salob7d54ac2022-12-29 11:59:42 -08004783UPB_INLINE google_protobuf_DescriptorProto_ExtensionRange** google_protobuf_DescriptorProto_mutable_extension_range(google_protobuf_DescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004784 upb_MiniTableField field = {5, UPB_SIZE(16, 48), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004785 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
4786 if (arr) {
4787 if (size) *size = arr->size;
4788 return (google_protobuf_DescriptorProto_ExtensionRange**)_upb_array_ptr(arr);
4789 } else {
4790 if (size) *size = 0;
4791 return NULL;
4792 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004793}
Eric Salob7d54ac2022-12-29 11:59:42 -08004794UPB_INLINE google_protobuf_DescriptorProto_ExtensionRange** google_protobuf_DescriptorProto_resize_extension_range(google_protobuf_DescriptorProto* msg, size_t size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004795 upb_MiniTableField field = {5, UPB_SIZE(16, 48), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07004796 return (google_protobuf_DescriptorProto_ExtensionRange**)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004797}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004798UPB_INLINE struct google_protobuf_DescriptorProto_ExtensionRange* google_protobuf_DescriptorProto_add_extension_range(google_protobuf_DescriptorProto* msg, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004799 upb_MiniTableField field = {5, UPB_SIZE(16, 48), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004800 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
4801 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
4802 return NULL;
4803 }
Joshua Habermand3995ec2022-09-30 16:54:39 -07004804 struct google_protobuf_DescriptorProto_ExtensionRange* sub = (struct google_protobuf_DescriptorProto_ExtensionRange*)_upb_Message_New(&google_protobuf_DescriptorProto_ExtensionRange_msg_init, arena);
Eric Salob7d54ac2022-12-29 11:59:42 -08004805 if (!arr || !sub) return NULL;
4806 _upb_Array_Set(arr, arr->size - 1, &sub, sizeof(sub));
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004807 return sub;
4808}
Eric Salob7d54ac2022-12-29 11:59:42 -08004809UPB_INLINE google_protobuf_FieldDescriptorProto** google_protobuf_DescriptorProto_mutable_extension(google_protobuf_DescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004810 upb_MiniTableField field = {6, UPB_SIZE(20, 56), 0, 4, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004811 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
4812 if (arr) {
4813 if (size) *size = arr->size;
4814 return (google_protobuf_FieldDescriptorProto**)_upb_array_ptr(arr);
4815 } else {
4816 if (size) *size = 0;
4817 return NULL;
4818 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004819}
Eric Salob7d54ac2022-12-29 11:59:42 -08004820UPB_INLINE google_protobuf_FieldDescriptorProto** google_protobuf_DescriptorProto_resize_extension(google_protobuf_DescriptorProto* msg, size_t size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004821 upb_MiniTableField field = {6, UPB_SIZE(20, 56), 0, 4, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07004822 return (google_protobuf_FieldDescriptorProto**)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004823}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004824UPB_INLINE struct google_protobuf_FieldDescriptorProto* google_protobuf_DescriptorProto_add_extension(google_protobuf_DescriptorProto* msg, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004825 upb_MiniTableField field = {6, UPB_SIZE(20, 56), 0, 4, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004826 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
4827 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
4828 return NULL;
4829 }
Joshua Habermand3995ec2022-09-30 16:54:39 -07004830 struct google_protobuf_FieldDescriptorProto* sub = (struct google_protobuf_FieldDescriptorProto*)_upb_Message_New(&google_protobuf_FieldDescriptorProto_msg_init, arena);
Eric Salob7d54ac2022-12-29 11:59:42 -08004831 if (!arr || !sub) return NULL;
4832 _upb_Array_Set(arr, arr->size - 1, &sub, sizeof(sub));
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004833 return sub;
4834}
4835UPB_INLINE void google_protobuf_DescriptorProto_set_options(google_protobuf_DescriptorProto *msg, google_protobuf_MessageOptions* value) {
Jie Luo3560e232023-06-12 00:33:50 -07004836 const upb_MiniTableField field = {7, UPB_SIZE(24, 64), 2, 5, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004837 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08004838}
4839UPB_INLINE struct google_protobuf_MessageOptions* google_protobuf_DescriptorProto_mutable_options(google_protobuf_DescriptorProto* msg, upb_Arena* arena) {
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004840 struct google_protobuf_MessageOptions* sub = (struct google_protobuf_MessageOptions*)google_protobuf_DescriptorProto_options(msg);
4841 if (sub == NULL) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07004842 sub = (struct google_protobuf_MessageOptions*)_upb_Message_New(&google_protobuf_MessageOptions_msg_init, arena);
Eric Salo8809a112022-11-21 13:01:06 -08004843 if (sub) google_protobuf_DescriptorProto_set_options(msg, sub);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004844 }
4845 return sub;
4846}
Eric Salob7d54ac2022-12-29 11:59:42 -08004847UPB_INLINE google_protobuf_OneofDescriptorProto** google_protobuf_DescriptorProto_mutable_oneof_decl(google_protobuf_DescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004848 upb_MiniTableField field = {8, UPB_SIZE(28, 72), 0, 6, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004849 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
4850 if (arr) {
4851 if (size) *size = arr->size;
4852 return (google_protobuf_OneofDescriptorProto**)_upb_array_ptr(arr);
4853 } else {
4854 if (size) *size = 0;
4855 return NULL;
4856 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004857}
Eric Salob7d54ac2022-12-29 11:59:42 -08004858UPB_INLINE google_protobuf_OneofDescriptorProto** google_protobuf_DescriptorProto_resize_oneof_decl(google_protobuf_DescriptorProto* msg, size_t size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004859 upb_MiniTableField field = {8, UPB_SIZE(28, 72), 0, 6, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07004860 return (google_protobuf_OneofDescriptorProto**)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004861}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004862UPB_INLINE struct google_protobuf_OneofDescriptorProto* google_protobuf_DescriptorProto_add_oneof_decl(google_protobuf_DescriptorProto* msg, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004863 upb_MiniTableField field = {8, UPB_SIZE(28, 72), 0, 6, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004864 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
4865 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
4866 return NULL;
4867 }
Joshua Habermand3995ec2022-09-30 16:54:39 -07004868 struct google_protobuf_OneofDescriptorProto* sub = (struct google_protobuf_OneofDescriptorProto*)_upb_Message_New(&google_protobuf_OneofDescriptorProto_msg_init, arena);
Eric Salob7d54ac2022-12-29 11:59:42 -08004869 if (!arr || !sub) return NULL;
4870 _upb_Array_Set(arr, arr->size - 1, &sub, sizeof(sub));
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004871 return sub;
4872}
Eric Salob7d54ac2022-12-29 11:59:42 -08004873UPB_INLINE google_protobuf_DescriptorProto_ReservedRange** google_protobuf_DescriptorProto_mutable_reserved_range(google_protobuf_DescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004874 upb_MiniTableField field = {9, UPB_SIZE(32, 80), 0, 7, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004875 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
4876 if (arr) {
4877 if (size) *size = arr->size;
4878 return (google_protobuf_DescriptorProto_ReservedRange**)_upb_array_ptr(arr);
4879 } else {
4880 if (size) *size = 0;
4881 return NULL;
4882 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004883}
Eric Salob7d54ac2022-12-29 11:59:42 -08004884UPB_INLINE google_protobuf_DescriptorProto_ReservedRange** google_protobuf_DescriptorProto_resize_reserved_range(google_protobuf_DescriptorProto* msg, size_t size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004885 upb_MiniTableField field = {9, UPB_SIZE(32, 80), 0, 7, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07004886 return (google_protobuf_DescriptorProto_ReservedRange**)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004887}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004888UPB_INLINE struct google_protobuf_DescriptorProto_ReservedRange* google_protobuf_DescriptorProto_add_reserved_range(google_protobuf_DescriptorProto* msg, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004889 upb_MiniTableField field = {9, UPB_SIZE(32, 80), 0, 7, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004890 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
4891 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
4892 return NULL;
4893 }
Joshua Habermand3995ec2022-09-30 16:54:39 -07004894 struct google_protobuf_DescriptorProto_ReservedRange* sub = (struct google_protobuf_DescriptorProto_ReservedRange*)_upb_Message_New(&google_protobuf_DescriptorProto_ReservedRange_msg_init, arena);
Eric Salob7d54ac2022-12-29 11:59:42 -08004895 if (!arr || !sub) return NULL;
4896 _upb_Array_Set(arr, arr->size - 1, &sub, sizeof(sub));
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004897 return sub;
4898}
Eric Salob7d54ac2022-12-29 11:59:42 -08004899UPB_INLINE upb_StringView* google_protobuf_DescriptorProto_mutable_reserved_name(google_protobuf_DescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07004900 upb_MiniTableField field = {10, UPB_SIZE(36, 88), 0, kUpb_NoSub, 12, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004901 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
4902 if (arr) {
4903 if (size) *size = arr->size;
4904 return (upb_StringView*)_upb_array_ptr(arr);
4905 } else {
4906 if (size) *size = 0;
4907 return NULL;
4908 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004909}
Eric Salob7d54ac2022-12-29 11:59:42 -08004910UPB_INLINE upb_StringView* google_protobuf_DescriptorProto_resize_reserved_name(google_protobuf_DescriptorProto* msg, size_t size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004911 upb_MiniTableField field = {10, UPB_SIZE(36, 88), 0, kUpb_NoSub, 12, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07004912 return (upb_StringView*)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004913}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004914UPB_INLINE bool google_protobuf_DescriptorProto_add_reserved_name(google_protobuf_DescriptorProto* msg, upb_StringView val, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07004915 upb_MiniTableField field = {10, UPB_SIZE(36, 88), 0, kUpb_NoSub, 12, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08004916 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
4917 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
4918 return false;
4919 }
4920 _upb_Array_Set(arr, arr->size - 1, &val, sizeof(val));
4921 return true;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004922}
4923
4924/* google.protobuf.DescriptorProto.ExtensionRange */
4925
Joshua Habermanf41049a2022-01-21 14:41:25 -08004926UPB_INLINE google_protobuf_DescriptorProto_ExtensionRange* google_protobuf_DescriptorProto_ExtensionRange_new(upb_Arena* arena) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07004927 return (google_protobuf_DescriptorProto_ExtensionRange*)_upb_Message_New(&google_protobuf_DescriptorProto_ExtensionRange_msg_init, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004928}
Joshua Habermanf41049a2022-01-21 14:41:25 -08004929UPB_INLINE google_protobuf_DescriptorProto_ExtensionRange* google_protobuf_DescriptorProto_ExtensionRange_parse(const char* buf, size_t size, upb_Arena* arena) {
4930 google_protobuf_DescriptorProto_ExtensionRange* ret = google_protobuf_DescriptorProto_ExtensionRange_new(arena);
Joshua Haberman9d578a32021-08-02 15:32:01 -07004931 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07004932 if (upb_Decode(buf, size, ret, &google_protobuf_DescriptorProto_ExtensionRange_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
Joshua Haberman9d578a32021-08-02 15:32:01 -07004933 return NULL;
4934 }
4935 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004936}
Joshua Habermanf41049a2022-01-21 14:41:25 -08004937UPB_INLINE google_protobuf_DescriptorProto_ExtensionRange* google_protobuf_DescriptorProto_ExtensionRange_parse_ex(const char* buf, size_t size,
4938 const upb_ExtensionRegistry* extreg,
4939 int options, upb_Arena* arena) {
4940 google_protobuf_DescriptorProto_ExtensionRange* ret = google_protobuf_DescriptorProto_ExtensionRange_new(arena);
4941 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07004942 if (upb_Decode(buf, size, ret, &google_protobuf_DescriptorProto_ExtensionRange_msg_init, extreg, options, arena) !=
Joshua Habermanf41049a2022-01-21 14:41:25 -08004943 kUpb_DecodeStatus_Ok) {
4944 return NULL;
4945 }
4946 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08004947}
Joshua Habermanf41049a2022-01-21 14:41:25 -08004948UPB_INLINE char* google_protobuf_DescriptorProto_ExtensionRange_serialize(const google_protobuf_DescriptorProto_ExtensionRange* msg, upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07004949 char* ptr;
4950 (void)upb_Encode(msg, &google_protobuf_DescriptorProto_ExtensionRange_msg_init, 0, arena, &ptr, len);
4951 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08004952}
4953UPB_INLINE char* google_protobuf_DescriptorProto_ExtensionRange_serialize_ex(const google_protobuf_DescriptorProto_ExtensionRange* msg, int options,
4954 upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07004955 char* ptr;
4956 (void)upb_Encode(msg, &google_protobuf_DescriptorProto_ExtensionRange_msg_init, options, arena, &ptr, len);
4957 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08004958}
Mike Kruskal3bc50492022-12-01 13:34:12 -08004959UPB_INLINE void google_protobuf_DescriptorProto_ExtensionRange_clear_start(google_protobuf_DescriptorProto_ExtensionRange* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07004960 const upb_MiniTableField field = {1, 4, 1, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004961 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07004962}
Joshua Habermanf41049a2022-01-21 14:41:25 -08004963UPB_INLINE int32_t google_protobuf_DescriptorProto_ExtensionRange_start(const google_protobuf_DescriptorProto_ExtensionRange* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08004964 int32_t default_val = (int32_t)0;
4965 int32_t ret;
Jie Luo3560e232023-06-12 00:33:50 -07004966 const upb_MiniTableField field = {1, 4, 1, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004967 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08004968 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08004969}
Mike Kruskal3bc50492022-12-01 13:34:12 -08004970UPB_INLINE bool google_protobuf_DescriptorProto_ExtensionRange_has_start(const google_protobuf_DescriptorProto_ExtensionRange* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07004971 const upb_MiniTableField field = {1, 4, 1, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004972 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004973}
Mike Kruskal3bc50492022-12-01 13:34:12 -08004974UPB_INLINE void google_protobuf_DescriptorProto_ExtensionRange_clear_end(google_protobuf_DescriptorProto_ExtensionRange* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07004975 const upb_MiniTableField field = {2, 8, 2, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004976 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07004977}
Joshua Habermanf41049a2022-01-21 14:41:25 -08004978UPB_INLINE int32_t google_protobuf_DescriptorProto_ExtensionRange_end(const google_protobuf_DescriptorProto_ExtensionRange* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08004979 int32_t default_val = (int32_t)0;
4980 int32_t ret;
Jie Luo3560e232023-06-12 00:33:50 -07004981 const upb_MiniTableField field = {2, 8, 2, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004982 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08004983 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08004984}
Mike Kruskal3bc50492022-12-01 13:34:12 -08004985UPB_INLINE bool google_protobuf_DescriptorProto_ExtensionRange_has_end(const google_protobuf_DescriptorProto_ExtensionRange* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07004986 const upb_MiniTableField field = {2, 8, 2, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004987 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07004988}
Mike Kruskal3bc50492022-12-01 13:34:12 -08004989UPB_INLINE void google_protobuf_DescriptorProto_ExtensionRange_clear_options(google_protobuf_DescriptorProto_ExtensionRange* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07004990 const upb_MiniTableField field = {3, UPB_SIZE(12, 16), 3, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004991 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07004992}
Joshua Habermanf41049a2022-01-21 14:41:25 -08004993UPB_INLINE const google_protobuf_ExtensionRangeOptions* google_protobuf_DescriptorProto_ExtensionRange_options(const google_protobuf_DescriptorProto_ExtensionRange* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08004994 const google_protobuf_ExtensionRangeOptions* default_val = NULL;
4995 const google_protobuf_ExtensionRangeOptions* ret;
Jie Luo3560e232023-06-12 00:33:50 -07004996 const upb_MiniTableField field = {3, UPB_SIZE(12, 16), 3, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08004997 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08004998 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08004999}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005000UPB_INLINE bool google_protobuf_DescriptorProto_ExtensionRange_has_options(const google_protobuf_DescriptorProto_ExtensionRange* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005001 const upb_MiniTableField field = {3, UPB_SIZE(12, 16), 3, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005002 return _upb_Message_HasNonExtensionField(msg, &field);
Mike Kruskal3bc50492022-12-01 13:34:12 -08005003}
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005004
5005UPB_INLINE void google_protobuf_DescriptorProto_ExtensionRange_set_start(google_protobuf_DescriptorProto_ExtensionRange *msg, int32_t value) {
Jie Luo3560e232023-06-12 00:33:50 -07005006 const upb_MiniTableField field = {1, 4, 1, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005007 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08005008}
5009UPB_INLINE void google_protobuf_DescriptorProto_ExtensionRange_set_end(google_protobuf_DescriptorProto_ExtensionRange *msg, int32_t value) {
Jie Luo3560e232023-06-12 00:33:50 -07005010 const upb_MiniTableField field = {2, 8, 2, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005011 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08005012}
5013UPB_INLINE void google_protobuf_DescriptorProto_ExtensionRange_set_options(google_protobuf_DescriptorProto_ExtensionRange *msg, google_protobuf_ExtensionRangeOptions* value) {
Jie Luo3560e232023-06-12 00:33:50 -07005014 const upb_MiniTableField field = {3, UPB_SIZE(12, 16), 3, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005015 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08005016}
5017UPB_INLINE struct google_protobuf_ExtensionRangeOptions* google_protobuf_DescriptorProto_ExtensionRange_mutable_options(google_protobuf_DescriptorProto_ExtensionRange* msg, upb_Arena* arena) {
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005018 struct google_protobuf_ExtensionRangeOptions* sub = (struct google_protobuf_ExtensionRangeOptions*)google_protobuf_DescriptorProto_ExtensionRange_options(msg);
5019 if (sub == NULL) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07005020 sub = (struct google_protobuf_ExtensionRangeOptions*)_upb_Message_New(&google_protobuf_ExtensionRangeOptions_msg_init, arena);
Eric Salo8809a112022-11-21 13:01:06 -08005021 if (sub) google_protobuf_DescriptorProto_ExtensionRange_set_options(msg, sub);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005022 }
5023 return sub;
5024}
5025
5026/* google.protobuf.DescriptorProto.ReservedRange */
5027
Joshua Habermanf41049a2022-01-21 14:41:25 -08005028UPB_INLINE google_protobuf_DescriptorProto_ReservedRange* google_protobuf_DescriptorProto_ReservedRange_new(upb_Arena* arena) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07005029 return (google_protobuf_DescriptorProto_ReservedRange*)_upb_Message_New(&google_protobuf_DescriptorProto_ReservedRange_msg_init, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005030}
Joshua Habermanf41049a2022-01-21 14:41:25 -08005031UPB_INLINE google_protobuf_DescriptorProto_ReservedRange* google_protobuf_DescriptorProto_ReservedRange_parse(const char* buf, size_t size, upb_Arena* arena) {
5032 google_protobuf_DescriptorProto_ReservedRange* ret = google_protobuf_DescriptorProto_ReservedRange_new(arena);
Joshua Haberman9d578a32021-08-02 15:32:01 -07005033 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07005034 if (upb_Decode(buf, size, ret, &google_protobuf_DescriptorProto_ReservedRange_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
Joshua Haberman9d578a32021-08-02 15:32:01 -07005035 return NULL;
5036 }
5037 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005038}
Joshua Habermanf41049a2022-01-21 14:41:25 -08005039UPB_INLINE google_protobuf_DescriptorProto_ReservedRange* google_protobuf_DescriptorProto_ReservedRange_parse_ex(const char* buf, size_t size,
5040 const upb_ExtensionRegistry* extreg,
5041 int options, upb_Arena* arena) {
5042 google_protobuf_DescriptorProto_ReservedRange* ret = google_protobuf_DescriptorProto_ReservedRange_new(arena);
5043 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07005044 if (upb_Decode(buf, size, ret, &google_protobuf_DescriptorProto_ReservedRange_msg_init, extreg, options, arena) !=
Joshua Habermanf41049a2022-01-21 14:41:25 -08005045 kUpb_DecodeStatus_Ok) {
5046 return NULL;
5047 }
5048 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005049}
Joshua Habermanf41049a2022-01-21 14:41:25 -08005050UPB_INLINE char* google_protobuf_DescriptorProto_ReservedRange_serialize(const google_protobuf_DescriptorProto_ReservedRange* msg, upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07005051 char* ptr;
5052 (void)upb_Encode(msg, &google_protobuf_DescriptorProto_ReservedRange_msg_init, 0, arena, &ptr, len);
5053 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08005054}
5055UPB_INLINE char* google_protobuf_DescriptorProto_ReservedRange_serialize_ex(const google_protobuf_DescriptorProto_ReservedRange* msg, int options,
5056 upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07005057 char* ptr;
5058 (void)upb_Encode(msg, &google_protobuf_DescriptorProto_ReservedRange_msg_init, options, arena, &ptr, len);
5059 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08005060}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005061UPB_INLINE void google_protobuf_DescriptorProto_ReservedRange_clear_start(google_protobuf_DescriptorProto_ReservedRange* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005062 const upb_MiniTableField field = {1, 4, 1, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005063 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07005064}
Joshua Habermanf41049a2022-01-21 14:41:25 -08005065UPB_INLINE int32_t google_protobuf_DescriptorProto_ReservedRange_start(const google_protobuf_DescriptorProto_ReservedRange* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08005066 int32_t default_val = (int32_t)0;
5067 int32_t ret;
Jie Luo3560e232023-06-12 00:33:50 -07005068 const upb_MiniTableField field = {1, 4, 1, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005069 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08005070 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08005071}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005072UPB_INLINE bool google_protobuf_DescriptorProto_ReservedRange_has_start(const google_protobuf_DescriptorProto_ReservedRange* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005073 const upb_MiniTableField field = {1, 4, 1, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005074 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07005075}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005076UPB_INLINE void google_protobuf_DescriptorProto_ReservedRange_clear_end(google_protobuf_DescriptorProto_ReservedRange* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005077 const upb_MiniTableField field = {2, 8, 2, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005078 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07005079}
Joshua Habermanf41049a2022-01-21 14:41:25 -08005080UPB_INLINE int32_t google_protobuf_DescriptorProto_ReservedRange_end(const google_protobuf_DescriptorProto_ReservedRange* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08005081 int32_t default_val = (int32_t)0;
5082 int32_t ret;
Jie Luo3560e232023-06-12 00:33:50 -07005083 const upb_MiniTableField field = {2, 8, 2, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005084 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08005085 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08005086}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005087UPB_INLINE bool google_protobuf_DescriptorProto_ReservedRange_has_end(const google_protobuf_DescriptorProto_ReservedRange* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005088 const upb_MiniTableField field = {2, 8, 2, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005089 return _upb_Message_HasNonExtensionField(msg, &field);
Mike Kruskal3bc50492022-12-01 13:34:12 -08005090}
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005091
5092UPB_INLINE void google_protobuf_DescriptorProto_ReservedRange_set_start(google_protobuf_DescriptorProto_ReservedRange *msg, int32_t value) {
Jie Luo3560e232023-06-12 00:33:50 -07005093 const upb_MiniTableField field = {1, 4, 1, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005094 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08005095}
5096UPB_INLINE void google_protobuf_DescriptorProto_ReservedRange_set_end(google_protobuf_DescriptorProto_ReservedRange *msg, int32_t value) {
Jie Luo3560e232023-06-12 00:33:50 -07005097 const upb_MiniTableField field = {2, 8, 2, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005098 _upb_Message_SetNonExtensionField(msg, &field, &value);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005099}
Mike Kruskal232ecf42023-01-14 00:09:40 -08005100
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005101/* google.protobuf.ExtensionRangeOptions */
5102
Joshua Habermanf41049a2022-01-21 14:41:25 -08005103UPB_INLINE google_protobuf_ExtensionRangeOptions* google_protobuf_ExtensionRangeOptions_new(upb_Arena* arena) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07005104 return (google_protobuf_ExtensionRangeOptions*)_upb_Message_New(&google_protobuf_ExtensionRangeOptions_msg_init, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005105}
Joshua Habermanf41049a2022-01-21 14:41:25 -08005106UPB_INLINE google_protobuf_ExtensionRangeOptions* google_protobuf_ExtensionRangeOptions_parse(const char* buf, size_t size, upb_Arena* arena) {
5107 google_protobuf_ExtensionRangeOptions* ret = google_protobuf_ExtensionRangeOptions_new(arena);
Joshua Haberman9d578a32021-08-02 15:32:01 -07005108 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07005109 if (upb_Decode(buf, size, ret, &google_protobuf_ExtensionRangeOptions_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
Joshua Haberman9d578a32021-08-02 15:32:01 -07005110 return NULL;
5111 }
5112 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005113}
Joshua Habermanf41049a2022-01-21 14:41:25 -08005114UPB_INLINE google_protobuf_ExtensionRangeOptions* google_protobuf_ExtensionRangeOptions_parse_ex(const char* buf, size_t size,
5115 const upb_ExtensionRegistry* extreg,
5116 int options, upb_Arena* arena) {
5117 google_protobuf_ExtensionRangeOptions* ret = google_protobuf_ExtensionRangeOptions_new(arena);
5118 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07005119 if (upb_Decode(buf, size, ret, &google_protobuf_ExtensionRangeOptions_msg_init, extreg, options, arena) !=
Joshua Habermanf41049a2022-01-21 14:41:25 -08005120 kUpb_DecodeStatus_Ok) {
5121 return NULL;
5122 }
5123 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005124}
Joshua Habermanf41049a2022-01-21 14:41:25 -08005125UPB_INLINE char* google_protobuf_ExtensionRangeOptions_serialize(const google_protobuf_ExtensionRangeOptions* msg, upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07005126 char* ptr;
5127 (void)upb_Encode(msg, &google_protobuf_ExtensionRangeOptions_msg_init, 0, arena, &ptr, len);
5128 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08005129}
5130UPB_INLINE char* google_protobuf_ExtensionRangeOptions_serialize_ex(const google_protobuf_ExtensionRangeOptions* msg, int options,
5131 upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07005132 char* ptr;
5133 (void)upb_Encode(msg, &google_protobuf_ExtensionRangeOptions_msg_init, options, arena, &ptr, len);
5134 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08005135}
Mike Kruskal145900f2023-03-27 09:55:52 -07005136UPB_INLINE void google_protobuf_ExtensionRangeOptions_clear_declaration(google_protobuf_ExtensionRangeOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005137 const upb_MiniTableField field = {2, UPB_SIZE(4, 8), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Mike Kruskal145900f2023-03-27 09:55:52 -07005138 _upb_Message_ClearNonExtensionField(msg, &field);
5139}
5140UPB_INLINE const google_protobuf_ExtensionRangeOptions_Declaration* const* google_protobuf_ExtensionRangeOptions_declaration(const google_protobuf_ExtensionRangeOptions* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07005141 const upb_MiniTableField field = {2, UPB_SIZE(4, 8), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Mike Kruskal145900f2023-03-27 09:55:52 -07005142 const upb_Array* arr = upb_Message_GetArray(msg, &field);
5143 if (arr) {
5144 if (size) *size = arr->size;
5145 return (const google_protobuf_ExtensionRangeOptions_Declaration* const*)_upb_array_constptr(arr);
5146 } else {
5147 if (size) *size = 0;
5148 return NULL;
5149 }
5150}
Deanna Garciab26afb52023-04-25 13:37:18 -07005151UPB_INLINE const upb_Array* _google_protobuf_ExtensionRangeOptions_declaration_upb_array(const google_protobuf_ExtensionRangeOptions* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07005152 const upb_MiniTableField field = {2, UPB_SIZE(4, 8), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07005153 const upb_Array* arr = upb_Message_GetArray(msg, &field);
5154 if (size) {
5155 *size = arr ? arr->size : 0;
5156 }
5157 return arr;
5158}
5159UPB_INLINE upb_Array* _google_protobuf_ExtensionRangeOptions_declaration_mutable_upb_array(const google_protobuf_ExtensionRangeOptions* msg, size_t* size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07005160 const upb_MiniTableField field = {2, UPB_SIZE(4, 8), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07005161 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
5162 (upb_Message*)msg, &field, arena);
5163 if (size) {
5164 *size = arr ? arr->size : 0;
5165 }
5166 return arr;
5167}
Mike Kruskal145900f2023-03-27 09:55:52 -07005168UPB_INLINE bool google_protobuf_ExtensionRangeOptions_has_declaration(const google_protobuf_ExtensionRangeOptions* msg) {
5169 size_t size;
5170 google_protobuf_ExtensionRangeOptions_declaration(msg, &size);
5171 return size != 0;
5172}
Protobuf Team Bot469f0272023-04-21 18:12:45 -07005173UPB_INLINE void google_protobuf_ExtensionRangeOptions_clear_verification(google_protobuf_ExtensionRangeOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07005174 const upb_MiniTableField field = {3, UPB_SIZE(8, 4), 1, 3, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Protobuf Team Bot469f0272023-04-21 18:12:45 -07005175 _upb_Message_ClearNonExtensionField(msg, &field);
5176}
5177UPB_INLINE int32_t google_protobuf_ExtensionRangeOptions_verification(const google_protobuf_ExtensionRangeOptions* msg) {
5178 int32_t default_val = 1;
5179 int32_t ret;
Mike Kruskal4f9e4172023-06-30 20:14:50 -07005180 const upb_MiniTableField field = {3, UPB_SIZE(8, 4), 1, 3, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Protobuf Team Bot469f0272023-04-21 18:12:45 -07005181 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
5182 return ret;
5183}
5184UPB_INLINE bool google_protobuf_ExtensionRangeOptions_has_verification(const google_protobuf_ExtensionRangeOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07005185 const upb_MiniTableField field = {3, UPB_SIZE(8, 4), 1, 3, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
5186 return _upb_Message_HasNonExtensionField(msg, &field);
5187}
5188UPB_INLINE void google_protobuf_ExtensionRangeOptions_clear_features(google_protobuf_ExtensionRangeOptions* msg) {
5189 const upb_MiniTableField field = {50, UPB_SIZE(12, 16), 2, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
5190 _upb_Message_ClearNonExtensionField(msg, &field);
5191}
5192UPB_INLINE const google_protobuf_FeatureSet* google_protobuf_ExtensionRangeOptions_features(const google_protobuf_ExtensionRangeOptions* msg) {
5193 const google_protobuf_FeatureSet* default_val = NULL;
5194 const google_protobuf_FeatureSet* ret;
5195 const upb_MiniTableField field = {50, UPB_SIZE(12, 16), 2, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
5196 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
5197 return ret;
5198}
5199UPB_INLINE bool google_protobuf_ExtensionRangeOptions_has_features(const google_protobuf_ExtensionRangeOptions* msg) {
5200 const upb_MiniTableField field = {50, UPB_SIZE(12, 16), 2, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Protobuf Team Bot469f0272023-04-21 18:12:45 -07005201 return _upb_Message_HasNonExtensionField(msg, &field);
5202}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005203UPB_INLINE void google_protobuf_ExtensionRangeOptions_clear_uninterpreted_option(google_protobuf_ExtensionRangeOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07005204 const upb_MiniTableField field = {999, UPB_SIZE(16, 24), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005205 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07005206}
Eric Salob7d54ac2022-12-29 11:59:42 -08005207UPB_INLINE const google_protobuf_UninterpretedOption* const* google_protobuf_ExtensionRangeOptions_uninterpreted_option(const google_protobuf_ExtensionRangeOptions* msg, size_t* size) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07005208 const upb_MiniTableField field = {999, UPB_SIZE(16, 24), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08005209 const upb_Array* arr = upb_Message_GetArray(msg, &field);
5210 if (arr) {
5211 if (size) *size = arr->size;
5212 return (const google_protobuf_UninterpretedOption* const*)_upb_array_constptr(arr);
5213 } else {
5214 if (size) *size = 0;
5215 return NULL;
5216 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07005217}
Deanna Garciab26afb52023-04-25 13:37:18 -07005218UPB_INLINE const upb_Array* _google_protobuf_ExtensionRangeOptions_uninterpreted_option_upb_array(const google_protobuf_ExtensionRangeOptions* msg, size_t* size) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07005219 const upb_MiniTableField field = {999, UPB_SIZE(16, 24), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07005220 const upb_Array* arr = upb_Message_GetArray(msg, &field);
5221 if (size) {
5222 *size = arr ? arr->size : 0;
5223 }
5224 return arr;
5225}
5226UPB_INLINE upb_Array* _google_protobuf_ExtensionRangeOptions_uninterpreted_option_mutable_upb_array(const google_protobuf_ExtensionRangeOptions* msg, size_t* size, upb_Arena* arena) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07005227 const upb_MiniTableField field = {999, UPB_SIZE(16, 24), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07005228 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
5229 (upb_Message*)msg, &field, arena);
5230 if (size) {
5231 *size = arr ? arr->size : 0;
5232 }
5233 return arr;
5234}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005235UPB_INLINE bool google_protobuf_ExtensionRangeOptions_has_uninterpreted_option(const google_protobuf_ExtensionRangeOptions* msg) {
5236 size_t size;
5237 google_protobuf_ExtensionRangeOptions_uninterpreted_option(msg, &size);
5238 return size != 0;
5239}
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005240
Mike Kruskal145900f2023-03-27 09:55:52 -07005241UPB_INLINE google_protobuf_ExtensionRangeOptions_Declaration** google_protobuf_ExtensionRangeOptions_mutable_declaration(google_protobuf_ExtensionRangeOptions* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07005242 upb_MiniTableField field = {2, UPB_SIZE(4, 8), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Mike Kruskal145900f2023-03-27 09:55:52 -07005243 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
5244 if (arr) {
5245 if (size) *size = arr->size;
5246 return (google_protobuf_ExtensionRangeOptions_Declaration**)_upb_array_ptr(arr);
5247 } else {
5248 if (size) *size = 0;
5249 return NULL;
5250 }
5251}
5252UPB_INLINE google_protobuf_ExtensionRangeOptions_Declaration** google_protobuf_ExtensionRangeOptions_resize_declaration(google_protobuf_ExtensionRangeOptions* msg, size_t size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07005253 upb_MiniTableField field = {2, UPB_SIZE(4, 8), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07005254 return (google_protobuf_ExtensionRangeOptions_Declaration**)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Mike Kruskal145900f2023-03-27 09:55:52 -07005255}
5256UPB_INLINE struct google_protobuf_ExtensionRangeOptions_Declaration* google_protobuf_ExtensionRangeOptions_add_declaration(google_protobuf_ExtensionRangeOptions* msg, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07005257 upb_MiniTableField field = {2, UPB_SIZE(4, 8), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Mike Kruskal145900f2023-03-27 09:55:52 -07005258 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
5259 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
5260 return NULL;
5261 }
5262 struct google_protobuf_ExtensionRangeOptions_Declaration* sub = (struct google_protobuf_ExtensionRangeOptions_Declaration*)_upb_Message_New(&google_protobuf_ExtensionRangeOptions_Declaration_msg_init, arena);
5263 if (!arr || !sub) return NULL;
5264 _upb_Array_Set(arr, arr->size - 1, &sub, sizeof(sub));
5265 return sub;
5266}
Protobuf Team Bot469f0272023-04-21 18:12:45 -07005267UPB_INLINE void google_protobuf_ExtensionRangeOptions_set_verification(google_protobuf_ExtensionRangeOptions *msg, int32_t value) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07005268 const upb_MiniTableField field = {3, UPB_SIZE(8, 4), 1, 3, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Protobuf Team Bot469f0272023-04-21 18:12:45 -07005269 _upb_Message_SetNonExtensionField(msg, &field, &value);
5270}
Mike Kruskal4f9e4172023-06-30 20:14:50 -07005271UPB_INLINE void google_protobuf_ExtensionRangeOptions_set_features(google_protobuf_ExtensionRangeOptions *msg, google_protobuf_FeatureSet* value) {
5272 const upb_MiniTableField field = {50, UPB_SIZE(12, 16), 2, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
5273 _upb_Message_SetNonExtensionField(msg, &field, &value);
5274}
5275UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_ExtensionRangeOptions_mutable_features(google_protobuf_ExtensionRangeOptions* msg, upb_Arena* arena) {
5276 struct google_protobuf_FeatureSet* sub = (struct google_protobuf_FeatureSet*)google_protobuf_ExtensionRangeOptions_features(msg);
5277 if (sub == NULL) {
5278 sub = (struct google_protobuf_FeatureSet*)_upb_Message_New(&google_protobuf_FeatureSet_msg_init, arena);
5279 if (sub) google_protobuf_ExtensionRangeOptions_set_features(msg, sub);
5280 }
5281 return sub;
5282}
Eric Salob7d54ac2022-12-29 11:59:42 -08005283UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_ExtensionRangeOptions_mutable_uninterpreted_option(google_protobuf_ExtensionRangeOptions* msg, size_t* size) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07005284 upb_MiniTableField field = {999, UPB_SIZE(16, 24), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08005285 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
5286 if (arr) {
5287 if (size) *size = arr->size;
5288 return (google_protobuf_UninterpretedOption**)_upb_array_ptr(arr);
5289 } else {
5290 if (size) *size = 0;
5291 return NULL;
5292 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005293}
Eric Salob7d54ac2022-12-29 11:59:42 -08005294UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_ExtensionRangeOptions_resize_uninterpreted_option(google_protobuf_ExtensionRangeOptions* msg, size_t size, upb_Arena* arena) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07005295 upb_MiniTableField field = {999, UPB_SIZE(16, 24), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07005296 return (google_protobuf_UninterpretedOption**)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005297}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07005298UPB_INLINE struct google_protobuf_UninterpretedOption* google_protobuf_ExtensionRangeOptions_add_uninterpreted_option(google_protobuf_ExtensionRangeOptions* msg, upb_Arena* arena) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07005299 upb_MiniTableField field = {999, UPB_SIZE(16, 24), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08005300 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
5301 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
5302 return NULL;
5303 }
Joshua Habermand3995ec2022-09-30 16:54:39 -07005304 struct google_protobuf_UninterpretedOption* sub = (struct google_protobuf_UninterpretedOption*)_upb_Message_New(&google_protobuf_UninterpretedOption_msg_init, arena);
Eric Salob7d54ac2022-12-29 11:59:42 -08005305 if (!arr || !sub) return NULL;
5306 _upb_Array_Set(arr, arr->size - 1, &sub, sizeof(sub));
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005307 return sub;
5308}
5309
Mike Kruskal145900f2023-03-27 09:55:52 -07005310/* google.protobuf.ExtensionRangeOptions.Declaration */
5311
5312UPB_INLINE google_protobuf_ExtensionRangeOptions_Declaration* google_protobuf_ExtensionRangeOptions_Declaration_new(upb_Arena* arena) {
5313 return (google_protobuf_ExtensionRangeOptions_Declaration*)_upb_Message_New(&google_protobuf_ExtensionRangeOptions_Declaration_msg_init, arena);
5314}
5315UPB_INLINE google_protobuf_ExtensionRangeOptions_Declaration* google_protobuf_ExtensionRangeOptions_Declaration_parse(const char* buf, size_t size, upb_Arena* arena) {
5316 google_protobuf_ExtensionRangeOptions_Declaration* ret = google_protobuf_ExtensionRangeOptions_Declaration_new(arena);
5317 if (!ret) return NULL;
5318 if (upb_Decode(buf, size, ret, &google_protobuf_ExtensionRangeOptions_Declaration_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
5319 return NULL;
5320 }
5321 return ret;
5322}
5323UPB_INLINE google_protobuf_ExtensionRangeOptions_Declaration* google_protobuf_ExtensionRangeOptions_Declaration_parse_ex(const char* buf, size_t size,
5324 const upb_ExtensionRegistry* extreg,
5325 int options, upb_Arena* arena) {
5326 google_protobuf_ExtensionRangeOptions_Declaration* ret = google_protobuf_ExtensionRangeOptions_Declaration_new(arena);
5327 if (!ret) return NULL;
5328 if (upb_Decode(buf, size, ret, &google_protobuf_ExtensionRangeOptions_Declaration_msg_init, extreg, options, arena) !=
5329 kUpb_DecodeStatus_Ok) {
5330 return NULL;
5331 }
5332 return ret;
5333}
5334UPB_INLINE char* google_protobuf_ExtensionRangeOptions_Declaration_serialize(const google_protobuf_ExtensionRangeOptions_Declaration* msg, upb_Arena* arena, size_t* len) {
5335 char* ptr;
5336 (void)upb_Encode(msg, &google_protobuf_ExtensionRangeOptions_Declaration_msg_init, 0, arena, &ptr, len);
5337 return ptr;
5338}
5339UPB_INLINE char* google_protobuf_ExtensionRangeOptions_Declaration_serialize_ex(const google_protobuf_ExtensionRangeOptions_Declaration* msg, int options,
5340 upb_Arena* arena, size_t* len) {
5341 char* ptr;
5342 (void)upb_Encode(msg, &google_protobuf_ExtensionRangeOptions_Declaration_msg_init, options, arena, &ptr, len);
5343 return ptr;
5344}
5345UPB_INLINE void google_protobuf_ExtensionRangeOptions_Declaration_clear_number(google_protobuf_ExtensionRangeOptions_Declaration* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005346 const upb_MiniTableField field = {1, 4, 1, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Mike Kruskal145900f2023-03-27 09:55:52 -07005347 _upb_Message_ClearNonExtensionField(msg, &field);
5348}
5349UPB_INLINE int32_t google_protobuf_ExtensionRangeOptions_Declaration_number(const google_protobuf_ExtensionRangeOptions_Declaration* msg) {
5350 int32_t default_val = (int32_t)0;
5351 int32_t ret;
Jie Luo3560e232023-06-12 00:33:50 -07005352 const upb_MiniTableField field = {1, 4, 1, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Mike Kruskal145900f2023-03-27 09:55:52 -07005353 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
5354 return ret;
5355}
5356UPB_INLINE bool google_protobuf_ExtensionRangeOptions_Declaration_has_number(const google_protobuf_ExtensionRangeOptions_Declaration* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005357 const upb_MiniTableField field = {1, 4, 1, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Mike Kruskal145900f2023-03-27 09:55:52 -07005358 return _upb_Message_HasNonExtensionField(msg, &field);
5359}
5360UPB_INLINE void google_protobuf_ExtensionRangeOptions_Declaration_clear_full_name(google_protobuf_ExtensionRangeOptions_Declaration* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005361 const upb_MiniTableField field = {2, UPB_SIZE(12, 16), 2, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Mike Kruskal145900f2023-03-27 09:55:52 -07005362 _upb_Message_ClearNonExtensionField(msg, &field);
5363}
5364UPB_INLINE upb_StringView google_protobuf_ExtensionRangeOptions_Declaration_full_name(const google_protobuf_ExtensionRangeOptions_Declaration* msg) {
5365 upb_StringView default_val = upb_StringView_FromString("");
5366 upb_StringView ret;
Jie Luo3560e232023-06-12 00:33:50 -07005367 const upb_MiniTableField field = {2, UPB_SIZE(12, 16), 2, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Mike Kruskal145900f2023-03-27 09:55:52 -07005368 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
5369 return ret;
5370}
5371UPB_INLINE bool google_protobuf_ExtensionRangeOptions_Declaration_has_full_name(const google_protobuf_ExtensionRangeOptions_Declaration* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005372 const upb_MiniTableField field = {2, UPB_SIZE(12, 16), 2, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Mike Kruskal145900f2023-03-27 09:55:52 -07005373 return _upb_Message_HasNonExtensionField(msg, &field);
5374}
5375UPB_INLINE void google_protobuf_ExtensionRangeOptions_Declaration_clear_type(google_protobuf_ExtensionRangeOptions_Declaration* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005376 const upb_MiniTableField field = {3, UPB_SIZE(20, 32), 3, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Mike Kruskal145900f2023-03-27 09:55:52 -07005377 _upb_Message_ClearNonExtensionField(msg, &field);
5378}
5379UPB_INLINE upb_StringView google_protobuf_ExtensionRangeOptions_Declaration_type(const google_protobuf_ExtensionRangeOptions_Declaration* msg) {
5380 upb_StringView default_val = upb_StringView_FromString("");
5381 upb_StringView ret;
Jie Luo3560e232023-06-12 00:33:50 -07005382 const upb_MiniTableField field = {3, UPB_SIZE(20, 32), 3, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Mike Kruskal145900f2023-03-27 09:55:52 -07005383 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
5384 return ret;
5385}
5386UPB_INLINE bool google_protobuf_ExtensionRangeOptions_Declaration_has_type(const google_protobuf_ExtensionRangeOptions_Declaration* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005387 const upb_MiniTableField field = {3, UPB_SIZE(20, 32), 3, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Mike Kruskal145900f2023-03-27 09:55:52 -07005388 return _upb_Message_HasNonExtensionField(msg, &field);
5389}
5390UPB_INLINE void google_protobuf_ExtensionRangeOptions_Declaration_clear_is_repeated(google_protobuf_ExtensionRangeOptions_Declaration* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005391 const upb_MiniTableField field = {4, 8, 4, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Mike Kruskal145900f2023-03-27 09:55:52 -07005392 _upb_Message_ClearNonExtensionField(msg, &field);
5393}
5394UPB_INLINE bool google_protobuf_ExtensionRangeOptions_Declaration_is_repeated(const google_protobuf_ExtensionRangeOptions_Declaration* msg) {
5395 bool default_val = false;
5396 bool ret;
Jie Luo3560e232023-06-12 00:33:50 -07005397 const upb_MiniTableField field = {4, 8, 4, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Mike Kruskal145900f2023-03-27 09:55:52 -07005398 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
5399 return ret;
5400}
5401UPB_INLINE bool google_protobuf_ExtensionRangeOptions_Declaration_has_is_repeated(const google_protobuf_ExtensionRangeOptions_Declaration* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005402 const upb_MiniTableField field = {4, 8, 4, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Mike Kruskal145900f2023-03-27 09:55:52 -07005403 return _upb_Message_HasNonExtensionField(msg, &field);
5404}
Protobuf Team Bot41287bd2023-04-10 18:57:14 -07005405UPB_INLINE void google_protobuf_ExtensionRangeOptions_Declaration_clear_reserved(google_protobuf_ExtensionRangeOptions_Declaration* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005406 const upb_MiniTableField field = {5, 9, 5, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Protobuf Team Bot41287bd2023-04-10 18:57:14 -07005407 _upb_Message_ClearNonExtensionField(msg, &field);
5408}
5409UPB_INLINE bool google_protobuf_ExtensionRangeOptions_Declaration_reserved(const google_protobuf_ExtensionRangeOptions_Declaration* msg) {
5410 bool default_val = false;
5411 bool ret;
Jie Luo3560e232023-06-12 00:33:50 -07005412 const upb_MiniTableField field = {5, 9, 5, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Protobuf Team Bot41287bd2023-04-10 18:57:14 -07005413 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
5414 return ret;
5415}
5416UPB_INLINE bool google_protobuf_ExtensionRangeOptions_Declaration_has_reserved(const google_protobuf_ExtensionRangeOptions_Declaration* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005417 const upb_MiniTableField field = {5, 9, 5, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Protobuf Team Bot41287bd2023-04-10 18:57:14 -07005418 return _upb_Message_HasNonExtensionField(msg, &field);
5419}
Protobuf Team Bot469f0272023-04-21 18:12:45 -07005420UPB_INLINE void google_protobuf_ExtensionRangeOptions_Declaration_clear_repeated(google_protobuf_ExtensionRangeOptions_Declaration* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005421 const upb_MiniTableField field = {6, 10, 6, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Protobuf Team Bot469f0272023-04-21 18:12:45 -07005422 _upb_Message_ClearNonExtensionField(msg, &field);
5423}
5424UPB_INLINE bool google_protobuf_ExtensionRangeOptions_Declaration_repeated(const google_protobuf_ExtensionRangeOptions_Declaration* msg) {
5425 bool default_val = false;
5426 bool ret;
Jie Luo3560e232023-06-12 00:33:50 -07005427 const upb_MiniTableField field = {6, 10, 6, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Protobuf Team Bot469f0272023-04-21 18:12:45 -07005428 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
5429 return ret;
5430}
5431UPB_INLINE bool google_protobuf_ExtensionRangeOptions_Declaration_has_repeated(const google_protobuf_ExtensionRangeOptions_Declaration* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005432 const upb_MiniTableField field = {6, 10, 6, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Protobuf Team Bot469f0272023-04-21 18:12:45 -07005433 return _upb_Message_HasNonExtensionField(msg, &field);
5434}
Mike Kruskal145900f2023-03-27 09:55:52 -07005435
5436UPB_INLINE void google_protobuf_ExtensionRangeOptions_Declaration_set_number(google_protobuf_ExtensionRangeOptions_Declaration *msg, int32_t value) {
Jie Luo3560e232023-06-12 00:33:50 -07005437 const upb_MiniTableField field = {1, 4, 1, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Mike Kruskal145900f2023-03-27 09:55:52 -07005438 _upb_Message_SetNonExtensionField(msg, &field, &value);
5439}
5440UPB_INLINE void google_protobuf_ExtensionRangeOptions_Declaration_set_full_name(google_protobuf_ExtensionRangeOptions_Declaration *msg, upb_StringView value) {
Jie Luo3560e232023-06-12 00:33:50 -07005441 const upb_MiniTableField field = {2, UPB_SIZE(12, 16), 2, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Mike Kruskal145900f2023-03-27 09:55:52 -07005442 _upb_Message_SetNonExtensionField(msg, &field, &value);
5443}
5444UPB_INLINE void google_protobuf_ExtensionRangeOptions_Declaration_set_type(google_protobuf_ExtensionRangeOptions_Declaration *msg, upb_StringView value) {
Jie Luo3560e232023-06-12 00:33:50 -07005445 const upb_MiniTableField field = {3, UPB_SIZE(20, 32), 3, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Mike Kruskal145900f2023-03-27 09:55:52 -07005446 _upb_Message_SetNonExtensionField(msg, &field, &value);
5447}
5448UPB_INLINE void google_protobuf_ExtensionRangeOptions_Declaration_set_is_repeated(google_protobuf_ExtensionRangeOptions_Declaration *msg, bool value) {
Jie Luo3560e232023-06-12 00:33:50 -07005449 const upb_MiniTableField field = {4, 8, 4, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Mike Kruskal145900f2023-03-27 09:55:52 -07005450 _upb_Message_SetNonExtensionField(msg, &field, &value);
5451}
Protobuf Team Bot41287bd2023-04-10 18:57:14 -07005452UPB_INLINE void google_protobuf_ExtensionRangeOptions_Declaration_set_reserved(google_protobuf_ExtensionRangeOptions_Declaration *msg, bool value) {
Jie Luo3560e232023-06-12 00:33:50 -07005453 const upb_MiniTableField field = {5, 9, 5, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Protobuf Team Bot41287bd2023-04-10 18:57:14 -07005454 _upb_Message_SetNonExtensionField(msg, &field, &value);
5455}
Protobuf Team Bot469f0272023-04-21 18:12:45 -07005456UPB_INLINE void google_protobuf_ExtensionRangeOptions_Declaration_set_repeated(google_protobuf_ExtensionRangeOptions_Declaration *msg, bool value) {
Jie Luo3560e232023-06-12 00:33:50 -07005457 const upb_MiniTableField field = {6, 10, 6, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Protobuf Team Bot469f0272023-04-21 18:12:45 -07005458 _upb_Message_SetNonExtensionField(msg, &field, &value);
5459}
Mike Kruskal145900f2023-03-27 09:55:52 -07005460
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005461/* google.protobuf.FieldDescriptorProto */
5462
Joshua Habermanf41049a2022-01-21 14:41:25 -08005463UPB_INLINE google_protobuf_FieldDescriptorProto* google_protobuf_FieldDescriptorProto_new(upb_Arena* arena) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07005464 return (google_protobuf_FieldDescriptorProto*)_upb_Message_New(&google_protobuf_FieldDescriptorProto_msg_init, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005465}
Joshua Habermanf41049a2022-01-21 14:41:25 -08005466UPB_INLINE google_protobuf_FieldDescriptorProto* google_protobuf_FieldDescriptorProto_parse(const char* buf, size_t size, upb_Arena* arena) {
5467 google_protobuf_FieldDescriptorProto* ret = google_protobuf_FieldDescriptorProto_new(arena);
Joshua Haberman9d578a32021-08-02 15:32:01 -07005468 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07005469 if (upb_Decode(buf, size, ret, &google_protobuf_FieldDescriptorProto_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
Joshua Haberman9d578a32021-08-02 15:32:01 -07005470 return NULL;
5471 }
5472 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005473}
Joshua Habermanf41049a2022-01-21 14:41:25 -08005474UPB_INLINE google_protobuf_FieldDescriptorProto* google_protobuf_FieldDescriptorProto_parse_ex(const char* buf, size_t size,
5475 const upb_ExtensionRegistry* extreg,
5476 int options, upb_Arena* arena) {
5477 google_protobuf_FieldDescriptorProto* ret = google_protobuf_FieldDescriptorProto_new(arena);
5478 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07005479 if (upb_Decode(buf, size, ret, &google_protobuf_FieldDescriptorProto_msg_init, extreg, options, arena) !=
Joshua Habermanf41049a2022-01-21 14:41:25 -08005480 kUpb_DecodeStatus_Ok) {
5481 return NULL;
5482 }
5483 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005484}
Joshua Habermanf41049a2022-01-21 14:41:25 -08005485UPB_INLINE char* google_protobuf_FieldDescriptorProto_serialize(const google_protobuf_FieldDescriptorProto* msg, upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07005486 char* ptr;
5487 (void)upb_Encode(msg, &google_protobuf_FieldDescriptorProto_msg_init, 0, arena, &ptr, len);
5488 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08005489}
5490UPB_INLINE char* google_protobuf_FieldDescriptorProto_serialize_ex(const google_protobuf_FieldDescriptorProto* msg, int options,
5491 upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07005492 char* ptr;
5493 (void)upb_Encode(msg, &google_protobuf_FieldDescriptorProto_msg_init, options, arena, &ptr, len);
5494 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08005495}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005496UPB_INLINE void google_protobuf_FieldDescriptorProto_clear_name(google_protobuf_FieldDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005497 const upb_MiniTableField field = {1, UPB_SIZE(28, 24), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005498 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07005499}
Joshua Habermanf41049a2022-01-21 14:41:25 -08005500UPB_INLINE upb_StringView google_protobuf_FieldDescriptorProto_name(const google_protobuf_FieldDescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08005501 upb_StringView default_val = upb_StringView_FromString("");
5502 upb_StringView ret;
Jie Luo3560e232023-06-12 00:33:50 -07005503 const upb_MiniTableField field = {1, UPB_SIZE(28, 24), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005504 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08005505 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005506}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005507UPB_INLINE bool google_protobuf_FieldDescriptorProto_has_name(const google_protobuf_FieldDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005508 const upb_MiniTableField field = {1, UPB_SIZE(28, 24), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005509 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07005510}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005511UPB_INLINE void google_protobuf_FieldDescriptorProto_clear_extendee(google_protobuf_FieldDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005512 const upb_MiniTableField field = {2, UPB_SIZE(36, 40), 2, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005513 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07005514}
Joshua Habermanf41049a2022-01-21 14:41:25 -08005515UPB_INLINE upb_StringView google_protobuf_FieldDescriptorProto_extendee(const google_protobuf_FieldDescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08005516 upb_StringView default_val = upb_StringView_FromString("");
5517 upb_StringView ret;
Jie Luo3560e232023-06-12 00:33:50 -07005518 const upb_MiniTableField field = {2, UPB_SIZE(36, 40), 2, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005519 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08005520 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08005521}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005522UPB_INLINE bool google_protobuf_FieldDescriptorProto_has_extendee(const google_protobuf_FieldDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005523 const upb_MiniTableField field = {2, UPB_SIZE(36, 40), 2, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005524 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07005525}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005526UPB_INLINE void google_protobuf_FieldDescriptorProto_clear_number(google_protobuf_FieldDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005527 const upb_MiniTableField field = {3, 4, 3, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005528 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07005529}
Joshua Habermanf41049a2022-01-21 14:41:25 -08005530UPB_INLINE int32_t google_protobuf_FieldDescriptorProto_number(const google_protobuf_FieldDescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08005531 int32_t default_val = (int32_t)0;
5532 int32_t ret;
Jie Luo3560e232023-06-12 00:33:50 -07005533 const upb_MiniTableField field = {3, 4, 3, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005534 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08005535 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08005536}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005537UPB_INLINE bool google_protobuf_FieldDescriptorProto_has_number(const google_protobuf_FieldDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005538 const upb_MiniTableField field = {3, 4, 3, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005539 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07005540}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005541UPB_INLINE void google_protobuf_FieldDescriptorProto_clear_label(google_protobuf_FieldDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005542 const upb_MiniTableField field = {4, 8, 4, 1, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005543 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07005544}
Joshua Habermanf41049a2022-01-21 14:41:25 -08005545UPB_INLINE int32_t google_protobuf_FieldDescriptorProto_label(const google_protobuf_FieldDescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08005546 int32_t default_val = 1;
5547 int32_t ret;
Jie Luo3560e232023-06-12 00:33:50 -07005548 const upb_MiniTableField field = {4, 8, 4, 1, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005549 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08005550 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08005551}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005552UPB_INLINE bool google_protobuf_FieldDescriptorProto_has_label(const google_protobuf_FieldDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005553 const upb_MiniTableField field = {4, 8, 4, 1, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005554 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07005555}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005556UPB_INLINE void google_protobuf_FieldDescriptorProto_clear_type(google_protobuf_FieldDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005557 const upb_MiniTableField field = {5, 12, 5, 2, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005558 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07005559}
Joshua Habermanf41049a2022-01-21 14:41:25 -08005560UPB_INLINE int32_t google_protobuf_FieldDescriptorProto_type(const google_protobuf_FieldDescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08005561 int32_t default_val = 1;
5562 int32_t ret;
Jie Luo3560e232023-06-12 00:33:50 -07005563 const upb_MiniTableField field = {5, 12, 5, 2, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005564 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08005565 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08005566}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005567UPB_INLINE bool google_protobuf_FieldDescriptorProto_has_type(const google_protobuf_FieldDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005568 const upb_MiniTableField field = {5, 12, 5, 2, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005569 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07005570}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005571UPB_INLINE void google_protobuf_FieldDescriptorProto_clear_type_name(google_protobuf_FieldDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005572 const upb_MiniTableField field = {6, UPB_SIZE(44, 56), 6, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005573 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07005574}
Joshua Habermanf41049a2022-01-21 14:41:25 -08005575UPB_INLINE upb_StringView google_protobuf_FieldDescriptorProto_type_name(const google_protobuf_FieldDescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08005576 upb_StringView default_val = upb_StringView_FromString("");
5577 upb_StringView ret;
Jie Luo3560e232023-06-12 00:33:50 -07005578 const upb_MiniTableField field = {6, UPB_SIZE(44, 56), 6, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005579 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08005580 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08005581}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005582UPB_INLINE bool google_protobuf_FieldDescriptorProto_has_type_name(const google_protobuf_FieldDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005583 const upb_MiniTableField field = {6, UPB_SIZE(44, 56), 6, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005584 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07005585}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005586UPB_INLINE void google_protobuf_FieldDescriptorProto_clear_default_value(google_protobuf_FieldDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005587 const upb_MiniTableField field = {7, UPB_SIZE(52, 72), 7, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005588 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07005589}
Joshua Habermanf41049a2022-01-21 14:41:25 -08005590UPB_INLINE upb_StringView google_protobuf_FieldDescriptorProto_default_value(const google_protobuf_FieldDescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08005591 upb_StringView default_val = upb_StringView_FromString("");
5592 upb_StringView ret;
Jie Luo3560e232023-06-12 00:33:50 -07005593 const upb_MiniTableField field = {7, UPB_SIZE(52, 72), 7, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005594 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08005595 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08005596}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005597UPB_INLINE bool google_protobuf_FieldDescriptorProto_has_default_value(const google_protobuf_FieldDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005598 const upb_MiniTableField field = {7, UPB_SIZE(52, 72), 7, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005599 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07005600}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005601UPB_INLINE void google_protobuf_FieldDescriptorProto_clear_options(google_protobuf_FieldDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005602 const upb_MiniTableField field = {8, UPB_SIZE(16, 88), 8, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005603 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07005604}
Joshua Habermanf41049a2022-01-21 14:41:25 -08005605UPB_INLINE const google_protobuf_FieldOptions* google_protobuf_FieldDescriptorProto_options(const google_protobuf_FieldDescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08005606 const google_protobuf_FieldOptions* default_val = NULL;
5607 const google_protobuf_FieldOptions* ret;
Jie Luo3560e232023-06-12 00:33:50 -07005608 const upb_MiniTableField field = {8, UPB_SIZE(16, 88), 8, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005609 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08005610 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08005611}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005612UPB_INLINE bool google_protobuf_FieldDescriptorProto_has_options(const google_protobuf_FieldDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005613 const upb_MiniTableField field = {8, UPB_SIZE(16, 88), 8, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005614 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07005615}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005616UPB_INLINE void google_protobuf_FieldDescriptorProto_clear_oneof_index(google_protobuf_FieldDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005617 const upb_MiniTableField field = {9, UPB_SIZE(20, 16), 9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005618 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07005619}
Joshua Habermanf41049a2022-01-21 14:41:25 -08005620UPB_INLINE int32_t google_protobuf_FieldDescriptorProto_oneof_index(const google_protobuf_FieldDescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08005621 int32_t default_val = (int32_t)0;
5622 int32_t ret;
Jie Luo3560e232023-06-12 00:33:50 -07005623 const upb_MiniTableField field = {9, UPB_SIZE(20, 16), 9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005624 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08005625 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08005626}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005627UPB_INLINE bool google_protobuf_FieldDescriptorProto_has_oneof_index(const google_protobuf_FieldDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005628 const upb_MiniTableField field = {9, UPB_SIZE(20, 16), 9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005629 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07005630}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005631UPB_INLINE void google_protobuf_FieldDescriptorProto_clear_json_name(google_protobuf_FieldDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005632 const upb_MiniTableField field = {10, UPB_SIZE(60, 96), 10, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005633 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07005634}
Joshua Habermanf41049a2022-01-21 14:41:25 -08005635UPB_INLINE upb_StringView google_protobuf_FieldDescriptorProto_json_name(const google_protobuf_FieldDescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08005636 upb_StringView default_val = upb_StringView_FromString("");
5637 upb_StringView ret;
Jie Luo3560e232023-06-12 00:33:50 -07005638 const upb_MiniTableField field = {10, UPB_SIZE(60, 96), 10, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005639 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08005640 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08005641}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005642UPB_INLINE bool google_protobuf_FieldDescriptorProto_has_json_name(const google_protobuf_FieldDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005643 const upb_MiniTableField field = {10, UPB_SIZE(60, 96), 10, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005644 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07005645}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005646UPB_INLINE void google_protobuf_FieldDescriptorProto_clear_proto3_optional(google_protobuf_FieldDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005647 const upb_MiniTableField field = {17, UPB_SIZE(24, 20), 11, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005648 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07005649}
Joshua Habermanf41049a2022-01-21 14:41:25 -08005650UPB_INLINE bool google_protobuf_FieldDescriptorProto_proto3_optional(const google_protobuf_FieldDescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08005651 bool default_val = false;
5652 bool ret;
Jie Luo3560e232023-06-12 00:33:50 -07005653 const upb_MiniTableField field = {17, UPB_SIZE(24, 20), 11, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005654 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08005655 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08005656}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005657UPB_INLINE bool google_protobuf_FieldDescriptorProto_has_proto3_optional(const google_protobuf_FieldDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005658 const upb_MiniTableField field = {17, UPB_SIZE(24, 20), 11, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005659 return _upb_Message_HasNonExtensionField(msg, &field);
Mike Kruskal3bc50492022-12-01 13:34:12 -08005660}
Joshua Habermanf41049a2022-01-21 14:41:25 -08005661
5662UPB_INLINE void google_protobuf_FieldDescriptorProto_set_name(google_protobuf_FieldDescriptorProto *msg, upb_StringView value) {
Jie Luo3560e232023-06-12 00:33:50 -07005663 const upb_MiniTableField field = {1, UPB_SIZE(28, 24), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005664 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08005665}
5666UPB_INLINE void google_protobuf_FieldDescriptorProto_set_extendee(google_protobuf_FieldDescriptorProto *msg, upb_StringView value) {
Jie Luo3560e232023-06-12 00:33:50 -07005667 const upb_MiniTableField field = {2, UPB_SIZE(36, 40), 2, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005668 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08005669}
5670UPB_INLINE void google_protobuf_FieldDescriptorProto_set_number(google_protobuf_FieldDescriptorProto *msg, int32_t value) {
Jie Luo3560e232023-06-12 00:33:50 -07005671 const upb_MiniTableField field = {3, 4, 3, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005672 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08005673}
5674UPB_INLINE void google_protobuf_FieldDescriptorProto_set_label(google_protobuf_FieldDescriptorProto *msg, int32_t value) {
Jie Luo3560e232023-06-12 00:33:50 -07005675 const upb_MiniTableField field = {4, 8, 4, 1, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005676 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08005677}
5678UPB_INLINE void google_protobuf_FieldDescriptorProto_set_type(google_protobuf_FieldDescriptorProto *msg, int32_t value) {
Jie Luo3560e232023-06-12 00:33:50 -07005679 const upb_MiniTableField field = {5, 12, 5, 2, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005680 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08005681}
5682UPB_INLINE void google_protobuf_FieldDescriptorProto_set_type_name(google_protobuf_FieldDescriptorProto *msg, upb_StringView value) {
Jie Luo3560e232023-06-12 00:33:50 -07005683 const upb_MiniTableField field = {6, UPB_SIZE(44, 56), 6, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005684 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08005685}
5686UPB_INLINE void google_protobuf_FieldDescriptorProto_set_default_value(google_protobuf_FieldDescriptorProto *msg, upb_StringView value) {
Jie Luo3560e232023-06-12 00:33:50 -07005687 const upb_MiniTableField field = {7, UPB_SIZE(52, 72), 7, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005688 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08005689}
5690UPB_INLINE void google_protobuf_FieldDescriptorProto_set_options(google_protobuf_FieldDescriptorProto *msg, google_protobuf_FieldOptions* value) {
Jie Luo3560e232023-06-12 00:33:50 -07005691 const upb_MiniTableField field = {8, UPB_SIZE(16, 88), 8, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005692 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08005693}
5694UPB_INLINE struct google_protobuf_FieldOptions* google_protobuf_FieldDescriptorProto_mutable_options(google_protobuf_FieldDescriptorProto* msg, upb_Arena* arena) {
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005695 struct google_protobuf_FieldOptions* sub = (struct google_protobuf_FieldOptions*)google_protobuf_FieldDescriptorProto_options(msg);
5696 if (sub == NULL) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07005697 sub = (struct google_protobuf_FieldOptions*)_upb_Message_New(&google_protobuf_FieldOptions_msg_init, arena);
Eric Salo8809a112022-11-21 13:01:06 -08005698 if (sub) google_protobuf_FieldDescriptorProto_set_options(msg, sub);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005699 }
5700 return sub;
5701}
5702UPB_INLINE void google_protobuf_FieldDescriptorProto_set_oneof_index(google_protobuf_FieldDescriptorProto *msg, int32_t value) {
Jie Luo3560e232023-06-12 00:33:50 -07005703 const upb_MiniTableField field = {9, UPB_SIZE(20, 16), 9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005704 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08005705}
5706UPB_INLINE void google_protobuf_FieldDescriptorProto_set_json_name(google_protobuf_FieldDescriptorProto *msg, upb_StringView value) {
Jie Luo3560e232023-06-12 00:33:50 -07005707 const upb_MiniTableField field = {10, UPB_SIZE(60, 96), 10, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005708 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08005709}
5710UPB_INLINE void google_protobuf_FieldDescriptorProto_set_proto3_optional(google_protobuf_FieldDescriptorProto *msg, bool value) {
Jie Luo3560e232023-06-12 00:33:50 -07005711 const upb_MiniTableField field = {17, UPB_SIZE(24, 20), 11, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005712 _upb_Message_SetNonExtensionField(msg, &field, &value);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005713}
Mike Kruskal232ecf42023-01-14 00:09:40 -08005714
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005715/* google.protobuf.OneofDescriptorProto */
5716
Joshua Habermanf41049a2022-01-21 14:41:25 -08005717UPB_INLINE google_protobuf_OneofDescriptorProto* google_protobuf_OneofDescriptorProto_new(upb_Arena* arena) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07005718 return (google_protobuf_OneofDescriptorProto*)_upb_Message_New(&google_protobuf_OneofDescriptorProto_msg_init, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005719}
Joshua Habermanf41049a2022-01-21 14:41:25 -08005720UPB_INLINE google_protobuf_OneofDescriptorProto* google_protobuf_OneofDescriptorProto_parse(const char* buf, size_t size, upb_Arena* arena) {
5721 google_protobuf_OneofDescriptorProto* ret = google_protobuf_OneofDescriptorProto_new(arena);
Joshua Haberman9d578a32021-08-02 15:32:01 -07005722 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07005723 if (upb_Decode(buf, size, ret, &google_protobuf_OneofDescriptorProto_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
Joshua Haberman9d578a32021-08-02 15:32:01 -07005724 return NULL;
5725 }
5726 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005727}
Joshua Habermanf41049a2022-01-21 14:41:25 -08005728UPB_INLINE google_protobuf_OneofDescriptorProto* google_protobuf_OneofDescriptorProto_parse_ex(const char* buf, size_t size,
5729 const upb_ExtensionRegistry* extreg,
5730 int options, upb_Arena* arena) {
5731 google_protobuf_OneofDescriptorProto* ret = google_protobuf_OneofDescriptorProto_new(arena);
5732 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07005733 if (upb_Decode(buf, size, ret, &google_protobuf_OneofDescriptorProto_msg_init, extreg, options, arena) !=
Joshua Habermanf41049a2022-01-21 14:41:25 -08005734 kUpb_DecodeStatus_Ok) {
5735 return NULL;
5736 }
5737 return ret;
5738}
5739UPB_INLINE char* google_protobuf_OneofDescriptorProto_serialize(const google_protobuf_OneofDescriptorProto* msg, upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07005740 char* ptr;
5741 (void)upb_Encode(msg, &google_protobuf_OneofDescriptorProto_msg_init, 0, arena, &ptr, len);
5742 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08005743}
5744UPB_INLINE char* google_protobuf_OneofDescriptorProto_serialize_ex(const google_protobuf_OneofDescriptorProto* msg, int options,
5745 upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07005746 char* ptr;
5747 (void)upb_Encode(msg, &google_protobuf_OneofDescriptorProto_msg_init, options, arena, &ptr, len);
5748 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08005749}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005750UPB_INLINE void google_protobuf_OneofDescriptorProto_clear_name(google_protobuf_OneofDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005751 const upb_MiniTableField field = {1, 8, 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005752 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07005753}
Joshua Habermanf41049a2022-01-21 14:41:25 -08005754UPB_INLINE upb_StringView google_protobuf_OneofDescriptorProto_name(const google_protobuf_OneofDescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08005755 upb_StringView default_val = upb_StringView_FromString("");
5756 upb_StringView ret;
Jie Luo3560e232023-06-12 00:33:50 -07005757 const upb_MiniTableField field = {1, 8, 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005758 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08005759 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08005760}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005761UPB_INLINE bool google_protobuf_OneofDescriptorProto_has_name(const google_protobuf_OneofDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005762 const upb_MiniTableField field = {1, 8, 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005763 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07005764}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005765UPB_INLINE void google_protobuf_OneofDescriptorProto_clear_options(google_protobuf_OneofDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005766 const upb_MiniTableField field = {2, UPB_SIZE(4, 24), 2, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005767 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07005768}
Joshua Habermanf41049a2022-01-21 14:41:25 -08005769UPB_INLINE const google_protobuf_OneofOptions* google_protobuf_OneofDescriptorProto_options(const google_protobuf_OneofDescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08005770 const google_protobuf_OneofOptions* default_val = NULL;
5771 const google_protobuf_OneofOptions* ret;
Jie Luo3560e232023-06-12 00:33:50 -07005772 const upb_MiniTableField field = {2, UPB_SIZE(4, 24), 2, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005773 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08005774 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005775}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005776UPB_INLINE bool google_protobuf_OneofDescriptorProto_has_options(const google_protobuf_OneofDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005777 const upb_MiniTableField field = {2, UPB_SIZE(4, 24), 2, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005778 return _upb_Message_HasNonExtensionField(msg, &field);
Mike Kruskal3bc50492022-12-01 13:34:12 -08005779}
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005780
Joshua Habermanf41049a2022-01-21 14:41:25 -08005781UPB_INLINE void google_protobuf_OneofDescriptorProto_set_name(google_protobuf_OneofDescriptorProto *msg, upb_StringView value) {
Jie Luo3560e232023-06-12 00:33:50 -07005782 const upb_MiniTableField field = {1, 8, 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005783 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08005784}
5785UPB_INLINE void google_protobuf_OneofDescriptorProto_set_options(google_protobuf_OneofDescriptorProto *msg, google_protobuf_OneofOptions* value) {
Jie Luo3560e232023-06-12 00:33:50 -07005786 const upb_MiniTableField field = {2, UPB_SIZE(4, 24), 2, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005787 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08005788}
5789UPB_INLINE struct google_protobuf_OneofOptions* google_protobuf_OneofDescriptorProto_mutable_options(google_protobuf_OneofDescriptorProto* msg, upb_Arena* arena) {
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005790 struct google_protobuf_OneofOptions* sub = (struct google_protobuf_OneofOptions*)google_protobuf_OneofDescriptorProto_options(msg);
5791 if (sub == NULL) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07005792 sub = (struct google_protobuf_OneofOptions*)_upb_Message_New(&google_protobuf_OneofOptions_msg_init, arena);
Eric Salo8809a112022-11-21 13:01:06 -08005793 if (sub) google_protobuf_OneofDescriptorProto_set_options(msg, sub);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005794 }
5795 return sub;
5796}
5797
5798/* google.protobuf.EnumDescriptorProto */
5799
Joshua Habermanf41049a2022-01-21 14:41:25 -08005800UPB_INLINE google_protobuf_EnumDescriptorProto* google_protobuf_EnumDescriptorProto_new(upb_Arena* arena) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07005801 return (google_protobuf_EnumDescriptorProto*)_upb_Message_New(&google_protobuf_EnumDescriptorProto_msg_init, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005802}
Joshua Habermanf41049a2022-01-21 14:41:25 -08005803UPB_INLINE google_protobuf_EnumDescriptorProto* google_protobuf_EnumDescriptorProto_parse(const char* buf, size_t size, upb_Arena* arena) {
5804 google_protobuf_EnumDescriptorProto* ret = google_protobuf_EnumDescriptorProto_new(arena);
Joshua Haberman9d578a32021-08-02 15:32:01 -07005805 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07005806 if (upb_Decode(buf, size, ret, &google_protobuf_EnumDescriptorProto_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
Joshua Haberman9d578a32021-08-02 15:32:01 -07005807 return NULL;
5808 }
5809 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005810}
Joshua Habermanf41049a2022-01-21 14:41:25 -08005811UPB_INLINE google_protobuf_EnumDescriptorProto* google_protobuf_EnumDescriptorProto_parse_ex(const char* buf, size_t size,
5812 const upb_ExtensionRegistry* extreg,
5813 int options, upb_Arena* arena) {
5814 google_protobuf_EnumDescriptorProto* ret = google_protobuf_EnumDescriptorProto_new(arena);
5815 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07005816 if (upb_Decode(buf, size, ret, &google_protobuf_EnumDescriptorProto_msg_init, extreg, options, arena) !=
Joshua Habermanf41049a2022-01-21 14:41:25 -08005817 kUpb_DecodeStatus_Ok) {
5818 return NULL;
5819 }
5820 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005821}
Joshua Habermanf41049a2022-01-21 14:41:25 -08005822UPB_INLINE char* google_protobuf_EnumDescriptorProto_serialize(const google_protobuf_EnumDescriptorProto* msg, upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07005823 char* ptr;
5824 (void)upb_Encode(msg, &google_protobuf_EnumDescriptorProto_msg_init, 0, arena, &ptr, len);
5825 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08005826}
5827UPB_INLINE char* google_protobuf_EnumDescriptorProto_serialize_ex(const google_protobuf_EnumDescriptorProto* msg, int options,
5828 upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07005829 char* ptr;
5830 (void)upb_Encode(msg, &google_protobuf_EnumDescriptorProto_msg_init, options, arena, &ptr, len);
5831 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08005832}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005833UPB_INLINE void google_protobuf_EnumDescriptorProto_clear_name(google_protobuf_EnumDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005834 const upb_MiniTableField field = {1, UPB_SIZE(20, 8), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005835 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07005836}
Joshua Habermanf41049a2022-01-21 14:41:25 -08005837UPB_INLINE upb_StringView google_protobuf_EnumDescriptorProto_name(const google_protobuf_EnumDescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08005838 upb_StringView default_val = upb_StringView_FromString("");
5839 upb_StringView ret;
Jie Luo3560e232023-06-12 00:33:50 -07005840 const upb_MiniTableField field = {1, UPB_SIZE(20, 8), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005841 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08005842 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08005843}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005844UPB_INLINE bool google_protobuf_EnumDescriptorProto_has_name(const google_protobuf_EnumDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005845 const upb_MiniTableField field = {1, UPB_SIZE(20, 8), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005846 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07005847}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005848UPB_INLINE void google_protobuf_EnumDescriptorProto_clear_value(google_protobuf_EnumDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005849 const upb_MiniTableField field = {2, UPB_SIZE(4, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005850 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07005851}
Eric Salob7d54ac2022-12-29 11:59:42 -08005852UPB_INLINE const google_protobuf_EnumValueDescriptorProto* const* google_protobuf_EnumDescriptorProto_value(const google_protobuf_EnumDescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07005853 const upb_MiniTableField field = {2, UPB_SIZE(4, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08005854 const upb_Array* arr = upb_Message_GetArray(msg, &field);
5855 if (arr) {
5856 if (size) *size = arr->size;
5857 return (const google_protobuf_EnumValueDescriptorProto* const*)_upb_array_constptr(arr);
5858 } else {
5859 if (size) *size = 0;
5860 return NULL;
5861 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07005862}
Deanna Garciab26afb52023-04-25 13:37:18 -07005863UPB_INLINE const upb_Array* _google_protobuf_EnumDescriptorProto_value_upb_array(const google_protobuf_EnumDescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07005864 const upb_MiniTableField field = {2, UPB_SIZE(4, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07005865 const upb_Array* arr = upb_Message_GetArray(msg, &field);
5866 if (size) {
5867 *size = arr ? arr->size : 0;
5868 }
5869 return arr;
5870}
5871UPB_INLINE upb_Array* _google_protobuf_EnumDescriptorProto_value_mutable_upb_array(const google_protobuf_EnumDescriptorProto* msg, size_t* size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07005872 const upb_MiniTableField field = {2, UPB_SIZE(4, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07005873 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
5874 (upb_Message*)msg, &field, arena);
5875 if (size) {
5876 *size = arr ? arr->size : 0;
5877 }
5878 return arr;
5879}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005880UPB_INLINE bool google_protobuf_EnumDescriptorProto_has_value(const google_protobuf_EnumDescriptorProto* msg) {
5881 size_t size;
5882 google_protobuf_EnumDescriptorProto_value(msg, &size);
5883 return size != 0;
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07005884}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005885UPB_INLINE void google_protobuf_EnumDescriptorProto_clear_options(google_protobuf_EnumDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005886 const upb_MiniTableField field = {3, UPB_SIZE(8, 32), 2, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005887 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07005888}
Joshua Habermanf41049a2022-01-21 14:41:25 -08005889UPB_INLINE const google_protobuf_EnumOptions* google_protobuf_EnumDescriptorProto_options(const google_protobuf_EnumDescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08005890 const google_protobuf_EnumOptions* default_val = NULL;
5891 const google_protobuf_EnumOptions* ret;
Jie Luo3560e232023-06-12 00:33:50 -07005892 const upb_MiniTableField field = {3, UPB_SIZE(8, 32), 2, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005893 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08005894 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08005895}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005896UPB_INLINE bool google_protobuf_EnumDescriptorProto_has_options(const google_protobuf_EnumDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005897 const upb_MiniTableField field = {3, UPB_SIZE(8, 32), 2, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005898 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07005899}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005900UPB_INLINE void google_protobuf_EnumDescriptorProto_clear_reserved_range(google_protobuf_EnumDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005901 const upb_MiniTableField field = {4, UPB_SIZE(12, 40), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005902 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07005903}
Eric Salob7d54ac2022-12-29 11:59:42 -08005904UPB_INLINE const google_protobuf_EnumDescriptorProto_EnumReservedRange* const* google_protobuf_EnumDescriptorProto_reserved_range(const google_protobuf_EnumDescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07005905 const upb_MiniTableField field = {4, UPB_SIZE(12, 40), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08005906 const upb_Array* arr = upb_Message_GetArray(msg, &field);
5907 if (arr) {
5908 if (size) *size = arr->size;
5909 return (const google_protobuf_EnumDescriptorProto_EnumReservedRange* const*)_upb_array_constptr(arr);
5910 } else {
5911 if (size) *size = 0;
5912 return NULL;
5913 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07005914}
Deanna Garciab26afb52023-04-25 13:37:18 -07005915UPB_INLINE const upb_Array* _google_protobuf_EnumDescriptorProto_reserved_range_upb_array(const google_protobuf_EnumDescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07005916 const upb_MiniTableField field = {4, UPB_SIZE(12, 40), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07005917 const upb_Array* arr = upb_Message_GetArray(msg, &field);
5918 if (size) {
5919 *size = arr ? arr->size : 0;
5920 }
5921 return arr;
5922}
5923UPB_INLINE upb_Array* _google_protobuf_EnumDescriptorProto_reserved_range_mutable_upb_array(const google_protobuf_EnumDescriptorProto* msg, size_t* size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07005924 const upb_MiniTableField field = {4, UPB_SIZE(12, 40), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07005925 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
5926 (upb_Message*)msg, &field, arena);
5927 if (size) {
5928 *size = arr ? arr->size : 0;
5929 }
5930 return arr;
5931}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005932UPB_INLINE bool google_protobuf_EnumDescriptorProto_has_reserved_range(const google_protobuf_EnumDescriptorProto* msg) {
5933 size_t size;
5934 google_protobuf_EnumDescriptorProto_reserved_range(msg, &size);
5935 return size != 0;
5936}
5937UPB_INLINE void google_protobuf_EnumDescriptorProto_clear_reserved_name(google_protobuf_EnumDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07005938 const upb_MiniTableField field = {5, UPB_SIZE(16, 48), 0, kUpb_NoSub, 12, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005939 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07005940}
Eric Salob7d54ac2022-12-29 11:59:42 -08005941UPB_INLINE upb_StringView const* google_protobuf_EnumDescriptorProto_reserved_name(const google_protobuf_EnumDescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07005942 const upb_MiniTableField field = {5, UPB_SIZE(16, 48), 0, kUpb_NoSub, 12, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08005943 const upb_Array* arr = upb_Message_GetArray(msg, &field);
5944 if (arr) {
5945 if (size) *size = arr->size;
5946 return (upb_StringView const*)_upb_array_constptr(arr);
5947 } else {
5948 if (size) *size = 0;
5949 return NULL;
5950 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07005951}
Deanna Garciab26afb52023-04-25 13:37:18 -07005952UPB_INLINE const upb_Array* _google_protobuf_EnumDescriptorProto_reserved_name_upb_array(const google_protobuf_EnumDescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07005953 const upb_MiniTableField field = {5, UPB_SIZE(16, 48), 0, kUpb_NoSub, 12, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07005954 const upb_Array* arr = upb_Message_GetArray(msg, &field);
5955 if (size) {
5956 *size = arr ? arr->size : 0;
5957 }
5958 return arr;
5959}
5960UPB_INLINE upb_Array* _google_protobuf_EnumDescriptorProto_reserved_name_mutable_upb_array(const google_protobuf_EnumDescriptorProto* msg, size_t* size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07005961 const upb_MiniTableField field = {5, UPB_SIZE(16, 48), 0, kUpb_NoSub, 12, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07005962 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
5963 (upb_Message*)msg, &field, arena);
5964 if (size) {
5965 *size = arr ? arr->size : 0;
5966 }
5967 return arr;
5968}
Mike Kruskal3bc50492022-12-01 13:34:12 -08005969UPB_INLINE bool google_protobuf_EnumDescriptorProto_has_reserved_name(const google_protobuf_EnumDescriptorProto* msg) {
5970 size_t size;
5971 google_protobuf_EnumDescriptorProto_reserved_name(msg, &size);
5972 return size != 0;
5973}
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005974
Joshua Habermanf41049a2022-01-21 14:41:25 -08005975UPB_INLINE void google_protobuf_EnumDescriptorProto_set_name(google_protobuf_EnumDescriptorProto *msg, upb_StringView value) {
Jie Luo3560e232023-06-12 00:33:50 -07005976 const upb_MiniTableField field = {1, UPB_SIZE(20, 8), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08005977 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08005978}
5979UPB_INLINE google_protobuf_EnumValueDescriptorProto** google_protobuf_EnumDescriptorProto_mutable_value(google_protobuf_EnumDescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07005980 upb_MiniTableField field = {2, UPB_SIZE(4, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08005981 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
5982 if (arr) {
5983 if (size) *size = arr->size;
5984 return (google_protobuf_EnumValueDescriptorProto**)_upb_array_ptr(arr);
5985 } else {
5986 if (size) *size = 0;
5987 return NULL;
5988 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005989}
Eric Salob7d54ac2022-12-29 11:59:42 -08005990UPB_INLINE google_protobuf_EnumValueDescriptorProto** google_protobuf_EnumDescriptorProto_resize_value(google_protobuf_EnumDescriptorProto* msg, size_t size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07005991 upb_MiniTableField field = {2, UPB_SIZE(4, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07005992 return (google_protobuf_EnumValueDescriptorProto**)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08005993}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07005994UPB_INLINE struct google_protobuf_EnumValueDescriptorProto* google_protobuf_EnumDescriptorProto_add_value(google_protobuf_EnumDescriptorProto* msg, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07005995 upb_MiniTableField field = {2, UPB_SIZE(4, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08005996 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
5997 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
5998 return NULL;
5999 }
Joshua Habermand3995ec2022-09-30 16:54:39 -07006000 struct google_protobuf_EnumValueDescriptorProto* sub = (struct google_protobuf_EnumValueDescriptorProto*)_upb_Message_New(&google_protobuf_EnumValueDescriptorProto_msg_init, arena);
Eric Salob7d54ac2022-12-29 11:59:42 -08006001 if (!arr || !sub) return NULL;
6002 _upb_Array_Set(arr, arr->size - 1, &sub, sizeof(sub));
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006003 return sub;
6004}
6005UPB_INLINE void google_protobuf_EnumDescriptorProto_set_options(google_protobuf_EnumDescriptorProto *msg, google_protobuf_EnumOptions* value) {
Jie Luo3560e232023-06-12 00:33:50 -07006006 const upb_MiniTableField field = {3, UPB_SIZE(8, 32), 2, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006007 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08006008}
6009UPB_INLINE struct google_protobuf_EnumOptions* google_protobuf_EnumDescriptorProto_mutable_options(google_protobuf_EnumDescriptorProto* msg, upb_Arena* arena) {
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006010 struct google_protobuf_EnumOptions* sub = (struct google_protobuf_EnumOptions*)google_protobuf_EnumDescriptorProto_options(msg);
6011 if (sub == NULL) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07006012 sub = (struct google_protobuf_EnumOptions*)_upb_Message_New(&google_protobuf_EnumOptions_msg_init, arena);
Eric Salo8809a112022-11-21 13:01:06 -08006013 if (sub) google_protobuf_EnumDescriptorProto_set_options(msg, sub);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006014 }
6015 return sub;
6016}
Eric Salob7d54ac2022-12-29 11:59:42 -08006017UPB_INLINE google_protobuf_EnumDescriptorProto_EnumReservedRange** google_protobuf_EnumDescriptorProto_mutable_reserved_range(google_protobuf_EnumDescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07006018 upb_MiniTableField field = {4, UPB_SIZE(12, 40), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08006019 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
6020 if (arr) {
6021 if (size) *size = arr->size;
6022 return (google_protobuf_EnumDescriptorProto_EnumReservedRange**)_upb_array_ptr(arr);
6023 } else {
6024 if (size) *size = 0;
6025 return NULL;
6026 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006027}
Eric Salob7d54ac2022-12-29 11:59:42 -08006028UPB_INLINE google_protobuf_EnumDescriptorProto_EnumReservedRange** google_protobuf_EnumDescriptorProto_resize_reserved_range(google_protobuf_EnumDescriptorProto* msg, size_t size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07006029 upb_MiniTableField field = {4, UPB_SIZE(12, 40), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07006030 return (google_protobuf_EnumDescriptorProto_EnumReservedRange**)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006031}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006032UPB_INLINE struct google_protobuf_EnumDescriptorProto_EnumReservedRange* google_protobuf_EnumDescriptorProto_add_reserved_range(google_protobuf_EnumDescriptorProto* msg, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07006033 upb_MiniTableField field = {4, UPB_SIZE(12, 40), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08006034 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
6035 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
6036 return NULL;
6037 }
Joshua Habermand3995ec2022-09-30 16:54:39 -07006038 struct google_protobuf_EnumDescriptorProto_EnumReservedRange* sub = (struct google_protobuf_EnumDescriptorProto_EnumReservedRange*)_upb_Message_New(&google_protobuf_EnumDescriptorProto_EnumReservedRange_msg_init, arena);
Eric Salob7d54ac2022-12-29 11:59:42 -08006039 if (!arr || !sub) return NULL;
6040 _upb_Array_Set(arr, arr->size - 1, &sub, sizeof(sub));
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006041 return sub;
6042}
Eric Salob7d54ac2022-12-29 11:59:42 -08006043UPB_INLINE upb_StringView* google_protobuf_EnumDescriptorProto_mutable_reserved_name(google_protobuf_EnumDescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07006044 upb_MiniTableField field = {5, UPB_SIZE(16, 48), 0, kUpb_NoSub, 12, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08006045 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
6046 if (arr) {
6047 if (size) *size = arr->size;
6048 return (upb_StringView*)_upb_array_ptr(arr);
6049 } else {
6050 if (size) *size = 0;
6051 return NULL;
6052 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006053}
Eric Salob7d54ac2022-12-29 11:59:42 -08006054UPB_INLINE upb_StringView* google_protobuf_EnumDescriptorProto_resize_reserved_name(google_protobuf_EnumDescriptorProto* msg, size_t size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07006055 upb_MiniTableField field = {5, UPB_SIZE(16, 48), 0, kUpb_NoSub, 12, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07006056 return (upb_StringView*)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006057}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006058UPB_INLINE bool google_protobuf_EnumDescriptorProto_add_reserved_name(google_protobuf_EnumDescriptorProto* msg, upb_StringView val, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07006059 upb_MiniTableField field = {5, UPB_SIZE(16, 48), 0, kUpb_NoSub, 12, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08006060 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
6061 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
6062 return false;
6063 }
6064 _upb_Array_Set(arr, arr->size - 1, &val, sizeof(val));
6065 return true;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006066}
6067
6068/* google.protobuf.EnumDescriptorProto.EnumReservedRange */
6069
Joshua Habermanf41049a2022-01-21 14:41:25 -08006070UPB_INLINE google_protobuf_EnumDescriptorProto_EnumReservedRange* google_protobuf_EnumDescriptorProto_EnumReservedRange_new(upb_Arena* arena) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07006071 return (google_protobuf_EnumDescriptorProto_EnumReservedRange*)_upb_Message_New(&google_protobuf_EnumDescriptorProto_EnumReservedRange_msg_init, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006072}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006073UPB_INLINE google_protobuf_EnumDescriptorProto_EnumReservedRange* google_protobuf_EnumDescriptorProto_EnumReservedRange_parse(const char* buf, size_t size, upb_Arena* arena) {
6074 google_protobuf_EnumDescriptorProto_EnumReservedRange* ret = google_protobuf_EnumDescriptorProto_EnumReservedRange_new(arena);
Joshua Haberman9d578a32021-08-02 15:32:01 -07006075 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07006076 if (upb_Decode(buf, size, ret, &google_protobuf_EnumDescriptorProto_EnumReservedRange_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
Joshua Haberman9d578a32021-08-02 15:32:01 -07006077 return NULL;
6078 }
6079 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006080}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006081UPB_INLINE google_protobuf_EnumDescriptorProto_EnumReservedRange* google_protobuf_EnumDescriptorProto_EnumReservedRange_parse_ex(const char* buf, size_t size,
6082 const upb_ExtensionRegistry* extreg,
6083 int options, upb_Arena* arena) {
6084 google_protobuf_EnumDescriptorProto_EnumReservedRange* ret = google_protobuf_EnumDescriptorProto_EnumReservedRange_new(arena);
6085 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07006086 if (upb_Decode(buf, size, ret, &google_protobuf_EnumDescriptorProto_EnumReservedRange_msg_init, extreg, options, arena) !=
Joshua Habermanf41049a2022-01-21 14:41:25 -08006087 kUpb_DecodeStatus_Ok) {
6088 return NULL;
6089 }
6090 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006091}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006092UPB_INLINE char* google_protobuf_EnumDescriptorProto_EnumReservedRange_serialize(const google_protobuf_EnumDescriptorProto_EnumReservedRange* msg, upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07006093 char* ptr;
6094 (void)upb_Encode(msg, &google_protobuf_EnumDescriptorProto_EnumReservedRange_msg_init, 0, arena, &ptr, len);
6095 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006096}
6097UPB_INLINE char* google_protobuf_EnumDescriptorProto_EnumReservedRange_serialize_ex(const google_protobuf_EnumDescriptorProto_EnumReservedRange* msg, int options,
6098 upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07006099 char* ptr;
6100 (void)upb_Encode(msg, &google_protobuf_EnumDescriptorProto_EnumReservedRange_msg_init, options, arena, &ptr, len);
6101 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006102}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006103UPB_INLINE void google_protobuf_EnumDescriptorProto_EnumReservedRange_clear_start(google_protobuf_EnumDescriptorProto_EnumReservedRange* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006104 const upb_MiniTableField field = {1, 4, 1, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006105 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006106}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006107UPB_INLINE int32_t google_protobuf_EnumDescriptorProto_EnumReservedRange_start(const google_protobuf_EnumDescriptorProto_EnumReservedRange* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08006108 int32_t default_val = (int32_t)0;
6109 int32_t ret;
Jie Luo3560e232023-06-12 00:33:50 -07006110 const upb_MiniTableField field = {1, 4, 1, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006111 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08006112 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006113}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006114UPB_INLINE bool google_protobuf_EnumDescriptorProto_EnumReservedRange_has_start(const google_protobuf_EnumDescriptorProto_EnumReservedRange* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006115 const upb_MiniTableField field = {1, 4, 1, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006116 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006117}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006118UPB_INLINE void google_protobuf_EnumDescriptorProto_EnumReservedRange_clear_end(google_protobuf_EnumDescriptorProto_EnumReservedRange* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006119 const upb_MiniTableField field = {2, 8, 2, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006120 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006121}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006122UPB_INLINE int32_t google_protobuf_EnumDescriptorProto_EnumReservedRange_end(const google_protobuf_EnumDescriptorProto_EnumReservedRange* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08006123 int32_t default_val = (int32_t)0;
6124 int32_t ret;
Jie Luo3560e232023-06-12 00:33:50 -07006125 const upb_MiniTableField field = {2, 8, 2, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006126 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08006127 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006128}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006129UPB_INLINE bool google_protobuf_EnumDescriptorProto_EnumReservedRange_has_end(const google_protobuf_EnumDescriptorProto_EnumReservedRange* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006130 const upb_MiniTableField field = {2, 8, 2, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006131 return _upb_Message_HasNonExtensionField(msg, &field);
Mike Kruskal3bc50492022-12-01 13:34:12 -08006132}
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006133
6134UPB_INLINE void google_protobuf_EnumDescriptorProto_EnumReservedRange_set_start(google_protobuf_EnumDescriptorProto_EnumReservedRange *msg, int32_t value) {
Jie Luo3560e232023-06-12 00:33:50 -07006135 const upb_MiniTableField field = {1, 4, 1, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006136 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08006137}
6138UPB_INLINE void google_protobuf_EnumDescriptorProto_EnumReservedRange_set_end(google_protobuf_EnumDescriptorProto_EnumReservedRange *msg, int32_t value) {
Jie Luo3560e232023-06-12 00:33:50 -07006139 const upb_MiniTableField field = {2, 8, 2, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006140 _upb_Message_SetNonExtensionField(msg, &field, &value);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006141}
Mike Kruskal232ecf42023-01-14 00:09:40 -08006142
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006143/* google.protobuf.EnumValueDescriptorProto */
6144
Joshua Habermanf41049a2022-01-21 14:41:25 -08006145UPB_INLINE google_protobuf_EnumValueDescriptorProto* google_protobuf_EnumValueDescriptorProto_new(upb_Arena* arena) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07006146 return (google_protobuf_EnumValueDescriptorProto*)_upb_Message_New(&google_protobuf_EnumValueDescriptorProto_msg_init, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006147}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006148UPB_INLINE google_protobuf_EnumValueDescriptorProto* google_protobuf_EnumValueDescriptorProto_parse(const char* buf, size_t size, upb_Arena* arena) {
6149 google_protobuf_EnumValueDescriptorProto* ret = google_protobuf_EnumValueDescriptorProto_new(arena);
Joshua Haberman9d578a32021-08-02 15:32:01 -07006150 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07006151 if (upb_Decode(buf, size, ret, &google_protobuf_EnumValueDescriptorProto_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
Joshua Haberman9d578a32021-08-02 15:32:01 -07006152 return NULL;
6153 }
6154 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006155}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006156UPB_INLINE google_protobuf_EnumValueDescriptorProto* google_protobuf_EnumValueDescriptorProto_parse_ex(const char* buf, size_t size,
6157 const upb_ExtensionRegistry* extreg,
6158 int options, upb_Arena* arena) {
6159 google_protobuf_EnumValueDescriptorProto* ret = google_protobuf_EnumValueDescriptorProto_new(arena);
6160 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07006161 if (upb_Decode(buf, size, ret, &google_protobuf_EnumValueDescriptorProto_msg_init, extreg, options, arena) !=
Joshua Habermanf41049a2022-01-21 14:41:25 -08006162 kUpb_DecodeStatus_Ok) {
6163 return NULL;
6164 }
6165 return ret;
6166}
6167UPB_INLINE char* google_protobuf_EnumValueDescriptorProto_serialize(const google_protobuf_EnumValueDescriptorProto* msg, upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07006168 char* ptr;
6169 (void)upb_Encode(msg, &google_protobuf_EnumValueDescriptorProto_msg_init, 0, arena, &ptr, len);
6170 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006171}
6172UPB_INLINE char* google_protobuf_EnumValueDescriptorProto_serialize_ex(const google_protobuf_EnumValueDescriptorProto* msg, int options,
6173 upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07006174 char* ptr;
6175 (void)upb_Encode(msg, &google_protobuf_EnumValueDescriptorProto_msg_init, options, arena, &ptr, len);
6176 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006177}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006178UPB_INLINE void google_protobuf_EnumValueDescriptorProto_clear_name(google_protobuf_EnumValueDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006179 const upb_MiniTableField field = {1, UPB_SIZE(12, 8), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006180 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006181}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006182UPB_INLINE upb_StringView google_protobuf_EnumValueDescriptorProto_name(const google_protobuf_EnumValueDescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08006183 upb_StringView default_val = upb_StringView_FromString("");
6184 upb_StringView ret;
Jie Luo3560e232023-06-12 00:33:50 -07006185 const upb_MiniTableField field = {1, UPB_SIZE(12, 8), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006186 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08006187 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006188}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006189UPB_INLINE bool google_protobuf_EnumValueDescriptorProto_has_name(const google_protobuf_EnumValueDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006190 const upb_MiniTableField field = {1, UPB_SIZE(12, 8), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006191 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006192}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006193UPB_INLINE void google_protobuf_EnumValueDescriptorProto_clear_number(google_protobuf_EnumValueDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006194 const upb_MiniTableField field = {2, 4, 2, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006195 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006196}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006197UPB_INLINE int32_t google_protobuf_EnumValueDescriptorProto_number(const google_protobuf_EnumValueDescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08006198 int32_t default_val = (int32_t)0;
6199 int32_t ret;
Jie Luo3560e232023-06-12 00:33:50 -07006200 const upb_MiniTableField field = {2, 4, 2, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006201 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08006202 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006203}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006204UPB_INLINE bool google_protobuf_EnumValueDescriptorProto_has_number(const google_protobuf_EnumValueDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006205 const upb_MiniTableField field = {2, 4, 2, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006206 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006207}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006208UPB_INLINE void google_protobuf_EnumValueDescriptorProto_clear_options(google_protobuf_EnumValueDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006209 const upb_MiniTableField field = {3, UPB_SIZE(8, 24), 3, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006210 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006211}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006212UPB_INLINE const google_protobuf_EnumValueOptions* google_protobuf_EnumValueDescriptorProto_options(const google_protobuf_EnumValueDescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08006213 const google_protobuf_EnumValueOptions* default_val = NULL;
6214 const google_protobuf_EnumValueOptions* ret;
Jie Luo3560e232023-06-12 00:33:50 -07006215 const upb_MiniTableField field = {3, UPB_SIZE(8, 24), 3, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006216 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08006217 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006218}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006219UPB_INLINE bool google_protobuf_EnumValueDescriptorProto_has_options(const google_protobuf_EnumValueDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006220 const upb_MiniTableField field = {3, UPB_SIZE(8, 24), 3, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006221 return _upb_Message_HasNonExtensionField(msg, &field);
Mike Kruskal3bc50492022-12-01 13:34:12 -08006222}
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006223
Joshua Habermanf41049a2022-01-21 14:41:25 -08006224UPB_INLINE void google_protobuf_EnumValueDescriptorProto_set_name(google_protobuf_EnumValueDescriptorProto *msg, upb_StringView value) {
Jie Luo3560e232023-06-12 00:33:50 -07006225 const upb_MiniTableField field = {1, UPB_SIZE(12, 8), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006226 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08006227}
6228UPB_INLINE void google_protobuf_EnumValueDescriptorProto_set_number(google_protobuf_EnumValueDescriptorProto *msg, int32_t value) {
Jie Luo3560e232023-06-12 00:33:50 -07006229 const upb_MiniTableField field = {2, 4, 2, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006230 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08006231}
6232UPB_INLINE void google_protobuf_EnumValueDescriptorProto_set_options(google_protobuf_EnumValueDescriptorProto *msg, google_protobuf_EnumValueOptions* value) {
Jie Luo3560e232023-06-12 00:33:50 -07006233 const upb_MiniTableField field = {3, UPB_SIZE(8, 24), 3, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006234 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08006235}
6236UPB_INLINE struct google_protobuf_EnumValueOptions* google_protobuf_EnumValueDescriptorProto_mutable_options(google_protobuf_EnumValueDescriptorProto* msg, upb_Arena* arena) {
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006237 struct google_protobuf_EnumValueOptions* sub = (struct google_protobuf_EnumValueOptions*)google_protobuf_EnumValueDescriptorProto_options(msg);
6238 if (sub == NULL) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07006239 sub = (struct google_protobuf_EnumValueOptions*)_upb_Message_New(&google_protobuf_EnumValueOptions_msg_init, arena);
Eric Salo8809a112022-11-21 13:01:06 -08006240 if (sub) google_protobuf_EnumValueDescriptorProto_set_options(msg, sub);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006241 }
6242 return sub;
6243}
6244
6245/* google.protobuf.ServiceDescriptorProto */
6246
Joshua Habermanf41049a2022-01-21 14:41:25 -08006247UPB_INLINE google_protobuf_ServiceDescriptorProto* google_protobuf_ServiceDescriptorProto_new(upb_Arena* arena) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07006248 return (google_protobuf_ServiceDescriptorProto*)_upb_Message_New(&google_protobuf_ServiceDescriptorProto_msg_init, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006249}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006250UPB_INLINE google_protobuf_ServiceDescriptorProto* google_protobuf_ServiceDescriptorProto_parse(const char* buf, size_t size, upb_Arena* arena) {
6251 google_protobuf_ServiceDescriptorProto* ret = google_protobuf_ServiceDescriptorProto_new(arena);
Joshua Haberman9d578a32021-08-02 15:32:01 -07006252 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07006253 if (upb_Decode(buf, size, ret, &google_protobuf_ServiceDescriptorProto_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
Joshua Haberman9d578a32021-08-02 15:32:01 -07006254 return NULL;
6255 }
6256 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006257}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006258UPB_INLINE google_protobuf_ServiceDescriptorProto* google_protobuf_ServiceDescriptorProto_parse_ex(const char* buf, size_t size,
6259 const upb_ExtensionRegistry* extreg,
6260 int options, upb_Arena* arena) {
6261 google_protobuf_ServiceDescriptorProto* ret = google_protobuf_ServiceDescriptorProto_new(arena);
6262 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07006263 if (upb_Decode(buf, size, ret, &google_protobuf_ServiceDescriptorProto_msg_init, extreg, options, arena) !=
Joshua Habermanf41049a2022-01-21 14:41:25 -08006264 kUpb_DecodeStatus_Ok) {
6265 return NULL;
6266 }
6267 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006268}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006269UPB_INLINE char* google_protobuf_ServiceDescriptorProto_serialize(const google_protobuf_ServiceDescriptorProto* msg, upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07006270 char* ptr;
6271 (void)upb_Encode(msg, &google_protobuf_ServiceDescriptorProto_msg_init, 0, arena, &ptr, len);
6272 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006273}
6274UPB_INLINE char* google_protobuf_ServiceDescriptorProto_serialize_ex(const google_protobuf_ServiceDescriptorProto* msg, int options,
6275 upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07006276 char* ptr;
6277 (void)upb_Encode(msg, &google_protobuf_ServiceDescriptorProto_msg_init, options, arena, &ptr, len);
6278 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006279}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006280UPB_INLINE void google_protobuf_ServiceDescriptorProto_clear_name(google_protobuf_ServiceDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006281 const upb_MiniTableField field = {1, UPB_SIZE(12, 8), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006282 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006283}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006284UPB_INLINE upb_StringView google_protobuf_ServiceDescriptorProto_name(const google_protobuf_ServiceDescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08006285 upb_StringView default_val = upb_StringView_FromString("");
6286 upb_StringView ret;
Jie Luo3560e232023-06-12 00:33:50 -07006287 const upb_MiniTableField field = {1, UPB_SIZE(12, 8), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006288 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08006289 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006290}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006291UPB_INLINE bool google_protobuf_ServiceDescriptorProto_has_name(const google_protobuf_ServiceDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006292 const upb_MiniTableField field = {1, UPB_SIZE(12, 8), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006293 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006294}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006295UPB_INLINE void google_protobuf_ServiceDescriptorProto_clear_method(google_protobuf_ServiceDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006296 const upb_MiniTableField field = {2, UPB_SIZE(4, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006297 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006298}
Eric Salob7d54ac2022-12-29 11:59:42 -08006299UPB_INLINE const google_protobuf_MethodDescriptorProto* const* google_protobuf_ServiceDescriptorProto_method(const google_protobuf_ServiceDescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07006300 const upb_MiniTableField field = {2, UPB_SIZE(4, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08006301 const upb_Array* arr = upb_Message_GetArray(msg, &field);
6302 if (arr) {
6303 if (size) *size = arr->size;
6304 return (const google_protobuf_MethodDescriptorProto* const*)_upb_array_constptr(arr);
6305 } else {
6306 if (size) *size = 0;
6307 return NULL;
6308 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006309}
Deanna Garciab26afb52023-04-25 13:37:18 -07006310UPB_INLINE const upb_Array* _google_protobuf_ServiceDescriptorProto_method_upb_array(const google_protobuf_ServiceDescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07006311 const upb_MiniTableField field = {2, UPB_SIZE(4, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07006312 const upb_Array* arr = upb_Message_GetArray(msg, &field);
6313 if (size) {
6314 *size = arr ? arr->size : 0;
6315 }
6316 return arr;
6317}
6318UPB_INLINE upb_Array* _google_protobuf_ServiceDescriptorProto_method_mutable_upb_array(const google_protobuf_ServiceDescriptorProto* msg, size_t* size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07006319 const upb_MiniTableField field = {2, UPB_SIZE(4, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07006320 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
6321 (upb_Message*)msg, &field, arena);
6322 if (size) {
6323 *size = arr ? arr->size : 0;
6324 }
6325 return arr;
6326}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006327UPB_INLINE bool google_protobuf_ServiceDescriptorProto_has_method(const google_protobuf_ServiceDescriptorProto* msg) {
6328 size_t size;
6329 google_protobuf_ServiceDescriptorProto_method(msg, &size);
6330 return size != 0;
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006331}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006332UPB_INLINE void google_protobuf_ServiceDescriptorProto_clear_options(google_protobuf_ServiceDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006333 const upb_MiniTableField field = {3, UPB_SIZE(8, 32), 2, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006334 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006335}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006336UPB_INLINE const google_protobuf_ServiceOptions* google_protobuf_ServiceDescriptorProto_options(const google_protobuf_ServiceDescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08006337 const google_protobuf_ServiceOptions* default_val = NULL;
6338 const google_protobuf_ServiceOptions* ret;
Jie Luo3560e232023-06-12 00:33:50 -07006339 const upb_MiniTableField field = {3, UPB_SIZE(8, 32), 2, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006340 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08006341 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006342}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006343UPB_INLINE bool google_protobuf_ServiceDescriptorProto_has_options(const google_protobuf_ServiceDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006344 const upb_MiniTableField field = {3, UPB_SIZE(8, 32), 2, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006345 return _upb_Message_HasNonExtensionField(msg, &field);
Mike Kruskal3bc50492022-12-01 13:34:12 -08006346}
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006347
Joshua Habermanf41049a2022-01-21 14:41:25 -08006348UPB_INLINE void google_protobuf_ServiceDescriptorProto_set_name(google_protobuf_ServiceDescriptorProto *msg, upb_StringView value) {
Jie Luo3560e232023-06-12 00:33:50 -07006349 const upb_MiniTableField field = {1, UPB_SIZE(12, 8), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006350 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08006351}
6352UPB_INLINE google_protobuf_MethodDescriptorProto** google_protobuf_ServiceDescriptorProto_mutable_method(google_protobuf_ServiceDescriptorProto* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07006353 upb_MiniTableField field = {2, UPB_SIZE(4, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08006354 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
6355 if (arr) {
6356 if (size) *size = arr->size;
6357 return (google_protobuf_MethodDescriptorProto**)_upb_array_ptr(arr);
6358 } else {
6359 if (size) *size = 0;
6360 return NULL;
6361 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006362}
Eric Salob7d54ac2022-12-29 11:59:42 -08006363UPB_INLINE google_protobuf_MethodDescriptorProto** google_protobuf_ServiceDescriptorProto_resize_method(google_protobuf_ServiceDescriptorProto* msg, size_t size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07006364 upb_MiniTableField field = {2, UPB_SIZE(4, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07006365 return (google_protobuf_MethodDescriptorProto**)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006366}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006367UPB_INLINE struct google_protobuf_MethodDescriptorProto* google_protobuf_ServiceDescriptorProto_add_method(google_protobuf_ServiceDescriptorProto* msg, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07006368 upb_MiniTableField field = {2, UPB_SIZE(4, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08006369 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
6370 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
6371 return NULL;
6372 }
Joshua Habermand3995ec2022-09-30 16:54:39 -07006373 struct google_protobuf_MethodDescriptorProto* sub = (struct google_protobuf_MethodDescriptorProto*)_upb_Message_New(&google_protobuf_MethodDescriptorProto_msg_init, arena);
Eric Salob7d54ac2022-12-29 11:59:42 -08006374 if (!arr || !sub) return NULL;
6375 _upb_Array_Set(arr, arr->size - 1, &sub, sizeof(sub));
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006376 return sub;
6377}
6378UPB_INLINE void google_protobuf_ServiceDescriptorProto_set_options(google_protobuf_ServiceDescriptorProto *msg, google_protobuf_ServiceOptions* value) {
Jie Luo3560e232023-06-12 00:33:50 -07006379 const upb_MiniTableField field = {3, UPB_SIZE(8, 32), 2, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006380 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08006381}
6382UPB_INLINE struct google_protobuf_ServiceOptions* google_protobuf_ServiceDescriptorProto_mutable_options(google_protobuf_ServiceDescriptorProto* msg, upb_Arena* arena) {
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006383 struct google_protobuf_ServiceOptions* sub = (struct google_protobuf_ServiceOptions*)google_protobuf_ServiceDescriptorProto_options(msg);
6384 if (sub == NULL) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07006385 sub = (struct google_protobuf_ServiceOptions*)_upb_Message_New(&google_protobuf_ServiceOptions_msg_init, arena);
Eric Salo8809a112022-11-21 13:01:06 -08006386 if (sub) google_protobuf_ServiceDescriptorProto_set_options(msg, sub);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006387 }
6388 return sub;
6389}
6390
6391/* google.protobuf.MethodDescriptorProto */
6392
Joshua Habermanf41049a2022-01-21 14:41:25 -08006393UPB_INLINE google_protobuf_MethodDescriptorProto* google_protobuf_MethodDescriptorProto_new(upb_Arena* arena) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07006394 return (google_protobuf_MethodDescriptorProto*)_upb_Message_New(&google_protobuf_MethodDescriptorProto_msg_init, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006395}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006396UPB_INLINE google_protobuf_MethodDescriptorProto* google_protobuf_MethodDescriptorProto_parse(const char* buf, size_t size, upb_Arena* arena) {
6397 google_protobuf_MethodDescriptorProto* ret = google_protobuf_MethodDescriptorProto_new(arena);
Joshua Haberman9d578a32021-08-02 15:32:01 -07006398 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07006399 if (upb_Decode(buf, size, ret, &google_protobuf_MethodDescriptorProto_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
Joshua Haberman9d578a32021-08-02 15:32:01 -07006400 return NULL;
6401 }
6402 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006403}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006404UPB_INLINE google_protobuf_MethodDescriptorProto* google_protobuf_MethodDescriptorProto_parse_ex(const char* buf, size_t size,
6405 const upb_ExtensionRegistry* extreg,
6406 int options, upb_Arena* arena) {
6407 google_protobuf_MethodDescriptorProto* ret = google_protobuf_MethodDescriptorProto_new(arena);
6408 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07006409 if (upb_Decode(buf, size, ret, &google_protobuf_MethodDescriptorProto_msg_init, extreg, options, arena) !=
Joshua Habermanf41049a2022-01-21 14:41:25 -08006410 kUpb_DecodeStatus_Ok) {
6411 return NULL;
6412 }
6413 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006414}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006415UPB_INLINE char* google_protobuf_MethodDescriptorProto_serialize(const google_protobuf_MethodDescriptorProto* msg, upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07006416 char* ptr;
6417 (void)upb_Encode(msg, &google_protobuf_MethodDescriptorProto_msg_init, 0, arena, &ptr, len);
6418 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006419}
6420UPB_INLINE char* google_protobuf_MethodDescriptorProto_serialize_ex(const google_protobuf_MethodDescriptorProto* msg, int options,
6421 upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07006422 char* ptr;
6423 (void)upb_Encode(msg, &google_protobuf_MethodDescriptorProto_msg_init, options, arena, &ptr, len);
6424 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006425}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006426UPB_INLINE void google_protobuf_MethodDescriptorProto_clear_name(google_protobuf_MethodDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006427 const upb_MiniTableField field = {1, UPB_SIZE(12, 8), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006428 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006429}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006430UPB_INLINE upb_StringView google_protobuf_MethodDescriptorProto_name(const google_protobuf_MethodDescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08006431 upb_StringView default_val = upb_StringView_FromString("");
6432 upb_StringView ret;
Jie Luo3560e232023-06-12 00:33:50 -07006433 const upb_MiniTableField field = {1, UPB_SIZE(12, 8), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006434 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08006435 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006436}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006437UPB_INLINE bool google_protobuf_MethodDescriptorProto_has_name(const google_protobuf_MethodDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006438 const upb_MiniTableField field = {1, UPB_SIZE(12, 8), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006439 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006440}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006441UPB_INLINE void google_protobuf_MethodDescriptorProto_clear_input_type(google_protobuf_MethodDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006442 const upb_MiniTableField field = {2, UPB_SIZE(20, 24), 2, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006443 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006444}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006445UPB_INLINE upb_StringView google_protobuf_MethodDescriptorProto_input_type(const google_protobuf_MethodDescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08006446 upb_StringView default_val = upb_StringView_FromString("");
6447 upb_StringView ret;
Jie Luo3560e232023-06-12 00:33:50 -07006448 const upb_MiniTableField field = {2, UPB_SIZE(20, 24), 2, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006449 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08006450 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006451}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006452UPB_INLINE bool google_protobuf_MethodDescriptorProto_has_input_type(const google_protobuf_MethodDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006453 const upb_MiniTableField field = {2, UPB_SIZE(20, 24), 2, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006454 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006455}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006456UPB_INLINE void google_protobuf_MethodDescriptorProto_clear_output_type(google_protobuf_MethodDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006457 const upb_MiniTableField field = {3, UPB_SIZE(28, 40), 3, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006458 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006459}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006460UPB_INLINE upb_StringView google_protobuf_MethodDescriptorProto_output_type(const google_protobuf_MethodDescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08006461 upb_StringView default_val = upb_StringView_FromString("");
6462 upb_StringView ret;
Jie Luo3560e232023-06-12 00:33:50 -07006463 const upb_MiniTableField field = {3, UPB_SIZE(28, 40), 3, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006464 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08006465 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006466}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006467UPB_INLINE bool google_protobuf_MethodDescriptorProto_has_output_type(const google_protobuf_MethodDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006468 const upb_MiniTableField field = {3, UPB_SIZE(28, 40), 3, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006469 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006470}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006471UPB_INLINE void google_protobuf_MethodDescriptorProto_clear_options(google_protobuf_MethodDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006472 const upb_MiniTableField field = {4, UPB_SIZE(4, 56), 4, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006473 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006474}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006475UPB_INLINE const google_protobuf_MethodOptions* google_protobuf_MethodDescriptorProto_options(const google_protobuf_MethodDescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08006476 const google_protobuf_MethodOptions* default_val = NULL;
6477 const google_protobuf_MethodOptions* ret;
Jie Luo3560e232023-06-12 00:33:50 -07006478 const upb_MiniTableField field = {4, UPB_SIZE(4, 56), 4, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006479 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08006480 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006481}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006482UPB_INLINE bool google_protobuf_MethodDescriptorProto_has_options(const google_protobuf_MethodDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006483 const upb_MiniTableField field = {4, UPB_SIZE(4, 56), 4, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006484 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006485}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006486UPB_INLINE void google_protobuf_MethodDescriptorProto_clear_client_streaming(google_protobuf_MethodDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006487 const upb_MiniTableField field = {5, UPB_SIZE(8, 1), 5, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006488 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006489}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006490UPB_INLINE bool google_protobuf_MethodDescriptorProto_client_streaming(const google_protobuf_MethodDescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08006491 bool default_val = false;
6492 bool ret;
Jie Luo3560e232023-06-12 00:33:50 -07006493 const upb_MiniTableField field = {5, UPB_SIZE(8, 1), 5, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006494 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08006495 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006496}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006497UPB_INLINE bool google_protobuf_MethodDescriptorProto_has_client_streaming(const google_protobuf_MethodDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006498 const upb_MiniTableField field = {5, UPB_SIZE(8, 1), 5, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006499 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006500}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006501UPB_INLINE void google_protobuf_MethodDescriptorProto_clear_server_streaming(google_protobuf_MethodDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006502 const upb_MiniTableField field = {6, UPB_SIZE(9, 2), 6, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006503 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006504}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006505UPB_INLINE bool google_protobuf_MethodDescriptorProto_server_streaming(const google_protobuf_MethodDescriptorProto* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08006506 bool default_val = false;
6507 bool ret;
Jie Luo3560e232023-06-12 00:33:50 -07006508 const upb_MiniTableField field = {6, UPB_SIZE(9, 2), 6, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006509 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08006510 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006511}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006512UPB_INLINE bool google_protobuf_MethodDescriptorProto_has_server_streaming(const google_protobuf_MethodDescriptorProto* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006513 const upb_MiniTableField field = {6, UPB_SIZE(9, 2), 6, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006514 return _upb_Message_HasNonExtensionField(msg, &field);
Mike Kruskal3bc50492022-12-01 13:34:12 -08006515}
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006516
Joshua Habermanf41049a2022-01-21 14:41:25 -08006517UPB_INLINE void google_protobuf_MethodDescriptorProto_set_name(google_protobuf_MethodDescriptorProto *msg, upb_StringView value) {
Jie Luo3560e232023-06-12 00:33:50 -07006518 const upb_MiniTableField field = {1, UPB_SIZE(12, 8), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006519 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08006520}
6521UPB_INLINE void google_protobuf_MethodDescriptorProto_set_input_type(google_protobuf_MethodDescriptorProto *msg, upb_StringView value) {
Jie Luo3560e232023-06-12 00:33:50 -07006522 const upb_MiniTableField field = {2, UPB_SIZE(20, 24), 2, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006523 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08006524}
6525UPB_INLINE void google_protobuf_MethodDescriptorProto_set_output_type(google_protobuf_MethodDescriptorProto *msg, upb_StringView value) {
Jie Luo3560e232023-06-12 00:33:50 -07006526 const upb_MiniTableField field = {3, UPB_SIZE(28, 40), 3, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006527 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08006528}
6529UPB_INLINE void google_protobuf_MethodDescriptorProto_set_options(google_protobuf_MethodDescriptorProto *msg, google_protobuf_MethodOptions* value) {
Jie Luo3560e232023-06-12 00:33:50 -07006530 const upb_MiniTableField field = {4, UPB_SIZE(4, 56), 4, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006531 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08006532}
6533UPB_INLINE struct google_protobuf_MethodOptions* google_protobuf_MethodDescriptorProto_mutable_options(google_protobuf_MethodDescriptorProto* msg, upb_Arena* arena) {
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006534 struct google_protobuf_MethodOptions* sub = (struct google_protobuf_MethodOptions*)google_protobuf_MethodDescriptorProto_options(msg);
6535 if (sub == NULL) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07006536 sub = (struct google_protobuf_MethodOptions*)_upb_Message_New(&google_protobuf_MethodOptions_msg_init, arena);
Eric Salo8809a112022-11-21 13:01:06 -08006537 if (sub) google_protobuf_MethodDescriptorProto_set_options(msg, sub);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006538 }
6539 return sub;
6540}
6541UPB_INLINE void google_protobuf_MethodDescriptorProto_set_client_streaming(google_protobuf_MethodDescriptorProto *msg, bool value) {
Jie Luo3560e232023-06-12 00:33:50 -07006542 const upb_MiniTableField field = {5, UPB_SIZE(8, 1), 5, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006543 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08006544}
6545UPB_INLINE void google_protobuf_MethodDescriptorProto_set_server_streaming(google_protobuf_MethodDescriptorProto *msg, bool value) {
Jie Luo3560e232023-06-12 00:33:50 -07006546 const upb_MiniTableField field = {6, UPB_SIZE(9, 2), 6, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006547 _upb_Message_SetNonExtensionField(msg, &field, &value);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006548}
Mike Kruskal232ecf42023-01-14 00:09:40 -08006549
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006550/* google.protobuf.FileOptions */
6551
Joshua Habermanf41049a2022-01-21 14:41:25 -08006552UPB_INLINE google_protobuf_FileOptions* google_protobuf_FileOptions_new(upb_Arena* arena) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07006553 return (google_protobuf_FileOptions*)_upb_Message_New(&google_protobuf_FileOptions_msg_init, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006554}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006555UPB_INLINE google_protobuf_FileOptions* google_protobuf_FileOptions_parse(const char* buf, size_t size, upb_Arena* arena) {
6556 google_protobuf_FileOptions* ret = google_protobuf_FileOptions_new(arena);
Joshua Haberman9d578a32021-08-02 15:32:01 -07006557 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07006558 if (upb_Decode(buf, size, ret, &google_protobuf_FileOptions_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
Joshua Haberman9d578a32021-08-02 15:32:01 -07006559 return NULL;
6560 }
6561 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006562}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006563UPB_INLINE google_protobuf_FileOptions* google_protobuf_FileOptions_parse_ex(const char* buf, size_t size,
6564 const upb_ExtensionRegistry* extreg,
6565 int options, upb_Arena* arena) {
6566 google_protobuf_FileOptions* ret = google_protobuf_FileOptions_new(arena);
6567 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07006568 if (upb_Decode(buf, size, ret, &google_protobuf_FileOptions_msg_init, extreg, options, arena) !=
Joshua Habermanf41049a2022-01-21 14:41:25 -08006569 kUpb_DecodeStatus_Ok) {
6570 return NULL;
6571 }
6572 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006573}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006574UPB_INLINE char* google_protobuf_FileOptions_serialize(const google_protobuf_FileOptions* msg, upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07006575 char* ptr;
6576 (void)upb_Encode(msg, &google_protobuf_FileOptions_msg_init, 0, arena, &ptr, len);
6577 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006578}
6579UPB_INLINE char* google_protobuf_FileOptions_serialize_ex(const google_protobuf_FileOptions* msg, int options,
6580 upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07006581 char* ptr;
6582 (void)upb_Encode(msg, &google_protobuf_FileOptions_msg_init, options, arena, &ptr, len);
6583 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006584}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006585UPB_INLINE void google_protobuf_FileOptions_clear_java_package(google_protobuf_FileOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006586 const upb_MiniTableField field = {1, UPB_SIZE(28, 24), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006587 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006588}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006589UPB_INLINE upb_StringView google_protobuf_FileOptions_java_package(const google_protobuf_FileOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08006590 upb_StringView default_val = upb_StringView_FromString("");
6591 upb_StringView ret;
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006592 const upb_MiniTableField field = {1, UPB_SIZE(28, 24), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006593 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08006594 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006595}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006596UPB_INLINE bool google_protobuf_FileOptions_has_java_package(const google_protobuf_FileOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006597 const upb_MiniTableField field = {1, UPB_SIZE(28, 24), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006598 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006599}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006600UPB_INLINE void google_protobuf_FileOptions_clear_java_outer_classname(google_protobuf_FileOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006601 const upb_MiniTableField field = {8, UPB_SIZE(36, 40), 2, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006602 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006603}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006604UPB_INLINE upb_StringView google_protobuf_FileOptions_java_outer_classname(const google_protobuf_FileOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08006605 upb_StringView default_val = upb_StringView_FromString("");
6606 upb_StringView ret;
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006607 const upb_MiniTableField field = {8, UPB_SIZE(36, 40), 2, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006608 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08006609 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006610}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006611UPB_INLINE bool google_protobuf_FileOptions_has_java_outer_classname(const google_protobuf_FileOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006612 const upb_MiniTableField field = {8, UPB_SIZE(36, 40), 2, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006613 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006614}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006615UPB_INLINE void google_protobuf_FileOptions_clear_optimize_for(google_protobuf_FileOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006616 const upb_MiniTableField field = {9, 4, 3, 2, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006617 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006618}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006619UPB_INLINE int32_t google_protobuf_FileOptions_optimize_for(const google_protobuf_FileOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08006620 int32_t default_val = 1;
6621 int32_t ret;
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006622 const upb_MiniTableField field = {9, 4, 3, 2, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006623 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08006624 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006625}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006626UPB_INLINE bool google_protobuf_FileOptions_has_optimize_for(const google_protobuf_FileOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006627 const upb_MiniTableField field = {9, 4, 3, 2, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006628 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006629}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006630UPB_INLINE void google_protobuf_FileOptions_clear_java_multiple_files(google_protobuf_FileOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006631 const upb_MiniTableField field = {10, 8, 4, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006632 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006633}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006634UPB_INLINE bool google_protobuf_FileOptions_java_multiple_files(const google_protobuf_FileOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08006635 bool default_val = false;
6636 bool ret;
Jie Luo3560e232023-06-12 00:33:50 -07006637 const upb_MiniTableField field = {10, 8, 4, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006638 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08006639 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006640}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006641UPB_INLINE bool google_protobuf_FileOptions_has_java_multiple_files(const google_protobuf_FileOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006642 const upb_MiniTableField field = {10, 8, 4, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006643 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006644}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006645UPB_INLINE void google_protobuf_FileOptions_clear_go_package(google_protobuf_FileOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006646 const upb_MiniTableField field = {11, UPB_SIZE(44, 56), 5, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006647 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006648}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006649UPB_INLINE upb_StringView google_protobuf_FileOptions_go_package(const google_protobuf_FileOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08006650 upb_StringView default_val = upb_StringView_FromString("");
6651 upb_StringView ret;
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006652 const upb_MiniTableField field = {11, UPB_SIZE(44, 56), 5, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006653 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08006654 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006655}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006656UPB_INLINE bool google_protobuf_FileOptions_has_go_package(const google_protobuf_FileOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006657 const upb_MiniTableField field = {11, UPB_SIZE(44, 56), 5, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006658 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006659}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006660UPB_INLINE void google_protobuf_FileOptions_clear_cc_generic_services(google_protobuf_FileOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006661 const upb_MiniTableField field = {16, 9, 6, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006662 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006663}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006664UPB_INLINE bool google_protobuf_FileOptions_cc_generic_services(const google_protobuf_FileOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08006665 bool default_val = false;
6666 bool ret;
Jie Luo3560e232023-06-12 00:33:50 -07006667 const upb_MiniTableField field = {16, 9, 6, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006668 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08006669 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006670}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006671UPB_INLINE bool google_protobuf_FileOptions_has_cc_generic_services(const google_protobuf_FileOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006672 const upb_MiniTableField field = {16, 9, 6, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006673 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006674}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006675UPB_INLINE void google_protobuf_FileOptions_clear_java_generic_services(google_protobuf_FileOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006676 const upb_MiniTableField field = {17, 10, 7, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006677 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006678}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006679UPB_INLINE bool google_protobuf_FileOptions_java_generic_services(const google_protobuf_FileOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08006680 bool default_val = false;
6681 bool ret;
Jie Luo3560e232023-06-12 00:33:50 -07006682 const upb_MiniTableField field = {17, 10, 7, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006683 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08006684 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006685}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006686UPB_INLINE bool google_protobuf_FileOptions_has_java_generic_services(const google_protobuf_FileOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006687 const upb_MiniTableField field = {17, 10, 7, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006688 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006689}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006690UPB_INLINE void google_protobuf_FileOptions_clear_py_generic_services(google_protobuf_FileOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006691 const upb_MiniTableField field = {18, 11, 8, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006692 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006693}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006694UPB_INLINE bool google_protobuf_FileOptions_py_generic_services(const google_protobuf_FileOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08006695 bool default_val = false;
6696 bool ret;
Jie Luo3560e232023-06-12 00:33:50 -07006697 const upb_MiniTableField field = {18, 11, 8, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006698 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08006699 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006700}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006701UPB_INLINE bool google_protobuf_FileOptions_has_py_generic_services(const google_protobuf_FileOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006702 const upb_MiniTableField field = {18, 11, 8, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006703 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006704}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006705UPB_INLINE void google_protobuf_FileOptions_clear_java_generate_equals_and_hash(google_protobuf_FileOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006706 const upb_MiniTableField field = {20, 12, 9, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006707 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006708}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006709UPB_INLINE bool google_protobuf_FileOptions_java_generate_equals_and_hash(const google_protobuf_FileOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08006710 bool default_val = false;
6711 bool ret;
Jie Luo3560e232023-06-12 00:33:50 -07006712 const upb_MiniTableField field = {20, 12, 9, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006713 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08006714 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006715}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006716UPB_INLINE bool google_protobuf_FileOptions_has_java_generate_equals_and_hash(const google_protobuf_FileOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006717 const upb_MiniTableField field = {20, 12, 9, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006718 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006719}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006720UPB_INLINE void google_protobuf_FileOptions_clear_deprecated(google_protobuf_FileOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006721 const upb_MiniTableField field = {23, 13, 10, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006722 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006723}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006724UPB_INLINE bool google_protobuf_FileOptions_deprecated(const google_protobuf_FileOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08006725 bool default_val = false;
6726 bool ret;
Jie Luo3560e232023-06-12 00:33:50 -07006727 const upb_MiniTableField field = {23, 13, 10, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006728 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08006729 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006730}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006731UPB_INLINE bool google_protobuf_FileOptions_has_deprecated(const google_protobuf_FileOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006732 const upb_MiniTableField field = {23, 13, 10, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006733 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006734}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006735UPB_INLINE void google_protobuf_FileOptions_clear_java_string_check_utf8(google_protobuf_FileOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006736 const upb_MiniTableField field = {27, 14, 11, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006737 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006738}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006739UPB_INLINE bool google_protobuf_FileOptions_java_string_check_utf8(const google_protobuf_FileOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08006740 bool default_val = false;
6741 bool ret;
Jie Luo3560e232023-06-12 00:33:50 -07006742 const upb_MiniTableField field = {27, 14, 11, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006743 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08006744 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006745}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006746UPB_INLINE bool google_protobuf_FileOptions_has_java_string_check_utf8(const google_protobuf_FileOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006747 const upb_MiniTableField field = {27, 14, 11, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006748 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006749}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006750UPB_INLINE void google_protobuf_FileOptions_clear_cc_enable_arenas(google_protobuf_FileOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006751 const upb_MiniTableField field = {31, 15, 12, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006752 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006753}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006754UPB_INLINE bool google_protobuf_FileOptions_cc_enable_arenas(const google_protobuf_FileOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08006755 bool default_val = true;
6756 bool ret;
Jie Luo3560e232023-06-12 00:33:50 -07006757 const upb_MiniTableField field = {31, 15, 12, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006758 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08006759 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006760}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006761UPB_INLINE bool google_protobuf_FileOptions_has_cc_enable_arenas(const google_protobuf_FileOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006762 const upb_MiniTableField field = {31, 15, 12, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006763 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006764}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006765UPB_INLINE void google_protobuf_FileOptions_clear_objc_class_prefix(google_protobuf_FileOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006766 const upb_MiniTableField field = {36, UPB_SIZE(52, 72), 13, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006767 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006768}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006769UPB_INLINE upb_StringView google_protobuf_FileOptions_objc_class_prefix(const google_protobuf_FileOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08006770 upb_StringView default_val = upb_StringView_FromString("");
6771 upb_StringView ret;
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006772 const upb_MiniTableField field = {36, UPB_SIZE(52, 72), 13, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006773 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08006774 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006775}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006776UPB_INLINE bool google_protobuf_FileOptions_has_objc_class_prefix(const google_protobuf_FileOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006777 const upb_MiniTableField field = {36, UPB_SIZE(52, 72), 13, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006778 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006779}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006780UPB_INLINE void google_protobuf_FileOptions_clear_csharp_namespace(google_protobuf_FileOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006781 const upb_MiniTableField field = {37, UPB_SIZE(60, 88), 14, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006782 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006783}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006784UPB_INLINE upb_StringView google_protobuf_FileOptions_csharp_namespace(const google_protobuf_FileOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08006785 upb_StringView default_val = upb_StringView_FromString("");
6786 upb_StringView ret;
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006787 const upb_MiniTableField field = {37, UPB_SIZE(60, 88), 14, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006788 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08006789 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006790}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006791UPB_INLINE bool google_protobuf_FileOptions_has_csharp_namespace(const google_protobuf_FileOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006792 const upb_MiniTableField field = {37, UPB_SIZE(60, 88), 14, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006793 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006794}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006795UPB_INLINE void google_protobuf_FileOptions_clear_swift_prefix(google_protobuf_FileOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006796 const upb_MiniTableField field = {39, UPB_SIZE(68, 104), 15, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006797 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006798}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006799UPB_INLINE upb_StringView google_protobuf_FileOptions_swift_prefix(const google_protobuf_FileOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08006800 upb_StringView default_val = upb_StringView_FromString("");
6801 upb_StringView ret;
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006802 const upb_MiniTableField field = {39, UPB_SIZE(68, 104), 15, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006803 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08006804 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006805}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006806UPB_INLINE bool google_protobuf_FileOptions_has_swift_prefix(const google_protobuf_FileOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006807 const upb_MiniTableField field = {39, UPB_SIZE(68, 104), 15, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006808 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006809}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006810UPB_INLINE void google_protobuf_FileOptions_clear_php_class_prefix(google_protobuf_FileOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006811 const upb_MiniTableField field = {40, UPB_SIZE(76, 120), 16, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006812 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006813}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006814UPB_INLINE upb_StringView google_protobuf_FileOptions_php_class_prefix(const google_protobuf_FileOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08006815 upb_StringView default_val = upb_StringView_FromString("");
6816 upb_StringView ret;
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006817 const upb_MiniTableField field = {40, UPB_SIZE(76, 120), 16, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006818 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08006819 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006820}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006821UPB_INLINE bool google_protobuf_FileOptions_has_php_class_prefix(const google_protobuf_FileOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006822 const upb_MiniTableField field = {40, UPB_SIZE(76, 120), 16, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006823 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006824}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006825UPB_INLINE void google_protobuf_FileOptions_clear_php_namespace(google_protobuf_FileOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006826 const upb_MiniTableField field = {41, UPB_SIZE(84, 136), 17, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006827 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006828}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006829UPB_INLINE upb_StringView google_protobuf_FileOptions_php_namespace(const google_protobuf_FileOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08006830 upb_StringView default_val = upb_StringView_FromString("");
6831 upb_StringView ret;
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006832 const upb_MiniTableField field = {41, UPB_SIZE(84, 136), 17, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006833 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08006834 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006835}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006836UPB_INLINE bool google_protobuf_FileOptions_has_php_namespace(const google_protobuf_FileOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006837 const upb_MiniTableField field = {41, UPB_SIZE(84, 136), 17, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006838 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006839}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006840UPB_INLINE void google_protobuf_FileOptions_clear_php_generic_services(google_protobuf_FileOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006841 const upb_MiniTableField field = {42, 16, 18, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006842 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006843}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006844UPB_INLINE bool google_protobuf_FileOptions_php_generic_services(const google_protobuf_FileOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08006845 bool default_val = false;
6846 bool ret;
Jie Luo3560e232023-06-12 00:33:50 -07006847 const upb_MiniTableField field = {42, 16, 18, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006848 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08006849 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006850}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006851UPB_INLINE bool google_protobuf_FileOptions_has_php_generic_services(const google_protobuf_FileOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07006852 const upb_MiniTableField field = {42, 16, 18, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006853 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006854}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006855UPB_INLINE void google_protobuf_FileOptions_clear_php_metadata_namespace(google_protobuf_FileOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006856 const upb_MiniTableField field = {44, UPB_SIZE(92, 152), 19, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006857 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006858}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006859UPB_INLINE upb_StringView google_protobuf_FileOptions_php_metadata_namespace(const google_protobuf_FileOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08006860 upb_StringView default_val = upb_StringView_FromString("");
6861 upb_StringView ret;
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006862 const upb_MiniTableField field = {44, UPB_SIZE(92, 152), 19, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006863 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08006864 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006865}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006866UPB_INLINE bool google_protobuf_FileOptions_has_php_metadata_namespace(const google_protobuf_FileOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006867 const upb_MiniTableField field = {44, UPB_SIZE(92, 152), 19, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006868 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006869}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006870UPB_INLINE void google_protobuf_FileOptions_clear_ruby_package(google_protobuf_FileOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006871 const upb_MiniTableField field = {45, UPB_SIZE(100, 168), 20, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006872 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006873}
Joshua Habermanf41049a2022-01-21 14:41:25 -08006874UPB_INLINE upb_StringView google_protobuf_FileOptions_ruby_package(const google_protobuf_FileOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08006875 upb_StringView default_val = upb_StringView_FromString("");
6876 upb_StringView ret;
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006877 const upb_MiniTableField field = {45, UPB_SIZE(100, 168), 20, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006878 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08006879 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08006880}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006881UPB_INLINE bool google_protobuf_FileOptions_has_ruby_package(const google_protobuf_FileOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006882 const upb_MiniTableField field = {45, UPB_SIZE(100, 168), 20, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
6883 return _upb_Message_HasNonExtensionField(msg, &field);
6884}
6885UPB_INLINE void google_protobuf_FileOptions_clear_features(google_protobuf_FileOptions* msg) {
6886 const upb_MiniTableField field = {50, UPB_SIZE(20, 184), 21, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6887 _upb_Message_ClearNonExtensionField(msg, &field);
6888}
6889UPB_INLINE const google_protobuf_FeatureSet* google_protobuf_FileOptions_features(const google_protobuf_FileOptions* msg) {
6890 const google_protobuf_FeatureSet* default_val = NULL;
6891 const google_protobuf_FeatureSet* ret;
6892 const upb_MiniTableField field = {50, UPB_SIZE(20, 184), 21, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6893 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
6894 return ret;
6895}
6896UPB_INLINE bool google_protobuf_FileOptions_has_features(const google_protobuf_FileOptions* msg) {
6897 const upb_MiniTableField field = {50, UPB_SIZE(20, 184), 21, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006898 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006899}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006900UPB_INLINE void google_protobuf_FileOptions_clear_uninterpreted_option(google_protobuf_FileOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006901 const upb_MiniTableField field = {999, UPB_SIZE(24, 192), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006902 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07006903}
Eric Salob7d54ac2022-12-29 11:59:42 -08006904UPB_INLINE const google_protobuf_UninterpretedOption* const* google_protobuf_FileOptions_uninterpreted_option(const google_protobuf_FileOptions* msg, size_t* size) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006905 const upb_MiniTableField field = {999, UPB_SIZE(24, 192), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08006906 const upb_Array* arr = upb_Message_GetArray(msg, &field);
6907 if (arr) {
6908 if (size) *size = arr->size;
6909 return (const google_protobuf_UninterpretedOption* const*)_upb_array_constptr(arr);
6910 } else {
6911 if (size) *size = 0;
6912 return NULL;
6913 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07006914}
Deanna Garciab26afb52023-04-25 13:37:18 -07006915UPB_INLINE const upb_Array* _google_protobuf_FileOptions_uninterpreted_option_upb_array(const google_protobuf_FileOptions* msg, size_t* size) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006916 const upb_MiniTableField field = {999, UPB_SIZE(24, 192), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07006917 const upb_Array* arr = upb_Message_GetArray(msg, &field);
6918 if (size) {
6919 *size = arr ? arr->size : 0;
6920 }
6921 return arr;
6922}
6923UPB_INLINE upb_Array* _google_protobuf_FileOptions_uninterpreted_option_mutable_upb_array(const google_protobuf_FileOptions* msg, size_t* size, upb_Arena* arena) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006924 const upb_MiniTableField field = {999, UPB_SIZE(24, 192), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07006925 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
6926 (upb_Message*)msg, &field, arena);
6927 if (size) {
6928 *size = arr ? arr->size : 0;
6929 }
6930 return arr;
6931}
Mike Kruskal3bc50492022-12-01 13:34:12 -08006932UPB_INLINE bool google_protobuf_FileOptions_has_uninterpreted_option(const google_protobuf_FileOptions* msg) {
6933 size_t size;
6934 google_protobuf_FileOptions_uninterpreted_option(msg, &size);
6935 return size != 0;
6936}
Joshua Haberman9abf6e22021-01-13 12:16:25 -08006937
Joshua Habermanf41049a2022-01-21 14:41:25 -08006938UPB_INLINE void google_protobuf_FileOptions_set_java_package(google_protobuf_FileOptions *msg, upb_StringView value) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006939 const upb_MiniTableField field = {1, UPB_SIZE(28, 24), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006940 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08006941}
6942UPB_INLINE void google_protobuf_FileOptions_set_java_outer_classname(google_protobuf_FileOptions *msg, upb_StringView value) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006943 const upb_MiniTableField field = {8, UPB_SIZE(36, 40), 2, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006944 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08006945}
6946UPB_INLINE void google_protobuf_FileOptions_set_optimize_for(google_protobuf_FileOptions *msg, int32_t value) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006947 const upb_MiniTableField field = {9, 4, 3, 2, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006948 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08006949}
6950UPB_INLINE void google_protobuf_FileOptions_set_java_multiple_files(google_protobuf_FileOptions *msg, bool value) {
Jie Luo3560e232023-06-12 00:33:50 -07006951 const upb_MiniTableField field = {10, 8, 4, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006952 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08006953}
6954UPB_INLINE void google_protobuf_FileOptions_set_go_package(google_protobuf_FileOptions *msg, upb_StringView value) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006955 const upb_MiniTableField field = {11, UPB_SIZE(44, 56), 5, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006956 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08006957}
6958UPB_INLINE void google_protobuf_FileOptions_set_cc_generic_services(google_protobuf_FileOptions *msg, bool value) {
Jie Luo3560e232023-06-12 00:33:50 -07006959 const upb_MiniTableField field = {16, 9, 6, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006960 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08006961}
6962UPB_INLINE void google_protobuf_FileOptions_set_java_generic_services(google_protobuf_FileOptions *msg, bool value) {
Jie Luo3560e232023-06-12 00:33:50 -07006963 const upb_MiniTableField field = {17, 10, 7, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006964 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08006965}
6966UPB_INLINE void google_protobuf_FileOptions_set_py_generic_services(google_protobuf_FileOptions *msg, bool value) {
Jie Luo3560e232023-06-12 00:33:50 -07006967 const upb_MiniTableField field = {18, 11, 8, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006968 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08006969}
6970UPB_INLINE void google_protobuf_FileOptions_set_java_generate_equals_and_hash(google_protobuf_FileOptions *msg, bool value) {
Jie Luo3560e232023-06-12 00:33:50 -07006971 const upb_MiniTableField field = {20, 12, 9, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006972 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08006973}
6974UPB_INLINE void google_protobuf_FileOptions_set_deprecated(google_protobuf_FileOptions *msg, bool value) {
Jie Luo3560e232023-06-12 00:33:50 -07006975 const upb_MiniTableField field = {23, 13, 10, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006976 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08006977}
6978UPB_INLINE void google_protobuf_FileOptions_set_java_string_check_utf8(google_protobuf_FileOptions *msg, bool value) {
Jie Luo3560e232023-06-12 00:33:50 -07006979 const upb_MiniTableField field = {27, 14, 11, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006980 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08006981}
6982UPB_INLINE void google_protobuf_FileOptions_set_cc_enable_arenas(google_protobuf_FileOptions *msg, bool value) {
Jie Luo3560e232023-06-12 00:33:50 -07006983 const upb_MiniTableField field = {31, 15, 12, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006984 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08006985}
6986UPB_INLINE void google_protobuf_FileOptions_set_objc_class_prefix(google_protobuf_FileOptions *msg, upb_StringView value) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006987 const upb_MiniTableField field = {36, UPB_SIZE(52, 72), 13, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006988 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08006989}
6990UPB_INLINE void google_protobuf_FileOptions_set_csharp_namespace(google_protobuf_FileOptions *msg, upb_StringView value) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006991 const upb_MiniTableField field = {37, UPB_SIZE(60, 88), 14, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006992 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08006993}
6994UPB_INLINE void google_protobuf_FileOptions_set_swift_prefix(google_protobuf_FileOptions *msg, upb_StringView value) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006995 const upb_MiniTableField field = {39, UPB_SIZE(68, 104), 15, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08006996 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08006997}
6998UPB_INLINE void google_protobuf_FileOptions_set_php_class_prefix(google_protobuf_FileOptions *msg, upb_StringView value) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07006999 const upb_MiniTableField field = {40, UPB_SIZE(76, 120), 16, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007000 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08007001}
7002UPB_INLINE void google_protobuf_FileOptions_set_php_namespace(google_protobuf_FileOptions *msg, upb_StringView value) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007003 const upb_MiniTableField field = {41, UPB_SIZE(84, 136), 17, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007004 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08007005}
7006UPB_INLINE void google_protobuf_FileOptions_set_php_generic_services(google_protobuf_FileOptions *msg, bool value) {
Jie Luo3560e232023-06-12 00:33:50 -07007007 const upb_MiniTableField field = {42, 16, 18, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007008 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08007009}
7010UPB_INLINE void google_protobuf_FileOptions_set_php_metadata_namespace(google_protobuf_FileOptions *msg, upb_StringView value) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007011 const upb_MiniTableField field = {44, UPB_SIZE(92, 152), 19, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007012 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08007013}
7014UPB_INLINE void google_protobuf_FileOptions_set_ruby_package(google_protobuf_FileOptions *msg, upb_StringView value) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007015 const upb_MiniTableField field = {45, UPB_SIZE(100, 168), 20, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007016 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08007017}
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007018UPB_INLINE void google_protobuf_FileOptions_set_features(google_protobuf_FileOptions *msg, google_protobuf_FeatureSet* value) {
7019 const upb_MiniTableField field = {50, UPB_SIZE(20, 184), 21, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7020 _upb_Message_SetNonExtensionField(msg, &field, &value);
7021}
7022UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_FileOptions_mutable_features(google_protobuf_FileOptions* msg, upb_Arena* arena) {
7023 struct google_protobuf_FeatureSet* sub = (struct google_protobuf_FeatureSet*)google_protobuf_FileOptions_features(msg);
7024 if (sub == NULL) {
7025 sub = (struct google_protobuf_FeatureSet*)_upb_Message_New(&google_protobuf_FeatureSet_msg_init, arena);
7026 if (sub) google_protobuf_FileOptions_set_features(msg, sub);
7027 }
7028 return sub;
7029}
Mike Kruskal232ecf42023-01-14 00:09:40 -08007030UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_FileOptions_mutable_uninterpreted_option(google_protobuf_FileOptions* msg, size_t* size) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007031 upb_MiniTableField field = {999, UPB_SIZE(24, 192), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08007032 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
7033 if (arr) {
7034 if (size) *size = arr->size;
7035 return (google_protobuf_UninterpretedOption**)_upb_array_ptr(arr);
7036 } else {
7037 if (size) *size = 0;
7038 return NULL;
7039 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08007040}
Eric Salob7d54ac2022-12-29 11:59:42 -08007041UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_FileOptions_resize_uninterpreted_option(google_protobuf_FileOptions* msg, size_t size, upb_Arena* arena) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007042 upb_MiniTableField field = {999, UPB_SIZE(24, 192), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07007043 return (google_protobuf_UninterpretedOption**)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08007044}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07007045UPB_INLINE struct google_protobuf_UninterpretedOption* google_protobuf_FileOptions_add_uninterpreted_option(google_protobuf_FileOptions* msg, upb_Arena* arena) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007046 upb_MiniTableField field = {999, UPB_SIZE(24, 192), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08007047 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
7048 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
7049 return NULL;
7050 }
Joshua Habermand3995ec2022-09-30 16:54:39 -07007051 struct google_protobuf_UninterpretedOption* sub = (struct google_protobuf_UninterpretedOption*)_upb_Message_New(&google_protobuf_UninterpretedOption_msg_init, arena);
Eric Salob7d54ac2022-12-29 11:59:42 -08007052 if (!arr || !sub) return NULL;
7053 _upb_Array_Set(arr, arr->size - 1, &sub, sizeof(sub));
Joshua Haberman9abf6e22021-01-13 12:16:25 -08007054 return sub;
7055}
7056
7057/* google.protobuf.MessageOptions */
7058
Joshua Habermanf41049a2022-01-21 14:41:25 -08007059UPB_INLINE google_protobuf_MessageOptions* google_protobuf_MessageOptions_new(upb_Arena* arena) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07007060 return (google_protobuf_MessageOptions*)_upb_Message_New(&google_protobuf_MessageOptions_msg_init, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08007061}
Joshua Habermanf41049a2022-01-21 14:41:25 -08007062UPB_INLINE google_protobuf_MessageOptions* google_protobuf_MessageOptions_parse(const char* buf, size_t size, upb_Arena* arena) {
7063 google_protobuf_MessageOptions* ret = google_protobuf_MessageOptions_new(arena);
Joshua Haberman9d578a32021-08-02 15:32:01 -07007064 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07007065 if (upb_Decode(buf, size, ret, &google_protobuf_MessageOptions_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
Joshua Haberman9d578a32021-08-02 15:32:01 -07007066 return NULL;
7067 }
7068 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08007069}
Joshua Habermanf41049a2022-01-21 14:41:25 -08007070UPB_INLINE google_protobuf_MessageOptions* google_protobuf_MessageOptions_parse_ex(const char* buf, size_t size,
7071 const upb_ExtensionRegistry* extreg,
7072 int options, upb_Arena* arena) {
7073 google_protobuf_MessageOptions* ret = google_protobuf_MessageOptions_new(arena);
7074 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07007075 if (upb_Decode(buf, size, ret, &google_protobuf_MessageOptions_msg_init, extreg, options, arena) !=
Joshua Habermanf41049a2022-01-21 14:41:25 -08007076 kUpb_DecodeStatus_Ok) {
7077 return NULL;
7078 }
7079 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08007080}
Joshua Habermanf41049a2022-01-21 14:41:25 -08007081UPB_INLINE char* google_protobuf_MessageOptions_serialize(const google_protobuf_MessageOptions* msg, upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07007082 char* ptr;
7083 (void)upb_Encode(msg, &google_protobuf_MessageOptions_msg_init, 0, arena, &ptr, len);
7084 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08007085}
7086UPB_INLINE char* google_protobuf_MessageOptions_serialize_ex(const google_protobuf_MessageOptions* msg, int options,
7087 upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07007088 char* ptr;
7089 (void)upb_Encode(msg, &google_protobuf_MessageOptions_msg_init, options, arena, &ptr, len);
7090 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08007091}
Mike Kruskal3bc50492022-12-01 13:34:12 -08007092UPB_INLINE void google_protobuf_MessageOptions_clear_message_set_wire_format(google_protobuf_MessageOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07007093 const upb_MiniTableField field = {1, 1, 1, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007094 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07007095}
Joshua Habermanf41049a2022-01-21 14:41:25 -08007096UPB_INLINE bool google_protobuf_MessageOptions_message_set_wire_format(const google_protobuf_MessageOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08007097 bool default_val = false;
7098 bool ret;
Jie Luo3560e232023-06-12 00:33:50 -07007099 const upb_MiniTableField field = {1, 1, 1, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007100 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08007101 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08007102}
Mike Kruskal3bc50492022-12-01 13:34:12 -08007103UPB_INLINE bool google_protobuf_MessageOptions_has_message_set_wire_format(const google_protobuf_MessageOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07007104 const upb_MiniTableField field = {1, 1, 1, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007105 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07007106}
Mike Kruskal3bc50492022-12-01 13:34:12 -08007107UPB_INLINE void google_protobuf_MessageOptions_clear_no_standard_descriptor_accessor(google_protobuf_MessageOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07007108 const upb_MiniTableField field = {2, 2, 2, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007109 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07007110}
Joshua Habermanf41049a2022-01-21 14:41:25 -08007111UPB_INLINE bool google_protobuf_MessageOptions_no_standard_descriptor_accessor(const google_protobuf_MessageOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08007112 bool default_val = false;
7113 bool ret;
Jie Luo3560e232023-06-12 00:33:50 -07007114 const upb_MiniTableField field = {2, 2, 2, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007115 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08007116 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08007117}
Mike Kruskal3bc50492022-12-01 13:34:12 -08007118UPB_INLINE bool google_protobuf_MessageOptions_has_no_standard_descriptor_accessor(const google_protobuf_MessageOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07007119 const upb_MiniTableField field = {2, 2, 2, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007120 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07007121}
Mike Kruskal3bc50492022-12-01 13:34:12 -08007122UPB_INLINE void google_protobuf_MessageOptions_clear_deprecated(google_protobuf_MessageOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07007123 const upb_MiniTableField field = {3, 3, 3, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007124 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07007125}
Joshua Habermanf41049a2022-01-21 14:41:25 -08007126UPB_INLINE bool google_protobuf_MessageOptions_deprecated(const google_protobuf_MessageOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08007127 bool default_val = false;
7128 bool ret;
Jie Luo3560e232023-06-12 00:33:50 -07007129 const upb_MiniTableField field = {3, 3, 3, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007130 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08007131 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08007132}
Mike Kruskal3bc50492022-12-01 13:34:12 -08007133UPB_INLINE bool google_protobuf_MessageOptions_has_deprecated(const google_protobuf_MessageOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07007134 const upb_MiniTableField field = {3, 3, 3, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007135 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07007136}
Mike Kruskal3bc50492022-12-01 13:34:12 -08007137UPB_INLINE void google_protobuf_MessageOptions_clear_map_entry(google_protobuf_MessageOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07007138 const upb_MiniTableField field = {7, 4, 4, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007139 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07007140}
Joshua Habermanf41049a2022-01-21 14:41:25 -08007141UPB_INLINE bool google_protobuf_MessageOptions_map_entry(const google_protobuf_MessageOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08007142 bool default_val = false;
7143 bool ret;
Jie Luo3560e232023-06-12 00:33:50 -07007144 const upb_MiniTableField field = {7, 4, 4, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007145 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08007146 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08007147}
Mike Kruskal3bc50492022-12-01 13:34:12 -08007148UPB_INLINE bool google_protobuf_MessageOptions_has_map_entry(const google_protobuf_MessageOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07007149 const upb_MiniTableField field = {7, 4, 4, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007150 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07007151}
Mike Kruskal6b87d6f2022-12-14 10:36:53 -08007152UPB_INLINE void google_protobuf_MessageOptions_clear_deprecated_legacy_json_field_conflicts(google_protobuf_MessageOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07007153 const upb_MiniTableField field = {11, 5, 5, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Mike Kruskal6b87d6f2022-12-14 10:36:53 -08007154 _upb_Message_ClearNonExtensionField(msg, &field);
7155}
7156UPB_INLINE bool google_protobuf_MessageOptions_deprecated_legacy_json_field_conflicts(const google_protobuf_MessageOptions* msg) {
7157 bool default_val = false;
7158 bool ret;
Jie Luo3560e232023-06-12 00:33:50 -07007159 const upb_MiniTableField field = {11, 5, 5, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Mike Kruskal6b87d6f2022-12-14 10:36:53 -08007160 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
7161 return ret;
7162}
7163UPB_INLINE bool google_protobuf_MessageOptions_has_deprecated_legacy_json_field_conflicts(const google_protobuf_MessageOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07007164 const upb_MiniTableField field = {11, 5, 5, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Mike Kruskal6b87d6f2022-12-14 10:36:53 -08007165 return _upb_Message_HasNonExtensionField(msg, &field);
7166}
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007167UPB_INLINE void google_protobuf_MessageOptions_clear_features(google_protobuf_MessageOptions* msg) {
7168 const upb_MiniTableField field = {12, 8, 6, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7169 _upb_Message_ClearNonExtensionField(msg, &field);
7170}
7171UPB_INLINE const google_protobuf_FeatureSet* google_protobuf_MessageOptions_features(const google_protobuf_MessageOptions* msg) {
7172 const google_protobuf_FeatureSet* default_val = NULL;
7173 const google_protobuf_FeatureSet* ret;
7174 const upb_MiniTableField field = {12, 8, 6, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7175 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
7176 return ret;
7177}
7178UPB_INLINE bool google_protobuf_MessageOptions_has_features(const google_protobuf_MessageOptions* msg) {
7179 const upb_MiniTableField field = {12, 8, 6, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7180 return _upb_Message_HasNonExtensionField(msg, &field);
7181}
Mike Kruskal3bc50492022-12-01 13:34:12 -08007182UPB_INLINE void google_protobuf_MessageOptions_clear_uninterpreted_option(google_protobuf_MessageOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007183 const upb_MiniTableField field = {999, UPB_SIZE(12, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007184 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07007185}
Eric Salob7d54ac2022-12-29 11:59:42 -08007186UPB_INLINE const google_protobuf_UninterpretedOption* const* google_protobuf_MessageOptions_uninterpreted_option(const google_protobuf_MessageOptions* msg, size_t* size) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007187 const upb_MiniTableField field = {999, UPB_SIZE(12, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08007188 const upb_Array* arr = upb_Message_GetArray(msg, &field);
7189 if (arr) {
7190 if (size) *size = arr->size;
7191 return (const google_protobuf_UninterpretedOption* const*)_upb_array_constptr(arr);
7192 } else {
7193 if (size) *size = 0;
7194 return NULL;
7195 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07007196}
Deanna Garciab26afb52023-04-25 13:37:18 -07007197UPB_INLINE const upb_Array* _google_protobuf_MessageOptions_uninterpreted_option_upb_array(const google_protobuf_MessageOptions* msg, size_t* size) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007198 const upb_MiniTableField field = {999, UPB_SIZE(12, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07007199 const upb_Array* arr = upb_Message_GetArray(msg, &field);
7200 if (size) {
7201 *size = arr ? arr->size : 0;
7202 }
7203 return arr;
7204}
7205UPB_INLINE upb_Array* _google_protobuf_MessageOptions_uninterpreted_option_mutable_upb_array(const google_protobuf_MessageOptions* msg, size_t* size, upb_Arena* arena) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007206 const upb_MiniTableField field = {999, UPB_SIZE(12, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07007207 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
7208 (upb_Message*)msg, &field, arena);
7209 if (size) {
7210 *size = arr ? arr->size : 0;
7211 }
7212 return arr;
7213}
Mike Kruskal3bc50492022-12-01 13:34:12 -08007214UPB_INLINE bool google_protobuf_MessageOptions_has_uninterpreted_option(const google_protobuf_MessageOptions* msg) {
7215 size_t size;
7216 google_protobuf_MessageOptions_uninterpreted_option(msg, &size);
7217 return size != 0;
7218}
Joshua Haberman9abf6e22021-01-13 12:16:25 -08007219
7220UPB_INLINE void google_protobuf_MessageOptions_set_message_set_wire_format(google_protobuf_MessageOptions *msg, bool value) {
Jie Luo3560e232023-06-12 00:33:50 -07007221 const upb_MiniTableField field = {1, 1, 1, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007222 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08007223}
7224UPB_INLINE void google_protobuf_MessageOptions_set_no_standard_descriptor_accessor(google_protobuf_MessageOptions *msg, bool value) {
Jie Luo3560e232023-06-12 00:33:50 -07007225 const upb_MiniTableField field = {2, 2, 2, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007226 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08007227}
7228UPB_INLINE void google_protobuf_MessageOptions_set_deprecated(google_protobuf_MessageOptions *msg, bool value) {
Jie Luo3560e232023-06-12 00:33:50 -07007229 const upb_MiniTableField field = {3, 3, 3, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007230 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08007231}
7232UPB_INLINE void google_protobuf_MessageOptions_set_map_entry(google_protobuf_MessageOptions *msg, bool value) {
Jie Luo3560e232023-06-12 00:33:50 -07007233 const upb_MiniTableField field = {7, 4, 4, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007234 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08007235}
7236UPB_INLINE void google_protobuf_MessageOptions_set_deprecated_legacy_json_field_conflicts(google_protobuf_MessageOptions *msg, bool value) {
Jie Luo3560e232023-06-12 00:33:50 -07007237 const upb_MiniTableField field = {11, 5, 5, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Mike Kruskal6b87d6f2022-12-14 10:36:53 -08007238 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08007239}
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007240UPB_INLINE void google_protobuf_MessageOptions_set_features(google_protobuf_MessageOptions *msg, google_protobuf_FeatureSet* value) {
7241 const upb_MiniTableField field = {12, 8, 6, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7242 _upb_Message_SetNonExtensionField(msg, &field, &value);
7243}
7244UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_MessageOptions_mutable_features(google_protobuf_MessageOptions* msg, upb_Arena* arena) {
7245 struct google_protobuf_FeatureSet* sub = (struct google_protobuf_FeatureSet*)google_protobuf_MessageOptions_features(msg);
7246 if (sub == NULL) {
7247 sub = (struct google_protobuf_FeatureSet*)_upb_Message_New(&google_protobuf_FeatureSet_msg_init, arena);
7248 if (sub) google_protobuf_MessageOptions_set_features(msg, sub);
7249 }
7250 return sub;
7251}
Mike Kruskal232ecf42023-01-14 00:09:40 -08007252UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_MessageOptions_mutable_uninterpreted_option(google_protobuf_MessageOptions* msg, size_t* size) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007253 upb_MiniTableField field = {999, UPB_SIZE(12, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08007254 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
7255 if (arr) {
7256 if (size) *size = arr->size;
7257 return (google_protobuf_UninterpretedOption**)_upb_array_ptr(arr);
7258 } else {
7259 if (size) *size = 0;
7260 return NULL;
7261 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08007262}
Eric Salob7d54ac2022-12-29 11:59:42 -08007263UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_MessageOptions_resize_uninterpreted_option(google_protobuf_MessageOptions* msg, size_t size, upb_Arena* arena) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007264 upb_MiniTableField field = {999, UPB_SIZE(12, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07007265 return (google_protobuf_UninterpretedOption**)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08007266}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07007267UPB_INLINE struct google_protobuf_UninterpretedOption* google_protobuf_MessageOptions_add_uninterpreted_option(google_protobuf_MessageOptions* msg, upb_Arena* arena) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007268 upb_MiniTableField field = {999, UPB_SIZE(12, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08007269 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
7270 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
7271 return NULL;
7272 }
Joshua Habermand3995ec2022-09-30 16:54:39 -07007273 struct google_protobuf_UninterpretedOption* sub = (struct google_protobuf_UninterpretedOption*)_upb_Message_New(&google_protobuf_UninterpretedOption_msg_init, arena);
Eric Salob7d54ac2022-12-29 11:59:42 -08007274 if (!arr || !sub) return NULL;
7275 _upb_Array_Set(arr, arr->size - 1, &sub, sizeof(sub));
Joshua Haberman9abf6e22021-01-13 12:16:25 -08007276 return sub;
7277}
7278
7279/* google.protobuf.FieldOptions */
7280
Joshua Habermanf41049a2022-01-21 14:41:25 -08007281UPB_INLINE google_protobuf_FieldOptions* google_protobuf_FieldOptions_new(upb_Arena* arena) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07007282 return (google_protobuf_FieldOptions*)_upb_Message_New(&google_protobuf_FieldOptions_msg_init, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08007283}
Joshua Habermanf41049a2022-01-21 14:41:25 -08007284UPB_INLINE google_protobuf_FieldOptions* google_protobuf_FieldOptions_parse(const char* buf, size_t size, upb_Arena* arena) {
7285 google_protobuf_FieldOptions* ret = google_protobuf_FieldOptions_new(arena);
Joshua Haberman9d578a32021-08-02 15:32:01 -07007286 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07007287 if (upb_Decode(buf, size, ret, &google_protobuf_FieldOptions_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
Joshua Haberman9d578a32021-08-02 15:32:01 -07007288 return NULL;
7289 }
7290 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08007291}
Joshua Habermanf41049a2022-01-21 14:41:25 -08007292UPB_INLINE google_protobuf_FieldOptions* google_protobuf_FieldOptions_parse_ex(const char* buf, size_t size,
7293 const upb_ExtensionRegistry* extreg,
7294 int options, upb_Arena* arena) {
7295 google_protobuf_FieldOptions* ret = google_protobuf_FieldOptions_new(arena);
7296 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07007297 if (upb_Decode(buf, size, ret, &google_protobuf_FieldOptions_msg_init, extreg, options, arena) !=
Joshua Habermanf41049a2022-01-21 14:41:25 -08007298 kUpb_DecodeStatus_Ok) {
7299 return NULL;
7300 }
7301 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08007302}
Joshua Habermanf41049a2022-01-21 14:41:25 -08007303UPB_INLINE char* google_protobuf_FieldOptions_serialize(const google_protobuf_FieldOptions* msg, upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07007304 char* ptr;
7305 (void)upb_Encode(msg, &google_protobuf_FieldOptions_msg_init, 0, arena, &ptr, len);
7306 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08007307}
7308UPB_INLINE char* google_protobuf_FieldOptions_serialize_ex(const google_protobuf_FieldOptions* msg, int options,
7309 upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07007310 char* ptr;
7311 (void)upb_Encode(msg, &google_protobuf_FieldOptions_msg_init, options, arena, &ptr, len);
7312 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08007313}
Mike Kruskal3bc50492022-12-01 13:34:12 -08007314UPB_INLINE void google_protobuf_FieldOptions_clear_ctype(google_protobuf_FieldOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007315 const upb_MiniTableField field = {1, 4, 1, 3, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007316 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07007317}
Joshua Habermanf41049a2022-01-21 14:41:25 -08007318UPB_INLINE int32_t google_protobuf_FieldOptions_ctype(const google_protobuf_FieldOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08007319 int32_t default_val = 0;
7320 int32_t ret;
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007321 const upb_MiniTableField field = {1, 4, 1, 3, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007322 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08007323 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08007324}
Mike Kruskal3bc50492022-12-01 13:34:12 -08007325UPB_INLINE bool google_protobuf_FieldOptions_has_ctype(const google_protobuf_FieldOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007326 const upb_MiniTableField field = {1, 4, 1, 3, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007327 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07007328}
Mike Kruskal3bc50492022-12-01 13:34:12 -08007329UPB_INLINE void google_protobuf_FieldOptions_clear_packed(google_protobuf_FieldOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07007330 const upb_MiniTableField field = {2, 8, 2, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007331 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07007332}
Joshua Habermanf41049a2022-01-21 14:41:25 -08007333UPB_INLINE bool google_protobuf_FieldOptions_packed(const google_protobuf_FieldOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08007334 bool default_val = false;
7335 bool ret;
Jie Luo3560e232023-06-12 00:33:50 -07007336 const upb_MiniTableField field = {2, 8, 2, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007337 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08007338 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08007339}
Mike Kruskal3bc50492022-12-01 13:34:12 -08007340UPB_INLINE bool google_protobuf_FieldOptions_has_packed(const google_protobuf_FieldOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07007341 const upb_MiniTableField field = {2, 8, 2, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007342 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07007343}
Mike Kruskal3bc50492022-12-01 13:34:12 -08007344UPB_INLINE void google_protobuf_FieldOptions_clear_deprecated(google_protobuf_FieldOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07007345 const upb_MiniTableField field = {3, 9, 3, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007346 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07007347}
Joshua Habermanf41049a2022-01-21 14:41:25 -08007348UPB_INLINE bool google_protobuf_FieldOptions_deprecated(const google_protobuf_FieldOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08007349 bool default_val = false;
7350 bool ret;
Jie Luo3560e232023-06-12 00:33:50 -07007351 const upb_MiniTableField field = {3, 9, 3, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007352 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08007353 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08007354}
Mike Kruskal3bc50492022-12-01 13:34:12 -08007355UPB_INLINE bool google_protobuf_FieldOptions_has_deprecated(const google_protobuf_FieldOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07007356 const upb_MiniTableField field = {3, 9, 3, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007357 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07007358}
Mike Kruskal3bc50492022-12-01 13:34:12 -08007359UPB_INLINE void google_protobuf_FieldOptions_clear_lazy(google_protobuf_FieldOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07007360 const upb_MiniTableField field = {5, 10, 4, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007361 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07007362}
Joshua Habermanf41049a2022-01-21 14:41:25 -08007363UPB_INLINE bool google_protobuf_FieldOptions_lazy(const google_protobuf_FieldOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08007364 bool default_val = false;
7365 bool ret;
Jie Luo3560e232023-06-12 00:33:50 -07007366 const upb_MiniTableField field = {5, 10, 4, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007367 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08007368 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08007369}
Mike Kruskal3bc50492022-12-01 13:34:12 -08007370UPB_INLINE bool google_protobuf_FieldOptions_has_lazy(const google_protobuf_FieldOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07007371 const upb_MiniTableField field = {5, 10, 4, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007372 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07007373}
Mike Kruskal3bc50492022-12-01 13:34:12 -08007374UPB_INLINE void google_protobuf_FieldOptions_clear_jstype(google_protobuf_FieldOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007375 const upb_MiniTableField field = {6, 12, 5, 4, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007376 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07007377}
Joshua Habermanf41049a2022-01-21 14:41:25 -08007378UPB_INLINE int32_t google_protobuf_FieldOptions_jstype(const google_protobuf_FieldOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08007379 int32_t default_val = 0;
7380 int32_t ret;
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007381 const upb_MiniTableField field = {6, 12, 5, 4, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007382 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08007383 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08007384}
Mike Kruskal3bc50492022-12-01 13:34:12 -08007385UPB_INLINE bool google_protobuf_FieldOptions_has_jstype(const google_protobuf_FieldOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007386 const upb_MiniTableField field = {6, 12, 5, 4, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007387 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07007388}
Mike Kruskal3bc50492022-12-01 13:34:12 -08007389UPB_INLINE void google_protobuf_FieldOptions_clear_weak(google_protobuf_FieldOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07007390 const upb_MiniTableField field = {10, 16, 6, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007391 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07007392}
Joshua Habermanf41049a2022-01-21 14:41:25 -08007393UPB_INLINE bool google_protobuf_FieldOptions_weak(const google_protobuf_FieldOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08007394 bool default_val = false;
7395 bool ret;
Jie Luo3560e232023-06-12 00:33:50 -07007396 const upb_MiniTableField field = {10, 16, 6, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007397 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08007398 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08007399}
Mike Kruskal3bc50492022-12-01 13:34:12 -08007400UPB_INLINE bool google_protobuf_FieldOptions_has_weak(const google_protobuf_FieldOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07007401 const upb_MiniTableField field = {10, 16, 6, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007402 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07007403}
Mike Kruskal3bc50492022-12-01 13:34:12 -08007404UPB_INLINE void google_protobuf_FieldOptions_clear_unverified_lazy(google_protobuf_FieldOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07007405 const upb_MiniTableField field = {15, 17, 7, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007406 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07007407}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07007408UPB_INLINE bool google_protobuf_FieldOptions_unverified_lazy(const google_protobuf_FieldOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08007409 bool default_val = false;
7410 bool ret;
Jie Luo3560e232023-06-12 00:33:50 -07007411 const upb_MiniTableField field = {15, 17, 7, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007412 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08007413 return ret;
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07007414}
Mike Kruskal3bc50492022-12-01 13:34:12 -08007415UPB_INLINE bool google_protobuf_FieldOptions_has_unverified_lazy(const google_protobuf_FieldOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07007416 const upb_MiniTableField field = {15, 17, 7, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007417 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07007418}
Protobuf Team Bot9238c482022-12-16 20:01:55 -08007419UPB_INLINE void google_protobuf_FieldOptions_clear_debug_redact(google_protobuf_FieldOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07007420 const upb_MiniTableField field = {16, 18, 8, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Protobuf Team Bot9238c482022-12-16 20:01:55 -08007421 _upb_Message_ClearNonExtensionField(msg, &field);
7422}
7423UPB_INLINE bool google_protobuf_FieldOptions_debug_redact(const google_protobuf_FieldOptions* msg) {
7424 bool default_val = false;
7425 bool ret;
Jie Luo3560e232023-06-12 00:33:50 -07007426 const upb_MiniTableField field = {16, 18, 8, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Protobuf Team Bot9238c482022-12-16 20:01:55 -08007427 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
7428 return ret;
7429}
7430UPB_INLINE bool google_protobuf_FieldOptions_has_debug_redact(const google_protobuf_FieldOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07007431 const upb_MiniTableField field = {16, 18, 8, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Protobuf Team Bot9238c482022-12-16 20:01:55 -08007432 return _upb_Message_HasNonExtensionField(msg, &field);
7433}
Adam Cozzette5a568372023-01-24 20:35:59 -08007434UPB_INLINE void google_protobuf_FieldOptions_clear_retention(google_protobuf_FieldOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007435 const upb_MiniTableField field = {17, 20, 9, 5, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Adam Cozzette5a568372023-01-24 20:35:59 -08007436 _upb_Message_ClearNonExtensionField(msg, &field);
7437}
7438UPB_INLINE int32_t google_protobuf_FieldOptions_retention(const google_protobuf_FieldOptions* msg) {
7439 int32_t default_val = 0;
7440 int32_t ret;
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007441 const upb_MiniTableField field = {17, 20, 9, 5, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Adam Cozzette5a568372023-01-24 20:35:59 -08007442 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
7443 return ret;
7444}
7445UPB_INLINE bool google_protobuf_FieldOptions_has_retention(const google_protobuf_FieldOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007446 const upb_MiniTableField field = {17, 20, 9, 5, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Adam Cozzette5a568372023-01-24 20:35:59 -08007447 return _upb_Message_HasNonExtensionField(msg, &field);
7448}
Adam Cozzette88b5b192023-05-03 15:36:48 -07007449UPB_INLINE void google_protobuf_FieldOptions_clear_target_obsolete_do_not_use(google_protobuf_FieldOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007450 const upb_MiniTableField field = {18, 24, 10, 6, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Mike Kruskald4804702023-03-20 15:08:40 -07007451 _upb_Message_ClearNonExtensionField(msg, &field);
7452}
Adam Cozzette88b5b192023-05-03 15:36:48 -07007453UPB_INLINE int32_t google_protobuf_FieldOptions_target_obsolete_do_not_use(const google_protobuf_FieldOptions* msg) {
Mike Kruskald4804702023-03-20 15:08:40 -07007454 int32_t default_val = 0;
7455 int32_t ret;
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007456 const upb_MiniTableField field = {18, 24, 10, 6, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Mike Kruskald4804702023-03-20 15:08:40 -07007457 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
7458 return ret;
7459}
Adam Cozzette88b5b192023-05-03 15:36:48 -07007460UPB_INLINE bool google_protobuf_FieldOptions_has_target_obsolete_do_not_use(const google_protobuf_FieldOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007461 const upb_MiniTableField field = {18, 24, 10, 6, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Mike Kruskald4804702023-03-20 15:08:40 -07007462 return _upb_Message_HasNonExtensionField(msg, &field);
7463}
Mike Kruskal0c121392023-03-18 00:05:41 -07007464UPB_INLINE void google_protobuf_FieldOptions_clear_targets(google_protobuf_FieldOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007465 const upb_MiniTableField field = {19, UPB_SIZE(28, 32), 0, 7, 14, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Adam Cozzette5a568372023-01-24 20:35:59 -08007466 _upb_Message_ClearNonExtensionField(msg, &field);
7467}
Mike Kruskal0c121392023-03-18 00:05:41 -07007468UPB_INLINE int32_t const* google_protobuf_FieldOptions_targets(const google_protobuf_FieldOptions* msg, size_t* size) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007469 const upb_MiniTableField field = {19, UPB_SIZE(28, 32), 0, 7, 14, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Mike Kruskal0c121392023-03-18 00:05:41 -07007470 const upb_Array* arr = upb_Message_GetArray(msg, &field);
7471 if (arr) {
7472 if (size) *size = arr->size;
7473 return (int32_t const*)_upb_array_constptr(arr);
7474 } else {
7475 if (size) *size = 0;
7476 return NULL;
7477 }
Adam Cozzette5a568372023-01-24 20:35:59 -08007478}
Deanna Garciab26afb52023-04-25 13:37:18 -07007479UPB_INLINE const upb_Array* _google_protobuf_FieldOptions_targets_upb_array(const google_protobuf_FieldOptions* msg, size_t* size) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007480 const upb_MiniTableField field = {19, UPB_SIZE(28, 32), 0, 7, 14, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07007481 const upb_Array* arr = upb_Message_GetArray(msg, &field);
7482 if (size) {
7483 *size = arr ? arr->size : 0;
7484 }
7485 return arr;
7486}
7487UPB_INLINE upb_Array* _google_protobuf_FieldOptions_targets_mutable_upb_array(const google_protobuf_FieldOptions* msg, size_t* size, upb_Arena* arena) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007488 const upb_MiniTableField field = {19, UPB_SIZE(28, 32), 0, 7, 14, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07007489 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
7490 (upb_Message*)msg, &field, arena);
7491 if (size) {
7492 *size = arr ? arr->size : 0;
7493 }
7494 return arr;
7495}
Mike Kruskal0c121392023-03-18 00:05:41 -07007496UPB_INLINE bool google_protobuf_FieldOptions_has_targets(const google_protobuf_FieldOptions* msg) {
7497 size_t size;
7498 google_protobuf_FieldOptions_targets(msg, &size);
7499 return size != 0;
Adam Cozzette5a568372023-01-24 20:35:59 -08007500}
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007501UPB_INLINE void google_protobuf_FieldOptions_clear_edition_defaults(google_protobuf_FieldOptions* msg) {
7502 const upb_MiniTableField field = {20, UPB_SIZE(32, 40), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7503 _upb_Message_ClearNonExtensionField(msg, &field);
7504}
7505UPB_INLINE const google_protobuf_FieldOptions_EditionDefault* const* google_protobuf_FieldOptions_edition_defaults(const google_protobuf_FieldOptions* msg, size_t* size) {
7506 const upb_MiniTableField field = {20, UPB_SIZE(32, 40), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7507 const upb_Array* arr = upb_Message_GetArray(msg, &field);
7508 if (arr) {
7509 if (size) *size = arr->size;
7510 return (const google_protobuf_FieldOptions_EditionDefault* const*)_upb_array_constptr(arr);
7511 } else {
7512 if (size) *size = 0;
7513 return NULL;
7514 }
7515}
7516UPB_INLINE const upb_Array* _google_protobuf_FieldOptions_edition_defaults_upb_array(const google_protobuf_FieldOptions* msg, size_t* size) {
7517 const upb_MiniTableField field = {20, UPB_SIZE(32, 40), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7518 const upb_Array* arr = upb_Message_GetArray(msg, &field);
7519 if (size) {
7520 *size = arr ? arr->size : 0;
7521 }
7522 return arr;
7523}
7524UPB_INLINE upb_Array* _google_protobuf_FieldOptions_edition_defaults_mutable_upb_array(const google_protobuf_FieldOptions* msg, size_t* size, upb_Arena* arena) {
7525 const upb_MiniTableField field = {20, UPB_SIZE(32, 40), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7526 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
7527 (upb_Message*)msg, &field, arena);
7528 if (size) {
7529 *size = arr ? arr->size : 0;
7530 }
7531 return arr;
7532}
7533UPB_INLINE bool google_protobuf_FieldOptions_has_edition_defaults(const google_protobuf_FieldOptions* msg) {
7534 size_t size;
7535 google_protobuf_FieldOptions_edition_defaults(msg, &size);
7536 return size != 0;
7537}
7538UPB_INLINE void google_protobuf_FieldOptions_clear_features(google_protobuf_FieldOptions* msg) {
7539 const upb_MiniTableField field = {21, UPB_SIZE(36, 48), 11, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7540 _upb_Message_ClearNonExtensionField(msg, &field);
7541}
7542UPB_INLINE const google_protobuf_FeatureSet* google_protobuf_FieldOptions_features(const google_protobuf_FieldOptions* msg) {
7543 const google_protobuf_FeatureSet* default_val = NULL;
7544 const google_protobuf_FeatureSet* ret;
7545 const upb_MiniTableField field = {21, UPB_SIZE(36, 48), 11, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7546 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
7547 return ret;
7548}
7549UPB_INLINE bool google_protobuf_FieldOptions_has_features(const google_protobuf_FieldOptions* msg) {
7550 const upb_MiniTableField field = {21, UPB_SIZE(36, 48), 11, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7551 return _upb_Message_HasNonExtensionField(msg, &field);
7552}
Mike Kruskal3bc50492022-12-01 13:34:12 -08007553UPB_INLINE void google_protobuf_FieldOptions_clear_uninterpreted_option(google_protobuf_FieldOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007554 const upb_MiniTableField field = {999, UPB_SIZE(40, 56), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007555 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07007556}
Eric Salob7d54ac2022-12-29 11:59:42 -08007557UPB_INLINE const google_protobuf_UninterpretedOption* const* google_protobuf_FieldOptions_uninterpreted_option(const google_protobuf_FieldOptions* msg, size_t* size) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007558 const upb_MiniTableField field = {999, UPB_SIZE(40, 56), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08007559 const upb_Array* arr = upb_Message_GetArray(msg, &field);
7560 if (arr) {
7561 if (size) *size = arr->size;
7562 return (const google_protobuf_UninterpretedOption* const*)_upb_array_constptr(arr);
7563 } else {
7564 if (size) *size = 0;
7565 return NULL;
7566 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07007567}
Deanna Garciab26afb52023-04-25 13:37:18 -07007568UPB_INLINE const upb_Array* _google_protobuf_FieldOptions_uninterpreted_option_upb_array(const google_protobuf_FieldOptions* msg, size_t* size) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007569 const upb_MiniTableField field = {999, UPB_SIZE(40, 56), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07007570 const upb_Array* arr = upb_Message_GetArray(msg, &field);
7571 if (size) {
7572 *size = arr ? arr->size : 0;
7573 }
7574 return arr;
7575}
7576UPB_INLINE upb_Array* _google_protobuf_FieldOptions_uninterpreted_option_mutable_upb_array(const google_protobuf_FieldOptions* msg, size_t* size, upb_Arena* arena) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007577 const upb_MiniTableField field = {999, UPB_SIZE(40, 56), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07007578 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
7579 (upb_Message*)msg, &field, arena);
7580 if (size) {
7581 *size = arr ? arr->size : 0;
7582 }
7583 return arr;
7584}
Mike Kruskal3bc50492022-12-01 13:34:12 -08007585UPB_INLINE bool google_protobuf_FieldOptions_has_uninterpreted_option(const google_protobuf_FieldOptions* msg) {
7586 size_t size;
7587 google_protobuf_FieldOptions_uninterpreted_option(msg, &size);
7588 return size != 0;
7589}
Joshua Haberman9abf6e22021-01-13 12:16:25 -08007590
7591UPB_INLINE void google_protobuf_FieldOptions_set_ctype(google_protobuf_FieldOptions *msg, int32_t value) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007592 const upb_MiniTableField field = {1, 4, 1, 3, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007593 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08007594}
7595UPB_INLINE void google_protobuf_FieldOptions_set_packed(google_protobuf_FieldOptions *msg, bool value) {
Jie Luo3560e232023-06-12 00:33:50 -07007596 const upb_MiniTableField field = {2, 8, 2, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007597 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08007598}
7599UPB_INLINE void google_protobuf_FieldOptions_set_deprecated(google_protobuf_FieldOptions *msg, bool value) {
Jie Luo3560e232023-06-12 00:33:50 -07007600 const upb_MiniTableField field = {3, 9, 3, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007601 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08007602}
7603UPB_INLINE void google_protobuf_FieldOptions_set_lazy(google_protobuf_FieldOptions *msg, bool value) {
Jie Luo3560e232023-06-12 00:33:50 -07007604 const upb_MiniTableField field = {5, 10, 4, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007605 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08007606}
7607UPB_INLINE void google_protobuf_FieldOptions_set_jstype(google_protobuf_FieldOptions *msg, int32_t value) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007608 const upb_MiniTableField field = {6, 12, 5, 4, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007609 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08007610}
7611UPB_INLINE void google_protobuf_FieldOptions_set_weak(google_protobuf_FieldOptions *msg, bool value) {
Jie Luo3560e232023-06-12 00:33:50 -07007612 const upb_MiniTableField field = {10, 16, 6, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007613 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08007614}
7615UPB_INLINE void google_protobuf_FieldOptions_set_unverified_lazy(google_protobuf_FieldOptions *msg, bool value) {
Jie Luo3560e232023-06-12 00:33:50 -07007616 const upb_MiniTableField field = {15, 17, 7, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007617 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08007618}
7619UPB_INLINE void google_protobuf_FieldOptions_set_debug_redact(google_protobuf_FieldOptions *msg, bool value) {
Jie Luo3560e232023-06-12 00:33:50 -07007620 const upb_MiniTableField field = {16, 18, 8, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Protobuf Team Bot9238c482022-12-16 20:01:55 -08007621 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08007622}
Adam Cozzette5a568372023-01-24 20:35:59 -08007623UPB_INLINE void google_protobuf_FieldOptions_set_retention(google_protobuf_FieldOptions *msg, int32_t value) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007624 const upb_MiniTableField field = {17, 20, 9, 5, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Adam Cozzette5a568372023-01-24 20:35:59 -08007625 _upb_Message_SetNonExtensionField(msg, &field, &value);
7626}
Adam Cozzette88b5b192023-05-03 15:36:48 -07007627UPB_INLINE void google_protobuf_FieldOptions_set_target_obsolete_do_not_use(google_protobuf_FieldOptions *msg, int32_t value) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007628 const upb_MiniTableField field = {18, 24, 10, 6, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Mike Kruskald4804702023-03-20 15:08:40 -07007629 _upb_Message_SetNonExtensionField(msg, &field, &value);
7630}
Mike Kruskal0c121392023-03-18 00:05:41 -07007631UPB_INLINE int32_t* google_protobuf_FieldOptions_mutable_targets(google_protobuf_FieldOptions* msg, size_t* size) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007632 upb_MiniTableField field = {19, UPB_SIZE(28, 32), 0, 7, 14, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Mike Kruskal0c121392023-03-18 00:05:41 -07007633 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
7634 if (arr) {
7635 if (size) *size = arr->size;
7636 return (int32_t*)_upb_array_ptr(arr);
7637 } else {
7638 if (size) *size = 0;
7639 return NULL;
7640 }
7641}
7642UPB_INLINE int32_t* google_protobuf_FieldOptions_resize_targets(google_protobuf_FieldOptions* msg, size_t size, upb_Arena* arena) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007643 upb_MiniTableField field = {19, UPB_SIZE(28, 32), 0, 7, 14, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07007644 return (int32_t*)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Mike Kruskal0c121392023-03-18 00:05:41 -07007645}
7646UPB_INLINE bool google_protobuf_FieldOptions_add_targets(google_protobuf_FieldOptions* msg, int32_t val, upb_Arena* arena) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007647 upb_MiniTableField field = {19, UPB_SIZE(28, 32), 0, 7, 14, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Mike Kruskal0c121392023-03-18 00:05:41 -07007648 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
7649 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
7650 return false;
7651 }
7652 _upb_Array_Set(arr, arr->size - 1, &val, sizeof(val));
7653 return true;
Adam Cozzette5a568372023-01-24 20:35:59 -08007654}
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007655UPB_INLINE google_protobuf_FieldOptions_EditionDefault** google_protobuf_FieldOptions_mutable_edition_defaults(google_protobuf_FieldOptions* msg, size_t* size) {
7656 upb_MiniTableField field = {20, UPB_SIZE(32, 40), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7657 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
7658 if (arr) {
7659 if (size) *size = arr->size;
7660 return (google_protobuf_FieldOptions_EditionDefault**)_upb_array_ptr(arr);
7661 } else {
7662 if (size) *size = 0;
7663 return NULL;
7664 }
7665}
7666UPB_INLINE google_protobuf_FieldOptions_EditionDefault** google_protobuf_FieldOptions_resize_edition_defaults(google_protobuf_FieldOptions* msg, size_t size, upb_Arena* arena) {
7667 upb_MiniTableField field = {20, UPB_SIZE(32, 40), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7668 return (google_protobuf_FieldOptions_EditionDefault**)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
7669}
7670UPB_INLINE struct google_protobuf_FieldOptions_EditionDefault* google_protobuf_FieldOptions_add_edition_defaults(google_protobuf_FieldOptions* msg, upb_Arena* arena) {
7671 upb_MiniTableField field = {20, UPB_SIZE(32, 40), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7672 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
7673 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
7674 return NULL;
7675 }
7676 struct google_protobuf_FieldOptions_EditionDefault* sub = (struct google_protobuf_FieldOptions_EditionDefault*)_upb_Message_New(&google_protobuf_FieldOptions_EditionDefault_msg_init, arena);
7677 if (!arr || !sub) return NULL;
7678 _upb_Array_Set(arr, arr->size - 1, &sub, sizeof(sub));
7679 return sub;
7680}
7681UPB_INLINE void google_protobuf_FieldOptions_set_features(google_protobuf_FieldOptions *msg, google_protobuf_FeatureSet* value) {
7682 const upb_MiniTableField field = {21, UPB_SIZE(36, 48), 11, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7683 _upb_Message_SetNonExtensionField(msg, &field, &value);
7684}
7685UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_FieldOptions_mutable_features(google_protobuf_FieldOptions* msg, upb_Arena* arena) {
7686 struct google_protobuf_FeatureSet* sub = (struct google_protobuf_FeatureSet*)google_protobuf_FieldOptions_features(msg);
7687 if (sub == NULL) {
7688 sub = (struct google_protobuf_FeatureSet*)_upb_Message_New(&google_protobuf_FeatureSet_msg_init, arena);
7689 if (sub) google_protobuf_FieldOptions_set_features(msg, sub);
7690 }
7691 return sub;
7692}
Mike Kruskal232ecf42023-01-14 00:09:40 -08007693UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_FieldOptions_mutable_uninterpreted_option(google_protobuf_FieldOptions* msg, size_t* size) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007694 upb_MiniTableField field = {999, UPB_SIZE(40, 56), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08007695 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
7696 if (arr) {
7697 if (size) *size = arr->size;
7698 return (google_protobuf_UninterpretedOption**)_upb_array_ptr(arr);
7699 } else {
7700 if (size) *size = 0;
7701 return NULL;
7702 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08007703}
Eric Salob7d54ac2022-12-29 11:59:42 -08007704UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_FieldOptions_resize_uninterpreted_option(google_protobuf_FieldOptions* msg, size_t size, upb_Arena* arena) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007705 upb_MiniTableField field = {999, UPB_SIZE(40, 56), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07007706 return (google_protobuf_UninterpretedOption**)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07007707}
7708UPB_INLINE struct google_protobuf_UninterpretedOption* google_protobuf_FieldOptions_add_uninterpreted_option(google_protobuf_FieldOptions* msg, upb_Arena* arena) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007709 upb_MiniTableField field = {999, UPB_SIZE(40, 56), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08007710 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
7711 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
7712 return NULL;
7713 }
Joshua Habermand3995ec2022-09-30 16:54:39 -07007714 struct google_protobuf_UninterpretedOption* sub = (struct google_protobuf_UninterpretedOption*)_upb_Message_New(&google_protobuf_UninterpretedOption_msg_init, arena);
Eric Salob7d54ac2022-12-29 11:59:42 -08007715 if (!arr || !sub) return NULL;
7716 _upb_Array_Set(arr, arr->size - 1, &sub, sizeof(sub));
Joshua Haberman9abf6e22021-01-13 12:16:25 -08007717 return sub;
7718}
7719
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007720/* google.protobuf.FieldOptions.EditionDefault */
7721
7722UPB_INLINE google_protobuf_FieldOptions_EditionDefault* google_protobuf_FieldOptions_EditionDefault_new(upb_Arena* arena) {
7723 return (google_protobuf_FieldOptions_EditionDefault*)_upb_Message_New(&google_protobuf_FieldOptions_EditionDefault_msg_init, arena);
7724}
7725UPB_INLINE google_protobuf_FieldOptions_EditionDefault* google_protobuf_FieldOptions_EditionDefault_parse(const char* buf, size_t size, upb_Arena* arena) {
7726 google_protobuf_FieldOptions_EditionDefault* ret = google_protobuf_FieldOptions_EditionDefault_new(arena);
7727 if (!ret) return NULL;
7728 if (upb_Decode(buf, size, ret, &google_protobuf_FieldOptions_EditionDefault_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
7729 return NULL;
7730 }
7731 return ret;
7732}
7733UPB_INLINE google_protobuf_FieldOptions_EditionDefault* google_protobuf_FieldOptions_EditionDefault_parse_ex(const char* buf, size_t size,
7734 const upb_ExtensionRegistry* extreg,
7735 int options, upb_Arena* arena) {
7736 google_protobuf_FieldOptions_EditionDefault* ret = google_protobuf_FieldOptions_EditionDefault_new(arena);
7737 if (!ret) return NULL;
7738 if (upb_Decode(buf, size, ret, &google_protobuf_FieldOptions_EditionDefault_msg_init, extreg, options, arena) !=
7739 kUpb_DecodeStatus_Ok) {
7740 return NULL;
7741 }
7742 return ret;
7743}
7744UPB_INLINE char* google_protobuf_FieldOptions_EditionDefault_serialize(const google_protobuf_FieldOptions_EditionDefault* msg, upb_Arena* arena, size_t* len) {
7745 char* ptr;
7746 (void)upb_Encode(msg, &google_protobuf_FieldOptions_EditionDefault_msg_init, 0, arena, &ptr, len);
7747 return ptr;
7748}
7749UPB_INLINE char* google_protobuf_FieldOptions_EditionDefault_serialize_ex(const google_protobuf_FieldOptions_EditionDefault* msg, int options,
7750 upb_Arena* arena, size_t* len) {
7751 char* ptr;
7752 (void)upb_Encode(msg, &google_protobuf_FieldOptions_EditionDefault_msg_init, options, arena, &ptr, len);
7753 return ptr;
7754}
7755UPB_INLINE void google_protobuf_FieldOptions_EditionDefault_clear_edition(google_protobuf_FieldOptions_EditionDefault* msg) {
7756 const upb_MiniTableField field = {1, UPB_SIZE(4, 8), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
7757 _upb_Message_ClearNonExtensionField(msg, &field);
7758}
7759UPB_INLINE upb_StringView google_protobuf_FieldOptions_EditionDefault_edition(const google_protobuf_FieldOptions_EditionDefault* msg) {
7760 upb_StringView default_val = upb_StringView_FromString("");
7761 upb_StringView ret;
7762 const upb_MiniTableField field = {1, UPB_SIZE(4, 8), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
7763 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
7764 return ret;
7765}
7766UPB_INLINE bool google_protobuf_FieldOptions_EditionDefault_has_edition(const google_protobuf_FieldOptions_EditionDefault* msg) {
7767 const upb_MiniTableField field = {1, UPB_SIZE(4, 8), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
7768 return _upb_Message_HasNonExtensionField(msg, &field);
7769}
7770UPB_INLINE void google_protobuf_FieldOptions_EditionDefault_clear_value(google_protobuf_FieldOptions_EditionDefault* msg) {
7771 const upb_MiniTableField field = {2, UPB_SIZE(12, 24), 2, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
7772 _upb_Message_ClearNonExtensionField(msg, &field);
7773}
7774UPB_INLINE upb_StringView google_protobuf_FieldOptions_EditionDefault_value(const google_protobuf_FieldOptions_EditionDefault* msg) {
7775 upb_StringView default_val = upb_StringView_FromString("");
7776 upb_StringView ret;
7777 const upb_MiniTableField field = {2, UPB_SIZE(12, 24), 2, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
7778 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
7779 return ret;
7780}
7781UPB_INLINE bool google_protobuf_FieldOptions_EditionDefault_has_value(const google_protobuf_FieldOptions_EditionDefault* msg) {
7782 const upb_MiniTableField field = {2, UPB_SIZE(12, 24), 2, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
7783 return _upb_Message_HasNonExtensionField(msg, &field);
7784}
7785
7786UPB_INLINE void google_protobuf_FieldOptions_EditionDefault_set_edition(google_protobuf_FieldOptions_EditionDefault *msg, upb_StringView value) {
7787 const upb_MiniTableField field = {1, UPB_SIZE(4, 8), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
7788 _upb_Message_SetNonExtensionField(msg, &field, &value);
7789}
7790UPB_INLINE void google_protobuf_FieldOptions_EditionDefault_set_value(google_protobuf_FieldOptions_EditionDefault *msg, upb_StringView value) {
7791 const upb_MiniTableField field = {2, UPB_SIZE(12, 24), 2, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
7792 _upb_Message_SetNonExtensionField(msg, &field, &value);
7793}
7794
Joshua Haberman9abf6e22021-01-13 12:16:25 -08007795/* google.protobuf.OneofOptions */
7796
Joshua Habermanf41049a2022-01-21 14:41:25 -08007797UPB_INLINE google_protobuf_OneofOptions* google_protobuf_OneofOptions_new(upb_Arena* arena) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07007798 return (google_protobuf_OneofOptions*)_upb_Message_New(&google_protobuf_OneofOptions_msg_init, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08007799}
Joshua Habermanf41049a2022-01-21 14:41:25 -08007800UPB_INLINE google_protobuf_OneofOptions* google_protobuf_OneofOptions_parse(const char* buf, size_t size, upb_Arena* arena) {
7801 google_protobuf_OneofOptions* ret = google_protobuf_OneofOptions_new(arena);
Joshua Haberman9d578a32021-08-02 15:32:01 -07007802 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07007803 if (upb_Decode(buf, size, ret, &google_protobuf_OneofOptions_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
Joshua Haberman9d578a32021-08-02 15:32:01 -07007804 return NULL;
7805 }
7806 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08007807}
Joshua Habermanf41049a2022-01-21 14:41:25 -08007808UPB_INLINE google_protobuf_OneofOptions* google_protobuf_OneofOptions_parse_ex(const char* buf, size_t size,
7809 const upb_ExtensionRegistry* extreg,
7810 int options, upb_Arena* arena) {
7811 google_protobuf_OneofOptions* ret = google_protobuf_OneofOptions_new(arena);
7812 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07007813 if (upb_Decode(buf, size, ret, &google_protobuf_OneofOptions_msg_init, extreg, options, arena) !=
Joshua Habermanf41049a2022-01-21 14:41:25 -08007814 kUpb_DecodeStatus_Ok) {
7815 return NULL;
7816 }
7817 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08007818}
Joshua Habermanf41049a2022-01-21 14:41:25 -08007819UPB_INLINE char* google_protobuf_OneofOptions_serialize(const google_protobuf_OneofOptions* msg, upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07007820 char* ptr;
7821 (void)upb_Encode(msg, &google_protobuf_OneofOptions_msg_init, 0, arena, &ptr, len);
7822 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08007823}
7824UPB_INLINE char* google_protobuf_OneofOptions_serialize_ex(const google_protobuf_OneofOptions* msg, int options,
7825 upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07007826 char* ptr;
7827 (void)upb_Encode(msg, &google_protobuf_OneofOptions_msg_init, options, arena, &ptr, len);
7828 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08007829}
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007830UPB_INLINE void google_protobuf_OneofOptions_clear_features(google_protobuf_OneofOptions* msg) {
7831 const upb_MiniTableField field = {1, UPB_SIZE(4, 8), 1, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7832 _upb_Message_ClearNonExtensionField(msg, &field);
7833}
7834UPB_INLINE const google_protobuf_FeatureSet* google_protobuf_OneofOptions_features(const google_protobuf_OneofOptions* msg) {
7835 const google_protobuf_FeatureSet* default_val = NULL;
7836 const google_protobuf_FeatureSet* ret;
7837 const upb_MiniTableField field = {1, UPB_SIZE(4, 8), 1, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7838 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
7839 return ret;
7840}
7841UPB_INLINE bool google_protobuf_OneofOptions_has_features(const google_protobuf_OneofOptions* msg) {
7842 const upb_MiniTableField field = {1, UPB_SIZE(4, 8), 1, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7843 return _upb_Message_HasNonExtensionField(msg, &field);
7844}
Mike Kruskal3bc50492022-12-01 13:34:12 -08007845UPB_INLINE void google_protobuf_OneofOptions_clear_uninterpreted_option(google_protobuf_OneofOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007846 const upb_MiniTableField field = {999, UPB_SIZE(8, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007847 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07007848}
Eric Salob7d54ac2022-12-29 11:59:42 -08007849UPB_INLINE const google_protobuf_UninterpretedOption* const* google_protobuf_OneofOptions_uninterpreted_option(const google_protobuf_OneofOptions* msg, size_t* size) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007850 const upb_MiniTableField field = {999, UPB_SIZE(8, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08007851 const upb_Array* arr = upb_Message_GetArray(msg, &field);
7852 if (arr) {
7853 if (size) *size = arr->size;
7854 return (const google_protobuf_UninterpretedOption* const*)_upb_array_constptr(arr);
7855 } else {
7856 if (size) *size = 0;
7857 return NULL;
7858 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07007859}
Deanna Garciab26afb52023-04-25 13:37:18 -07007860UPB_INLINE const upb_Array* _google_protobuf_OneofOptions_uninterpreted_option_upb_array(const google_protobuf_OneofOptions* msg, size_t* size) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007861 const upb_MiniTableField field = {999, UPB_SIZE(8, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07007862 const upb_Array* arr = upb_Message_GetArray(msg, &field);
7863 if (size) {
7864 *size = arr ? arr->size : 0;
7865 }
7866 return arr;
7867}
7868UPB_INLINE upb_Array* _google_protobuf_OneofOptions_uninterpreted_option_mutable_upb_array(const google_protobuf_OneofOptions* msg, size_t* size, upb_Arena* arena) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007869 const upb_MiniTableField field = {999, UPB_SIZE(8, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07007870 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
7871 (upb_Message*)msg, &field, arena);
7872 if (size) {
7873 *size = arr ? arr->size : 0;
7874 }
7875 return arr;
7876}
Mike Kruskal3bc50492022-12-01 13:34:12 -08007877UPB_INLINE bool google_protobuf_OneofOptions_has_uninterpreted_option(const google_protobuf_OneofOptions* msg) {
7878 size_t size;
7879 google_protobuf_OneofOptions_uninterpreted_option(msg, &size);
7880 return size != 0;
7881}
Joshua Haberman9abf6e22021-01-13 12:16:25 -08007882
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007883UPB_INLINE void google_protobuf_OneofOptions_set_features(google_protobuf_OneofOptions *msg, google_protobuf_FeatureSet* value) {
7884 const upb_MiniTableField field = {1, UPB_SIZE(4, 8), 1, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7885 _upb_Message_SetNonExtensionField(msg, &field, &value);
7886}
7887UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_OneofOptions_mutable_features(google_protobuf_OneofOptions* msg, upb_Arena* arena) {
7888 struct google_protobuf_FeatureSet* sub = (struct google_protobuf_FeatureSet*)google_protobuf_OneofOptions_features(msg);
7889 if (sub == NULL) {
7890 sub = (struct google_protobuf_FeatureSet*)_upb_Message_New(&google_protobuf_FeatureSet_msg_init, arena);
7891 if (sub) google_protobuf_OneofOptions_set_features(msg, sub);
7892 }
7893 return sub;
7894}
Eric Salob7d54ac2022-12-29 11:59:42 -08007895UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_OneofOptions_mutable_uninterpreted_option(google_protobuf_OneofOptions* msg, size_t* size) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007896 upb_MiniTableField field = {999, UPB_SIZE(8, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08007897 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
7898 if (arr) {
7899 if (size) *size = arr->size;
7900 return (google_protobuf_UninterpretedOption**)_upb_array_ptr(arr);
7901 } else {
7902 if (size) *size = 0;
7903 return NULL;
7904 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08007905}
Eric Salob7d54ac2022-12-29 11:59:42 -08007906UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_OneofOptions_resize_uninterpreted_option(google_protobuf_OneofOptions* msg, size_t size, upb_Arena* arena) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007907 upb_MiniTableField field = {999, UPB_SIZE(8, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07007908 return (google_protobuf_UninterpretedOption**)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08007909}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07007910UPB_INLINE struct google_protobuf_UninterpretedOption* google_protobuf_OneofOptions_add_uninterpreted_option(google_protobuf_OneofOptions* msg, upb_Arena* arena) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07007911 upb_MiniTableField field = {999, UPB_SIZE(8, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08007912 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
7913 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
7914 return NULL;
7915 }
Joshua Habermand3995ec2022-09-30 16:54:39 -07007916 struct google_protobuf_UninterpretedOption* sub = (struct google_protobuf_UninterpretedOption*)_upb_Message_New(&google_protobuf_UninterpretedOption_msg_init, arena);
Eric Salob7d54ac2022-12-29 11:59:42 -08007917 if (!arr || !sub) return NULL;
7918 _upb_Array_Set(arr, arr->size - 1, &sub, sizeof(sub));
Joshua Haberman9abf6e22021-01-13 12:16:25 -08007919 return sub;
7920}
7921
7922/* google.protobuf.EnumOptions */
7923
Joshua Habermanf41049a2022-01-21 14:41:25 -08007924UPB_INLINE google_protobuf_EnumOptions* google_protobuf_EnumOptions_new(upb_Arena* arena) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07007925 return (google_protobuf_EnumOptions*)_upb_Message_New(&google_protobuf_EnumOptions_msg_init, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08007926}
Joshua Habermanf41049a2022-01-21 14:41:25 -08007927UPB_INLINE google_protobuf_EnumOptions* google_protobuf_EnumOptions_parse(const char* buf, size_t size, upb_Arena* arena) {
7928 google_protobuf_EnumOptions* ret = google_protobuf_EnumOptions_new(arena);
Joshua Haberman9d578a32021-08-02 15:32:01 -07007929 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07007930 if (upb_Decode(buf, size, ret, &google_protobuf_EnumOptions_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
Joshua Haberman9d578a32021-08-02 15:32:01 -07007931 return NULL;
7932 }
7933 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08007934}
Joshua Habermanf41049a2022-01-21 14:41:25 -08007935UPB_INLINE google_protobuf_EnumOptions* google_protobuf_EnumOptions_parse_ex(const char* buf, size_t size,
7936 const upb_ExtensionRegistry* extreg,
7937 int options, upb_Arena* arena) {
7938 google_protobuf_EnumOptions* ret = google_protobuf_EnumOptions_new(arena);
7939 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07007940 if (upb_Decode(buf, size, ret, &google_protobuf_EnumOptions_msg_init, extreg, options, arena) !=
Joshua Habermanf41049a2022-01-21 14:41:25 -08007941 kUpb_DecodeStatus_Ok) {
7942 return NULL;
7943 }
7944 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08007945}
Joshua Habermanf41049a2022-01-21 14:41:25 -08007946UPB_INLINE char* google_protobuf_EnumOptions_serialize(const google_protobuf_EnumOptions* msg, upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07007947 char* ptr;
7948 (void)upb_Encode(msg, &google_protobuf_EnumOptions_msg_init, 0, arena, &ptr, len);
7949 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08007950}
7951UPB_INLINE char* google_protobuf_EnumOptions_serialize_ex(const google_protobuf_EnumOptions* msg, int options,
7952 upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07007953 char* ptr;
7954 (void)upb_Encode(msg, &google_protobuf_EnumOptions_msg_init, options, arena, &ptr, len);
7955 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08007956}
Mike Kruskal3bc50492022-12-01 13:34:12 -08007957UPB_INLINE void google_protobuf_EnumOptions_clear_allow_alias(google_protobuf_EnumOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07007958 const upb_MiniTableField field = {2, 1, 1, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007959 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07007960}
Joshua Habermanf41049a2022-01-21 14:41:25 -08007961UPB_INLINE bool google_protobuf_EnumOptions_allow_alias(const google_protobuf_EnumOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08007962 bool default_val = false;
7963 bool ret;
Jie Luo3560e232023-06-12 00:33:50 -07007964 const upb_MiniTableField field = {2, 1, 1, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007965 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08007966 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08007967}
Mike Kruskal3bc50492022-12-01 13:34:12 -08007968UPB_INLINE bool google_protobuf_EnumOptions_has_allow_alias(const google_protobuf_EnumOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07007969 const upb_MiniTableField field = {2, 1, 1, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007970 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07007971}
Mike Kruskal3bc50492022-12-01 13:34:12 -08007972UPB_INLINE void google_protobuf_EnumOptions_clear_deprecated(google_protobuf_EnumOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07007973 const upb_MiniTableField field = {3, 2, 2, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007974 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07007975}
Joshua Habermanf41049a2022-01-21 14:41:25 -08007976UPB_INLINE bool google_protobuf_EnumOptions_deprecated(const google_protobuf_EnumOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08007977 bool default_val = false;
7978 bool ret;
Jie Luo3560e232023-06-12 00:33:50 -07007979 const upb_MiniTableField field = {3, 2, 2, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007980 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08007981 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08007982}
Mike Kruskal3bc50492022-12-01 13:34:12 -08007983UPB_INLINE bool google_protobuf_EnumOptions_has_deprecated(const google_protobuf_EnumOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07007984 const upb_MiniTableField field = {3, 2, 2, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08007985 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07007986}
Mike Kruskal6b87d6f2022-12-14 10:36:53 -08007987UPB_INLINE void google_protobuf_EnumOptions_clear_deprecated_legacy_json_field_conflicts(google_protobuf_EnumOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07007988 const upb_MiniTableField field = {6, 3, 3, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Mike Kruskal6b87d6f2022-12-14 10:36:53 -08007989 _upb_Message_ClearNonExtensionField(msg, &field);
7990}
7991UPB_INLINE bool google_protobuf_EnumOptions_deprecated_legacy_json_field_conflicts(const google_protobuf_EnumOptions* msg) {
7992 bool default_val = false;
7993 bool ret;
Jie Luo3560e232023-06-12 00:33:50 -07007994 const upb_MiniTableField field = {6, 3, 3, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Mike Kruskal6b87d6f2022-12-14 10:36:53 -08007995 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
7996 return ret;
7997}
7998UPB_INLINE bool google_protobuf_EnumOptions_has_deprecated_legacy_json_field_conflicts(const google_protobuf_EnumOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07007999 const upb_MiniTableField field = {6, 3, 3, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Mike Kruskal6b87d6f2022-12-14 10:36:53 -08008000 return _upb_Message_HasNonExtensionField(msg, &field);
8001}
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008002UPB_INLINE void google_protobuf_EnumOptions_clear_features(google_protobuf_EnumOptions* msg) {
8003 const upb_MiniTableField field = {7, UPB_SIZE(4, 8), 4, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
8004 _upb_Message_ClearNonExtensionField(msg, &field);
8005}
8006UPB_INLINE const google_protobuf_FeatureSet* google_protobuf_EnumOptions_features(const google_protobuf_EnumOptions* msg) {
8007 const google_protobuf_FeatureSet* default_val = NULL;
8008 const google_protobuf_FeatureSet* ret;
8009 const upb_MiniTableField field = {7, UPB_SIZE(4, 8), 4, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
8010 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
8011 return ret;
8012}
8013UPB_INLINE bool google_protobuf_EnumOptions_has_features(const google_protobuf_EnumOptions* msg) {
8014 const upb_MiniTableField field = {7, UPB_SIZE(4, 8), 4, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
8015 return _upb_Message_HasNonExtensionField(msg, &field);
8016}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008017UPB_INLINE void google_protobuf_EnumOptions_clear_uninterpreted_option(google_protobuf_EnumOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008018 const upb_MiniTableField field = {999, UPB_SIZE(8, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008019 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07008020}
Eric Salob7d54ac2022-12-29 11:59:42 -08008021UPB_INLINE const google_protobuf_UninterpretedOption* const* google_protobuf_EnumOptions_uninterpreted_option(const google_protobuf_EnumOptions* msg, size_t* size) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008022 const upb_MiniTableField field = {999, UPB_SIZE(8, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08008023 const upb_Array* arr = upb_Message_GetArray(msg, &field);
8024 if (arr) {
8025 if (size) *size = arr->size;
8026 return (const google_protobuf_UninterpretedOption* const*)_upb_array_constptr(arr);
8027 } else {
8028 if (size) *size = 0;
8029 return NULL;
8030 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07008031}
Deanna Garciab26afb52023-04-25 13:37:18 -07008032UPB_INLINE const upb_Array* _google_protobuf_EnumOptions_uninterpreted_option_upb_array(const google_protobuf_EnumOptions* msg, size_t* size) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008033 const upb_MiniTableField field = {999, UPB_SIZE(8, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07008034 const upb_Array* arr = upb_Message_GetArray(msg, &field);
8035 if (size) {
8036 *size = arr ? arr->size : 0;
8037 }
8038 return arr;
8039}
8040UPB_INLINE upb_Array* _google_protobuf_EnumOptions_uninterpreted_option_mutable_upb_array(const google_protobuf_EnumOptions* msg, size_t* size, upb_Arena* arena) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008041 const upb_MiniTableField field = {999, UPB_SIZE(8, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07008042 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
8043 (upb_Message*)msg, &field, arena);
8044 if (size) {
8045 *size = arr ? arr->size : 0;
8046 }
8047 return arr;
8048}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008049UPB_INLINE bool google_protobuf_EnumOptions_has_uninterpreted_option(const google_protobuf_EnumOptions* msg) {
8050 size_t size;
8051 google_protobuf_EnumOptions_uninterpreted_option(msg, &size);
8052 return size != 0;
8053}
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008054
8055UPB_INLINE void google_protobuf_EnumOptions_set_allow_alias(google_protobuf_EnumOptions *msg, bool value) {
Jie Luo3560e232023-06-12 00:33:50 -07008056 const upb_MiniTableField field = {2, 1, 1, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008057 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08008058}
8059UPB_INLINE void google_protobuf_EnumOptions_set_deprecated(google_protobuf_EnumOptions *msg, bool value) {
Jie Luo3560e232023-06-12 00:33:50 -07008060 const upb_MiniTableField field = {3, 2, 2, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008061 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08008062}
8063UPB_INLINE void google_protobuf_EnumOptions_set_deprecated_legacy_json_field_conflicts(google_protobuf_EnumOptions *msg, bool value) {
Jie Luo3560e232023-06-12 00:33:50 -07008064 const upb_MiniTableField field = {6, 3, 3, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Mike Kruskal6b87d6f2022-12-14 10:36:53 -08008065 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08008066}
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008067UPB_INLINE void google_protobuf_EnumOptions_set_features(google_protobuf_EnumOptions *msg, google_protobuf_FeatureSet* value) {
8068 const upb_MiniTableField field = {7, UPB_SIZE(4, 8), 4, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
8069 _upb_Message_SetNonExtensionField(msg, &field, &value);
8070}
8071UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_EnumOptions_mutable_features(google_protobuf_EnumOptions* msg, upb_Arena* arena) {
8072 struct google_protobuf_FeatureSet* sub = (struct google_protobuf_FeatureSet*)google_protobuf_EnumOptions_features(msg);
8073 if (sub == NULL) {
8074 sub = (struct google_protobuf_FeatureSet*)_upb_Message_New(&google_protobuf_FeatureSet_msg_init, arena);
8075 if (sub) google_protobuf_EnumOptions_set_features(msg, sub);
8076 }
8077 return sub;
8078}
Mike Kruskal232ecf42023-01-14 00:09:40 -08008079UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_EnumOptions_mutable_uninterpreted_option(google_protobuf_EnumOptions* msg, size_t* size) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008080 upb_MiniTableField field = {999, UPB_SIZE(8, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08008081 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
8082 if (arr) {
8083 if (size) *size = arr->size;
8084 return (google_protobuf_UninterpretedOption**)_upb_array_ptr(arr);
8085 } else {
8086 if (size) *size = 0;
8087 return NULL;
8088 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008089}
Eric Salob7d54ac2022-12-29 11:59:42 -08008090UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_EnumOptions_resize_uninterpreted_option(google_protobuf_EnumOptions* msg, size_t size, upb_Arena* arena) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008091 upb_MiniTableField field = {999, UPB_SIZE(8, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07008092 return (google_protobuf_UninterpretedOption**)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008093}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07008094UPB_INLINE struct google_protobuf_UninterpretedOption* google_protobuf_EnumOptions_add_uninterpreted_option(google_protobuf_EnumOptions* msg, upb_Arena* arena) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008095 upb_MiniTableField field = {999, UPB_SIZE(8, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08008096 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
8097 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
8098 return NULL;
8099 }
Joshua Habermand3995ec2022-09-30 16:54:39 -07008100 struct google_protobuf_UninterpretedOption* sub = (struct google_protobuf_UninterpretedOption*)_upb_Message_New(&google_protobuf_UninterpretedOption_msg_init, arena);
Eric Salob7d54ac2022-12-29 11:59:42 -08008101 if (!arr || !sub) return NULL;
8102 _upb_Array_Set(arr, arr->size - 1, &sub, sizeof(sub));
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008103 return sub;
8104}
8105
8106/* google.protobuf.EnumValueOptions */
8107
Joshua Habermanf41049a2022-01-21 14:41:25 -08008108UPB_INLINE google_protobuf_EnumValueOptions* google_protobuf_EnumValueOptions_new(upb_Arena* arena) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07008109 return (google_protobuf_EnumValueOptions*)_upb_Message_New(&google_protobuf_EnumValueOptions_msg_init, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008110}
Joshua Habermanf41049a2022-01-21 14:41:25 -08008111UPB_INLINE google_protobuf_EnumValueOptions* google_protobuf_EnumValueOptions_parse(const char* buf, size_t size, upb_Arena* arena) {
8112 google_protobuf_EnumValueOptions* ret = google_protobuf_EnumValueOptions_new(arena);
Joshua Haberman9d578a32021-08-02 15:32:01 -07008113 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07008114 if (upb_Decode(buf, size, ret, &google_protobuf_EnumValueOptions_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
Joshua Haberman9d578a32021-08-02 15:32:01 -07008115 return NULL;
8116 }
8117 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008118}
Joshua Habermanf41049a2022-01-21 14:41:25 -08008119UPB_INLINE google_protobuf_EnumValueOptions* google_protobuf_EnumValueOptions_parse_ex(const char* buf, size_t size,
8120 const upb_ExtensionRegistry* extreg,
8121 int options, upb_Arena* arena) {
8122 google_protobuf_EnumValueOptions* ret = google_protobuf_EnumValueOptions_new(arena);
8123 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07008124 if (upb_Decode(buf, size, ret, &google_protobuf_EnumValueOptions_msg_init, extreg, options, arena) !=
Joshua Habermanf41049a2022-01-21 14:41:25 -08008125 kUpb_DecodeStatus_Ok) {
8126 return NULL;
8127 }
8128 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008129}
Joshua Habermanf41049a2022-01-21 14:41:25 -08008130UPB_INLINE char* google_protobuf_EnumValueOptions_serialize(const google_protobuf_EnumValueOptions* msg, upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07008131 char* ptr;
8132 (void)upb_Encode(msg, &google_protobuf_EnumValueOptions_msg_init, 0, arena, &ptr, len);
8133 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08008134}
8135UPB_INLINE char* google_protobuf_EnumValueOptions_serialize_ex(const google_protobuf_EnumValueOptions* msg, int options,
8136 upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07008137 char* ptr;
8138 (void)upb_Encode(msg, &google_protobuf_EnumValueOptions_msg_init, options, arena, &ptr, len);
8139 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08008140}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008141UPB_INLINE void google_protobuf_EnumValueOptions_clear_deprecated(google_protobuf_EnumValueOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07008142 const upb_MiniTableField field = {1, 1, 1, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008143 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07008144}
Joshua Habermanf41049a2022-01-21 14:41:25 -08008145UPB_INLINE bool google_protobuf_EnumValueOptions_deprecated(const google_protobuf_EnumValueOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08008146 bool default_val = false;
8147 bool ret;
Jie Luo3560e232023-06-12 00:33:50 -07008148 const upb_MiniTableField field = {1, 1, 1, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008149 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08008150 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08008151}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008152UPB_INLINE bool google_protobuf_EnumValueOptions_has_deprecated(const google_protobuf_EnumValueOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07008153 const upb_MiniTableField field = {1, 1, 1, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008154 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07008155}
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008156UPB_INLINE void google_protobuf_EnumValueOptions_clear_features(google_protobuf_EnumValueOptions* msg) {
8157 const upb_MiniTableField field = {2, UPB_SIZE(4, 8), 2, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
8158 _upb_Message_ClearNonExtensionField(msg, &field);
8159}
8160UPB_INLINE const google_protobuf_FeatureSet* google_protobuf_EnumValueOptions_features(const google_protobuf_EnumValueOptions* msg) {
8161 const google_protobuf_FeatureSet* default_val = NULL;
8162 const google_protobuf_FeatureSet* ret;
8163 const upb_MiniTableField field = {2, UPB_SIZE(4, 8), 2, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
8164 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
8165 return ret;
8166}
8167UPB_INLINE bool google_protobuf_EnumValueOptions_has_features(const google_protobuf_EnumValueOptions* msg) {
8168 const upb_MiniTableField field = {2, UPB_SIZE(4, 8), 2, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
8169 return _upb_Message_HasNonExtensionField(msg, &field);
8170}
Mike Kruskal12e0f1d2023-05-31 15:40:54 -07008171UPB_INLINE void google_protobuf_EnumValueOptions_clear_debug_redact(google_protobuf_EnumValueOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008172 const upb_MiniTableField field = {3, UPB_SIZE(8, 2), 3, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Mike Kruskal12e0f1d2023-05-31 15:40:54 -07008173 _upb_Message_ClearNonExtensionField(msg, &field);
8174}
8175UPB_INLINE bool google_protobuf_EnumValueOptions_debug_redact(const google_protobuf_EnumValueOptions* msg) {
8176 bool default_val = false;
8177 bool ret;
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008178 const upb_MiniTableField field = {3, UPB_SIZE(8, 2), 3, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Mike Kruskal12e0f1d2023-05-31 15:40:54 -07008179 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
8180 return ret;
8181}
8182UPB_INLINE bool google_protobuf_EnumValueOptions_has_debug_redact(const google_protobuf_EnumValueOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008183 const upb_MiniTableField field = {3, UPB_SIZE(8, 2), 3, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Mike Kruskal12e0f1d2023-05-31 15:40:54 -07008184 return _upb_Message_HasNonExtensionField(msg, &field);
8185}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008186UPB_INLINE void google_protobuf_EnumValueOptions_clear_uninterpreted_option(google_protobuf_EnumValueOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008187 const upb_MiniTableField field = {999, UPB_SIZE(12, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008188 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07008189}
Eric Salob7d54ac2022-12-29 11:59:42 -08008190UPB_INLINE const google_protobuf_UninterpretedOption* const* google_protobuf_EnumValueOptions_uninterpreted_option(const google_protobuf_EnumValueOptions* msg, size_t* size) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008191 const upb_MiniTableField field = {999, UPB_SIZE(12, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08008192 const upb_Array* arr = upb_Message_GetArray(msg, &field);
8193 if (arr) {
8194 if (size) *size = arr->size;
8195 return (const google_protobuf_UninterpretedOption* const*)_upb_array_constptr(arr);
8196 } else {
8197 if (size) *size = 0;
8198 return NULL;
8199 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07008200}
Deanna Garciab26afb52023-04-25 13:37:18 -07008201UPB_INLINE const upb_Array* _google_protobuf_EnumValueOptions_uninterpreted_option_upb_array(const google_protobuf_EnumValueOptions* msg, size_t* size) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008202 const upb_MiniTableField field = {999, UPB_SIZE(12, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07008203 const upb_Array* arr = upb_Message_GetArray(msg, &field);
8204 if (size) {
8205 *size = arr ? arr->size : 0;
8206 }
8207 return arr;
8208}
8209UPB_INLINE upb_Array* _google_protobuf_EnumValueOptions_uninterpreted_option_mutable_upb_array(const google_protobuf_EnumValueOptions* msg, size_t* size, upb_Arena* arena) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008210 const upb_MiniTableField field = {999, UPB_SIZE(12, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07008211 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
8212 (upb_Message*)msg, &field, arena);
8213 if (size) {
8214 *size = arr ? arr->size : 0;
8215 }
8216 return arr;
8217}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008218UPB_INLINE bool google_protobuf_EnumValueOptions_has_uninterpreted_option(const google_protobuf_EnumValueOptions* msg) {
8219 size_t size;
8220 google_protobuf_EnumValueOptions_uninterpreted_option(msg, &size);
8221 return size != 0;
8222}
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008223
8224UPB_INLINE void google_protobuf_EnumValueOptions_set_deprecated(google_protobuf_EnumValueOptions *msg, bool value) {
Jie Luo3560e232023-06-12 00:33:50 -07008225 const upb_MiniTableField field = {1, 1, 1, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008226 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08008227}
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008228UPB_INLINE void google_protobuf_EnumValueOptions_set_features(google_protobuf_EnumValueOptions *msg, google_protobuf_FeatureSet* value) {
8229 const upb_MiniTableField field = {2, UPB_SIZE(4, 8), 2, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
8230 _upb_Message_SetNonExtensionField(msg, &field, &value);
8231}
8232UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_EnumValueOptions_mutable_features(google_protobuf_EnumValueOptions* msg, upb_Arena* arena) {
8233 struct google_protobuf_FeatureSet* sub = (struct google_protobuf_FeatureSet*)google_protobuf_EnumValueOptions_features(msg);
8234 if (sub == NULL) {
8235 sub = (struct google_protobuf_FeatureSet*)_upb_Message_New(&google_protobuf_FeatureSet_msg_init, arena);
8236 if (sub) google_protobuf_EnumValueOptions_set_features(msg, sub);
8237 }
8238 return sub;
8239}
Mike Kruskal12e0f1d2023-05-31 15:40:54 -07008240UPB_INLINE void google_protobuf_EnumValueOptions_set_debug_redact(google_protobuf_EnumValueOptions *msg, bool value) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008241 const upb_MiniTableField field = {3, UPB_SIZE(8, 2), 3, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Mike Kruskal12e0f1d2023-05-31 15:40:54 -07008242 _upb_Message_SetNonExtensionField(msg, &field, &value);
8243}
Mike Kruskal232ecf42023-01-14 00:09:40 -08008244UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_EnumValueOptions_mutable_uninterpreted_option(google_protobuf_EnumValueOptions* msg, size_t* size) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008245 upb_MiniTableField field = {999, UPB_SIZE(12, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08008246 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
8247 if (arr) {
8248 if (size) *size = arr->size;
8249 return (google_protobuf_UninterpretedOption**)_upb_array_ptr(arr);
8250 } else {
8251 if (size) *size = 0;
8252 return NULL;
8253 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008254}
Eric Salob7d54ac2022-12-29 11:59:42 -08008255UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_EnumValueOptions_resize_uninterpreted_option(google_protobuf_EnumValueOptions* msg, size_t size, upb_Arena* arena) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008256 upb_MiniTableField field = {999, UPB_SIZE(12, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07008257 return (google_protobuf_UninterpretedOption**)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008258}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07008259UPB_INLINE struct google_protobuf_UninterpretedOption* google_protobuf_EnumValueOptions_add_uninterpreted_option(google_protobuf_EnumValueOptions* msg, upb_Arena* arena) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008260 upb_MiniTableField field = {999, UPB_SIZE(12, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08008261 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
8262 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
8263 return NULL;
8264 }
Joshua Habermand3995ec2022-09-30 16:54:39 -07008265 struct google_protobuf_UninterpretedOption* sub = (struct google_protobuf_UninterpretedOption*)_upb_Message_New(&google_protobuf_UninterpretedOption_msg_init, arena);
Eric Salob7d54ac2022-12-29 11:59:42 -08008266 if (!arr || !sub) return NULL;
8267 _upb_Array_Set(arr, arr->size - 1, &sub, sizeof(sub));
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008268 return sub;
8269}
8270
8271/* google.protobuf.ServiceOptions */
8272
Joshua Habermanf41049a2022-01-21 14:41:25 -08008273UPB_INLINE google_protobuf_ServiceOptions* google_protobuf_ServiceOptions_new(upb_Arena* arena) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07008274 return (google_protobuf_ServiceOptions*)_upb_Message_New(&google_protobuf_ServiceOptions_msg_init, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008275}
Joshua Habermanf41049a2022-01-21 14:41:25 -08008276UPB_INLINE google_protobuf_ServiceOptions* google_protobuf_ServiceOptions_parse(const char* buf, size_t size, upb_Arena* arena) {
8277 google_protobuf_ServiceOptions* ret = google_protobuf_ServiceOptions_new(arena);
Joshua Haberman9d578a32021-08-02 15:32:01 -07008278 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07008279 if (upb_Decode(buf, size, ret, &google_protobuf_ServiceOptions_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
Joshua Haberman9d578a32021-08-02 15:32:01 -07008280 return NULL;
8281 }
8282 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008283}
Joshua Habermanf41049a2022-01-21 14:41:25 -08008284UPB_INLINE google_protobuf_ServiceOptions* google_protobuf_ServiceOptions_parse_ex(const char* buf, size_t size,
8285 const upb_ExtensionRegistry* extreg,
8286 int options, upb_Arena* arena) {
8287 google_protobuf_ServiceOptions* ret = google_protobuf_ServiceOptions_new(arena);
8288 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07008289 if (upb_Decode(buf, size, ret, &google_protobuf_ServiceOptions_msg_init, extreg, options, arena) !=
Joshua Habermanf41049a2022-01-21 14:41:25 -08008290 kUpb_DecodeStatus_Ok) {
8291 return NULL;
8292 }
8293 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008294}
Joshua Habermanf41049a2022-01-21 14:41:25 -08008295UPB_INLINE char* google_protobuf_ServiceOptions_serialize(const google_protobuf_ServiceOptions* msg, upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07008296 char* ptr;
8297 (void)upb_Encode(msg, &google_protobuf_ServiceOptions_msg_init, 0, arena, &ptr, len);
8298 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08008299}
8300UPB_INLINE char* google_protobuf_ServiceOptions_serialize_ex(const google_protobuf_ServiceOptions* msg, int options,
8301 upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07008302 char* ptr;
8303 (void)upb_Encode(msg, &google_protobuf_ServiceOptions_msg_init, options, arena, &ptr, len);
8304 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08008305}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008306UPB_INLINE void google_protobuf_ServiceOptions_clear_deprecated(google_protobuf_ServiceOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07008307 const upb_MiniTableField field = {33, 1, 1, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008308 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07008309}
Joshua Habermanf41049a2022-01-21 14:41:25 -08008310UPB_INLINE bool google_protobuf_ServiceOptions_deprecated(const google_protobuf_ServiceOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08008311 bool default_val = false;
8312 bool ret;
Jie Luo3560e232023-06-12 00:33:50 -07008313 const upb_MiniTableField field = {33, 1, 1, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008314 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08008315 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08008316}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008317UPB_INLINE bool google_protobuf_ServiceOptions_has_deprecated(const google_protobuf_ServiceOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07008318 const upb_MiniTableField field = {33, 1, 1, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008319 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07008320}
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008321UPB_INLINE void google_protobuf_ServiceOptions_clear_features(google_protobuf_ServiceOptions* msg) {
8322 const upb_MiniTableField field = {34, UPB_SIZE(4, 8), 2, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
8323 _upb_Message_ClearNonExtensionField(msg, &field);
8324}
8325UPB_INLINE const google_protobuf_FeatureSet* google_protobuf_ServiceOptions_features(const google_protobuf_ServiceOptions* msg) {
8326 const google_protobuf_FeatureSet* default_val = NULL;
8327 const google_protobuf_FeatureSet* ret;
8328 const upb_MiniTableField field = {34, UPB_SIZE(4, 8), 2, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
8329 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
8330 return ret;
8331}
8332UPB_INLINE bool google_protobuf_ServiceOptions_has_features(const google_protobuf_ServiceOptions* msg) {
8333 const upb_MiniTableField field = {34, UPB_SIZE(4, 8), 2, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
8334 return _upb_Message_HasNonExtensionField(msg, &field);
8335}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008336UPB_INLINE void google_protobuf_ServiceOptions_clear_uninterpreted_option(google_protobuf_ServiceOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008337 const upb_MiniTableField field = {999, UPB_SIZE(8, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008338 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07008339}
Eric Salob7d54ac2022-12-29 11:59:42 -08008340UPB_INLINE const google_protobuf_UninterpretedOption* const* google_protobuf_ServiceOptions_uninterpreted_option(const google_protobuf_ServiceOptions* msg, size_t* size) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008341 const upb_MiniTableField field = {999, UPB_SIZE(8, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08008342 const upb_Array* arr = upb_Message_GetArray(msg, &field);
8343 if (arr) {
8344 if (size) *size = arr->size;
8345 return (const google_protobuf_UninterpretedOption* const*)_upb_array_constptr(arr);
8346 } else {
8347 if (size) *size = 0;
8348 return NULL;
8349 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07008350}
Deanna Garciab26afb52023-04-25 13:37:18 -07008351UPB_INLINE const upb_Array* _google_protobuf_ServiceOptions_uninterpreted_option_upb_array(const google_protobuf_ServiceOptions* msg, size_t* size) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008352 const upb_MiniTableField field = {999, UPB_SIZE(8, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07008353 const upb_Array* arr = upb_Message_GetArray(msg, &field);
8354 if (size) {
8355 *size = arr ? arr->size : 0;
8356 }
8357 return arr;
8358}
8359UPB_INLINE upb_Array* _google_protobuf_ServiceOptions_uninterpreted_option_mutable_upb_array(const google_protobuf_ServiceOptions* msg, size_t* size, upb_Arena* arena) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008360 const upb_MiniTableField field = {999, UPB_SIZE(8, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07008361 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
8362 (upb_Message*)msg, &field, arena);
8363 if (size) {
8364 *size = arr ? arr->size : 0;
8365 }
8366 return arr;
8367}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008368UPB_INLINE bool google_protobuf_ServiceOptions_has_uninterpreted_option(const google_protobuf_ServiceOptions* msg) {
8369 size_t size;
8370 google_protobuf_ServiceOptions_uninterpreted_option(msg, &size);
8371 return size != 0;
8372}
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008373
8374UPB_INLINE void google_protobuf_ServiceOptions_set_deprecated(google_protobuf_ServiceOptions *msg, bool value) {
Jie Luo3560e232023-06-12 00:33:50 -07008375 const upb_MiniTableField field = {33, 1, 1, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008376 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08008377}
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008378UPB_INLINE void google_protobuf_ServiceOptions_set_features(google_protobuf_ServiceOptions *msg, google_protobuf_FeatureSet* value) {
8379 const upb_MiniTableField field = {34, UPB_SIZE(4, 8), 2, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
8380 _upb_Message_SetNonExtensionField(msg, &field, &value);
8381}
8382UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_ServiceOptions_mutable_features(google_protobuf_ServiceOptions* msg, upb_Arena* arena) {
8383 struct google_protobuf_FeatureSet* sub = (struct google_protobuf_FeatureSet*)google_protobuf_ServiceOptions_features(msg);
8384 if (sub == NULL) {
8385 sub = (struct google_protobuf_FeatureSet*)_upb_Message_New(&google_protobuf_FeatureSet_msg_init, arena);
8386 if (sub) google_protobuf_ServiceOptions_set_features(msg, sub);
8387 }
8388 return sub;
8389}
Mike Kruskal232ecf42023-01-14 00:09:40 -08008390UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_ServiceOptions_mutable_uninterpreted_option(google_protobuf_ServiceOptions* msg, size_t* size) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008391 upb_MiniTableField field = {999, UPB_SIZE(8, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08008392 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
8393 if (arr) {
8394 if (size) *size = arr->size;
8395 return (google_protobuf_UninterpretedOption**)_upb_array_ptr(arr);
8396 } else {
8397 if (size) *size = 0;
8398 return NULL;
8399 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008400}
Eric Salob7d54ac2022-12-29 11:59:42 -08008401UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_ServiceOptions_resize_uninterpreted_option(google_protobuf_ServiceOptions* msg, size_t size, upb_Arena* arena) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008402 upb_MiniTableField field = {999, UPB_SIZE(8, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07008403 return (google_protobuf_UninterpretedOption**)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008404}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07008405UPB_INLINE struct google_protobuf_UninterpretedOption* google_protobuf_ServiceOptions_add_uninterpreted_option(google_protobuf_ServiceOptions* msg, upb_Arena* arena) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008406 upb_MiniTableField field = {999, UPB_SIZE(8, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08008407 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
8408 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
8409 return NULL;
8410 }
Joshua Habermand3995ec2022-09-30 16:54:39 -07008411 struct google_protobuf_UninterpretedOption* sub = (struct google_protobuf_UninterpretedOption*)_upb_Message_New(&google_protobuf_UninterpretedOption_msg_init, arena);
Eric Salob7d54ac2022-12-29 11:59:42 -08008412 if (!arr || !sub) return NULL;
8413 _upb_Array_Set(arr, arr->size - 1, &sub, sizeof(sub));
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008414 return sub;
8415}
8416
8417/* google.protobuf.MethodOptions */
8418
Joshua Habermanf41049a2022-01-21 14:41:25 -08008419UPB_INLINE google_protobuf_MethodOptions* google_protobuf_MethodOptions_new(upb_Arena* arena) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07008420 return (google_protobuf_MethodOptions*)_upb_Message_New(&google_protobuf_MethodOptions_msg_init, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008421}
Joshua Habermanf41049a2022-01-21 14:41:25 -08008422UPB_INLINE google_protobuf_MethodOptions* google_protobuf_MethodOptions_parse(const char* buf, size_t size, upb_Arena* arena) {
8423 google_protobuf_MethodOptions* ret = google_protobuf_MethodOptions_new(arena);
Joshua Haberman9d578a32021-08-02 15:32:01 -07008424 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07008425 if (upb_Decode(buf, size, ret, &google_protobuf_MethodOptions_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
Joshua Haberman9d578a32021-08-02 15:32:01 -07008426 return NULL;
8427 }
8428 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008429}
Joshua Habermanf41049a2022-01-21 14:41:25 -08008430UPB_INLINE google_protobuf_MethodOptions* google_protobuf_MethodOptions_parse_ex(const char* buf, size_t size,
8431 const upb_ExtensionRegistry* extreg,
8432 int options, upb_Arena* arena) {
8433 google_protobuf_MethodOptions* ret = google_protobuf_MethodOptions_new(arena);
8434 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07008435 if (upb_Decode(buf, size, ret, &google_protobuf_MethodOptions_msg_init, extreg, options, arena) !=
Joshua Habermanf41049a2022-01-21 14:41:25 -08008436 kUpb_DecodeStatus_Ok) {
8437 return NULL;
8438 }
8439 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008440}
Joshua Habermanf41049a2022-01-21 14:41:25 -08008441UPB_INLINE char* google_protobuf_MethodOptions_serialize(const google_protobuf_MethodOptions* msg, upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07008442 char* ptr;
8443 (void)upb_Encode(msg, &google_protobuf_MethodOptions_msg_init, 0, arena, &ptr, len);
8444 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08008445}
8446UPB_INLINE char* google_protobuf_MethodOptions_serialize_ex(const google_protobuf_MethodOptions* msg, int options,
8447 upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07008448 char* ptr;
8449 (void)upb_Encode(msg, &google_protobuf_MethodOptions_msg_init, options, arena, &ptr, len);
8450 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08008451}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008452UPB_INLINE void google_protobuf_MethodOptions_clear_deprecated(google_protobuf_MethodOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07008453 const upb_MiniTableField field = {33, 1, 1, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008454 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07008455}
Joshua Habermanf41049a2022-01-21 14:41:25 -08008456UPB_INLINE bool google_protobuf_MethodOptions_deprecated(const google_protobuf_MethodOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08008457 bool default_val = false;
8458 bool ret;
Jie Luo3560e232023-06-12 00:33:50 -07008459 const upb_MiniTableField field = {33, 1, 1, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008460 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08008461 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08008462}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008463UPB_INLINE bool google_protobuf_MethodOptions_has_deprecated(const google_protobuf_MethodOptions* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07008464 const upb_MiniTableField field = {33, 1, 1, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008465 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07008466}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008467UPB_INLINE void google_protobuf_MethodOptions_clear_idempotency_level(google_protobuf_MethodOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008468 const upb_MiniTableField field = {34, 4, 2, 2, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008469 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07008470}
Joshua Habermanf41049a2022-01-21 14:41:25 -08008471UPB_INLINE int32_t google_protobuf_MethodOptions_idempotency_level(const google_protobuf_MethodOptions* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08008472 int32_t default_val = 0;
8473 int32_t ret;
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008474 const upb_MiniTableField field = {34, 4, 2, 2, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008475 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08008476 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08008477}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008478UPB_INLINE bool google_protobuf_MethodOptions_has_idempotency_level(const google_protobuf_MethodOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008479 const upb_MiniTableField field = {34, 4, 2, 2, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
8480 return _upb_Message_HasNonExtensionField(msg, &field);
8481}
8482UPB_INLINE void google_protobuf_MethodOptions_clear_features(google_protobuf_MethodOptions* msg) {
8483 const upb_MiniTableField field = {35, 8, 3, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
8484 _upb_Message_ClearNonExtensionField(msg, &field);
8485}
8486UPB_INLINE const google_protobuf_FeatureSet* google_protobuf_MethodOptions_features(const google_protobuf_MethodOptions* msg) {
8487 const google_protobuf_FeatureSet* default_val = NULL;
8488 const google_protobuf_FeatureSet* ret;
8489 const upb_MiniTableField field = {35, 8, 3, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
8490 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
8491 return ret;
8492}
8493UPB_INLINE bool google_protobuf_MethodOptions_has_features(const google_protobuf_MethodOptions* msg) {
8494 const upb_MiniTableField field = {35, 8, 3, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008495 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07008496}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008497UPB_INLINE void google_protobuf_MethodOptions_clear_uninterpreted_option(google_protobuf_MethodOptions* msg) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008498 const upb_MiniTableField field = {999, UPB_SIZE(12, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008499 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07008500}
Eric Salob7d54ac2022-12-29 11:59:42 -08008501UPB_INLINE const google_protobuf_UninterpretedOption* const* google_protobuf_MethodOptions_uninterpreted_option(const google_protobuf_MethodOptions* msg, size_t* size) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008502 const upb_MiniTableField field = {999, UPB_SIZE(12, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08008503 const upb_Array* arr = upb_Message_GetArray(msg, &field);
8504 if (arr) {
8505 if (size) *size = arr->size;
8506 return (const google_protobuf_UninterpretedOption* const*)_upb_array_constptr(arr);
8507 } else {
8508 if (size) *size = 0;
8509 return NULL;
8510 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07008511}
Deanna Garciab26afb52023-04-25 13:37:18 -07008512UPB_INLINE const upb_Array* _google_protobuf_MethodOptions_uninterpreted_option_upb_array(const google_protobuf_MethodOptions* msg, size_t* size) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008513 const upb_MiniTableField field = {999, UPB_SIZE(12, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07008514 const upb_Array* arr = upb_Message_GetArray(msg, &field);
8515 if (size) {
8516 *size = arr ? arr->size : 0;
8517 }
8518 return arr;
8519}
8520UPB_INLINE upb_Array* _google_protobuf_MethodOptions_uninterpreted_option_mutable_upb_array(const google_protobuf_MethodOptions* msg, size_t* size, upb_Arena* arena) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008521 const upb_MiniTableField field = {999, UPB_SIZE(12, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07008522 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
8523 (upb_Message*)msg, &field, arena);
8524 if (size) {
8525 *size = arr ? arr->size : 0;
8526 }
8527 return arr;
8528}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008529UPB_INLINE bool google_protobuf_MethodOptions_has_uninterpreted_option(const google_protobuf_MethodOptions* msg) {
8530 size_t size;
8531 google_protobuf_MethodOptions_uninterpreted_option(msg, &size);
8532 return size != 0;
8533}
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008534
8535UPB_INLINE void google_protobuf_MethodOptions_set_deprecated(google_protobuf_MethodOptions *msg, bool value) {
Jie Luo3560e232023-06-12 00:33:50 -07008536 const upb_MiniTableField field = {33, 1, 1, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008537 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08008538}
8539UPB_INLINE void google_protobuf_MethodOptions_set_idempotency_level(google_protobuf_MethodOptions *msg, int32_t value) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008540 const upb_MiniTableField field = {34, 4, 2, 2, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008541 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08008542}
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008543UPB_INLINE void google_protobuf_MethodOptions_set_features(google_protobuf_MethodOptions *msg, google_protobuf_FeatureSet* value) {
8544 const upb_MiniTableField field = {35, 8, 3, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
8545 _upb_Message_SetNonExtensionField(msg, &field, &value);
8546}
8547UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_MethodOptions_mutable_features(google_protobuf_MethodOptions* msg, upb_Arena* arena) {
8548 struct google_protobuf_FeatureSet* sub = (struct google_protobuf_FeatureSet*)google_protobuf_MethodOptions_features(msg);
8549 if (sub == NULL) {
8550 sub = (struct google_protobuf_FeatureSet*)_upb_Message_New(&google_protobuf_FeatureSet_msg_init, arena);
8551 if (sub) google_protobuf_MethodOptions_set_features(msg, sub);
8552 }
8553 return sub;
8554}
Mike Kruskal232ecf42023-01-14 00:09:40 -08008555UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_MethodOptions_mutable_uninterpreted_option(google_protobuf_MethodOptions* msg, size_t* size) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008556 upb_MiniTableField field = {999, UPB_SIZE(12, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08008557 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
8558 if (arr) {
8559 if (size) *size = arr->size;
8560 return (google_protobuf_UninterpretedOption**)_upb_array_ptr(arr);
8561 } else {
8562 if (size) *size = 0;
8563 return NULL;
8564 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008565}
Eric Salob7d54ac2022-12-29 11:59:42 -08008566UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_MethodOptions_resize_uninterpreted_option(google_protobuf_MethodOptions* msg, size_t size, upb_Arena* arena) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008567 upb_MiniTableField field = {999, UPB_SIZE(12, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07008568 return (google_protobuf_UninterpretedOption**)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008569}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07008570UPB_INLINE struct google_protobuf_UninterpretedOption* google_protobuf_MethodOptions_add_uninterpreted_option(google_protobuf_MethodOptions* msg, upb_Arena* arena) {
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008571 upb_MiniTableField field = {999, UPB_SIZE(12, 16), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08008572 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
8573 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
8574 return NULL;
8575 }
Joshua Habermand3995ec2022-09-30 16:54:39 -07008576 struct google_protobuf_UninterpretedOption* sub = (struct google_protobuf_UninterpretedOption*)_upb_Message_New(&google_protobuf_UninterpretedOption_msg_init, arena);
Eric Salob7d54ac2022-12-29 11:59:42 -08008577 if (!arr || !sub) return NULL;
8578 _upb_Array_Set(arr, arr->size - 1, &sub, sizeof(sub));
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008579 return sub;
8580}
8581
8582/* google.protobuf.UninterpretedOption */
8583
Joshua Habermanf41049a2022-01-21 14:41:25 -08008584UPB_INLINE google_protobuf_UninterpretedOption* google_protobuf_UninterpretedOption_new(upb_Arena* arena) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07008585 return (google_protobuf_UninterpretedOption*)_upb_Message_New(&google_protobuf_UninterpretedOption_msg_init, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008586}
Joshua Habermanf41049a2022-01-21 14:41:25 -08008587UPB_INLINE google_protobuf_UninterpretedOption* google_protobuf_UninterpretedOption_parse(const char* buf, size_t size, upb_Arena* arena) {
8588 google_protobuf_UninterpretedOption* ret = google_protobuf_UninterpretedOption_new(arena);
Joshua Haberman9d578a32021-08-02 15:32:01 -07008589 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07008590 if (upb_Decode(buf, size, ret, &google_protobuf_UninterpretedOption_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
Joshua Haberman9d578a32021-08-02 15:32:01 -07008591 return NULL;
8592 }
8593 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008594}
Joshua Habermanf41049a2022-01-21 14:41:25 -08008595UPB_INLINE google_protobuf_UninterpretedOption* google_protobuf_UninterpretedOption_parse_ex(const char* buf, size_t size,
8596 const upb_ExtensionRegistry* extreg,
8597 int options, upb_Arena* arena) {
8598 google_protobuf_UninterpretedOption* ret = google_protobuf_UninterpretedOption_new(arena);
8599 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07008600 if (upb_Decode(buf, size, ret, &google_protobuf_UninterpretedOption_msg_init, extreg, options, arena) !=
Joshua Habermanf41049a2022-01-21 14:41:25 -08008601 kUpb_DecodeStatus_Ok) {
8602 return NULL;
8603 }
8604 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008605}
Joshua Habermanf41049a2022-01-21 14:41:25 -08008606UPB_INLINE char* google_protobuf_UninterpretedOption_serialize(const google_protobuf_UninterpretedOption* msg, upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07008607 char* ptr;
8608 (void)upb_Encode(msg, &google_protobuf_UninterpretedOption_msg_init, 0, arena, &ptr, len);
8609 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08008610}
8611UPB_INLINE char* google_protobuf_UninterpretedOption_serialize_ex(const google_protobuf_UninterpretedOption* msg, int options,
8612 upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07008613 char* ptr;
8614 (void)upb_Encode(msg, &google_protobuf_UninterpretedOption_msg_init, options, arena, &ptr, len);
8615 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08008616}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008617UPB_INLINE void google_protobuf_UninterpretedOption_clear_name(google_protobuf_UninterpretedOption* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07008618 const upb_MiniTableField field = {2, UPB_SIZE(4, 8), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008619 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07008620}
Eric Salob7d54ac2022-12-29 11:59:42 -08008621UPB_INLINE const google_protobuf_UninterpretedOption_NamePart* const* google_protobuf_UninterpretedOption_name(const google_protobuf_UninterpretedOption* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07008622 const upb_MiniTableField field = {2, UPB_SIZE(4, 8), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08008623 const upb_Array* arr = upb_Message_GetArray(msg, &field);
8624 if (arr) {
8625 if (size) *size = arr->size;
8626 return (const google_protobuf_UninterpretedOption_NamePart* const*)_upb_array_constptr(arr);
8627 } else {
8628 if (size) *size = 0;
8629 return NULL;
8630 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07008631}
Deanna Garciab26afb52023-04-25 13:37:18 -07008632UPB_INLINE const upb_Array* _google_protobuf_UninterpretedOption_name_upb_array(const google_protobuf_UninterpretedOption* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07008633 const upb_MiniTableField field = {2, UPB_SIZE(4, 8), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07008634 const upb_Array* arr = upb_Message_GetArray(msg, &field);
8635 if (size) {
8636 *size = arr ? arr->size : 0;
8637 }
8638 return arr;
8639}
8640UPB_INLINE upb_Array* _google_protobuf_UninterpretedOption_name_mutable_upb_array(const google_protobuf_UninterpretedOption* msg, size_t* size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07008641 const upb_MiniTableField field = {2, UPB_SIZE(4, 8), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07008642 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
8643 (upb_Message*)msg, &field, arena);
8644 if (size) {
8645 *size = arr ? arr->size : 0;
8646 }
8647 return arr;
8648}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008649UPB_INLINE bool google_protobuf_UninterpretedOption_has_name(const google_protobuf_UninterpretedOption* msg) {
8650 size_t size;
8651 google_protobuf_UninterpretedOption_name(msg, &size);
8652 return size != 0;
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07008653}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008654UPB_INLINE void google_protobuf_UninterpretedOption_clear_identifier_value(google_protobuf_UninterpretedOption* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07008655 const upb_MiniTableField field = {3, UPB_SIZE(8, 16), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008656 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07008657}
Joshua Habermanf41049a2022-01-21 14:41:25 -08008658UPB_INLINE upb_StringView google_protobuf_UninterpretedOption_identifier_value(const google_protobuf_UninterpretedOption* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08008659 upb_StringView default_val = upb_StringView_FromString("");
8660 upb_StringView ret;
Jie Luo3560e232023-06-12 00:33:50 -07008661 const upb_MiniTableField field = {3, UPB_SIZE(8, 16), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008662 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08008663 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08008664}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008665UPB_INLINE bool google_protobuf_UninterpretedOption_has_identifier_value(const google_protobuf_UninterpretedOption* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07008666 const upb_MiniTableField field = {3, UPB_SIZE(8, 16), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008667 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07008668}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008669UPB_INLINE void google_protobuf_UninterpretedOption_clear_positive_int_value(google_protobuf_UninterpretedOption* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07008670 const upb_MiniTableField field = {4, UPB_SIZE(16, 32), 2, kUpb_NoSub, 4, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008671 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07008672}
Joshua Habermanf41049a2022-01-21 14:41:25 -08008673UPB_INLINE uint64_t google_protobuf_UninterpretedOption_positive_int_value(const google_protobuf_UninterpretedOption* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08008674 uint64_t default_val = (uint64_t)0ull;
8675 uint64_t ret;
Jie Luo3560e232023-06-12 00:33:50 -07008676 const upb_MiniTableField field = {4, UPB_SIZE(16, 32), 2, kUpb_NoSub, 4, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008677 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08008678 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08008679}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008680UPB_INLINE bool google_protobuf_UninterpretedOption_has_positive_int_value(const google_protobuf_UninterpretedOption* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07008681 const upb_MiniTableField field = {4, UPB_SIZE(16, 32), 2, kUpb_NoSub, 4, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008682 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07008683}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008684UPB_INLINE void google_protobuf_UninterpretedOption_clear_negative_int_value(google_protobuf_UninterpretedOption* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07008685 const upb_MiniTableField field = {5, UPB_SIZE(24, 40), 3, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008686 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07008687}
Joshua Habermanf41049a2022-01-21 14:41:25 -08008688UPB_INLINE int64_t google_protobuf_UninterpretedOption_negative_int_value(const google_protobuf_UninterpretedOption* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08008689 int64_t default_val = (int64_t)0ll;
8690 int64_t ret;
Jie Luo3560e232023-06-12 00:33:50 -07008691 const upb_MiniTableField field = {5, UPB_SIZE(24, 40), 3, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008692 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08008693 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08008694}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008695UPB_INLINE bool google_protobuf_UninterpretedOption_has_negative_int_value(const google_protobuf_UninterpretedOption* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07008696 const upb_MiniTableField field = {5, UPB_SIZE(24, 40), 3, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008697 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07008698}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008699UPB_INLINE void google_protobuf_UninterpretedOption_clear_double_value(google_protobuf_UninterpretedOption* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07008700 const upb_MiniTableField field = {6, UPB_SIZE(32, 48), 4, kUpb_NoSub, 1, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008701 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07008702}
Joshua Habermanf41049a2022-01-21 14:41:25 -08008703UPB_INLINE double google_protobuf_UninterpretedOption_double_value(const google_protobuf_UninterpretedOption* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08008704 double default_val = 0;
8705 double ret;
Jie Luo3560e232023-06-12 00:33:50 -07008706 const upb_MiniTableField field = {6, UPB_SIZE(32, 48), 4, kUpb_NoSub, 1, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008707 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08008708 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08008709}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008710UPB_INLINE bool google_protobuf_UninterpretedOption_has_double_value(const google_protobuf_UninterpretedOption* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07008711 const upb_MiniTableField field = {6, UPB_SIZE(32, 48), 4, kUpb_NoSub, 1, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008712 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07008713}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008714UPB_INLINE void google_protobuf_UninterpretedOption_clear_string_value(google_protobuf_UninterpretedOption* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07008715 const upb_MiniTableField field = {7, UPB_SIZE(40, 56), 5, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008716 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07008717}
Joshua Habermanf41049a2022-01-21 14:41:25 -08008718UPB_INLINE upb_StringView google_protobuf_UninterpretedOption_string_value(const google_protobuf_UninterpretedOption* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08008719 upb_StringView default_val = upb_StringView_FromString("");
8720 upb_StringView ret;
Jie Luo3560e232023-06-12 00:33:50 -07008721 const upb_MiniTableField field = {7, UPB_SIZE(40, 56), 5, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008722 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08008723 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08008724}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008725UPB_INLINE bool google_protobuf_UninterpretedOption_has_string_value(const google_protobuf_UninterpretedOption* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07008726 const upb_MiniTableField field = {7, UPB_SIZE(40, 56), 5, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008727 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07008728}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008729UPB_INLINE void google_protobuf_UninterpretedOption_clear_aggregate_value(google_protobuf_UninterpretedOption* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07008730 const upb_MiniTableField field = {8, UPB_SIZE(48, 72), 6, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008731 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07008732}
Joshua Habermanf41049a2022-01-21 14:41:25 -08008733UPB_INLINE upb_StringView google_protobuf_UninterpretedOption_aggregate_value(const google_protobuf_UninterpretedOption* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08008734 upb_StringView default_val = upb_StringView_FromString("");
8735 upb_StringView ret;
Jie Luo3560e232023-06-12 00:33:50 -07008736 const upb_MiniTableField field = {8, UPB_SIZE(48, 72), 6, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008737 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08008738 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08008739}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008740UPB_INLINE bool google_protobuf_UninterpretedOption_has_aggregate_value(const google_protobuf_UninterpretedOption* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07008741 const upb_MiniTableField field = {8, UPB_SIZE(48, 72), 6, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008742 return _upb_Message_HasNonExtensionField(msg, &field);
Mike Kruskal3bc50492022-12-01 13:34:12 -08008743}
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008744
Eric Salob7d54ac2022-12-29 11:59:42 -08008745UPB_INLINE google_protobuf_UninterpretedOption_NamePart** google_protobuf_UninterpretedOption_mutable_name(google_protobuf_UninterpretedOption* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07008746 upb_MiniTableField field = {2, UPB_SIZE(4, 8), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08008747 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
8748 if (arr) {
8749 if (size) *size = arr->size;
8750 return (google_protobuf_UninterpretedOption_NamePart**)_upb_array_ptr(arr);
8751 } else {
8752 if (size) *size = 0;
8753 return NULL;
8754 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008755}
Eric Salob7d54ac2022-12-29 11:59:42 -08008756UPB_INLINE google_protobuf_UninterpretedOption_NamePart** google_protobuf_UninterpretedOption_resize_name(google_protobuf_UninterpretedOption* msg, size_t size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07008757 upb_MiniTableField field = {2, UPB_SIZE(4, 8), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07008758 return (google_protobuf_UninterpretedOption_NamePart**)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008759}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07008760UPB_INLINE struct google_protobuf_UninterpretedOption_NamePart* google_protobuf_UninterpretedOption_add_name(google_protobuf_UninterpretedOption* msg, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07008761 upb_MiniTableField field = {2, UPB_SIZE(4, 8), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08008762 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
8763 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
8764 return NULL;
8765 }
Joshua Habermand3995ec2022-09-30 16:54:39 -07008766 struct google_protobuf_UninterpretedOption_NamePart* sub = (struct google_protobuf_UninterpretedOption_NamePart*)_upb_Message_New(&google_protobuf_UninterpretedOption_NamePart_msg_init, arena);
Eric Salob7d54ac2022-12-29 11:59:42 -08008767 if (!arr || !sub) return NULL;
8768 _upb_Array_Set(arr, arr->size - 1, &sub, sizeof(sub));
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008769 return sub;
8770}
Joshua Habermanf41049a2022-01-21 14:41:25 -08008771UPB_INLINE void google_protobuf_UninterpretedOption_set_identifier_value(google_protobuf_UninterpretedOption *msg, upb_StringView value) {
Jie Luo3560e232023-06-12 00:33:50 -07008772 const upb_MiniTableField field = {3, UPB_SIZE(8, 16), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008773 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08008774}
8775UPB_INLINE void google_protobuf_UninterpretedOption_set_positive_int_value(google_protobuf_UninterpretedOption *msg, uint64_t value) {
Jie Luo3560e232023-06-12 00:33:50 -07008776 const upb_MiniTableField field = {4, UPB_SIZE(16, 32), 2, kUpb_NoSub, 4, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008777 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08008778}
8779UPB_INLINE void google_protobuf_UninterpretedOption_set_negative_int_value(google_protobuf_UninterpretedOption *msg, int64_t value) {
Jie Luo3560e232023-06-12 00:33:50 -07008780 const upb_MiniTableField field = {5, UPB_SIZE(24, 40), 3, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008781 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08008782}
8783UPB_INLINE void google_protobuf_UninterpretedOption_set_double_value(google_protobuf_UninterpretedOption *msg, double value) {
Jie Luo3560e232023-06-12 00:33:50 -07008784 const upb_MiniTableField field = {6, UPB_SIZE(32, 48), 4, kUpb_NoSub, 1, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008785 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08008786}
8787UPB_INLINE void google_protobuf_UninterpretedOption_set_string_value(google_protobuf_UninterpretedOption *msg, upb_StringView value) {
Jie Luo3560e232023-06-12 00:33:50 -07008788 const upb_MiniTableField field = {7, UPB_SIZE(40, 56), 5, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008789 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08008790}
8791UPB_INLINE void google_protobuf_UninterpretedOption_set_aggregate_value(google_protobuf_UninterpretedOption *msg, upb_StringView value) {
Jie Luo3560e232023-06-12 00:33:50 -07008792 const upb_MiniTableField field = {8, UPB_SIZE(48, 72), 6, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008793 _upb_Message_SetNonExtensionField(msg, &field, &value);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008794}
Mike Kruskal232ecf42023-01-14 00:09:40 -08008795
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008796/* google.protobuf.UninterpretedOption.NamePart */
8797
Joshua Habermanf41049a2022-01-21 14:41:25 -08008798UPB_INLINE google_protobuf_UninterpretedOption_NamePart* google_protobuf_UninterpretedOption_NamePart_new(upb_Arena* arena) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07008799 return (google_protobuf_UninterpretedOption_NamePart*)_upb_Message_New(&google_protobuf_UninterpretedOption_NamePart_msg_init, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008800}
Joshua Habermanf41049a2022-01-21 14:41:25 -08008801UPB_INLINE google_protobuf_UninterpretedOption_NamePart* google_protobuf_UninterpretedOption_NamePart_parse(const char* buf, size_t size, upb_Arena* arena) {
8802 google_protobuf_UninterpretedOption_NamePart* ret = google_protobuf_UninterpretedOption_NamePart_new(arena);
Joshua Haberman9d578a32021-08-02 15:32:01 -07008803 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07008804 if (upb_Decode(buf, size, ret, &google_protobuf_UninterpretedOption_NamePart_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
Joshua Haberman9d578a32021-08-02 15:32:01 -07008805 return NULL;
8806 }
8807 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008808}
Joshua Habermanf41049a2022-01-21 14:41:25 -08008809UPB_INLINE google_protobuf_UninterpretedOption_NamePart* google_protobuf_UninterpretedOption_NamePart_parse_ex(const char* buf, size_t size,
8810 const upb_ExtensionRegistry* extreg,
8811 int options, upb_Arena* arena) {
8812 google_protobuf_UninterpretedOption_NamePart* ret = google_protobuf_UninterpretedOption_NamePart_new(arena);
8813 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07008814 if (upb_Decode(buf, size, ret, &google_protobuf_UninterpretedOption_NamePart_msg_init, extreg, options, arena) !=
Joshua Habermanf41049a2022-01-21 14:41:25 -08008815 kUpb_DecodeStatus_Ok) {
8816 return NULL;
8817 }
8818 return ret;
8819}
8820UPB_INLINE char* google_protobuf_UninterpretedOption_NamePart_serialize(const google_protobuf_UninterpretedOption_NamePart* msg, upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07008821 char* ptr;
8822 (void)upb_Encode(msg, &google_protobuf_UninterpretedOption_NamePart_msg_init, 0, arena, &ptr, len);
8823 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08008824}
8825UPB_INLINE char* google_protobuf_UninterpretedOption_NamePart_serialize_ex(const google_protobuf_UninterpretedOption_NamePart* msg, int options,
8826 upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07008827 char* ptr;
8828 (void)upb_Encode(msg, &google_protobuf_UninterpretedOption_NamePart_msg_init, options, arena, &ptr, len);
8829 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08008830}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008831UPB_INLINE void google_protobuf_UninterpretedOption_NamePart_clear_name_part(google_protobuf_UninterpretedOption_NamePart* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07008832 const upb_MiniTableField field = {1, UPB_SIZE(4, 8), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008833 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07008834}
Joshua Habermanf41049a2022-01-21 14:41:25 -08008835UPB_INLINE upb_StringView google_protobuf_UninterpretedOption_NamePart_name_part(const google_protobuf_UninterpretedOption_NamePart* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08008836 upb_StringView default_val = upb_StringView_FromString("");
8837 upb_StringView ret;
Jie Luo3560e232023-06-12 00:33:50 -07008838 const upb_MiniTableField field = {1, UPB_SIZE(4, 8), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008839 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08008840 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08008841}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008842UPB_INLINE bool google_protobuf_UninterpretedOption_NamePart_has_name_part(const google_protobuf_UninterpretedOption_NamePart* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07008843 const upb_MiniTableField field = {1, UPB_SIZE(4, 8), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008844 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07008845}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008846UPB_INLINE void google_protobuf_UninterpretedOption_NamePart_clear_is_extension(google_protobuf_UninterpretedOption_NamePart* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07008847 const upb_MiniTableField field = {2, 1, 2, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008848 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07008849}
Joshua Habermanf41049a2022-01-21 14:41:25 -08008850UPB_INLINE bool google_protobuf_UninterpretedOption_NamePart_is_extension(const google_protobuf_UninterpretedOption_NamePart* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08008851 bool default_val = false;
8852 bool ret;
Jie Luo3560e232023-06-12 00:33:50 -07008853 const upb_MiniTableField field = {2, 1, 2, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008854 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08008855 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008856}
Mike Kruskal3bc50492022-12-01 13:34:12 -08008857UPB_INLINE bool google_protobuf_UninterpretedOption_NamePart_has_is_extension(const google_protobuf_UninterpretedOption_NamePart* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07008858 const upb_MiniTableField field = {2, 1, 2, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008859 return _upb_Message_HasNonExtensionField(msg, &field);
Mike Kruskal3bc50492022-12-01 13:34:12 -08008860}
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008861
Joshua Habermanf41049a2022-01-21 14:41:25 -08008862UPB_INLINE void google_protobuf_UninterpretedOption_NamePart_set_name_part(google_protobuf_UninterpretedOption_NamePart *msg, upb_StringView value) {
Jie Luo3560e232023-06-12 00:33:50 -07008863 const upb_MiniTableField field = {1, UPB_SIZE(4, 8), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008864 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08008865}
8866UPB_INLINE void google_protobuf_UninterpretedOption_NamePart_set_is_extension(google_protobuf_UninterpretedOption_NamePart *msg, bool value) {
Jie Luo3560e232023-06-12 00:33:50 -07008867 const upb_MiniTableField field = {2, 1, 2, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08008868 _upb_Message_SetNonExtensionField(msg, &field, &value);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08008869}
Mike Kruskal232ecf42023-01-14 00:09:40 -08008870
Mike Kruskal4f9e4172023-06-30 20:14:50 -07008871/* google.protobuf.FeatureSet */
8872
8873UPB_INLINE google_protobuf_FeatureSet* google_protobuf_FeatureSet_new(upb_Arena* arena) {
8874 return (google_protobuf_FeatureSet*)_upb_Message_New(&google_protobuf_FeatureSet_msg_init, arena);
8875}
8876UPB_INLINE google_protobuf_FeatureSet* google_protobuf_FeatureSet_parse(const char* buf, size_t size, upb_Arena* arena) {
8877 google_protobuf_FeatureSet* ret = google_protobuf_FeatureSet_new(arena);
8878 if (!ret) return NULL;
8879 if (upb_Decode(buf, size, ret, &google_protobuf_FeatureSet_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
8880 return NULL;
8881 }
8882 return ret;
8883}
8884UPB_INLINE google_protobuf_FeatureSet* google_protobuf_FeatureSet_parse_ex(const char* buf, size_t size,
8885 const upb_ExtensionRegistry* extreg,
8886 int options, upb_Arena* arena) {
8887 google_protobuf_FeatureSet* ret = google_protobuf_FeatureSet_new(arena);
8888 if (!ret) return NULL;
8889 if (upb_Decode(buf, size, ret, &google_protobuf_FeatureSet_msg_init, extreg, options, arena) !=
8890 kUpb_DecodeStatus_Ok) {
8891 return NULL;
8892 }
8893 return ret;
8894}
8895UPB_INLINE char* google_protobuf_FeatureSet_serialize(const google_protobuf_FeatureSet* msg, upb_Arena* arena, size_t* len) {
8896 char* ptr;
8897 (void)upb_Encode(msg, &google_protobuf_FeatureSet_msg_init, 0, arena, &ptr, len);
8898 return ptr;
8899}
8900UPB_INLINE char* google_protobuf_FeatureSet_serialize_ex(const google_protobuf_FeatureSet* msg, int options,
8901 upb_Arena* arena, size_t* len) {
8902 char* ptr;
8903 (void)upb_Encode(msg, &google_protobuf_FeatureSet_msg_init, options, arena, &ptr, len);
8904 return ptr;
8905}
8906UPB_INLINE void google_protobuf_FeatureSet_clear_field_presence(google_protobuf_FeatureSet* msg) {
8907 const upb_MiniTableField field = {1, 4, 1, 0, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
8908 _upb_Message_ClearNonExtensionField(msg, &field);
8909}
8910UPB_INLINE int32_t google_protobuf_FeatureSet_field_presence(const google_protobuf_FeatureSet* msg) {
8911 int32_t default_val = 0;
8912 int32_t ret;
8913 const upb_MiniTableField field = {1, 4, 1, 0, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
8914 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
8915 return ret;
8916}
8917UPB_INLINE bool google_protobuf_FeatureSet_has_field_presence(const google_protobuf_FeatureSet* msg) {
8918 const upb_MiniTableField field = {1, 4, 1, 0, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
8919 return _upb_Message_HasNonExtensionField(msg, &field);
8920}
8921UPB_INLINE void google_protobuf_FeatureSet_clear_enum_type(google_protobuf_FeatureSet* msg) {
8922 const upb_MiniTableField field = {2, 8, 2, 1, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
8923 _upb_Message_ClearNonExtensionField(msg, &field);
8924}
8925UPB_INLINE int32_t google_protobuf_FeatureSet_enum_type(const google_protobuf_FeatureSet* msg) {
8926 int32_t default_val = 0;
8927 int32_t ret;
8928 const upb_MiniTableField field = {2, 8, 2, 1, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
8929 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
8930 return ret;
8931}
8932UPB_INLINE bool google_protobuf_FeatureSet_has_enum_type(const google_protobuf_FeatureSet* msg) {
8933 const upb_MiniTableField field = {2, 8, 2, 1, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
8934 return _upb_Message_HasNonExtensionField(msg, &field);
8935}
8936UPB_INLINE void google_protobuf_FeatureSet_clear_repeated_field_encoding(google_protobuf_FeatureSet* msg) {
8937 const upb_MiniTableField field = {3, 12, 3, 2, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
8938 _upb_Message_ClearNonExtensionField(msg, &field);
8939}
8940UPB_INLINE int32_t google_protobuf_FeatureSet_repeated_field_encoding(const google_protobuf_FeatureSet* msg) {
8941 int32_t default_val = 0;
8942 int32_t ret;
8943 const upb_MiniTableField field = {3, 12, 3, 2, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
8944 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
8945 return ret;
8946}
8947UPB_INLINE bool google_protobuf_FeatureSet_has_repeated_field_encoding(const google_protobuf_FeatureSet* msg) {
8948 const upb_MiniTableField field = {3, 12, 3, 2, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
8949 return _upb_Message_HasNonExtensionField(msg, &field);
8950}
8951UPB_INLINE void google_protobuf_FeatureSet_clear_string_field_validation(google_protobuf_FeatureSet* msg) {
8952 const upb_MiniTableField field = {4, 16, 4, 3, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
8953 _upb_Message_ClearNonExtensionField(msg, &field);
8954}
8955UPB_INLINE int32_t google_protobuf_FeatureSet_string_field_validation(const google_protobuf_FeatureSet* msg) {
8956 int32_t default_val = 0;
8957 int32_t ret;
8958 const upb_MiniTableField field = {4, 16, 4, 3, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
8959 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
8960 return ret;
8961}
8962UPB_INLINE bool google_protobuf_FeatureSet_has_string_field_validation(const google_protobuf_FeatureSet* msg) {
8963 const upb_MiniTableField field = {4, 16, 4, 3, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
8964 return _upb_Message_HasNonExtensionField(msg, &field);
8965}
8966UPB_INLINE void google_protobuf_FeatureSet_clear_message_encoding(google_protobuf_FeatureSet* msg) {
8967 const upb_MiniTableField field = {5, 20, 5, 4, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
8968 _upb_Message_ClearNonExtensionField(msg, &field);
8969}
8970UPB_INLINE int32_t google_protobuf_FeatureSet_message_encoding(const google_protobuf_FeatureSet* msg) {
8971 int32_t default_val = 0;
8972 int32_t ret;
8973 const upb_MiniTableField field = {5, 20, 5, 4, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
8974 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
8975 return ret;
8976}
8977UPB_INLINE bool google_protobuf_FeatureSet_has_message_encoding(const google_protobuf_FeatureSet* msg) {
8978 const upb_MiniTableField field = {5, 20, 5, 4, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
8979 return _upb_Message_HasNonExtensionField(msg, &field);
8980}
8981UPB_INLINE void google_protobuf_FeatureSet_clear_json_format(google_protobuf_FeatureSet* msg) {
8982 const upb_MiniTableField field = {6, 24, 6, 5, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
8983 _upb_Message_ClearNonExtensionField(msg, &field);
8984}
8985UPB_INLINE int32_t google_protobuf_FeatureSet_json_format(const google_protobuf_FeatureSet* msg) {
8986 int32_t default_val = 0;
8987 int32_t ret;
8988 const upb_MiniTableField field = {6, 24, 6, 5, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
8989 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
8990 return ret;
8991}
8992UPB_INLINE bool google_protobuf_FeatureSet_has_json_format(const google_protobuf_FeatureSet* msg) {
8993 const upb_MiniTableField field = {6, 24, 6, 5, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
8994 return _upb_Message_HasNonExtensionField(msg, &field);
8995}
8996
8997UPB_INLINE void google_protobuf_FeatureSet_set_field_presence(google_protobuf_FeatureSet *msg, int32_t value) {
8998 const upb_MiniTableField field = {1, 4, 1, 0, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
8999 _upb_Message_SetNonExtensionField(msg, &field, &value);
9000}
9001UPB_INLINE void google_protobuf_FeatureSet_set_enum_type(google_protobuf_FeatureSet *msg, int32_t value) {
9002 const upb_MiniTableField field = {2, 8, 2, 1, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
9003 _upb_Message_SetNonExtensionField(msg, &field, &value);
9004}
9005UPB_INLINE void google_protobuf_FeatureSet_set_repeated_field_encoding(google_protobuf_FeatureSet *msg, int32_t value) {
9006 const upb_MiniTableField field = {3, 12, 3, 2, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
9007 _upb_Message_SetNonExtensionField(msg, &field, &value);
9008}
9009UPB_INLINE void google_protobuf_FeatureSet_set_string_field_validation(google_protobuf_FeatureSet *msg, int32_t value) {
9010 const upb_MiniTableField field = {4, 16, 4, 3, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
9011 _upb_Message_SetNonExtensionField(msg, &field, &value);
9012}
9013UPB_INLINE void google_protobuf_FeatureSet_set_message_encoding(google_protobuf_FeatureSet *msg, int32_t value) {
9014 const upb_MiniTableField field = {5, 20, 5, 4, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
9015 _upb_Message_SetNonExtensionField(msg, &field, &value);
9016}
9017UPB_INLINE void google_protobuf_FeatureSet_set_json_format(google_protobuf_FeatureSet *msg, int32_t value) {
9018 const upb_MiniTableField field = {6, 24, 6, 5, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
9019 _upb_Message_SetNonExtensionField(msg, &field, &value);
9020}
9021
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009022/* google.protobuf.SourceCodeInfo */
9023
Joshua Habermanf41049a2022-01-21 14:41:25 -08009024UPB_INLINE google_protobuf_SourceCodeInfo* google_protobuf_SourceCodeInfo_new(upb_Arena* arena) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07009025 return (google_protobuf_SourceCodeInfo*)_upb_Message_New(&google_protobuf_SourceCodeInfo_msg_init, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009026}
Joshua Habermanf41049a2022-01-21 14:41:25 -08009027UPB_INLINE google_protobuf_SourceCodeInfo* google_protobuf_SourceCodeInfo_parse(const char* buf, size_t size, upb_Arena* arena) {
9028 google_protobuf_SourceCodeInfo* ret = google_protobuf_SourceCodeInfo_new(arena);
Joshua Haberman9d578a32021-08-02 15:32:01 -07009029 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07009030 if (upb_Decode(buf, size, ret, &google_protobuf_SourceCodeInfo_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
Joshua Haberman9d578a32021-08-02 15:32:01 -07009031 return NULL;
9032 }
9033 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009034}
Joshua Habermanf41049a2022-01-21 14:41:25 -08009035UPB_INLINE google_protobuf_SourceCodeInfo* google_protobuf_SourceCodeInfo_parse_ex(const char* buf, size_t size,
9036 const upb_ExtensionRegistry* extreg,
9037 int options, upb_Arena* arena) {
9038 google_protobuf_SourceCodeInfo* ret = google_protobuf_SourceCodeInfo_new(arena);
9039 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07009040 if (upb_Decode(buf, size, ret, &google_protobuf_SourceCodeInfo_msg_init, extreg, options, arena) !=
Joshua Habermanf41049a2022-01-21 14:41:25 -08009041 kUpb_DecodeStatus_Ok) {
9042 return NULL;
9043 }
9044 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009045}
Joshua Habermanf41049a2022-01-21 14:41:25 -08009046UPB_INLINE char* google_protobuf_SourceCodeInfo_serialize(const google_protobuf_SourceCodeInfo* msg, upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07009047 char* ptr;
9048 (void)upb_Encode(msg, &google_protobuf_SourceCodeInfo_msg_init, 0, arena, &ptr, len);
9049 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08009050}
9051UPB_INLINE char* google_protobuf_SourceCodeInfo_serialize_ex(const google_protobuf_SourceCodeInfo* msg, int options,
9052 upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07009053 char* ptr;
9054 (void)upb_Encode(msg, &google_protobuf_SourceCodeInfo_msg_init, options, arena, &ptr, len);
9055 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08009056}
Mike Kruskal3bc50492022-12-01 13:34:12 -08009057UPB_INLINE void google_protobuf_SourceCodeInfo_clear_location(google_protobuf_SourceCodeInfo* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07009058 const upb_MiniTableField field = {1, 0, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08009059 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07009060}
Eric Salob7d54ac2022-12-29 11:59:42 -08009061UPB_INLINE const google_protobuf_SourceCodeInfo_Location* const* google_protobuf_SourceCodeInfo_location(const google_protobuf_SourceCodeInfo* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07009062 const upb_MiniTableField field = {1, 0, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08009063 const upb_Array* arr = upb_Message_GetArray(msg, &field);
9064 if (arr) {
9065 if (size) *size = arr->size;
9066 return (const google_protobuf_SourceCodeInfo_Location* const*)_upb_array_constptr(arr);
9067 } else {
9068 if (size) *size = 0;
9069 return NULL;
9070 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07009071}
Deanna Garciab26afb52023-04-25 13:37:18 -07009072UPB_INLINE const upb_Array* _google_protobuf_SourceCodeInfo_location_upb_array(const google_protobuf_SourceCodeInfo* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07009073 const upb_MiniTableField field = {1, 0, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07009074 const upb_Array* arr = upb_Message_GetArray(msg, &field);
9075 if (size) {
9076 *size = arr ? arr->size : 0;
9077 }
9078 return arr;
9079}
9080UPB_INLINE upb_Array* _google_protobuf_SourceCodeInfo_location_mutable_upb_array(const google_protobuf_SourceCodeInfo* msg, size_t* size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07009081 const upb_MiniTableField field = {1, 0, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07009082 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
9083 (upb_Message*)msg, &field, arena);
9084 if (size) {
9085 *size = arr ? arr->size : 0;
9086 }
9087 return arr;
9088}
Mike Kruskal3bc50492022-12-01 13:34:12 -08009089UPB_INLINE bool google_protobuf_SourceCodeInfo_has_location(const google_protobuf_SourceCodeInfo* msg) {
9090 size_t size;
9091 google_protobuf_SourceCodeInfo_location(msg, &size);
9092 return size != 0;
9093}
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009094
Eric Salob7d54ac2022-12-29 11:59:42 -08009095UPB_INLINE google_protobuf_SourceCodeInfo_Location** google_protobuf_SourceCodeInfo_mutable_location(google_protobuf_SourceCodeInfo* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07009096 upb_MiniTableField field = {1, 0, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08009097 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
9098 if (arr) {
9099 if (size) *size = arr->size;
9100 return (google_protobuf_SourceCodeInfo_Location**)_upb_array_ptr(arr);
9101 } else {
9102 if (size) *size = 0;
9103 return NULL;
9104 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009105}
Eric Salob7d54ac2022-12-29 11:59:42 -08009106UPB_INLINE google_protobuf_SourceCodeInfo_Location** google_protobuf_SourceCodeInfo_resize_location(google_protobuf_SourceCodeInfo* msg, size_t size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07009107 upb_MiniTableField field = {1, 0, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07009108 return (google_protobuf_SourceCodeInfo_Location**)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009109}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07009110UPB_INLINE struct google_protobuf_SourceCodeInfo_Location* google_protobuf_SourceCodeInfo_add_location(google_protobuf_SourceCodeInfo* msg, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07009111 upb_MiniTableField field = {1, 0, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08009112 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
9113 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
9114 return NULL;
9115 }
Joshua Habermand3995ec2022-09-30 16:54:39 -07009116 struct google_protobuf_SourceCodeInfo_Location* sub = (struct google_protobuf_SourceCodeInfo_Location*)_upb_Message_New(&google_protobuf_SourceCodeInfo_Location_msg_init, arena);
Eric Salob7d54ac2022-12-29 11:59:42 -08009117 if (!arr || !sub) return NULL;
9118 _upb_Array_Set(arr, arr->size - 1, &sub, sizeof(sub));
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009119 return sub;
9120}
9121
9122/* google.protobuf.SourceCodeInfo.Location */
9123
Joshua Habermanf41049a2022-01-21 14:41:25 -08009124UPB_INLINE google_protobuf_SourceCodeInfo_Location* google_protobuf_SourceCodeInfo_Location_new(upb_Arena* arena) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07009125 return (google_protobuf_SourceCodeInfo_Location*)_upb_Message_New(&google_protobuf_SourceCodeInfo_Location_msg_init, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009126}
Joshua Habermanf41049a2022-01-21 14:41:25 -08009127UPB_INLINE google_protobuf_SourceCodeInfo_Location* google_protobuf_SourceCodeInfo_Location_parse(const char* buf, size_t size, upb_Arena* arena) {
9128 google_protobuf_SourceCodeInfo_Location* ret = google_protobuf_SourceCodeInfo_Location_new(arena);
Joshua Haberman9d578a32021-08-02 15:32:01 -07009129 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07009130 if (upb_Decode(buf, size, ret, &google_protobuf_SourceCodeInfo_Location_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
Joshua Haberman9d578a32021-08-02 15:32:01 -07009131 return NULL;
9132 }
9133 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009134}
Joshua Habermanf41049a2022-01-21 14:41:25 -08009135UPB_INLINE google_protobuf_SourceCodeInfo_Location* google_protobuf_SourceCodeInfo_Location_parse_ex(const char* buf, size_t size,
9136 const upb_ExtensionRegistry* extreg,
9137 int options, upb_Arena* arena) {
9138 google_protobuf_SourceCodeInfo_Location* ret = google_protobuf_SourceCodeInfo_Location_new(arena);
9139 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07009140 if (upb_Decode(buf, size, ret, &google_protobuf_SourceCodeInfo_Location_msg_init, extreg, options, arena) !=
Joshua Habermanf41049a2022-01-21 14:41:25 -08009141 kUpb_DecodeStatus_Ok) {
9142 return NULL;
9143 }
9144 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009145}
Joshua Habermanf41049a2022-01-21 14:41:25 -08009146UPB_INLINE char* google_protobuf_SourceCodeInfo_Location_serialize(const google_protobuf_SourceCodeInfo_Location* msg, upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07009147 char* ptr;
9148 (void)upb_Encode(msg, &google_protobuf_SourceCodeInfo_Location_msg_init, 0, arena, &ptr, len);
9149 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08009150}
9151UPB_INLINE char* google_protobuf_SourceCodeInfo_Location_serialize_ex(const google_protobuf_SourceCodeInfo_Location* msg, int options,
9152 upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07009153 char* ptr;
9154 (void)upb_Encode(msg, &google_protobuf_SourceCodeInfo_Location_msg_init, options, arena, &ptr, len);
9155 return ptr;
9156}
Mike Kruskal3bc50492022-12-01 13:34:12 -08009157UPB_INLINE void google_protobuf_SourceCodeInfo_Location_clear_path(google_protobuf_SourceCodeInfo_Location* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07009158 const upb_MiniTableField field = {1, UPB_SIZE(4, 8), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08009159 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermanf41049a2022-01-21 14:41:25 -08009160}
Eric Salob7d54ac2022-12-29 11:59:42 -08009161UPB_INLINE int32_t const* google_protobuf_SourceCodeInfo_Location_path(const google_protobuf_SourceCodeInfo_Location* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07009162 const upb_MiniTableField field = {1, UPB_SIZE(4, 8), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08009163 const upb_Array* arr = upb_Message_GetArray(msg, &field);
9164 if (arr) {
9165 if (size) *size = arr->size;
9166 return (int32_t const*)_upb_array_constptr(arr);
9167 } else {
9168 if (size) *size = 0;
9169 return NULL;
9170 }
Joshua Habermand3995ec2022-09-30 16:54:39 -07009171}
Deanna Garciab26afb52023-04-25 13:37:18 -07009172UPB_INLINE const upb_Array* _google_protobuf_SourceCodeInfo_Location_path_upb_array(const google_protobuf_SourceCodeInfo_Location* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07009173 const upb_MiniTableField field = {1, UPB_SIZE(4, 8), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07009174 const upb_Array* arr = upb_Message_GetArray(msg, &field);
9175 if (size) {
9176 *size = arr ? arr->size : 0;
9177 }
9178 return arr;
9179}
9180UPB_INLINE upb_Array* _google_protobuf_SourceCodeInfo_Location_path_mutable_upb_array(const google_protobuf_SourceCodeInfo_Location* msg, size_t* size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07009181 const upb_MiniTableField field = {1, UPB_SIZE(4, 8), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07009182 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
9183 (upb_Message*)msg, &field, arena);
9184 if (size) {
9185 *size = arr ? arr->size : 0;
9186 }
9187 return arr;
9188}
Mike Kruskal3bc50492022-12-01 13:34:12 -08009189UPB_INLINE bool google_protobuf_SourceCodeInfo_Location_has_path(const google_protobuf_SourceCodeInfo_Location* msg) {
9190 size_t size;
9191 google_protobuf_SourceCodeInfo_Location_path(msg, &size);
9192 return size != 0;
9193}
9194UPB_INLINE void google_protobuf_SourceCodeInfo_Location_clear_span(google_protobuf_SourceCodeInfo_Location* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07009195 const upb_MiniTableField field = {2, UPB_SIZE(8, 16), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08009196 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07009197}
Eric Salob7d54ac2022-12-29 11:59:42 -08009198UPB_INLINE int32_t const* google_protobuf_SourceCodeInfo_Location_span(const google_protobuf_SourceCodeInfo_Location* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07009199 const upb_MiniTableField field = {2, UPB_SIZE(8, 16), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08009200 const upb_Array* arr = upb_Message_GetArray(msg, &field);
9201 if (arr) {
9202 if (size) *size = arr->size;
9203 return (int32_t const*)_upb_array_constptr(arr);
9204 } else {
9205 if (size) *size = 0;
9206 return NULL;
9207 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07009208}
Deanna Garciab26afb52023-04-25 13:37:18 -07009209UPB_INLINE const upb_Array* _google_protobuf_SourceCodeInfo_Location_span_upb_array(const google_protobuf_SourceCodeInfo_Location* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07009210 const upb_MiniTableField field = {2, UPB_SIZE(8, 16), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07009211 const upb_Array* arr = upb_Message_GetArray(msg, &field);
9212 if (size) {
9213 *size = arr ? arr->size : 0;
9214 }
9215 return arr;
9216}
9217UPB_INLINE upb_Array* _google_protobuf_SourceCodeInfo_Location_span_mutable_upb_array(const google_protobuf_SourceCodeInfo_Location* msg, size_t* size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07009218 const upb_MiniTableField field = {2, UPB_SIZE(8, 16), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07009219 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
9220 (upb_Message*)msg, &field, arena);
9221 if (size) {
9222 *size = arr ? arr->size : 0;
9223 }
9224 return arr;
9225}
Mike Kruskal3bc50492022-12-01 13:34:12 -08009226UPB_INLINE bool google_protobuf_SourceCodeInfo_Location_has_span(const google_protobuf_SourceCodeInfo_Location* msg) {
9227 size_t size;
9228 google_protobuf_SourceCodeInfo_Location_span(msg, &size);
9229 return size != 0;
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07009230}
Mike Kruskal3bc50492022-12-01 13:34:12 -08009231UPB_INLINE void google_protobuf_SourceCodeInfo_Location_clear_leading_comments(google_protobuf_SourceCodeInfo_Location* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07009232 const upb_MiniTableField field = {3, UPB_SIZE(16, 24), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08009233 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07009234}
Joshua Habermanf41049a2022-01-21 14:41:25 -08009235UPB_INLINE upb_StringView google_protobuf_SourceCodeInfo_Location_leading_comments(const google_protobuf_SourceCodeInfo_Location* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08009236 upb_StringView default_val = upb_StringView_FromString("");
9237 upb_StringView ret;
Jie Luo3560e232023-06-12 00:33:50 -07009238 const upb_MiniTableField field = {3, UPB_SIZE(16, 24), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08009239 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08009240 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08009241}
Mike Kruskal3bc50492022-12-01 13:34:12 -08009242UPB_INLINE bool google_protobuf_SourceCodeInfo_Location_has_leading_comments(const google_protobuf_SourceCodeInfo_Location* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07009243 const upb_MiniTableField field = {3, UPB_SIZE(16, 24), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08009244 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07009245}
Mike Kruskal3bc50492022-12-01 13:34:12 -08009246UPB_INLINE void google_protobuf_SourceCodeInfo_Location_clear_trailing_comments(google_protobuf_SourceCodeInfo_Location* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07009247 const upb_MiniTableField field = {4, UPB_SIZE(24, 40), 2, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08009248 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07009249}
Joshua Habermanf41049a2022-01-21 14:41:25 -08009250UPB_INLINE upb_StringView google_protobuf_SourceCodeInfo_Location_trailing_comments(const google_protobuf_SourceCodeInfo_Location* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08009251 upb_StringView default_val = upb_StringView_FromString("");
9252 upb_StringView ret;
Jie Luo3560e232023-06-12 00:33:50 -07009253 const upb_MiniTableField field = {4, UPB_SIZE(24, 40), 2, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08009254 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08009255 return ret;
Joshua Habermand3995ec2022-09-30 16:54:39 -07009256}
Mike Kruskal3bc50492022-12-01 13:34:12 -08009257UPB_INLINE bool google_protobuf_SourceCodeInfo_Location_has_trailing_comments(const google_protobuf_SourceCodeInfo_Location* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07009258 const upb_MiniTableField field = {4, UPB_SIZE(24, 40), 2, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08009259 return _upb_Message_HasNonExtensionField(msg, &field);
Mike Kruskal3bc50492022-12-01 13:34:12 -08009260}
9261UPB_INLINE void google_protobuf_SourceCodeInfo_Location_clear_leading_detached_comments(google_protobuf_SourceCodeInfo_Location* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07009262 const upb_MiniTableField field = {6, UPB_SIZE(12, 56), 0, kUpb_NoSub, 12, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08009263 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermanf41049a2022-01-21 14:41:25 -08009264}
Eric Salob7d54ac2022-12-29 11:59:42 -08009265UPB_INLINE upb_StringView const* google_protobuf_SourceCodeInfo_Location_leading_detached_comments(const google_protobuf_SourceCodeInfo_Location* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07009266 const upb_MiniTableField field = {6, UPB_SIZE(12, 56), 0, kUpb_NoSub, 12, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08009267 const upb_Array* arr = upb_Message_GetArray(msg, &field);
9268 if (arr) {
9269 if (size) *size = arr->size;
9270 return (upb_StringView const*)_upb_array_constptr(arr);
9271 } else {
9272 if (size) *size = 0;
9273 return NULL;
9274 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07009275}
Deanna Garciab26afb52023-04-25 13:37:18 -07009276UPB_INLINE const upb_Array* _google_protobuf_SourceCodeInfo_Location_leading_detached_comments_upb_array(const google_protobuf_SourceCodeInfo_Location* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07009277 const upb_MiniTableField field = {6, UPB_SIZE(12, 56), 0, kUpb_NoSub, 12, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07009278 const upb_Array* arr = upb_Message_GetArray(msg, &field);
9279 if (size) {
9280 *size = arr ? arr->size : 0;
9281 }
9282 return arr;
9283}
9284UPB_INLINE upb_Array* _google_protobuf_SourceCodeInfo_Location_leading_detached_comments_mutable_upb_array(const google_protobuf_SourceCodeInfo_Location* msg, size_t* size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07009285 const upb_MiniTableField field = {6, UPB_SIZE(12, 56), 0, kUpb_NoSub, 12, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07009286 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
9287 (upb_Message*)msg, &field, arena);
9288 if (size) {
9289 *size = arr ? arr->size : 0;
9290 }
9291 return arr;
9292}
Mike Kruskal3bc50492022-12-01 13:34:12 -08009293UPB_INLINE bool google_protobuf_SourceCodeInfo_Location_has_leading_detached_comments(const google_protobuf_SourceCodeInfo_Location* msg) {
9294 size_t size;
9295 google_protobuf_SourceCodeInfo_Location_leading_detached_comments(msg, &size);
9296 return size != 0;
9297}
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009298
Eric Salob7d54ac2022-12-29 11:59:42 -08009299UPB_INLINE int32_t* google_protobuf_SourceCodeInfo_Location_mutable_path(google_protobuf_SourceCodeInfo_Location* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07009300 upb_MiniTableField field = {1, UPB_SIZE(4, 8), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08009301 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
9302 if (arr) {
9303 if (size) *size = arr->size;
9304 return (int32_t*)_upb_array_ptr(arr);
9305 } else {
9306 if (size) *size = 0;
9307 return NULL;
9308 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009309}
Eric Salob7d54ac2022-12-29 11:59:42 -08009310UPB_INLINE int32_t* google_protobuf_SourceCodeInfo_Location_resize_path(google_protobuf_SourceCodeInfo_Location* msg, size_t size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07009311 upb_MiniTableField field = {1, UPB_SIZE(4, 8), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07009312 return (int32_t*)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009313}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07009314UPB_INLINE bool google_protobuf_SourceCodeInfo_Location_add_path(google_protobuf_SourceCodeInfo_Location* msg, int32_t val, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07009315 upb_MiniTableField field = {1, UPB_SIZE(4, 8), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08009316 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
9317 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
9318 return false;
9319 }
9320 _upb_Array_Set(arr, arr->size - 1, &val, sizeof(val));
9321 return true;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009322}
Eric Salob7d54ac2022-12-29 11:59:42 -08009323UPB_INLINE int32_t* google_protobuf_SourceCodeInfo_Location_mutable_span(google_protobuf_SourceCodeInfo_Location* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07009324 upb_MiniTableField field = {2, UPB_SIZE(8, 16), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08009325 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
9326 if (arr) {
9327 if (size) *size = arr->size;
9328 return (int32_t*)_upb_array_ptr(arr);
9329 } else {
9330 if (size) *size = 0;
9331 return NULL;
9332 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009333}
Eric Salob7d54ac2022-12-29 11:59:42 -08009334UPB_INLINE int32_t* google_protobuf_SourceCodeInfo_Location_resize_span(google_protobuf_SourceCodeInfo_Location* msg, size_t size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07009335 upb_MiniTableField field = {2, UPB_SIZE(8, 16), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07009336 return (int32_t*)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009337}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07009338UPB_INLINE bool google_protobuf_SourceCodeInfo_Location_add_span(google_protobuf_SourceCodeInfo_Location* msg, int32_t val, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07009339 upb_MiniTableField field = {2, UPB_SIZE(8, 16), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08009340 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
9341 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
9342 return false;
9343 }
9344 _upb_Array_Set(arr, arr->size - 1, &val, sizeof(val));
9345 return true;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009346}
Joshua Habermanf41049a2022-01-21 14:41:25 -08009347UPB_INLINE void google_protobuf_SourceCodeInfo_Location_set_leading_comments(google_protobuf_SourceCodeInfo_Location *msg, upb_StringView value) {
Jie Luo3560e232023-06-12 00:33:50 -07009348 const upb_MiniTableField field = {3, UPB_SIZE(16, 24), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08009349 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08009350}
9351UPB_INLINE void google_protobuf_SourceCodeInfo_Location_set_trailing_comments(google_protobuf_SourceCodeInfo_Location *msg, upb_StringView value) {
Jie Luo3560e232023-06-12 00:33:50 -07009352 const upb_MiniTableField field = {4, UPB_SIZE(24, 40), 2, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08009353 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08009354}
9355UPB_INLINE upb_StringView* google_protobuf_SourceCodeInfo_Location_mutable_leading_detached_comments(google_protobuf_SourceCodeInfo_Location* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07009356 upb_MiniTableField field = {6, UPB_SIZE(12, 56), 0, kUpb_NoSub, 12, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08009357 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
9358 if (arr) {
9359 if (size) *size = arr->size;
9360 return (upb_StringView*)_upb_array_ptr(arr);
9361 } else {
9362 if (size) *size = 0;
9363 return NULL;
9364 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009365}
Eric Salob7d54ac2022-12-29 11:59:42 -08009366UPB_INLINE upb_StringView* google_protobuf_SourceCodeInfo_Location_resize_leading_detached_comments(google_protobuf_SourceCodeInfo_Location* msg, size_t size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07009367 upb_MiniTableField field = {6, UPB_SIZE(12, 56), 0, kUpb_NoSub, 12, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07009368 return (upb_StringView*)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009369}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07009370UPB_INLINE bool google_protobuf_SourceCodeInfo_Location_add_leading_detached_comments(google_protobuf_SourceCodeInfo_Location* msg, upb_StringView val, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07009371 upb_MiniTableField field = {6, UPB_SIZE(12, 56), 0, kUpb_NoSub, 12, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08009372 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
9373 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
9374 return false;
9375 }
9376 _upb_Array_Set(arr, arr->size - 1, &val, sizeof(val));
9377 return true;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009378}
9379
9380/* google.protobuf.GeneratedCodeInfo */
9381
Joshua Habermanf41049a2022-01-21 14:41:25 -08009382UPB_INLINE google_protobuf_GeneratedCodeInfo* google_protobuf_GeneratedCodeInfo_new(upb_Arena* arena) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07009383 return (google_protobuf_GeneratedCodeInfo*)_upb_Message_New(&google_protobuf_GeneratedCodeInfo_msg_init, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009384}
Joshua Habermanf41049a2022-01-21 14:41:25 -08009385UPB_INLINE google_protobuf_GeneratedCodeInfo* google_protobuf_GeneratedCodeInfo_parse(const char* buf, size_t size, upb_Arena* arena) {
9386 google_protobuf_GeneratedCodeInfo* ret = google_protobuf_GeneratedCodeInfo_new(arena);
Joshua Haberman9d578a32021-08-02 15:32:01 -07009387 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07009388 if (upb_Decode(buf, size, ret, &google_protobuf_GeneratedCodeInfo_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
Joshua Haberman9d578a32021-08-02 15:32:01 -07009389 return NULL;
9390 }
9391 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009392}
Joshua Habermanf41049a2022-01-21 14:41:25 -08009393UPB_INLINE google_protobuf_GeneratedCodeInfo* google_protobuf_GeneratedCodeInfo_parse_ex(const char* buf, size_t size,
9394 const upb_ExtensionRegistry* extreg,
9395 int options, upb_Arena* arena) {
9396 google_protobuf_GeneratedCodeInfo* ret = google_protobuf_GeneratedCodeInfo_new(arena);
9397 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07009398 if (upb_Decode(buf, size, ret, &google_protobuf_GeneratedCodeInfo_msg_init, extreg, options, arena) !=
Joshua Habermanf41049a2022-01-21 14:41:25 -08009399 kUpb_DecodeStatus_Ok) {
9400 return NULL;
9401 }
9402 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009403}
Joshua Habermanf41049a2022-01-21 14:41:25 -08009404UPB_INLINE char* google_protobuf_GeneratedCodeInfo_serialize(const google_protobuf_GeneratedCodeInfo* msg, upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07009405 char* ptr;
9406 (void)upb_Encode(msg, &google_protobuf_GeneratedCodeInfo_msg_init, 0, arena, &ptr, len);
9407 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08009408}
9409UPB_INLINE char* google_protobuf_GeneratedCodeInfo_serialize_ex(const google_protobuf_GeneratedCodeInfo* msg, int options,
9410 upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07009411 char* ptr;
9412 (void)upb_Encode(msg, &google_protobuf_GeneratedCodeInfo_msg_init, options, arena, &ptr, len);
9413 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08009414}
Mike Kruskal3bc50492022-12-01 13:34:12 -08009415UPB_INLINE void google_protobuf_GeneratedCodeInfo_clear_annotation(google_protobuf_GeneratedCodeInfo* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07009416 const upb_MiniTableField field = {1, 0, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08009417 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07009418}
Eric Salob7d54ac2022-12-29 11:59:42 -08009419UPB_INLINE const google_protobuf_GeneratedCodeInfo_Annotation* const* google_protobuf_GeneratedCodeInfo_annotation(const google_protobuf_GeneratedCodeInfo* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07009420 const upb_MiniTableField field = {1, 0, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08009421 const upb_Array* arr = upb_Message_GetArray(msg, &field);
9422 if (arr) {
9423 if (size) *size = arr->size;
9424 return (const google_protobuf_GeneratedCodeInfo_Annotation* const*)_upb_array_constptr(arr);
9425 } else {
9426 if (size) *size = 0;
9427 return NULL;
9428 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07009429}
Deanna Garciab26afb52023-04-25 13:37:18 -07009430UPB_INLINE const upb_Array* _google_protobuf_GeneratedCodeInfo_annotation_upb_array(const google_protobuf_GeneratedCodeInfo* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07009431 const upb_MiniTableField field = {1, 0, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07009432 const upb_Array* arr = upb_Message_GetArray(msg, &field);
9433 if (size) {
9434 *size = arr ? arr->size : 0;
9435 }
9436 return arr;
9437}
9438UPB_INLINE upb_Array* _google_protobuf_GeneratedCodeInfo_annotation_mutable_upb_array(const google_protobuf_GeneratedCodeInfo* msg, size_t* size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07009439 const upb_MiniTableField field = {1, 0, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07009440 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
9441 (upb_Message*)msg, &field, arena);
9442 if (size) {
9443 *size = arr ? arr->size : 0;
9444 }
9445 return arr;
9446}
Mike Kruskal3bc50492022-12-01 13:34:12 -08009447UPB_INLINE bool google_protobuf_GeneratedCodeInfo_has_annotation(const google_protobuf_GeneratedCodeInfo* msg) {
9448 size_t size;
9449 google_protobuf_GeneratedCodeInfo_annotation(msg, &size);
9450 return size != 0;
9451}
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009452
Eric Salob7d54ac2022-12-29 11:59:42 -08009453UPB_INLINE google_protobuf_GeneratedCodeInfo_Annotation** google_protobuf_GeneratedCodeInfo_mutable_annotation(google_protobuf_GeneratedCodeInfo* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07009454 upb_MiniTableField field = {1, 0, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08009455 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
9456 if (arr) {
9457 if (size) *size = arr->size;
9458 return (google_protobuf_GeneratedCodeInfo_Annotation**)_upb_array_ptr(arr);
9459 } else {
9460 if (size) *size = 0;
9461 return NULL;
9462 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009463}
Eric Salob7d54ac2022-12-29 11:59:42 -08009464UPB_INLINE google_protobuf_GeneratedCodeInfo_Annotation** google_protobuf_GeneratedCodeInfo_resize_annotation(google_protobuf_GeneratedCodeInfo* msg, size_t size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07009465 upb_MiniTableField field = {1, 0, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07009466 return (google_protobuf_GeneratedCodeInfo_Annotation**)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009467}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07009468UPB_INLINE struct google_protobuf_GeneratedCodeInfo_Annotation* google_protobuf_GeneratedCodeInfo_add_annotation(google_protobuf_GeneratedCodeInfo* msg, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07009469 upb_MiniTableField field = {1, 0, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08009470 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
9471 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
9472 return NULL;
9473 }
Joshua Habermand3995ec2022-09-30 16:54:39 -07009474 struct google_protobuf_GeneratedCodeInfo_Annotation* sub = (struct google_protobuf_GeneratedCodeInfo_Annotation*)_upb_Message_New(&google_protobuf_GeneratedCodeInfo_Annotation_msg_init, arena);
Eric Salob7d54ac2022-12-29 11:59:42 -08009475 if (!arr || !sub) return NULL;
9476 _upb_Array_Set(arr, arr->size - 1, &sub, sizeof(sub));
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009477 return sub;
9478}
9479
9480/* google.protobuf.GeneratedCodeInfo.Annotation */
9481
Joshua Habermanf41049a2022-01-21 14:41:25 -08009482UPB_INLINE google_protobuf_GeneratedCodeInfo_Annotation* google_protobuf_GeneratedCodeInfo_Annotation_new(upb_Arena* arena) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07009483 return (google_protobuf_GeneratedCodeInfo_Annotation*)_upb_Message_New(&google_protobuf_GeneratedCodeInfo_Annotation_msg_init, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009484}
Joshua Habermanf41049a2022-01-21 14:41:25 -08009485UPB_INLINE google_protobuf_GeneratedCodeInfo_Annotation* google_protobuf_GeneratedCodeInfo_Annotation_parse(const char* buf, size_t size, upb_Arena* arena) {
9486 google_protobuf_GeneratedCodeInfo_Annotation* ret = google_protobuf_GeneratedCodeInfo_Annotation_new(arena);
Joshua Haberman9d578a32021-08-02 15:32:01 -07009487 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07009488 if (upb_Decode(buf, size, ret, &google_protobuf_GeneratedCodeInfo_Annotation_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
Joshua Haberman9d578a32021-08-02 15:32:01 -07009489 return NULL;
9490 }
9491 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009492}
Joshua Habermanf41049a2022-01-21 14:41:25 -08009493UPB_INLINE google_protobuf_GeneratedCodeInfo_Annotation* google_protobuf_GeneratedCodeInfo_Annotation_parse_ex(const char* buf, size_t size,
9494 const upb_ExtensionRegistry* extreg,
9495 int options, upb_Arena* arena) {
9496 google_protobuf_GeneratedCodeInfo_Annotation* ret = google_protobuf_GeneratedCodeInfo_Annotation_new(arena);
9497 if (!ret) return NULL;
Joshua Habermand3995ec2022-09-30 16:54:39 -07009498 if (upb_Decode(buf, size, ret, &google_protobuf_GeneratedCodeInfo_Annotation_msg_init, extreg, options, arena) !=
Joshua Habermanf41049a2022-01-21 14:41:25 -08009499 kUpb_DecodeStatus_Ok) {
9500 return NULL;
9501 }
9502 return ret;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009503}
Joshua Habermanf41049a2022-01-21 14:41:25 -08009504UPB_INLINE char* google_protobuf_GeneratedCodeInfo_Annotation_serialize(const google_protobuf_GeneratedCodeInfo_Annotation* msg, upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07009505 char* ptr;
9506 (void)upb_Encode(msg, &google_protobuf_GeneratedCodeInfo_Annotation_msg_init, 0, arena, &ptr, len);
9507 return ptr;
Joshua Habermanf41049a2022-01-21 14:41:25 -08009508}
9509UPB_INLINE char* google_protobuf_GeneratedCodeInfo_Annotation_serialize_ex(const google_protobuf_GeneratedCodeInfo_Annotation* msg, int options,
9510 upb_Arena* arena, size_t* len) {
Joshua Habermand3995ec2022-09-30 16:54:39 -07009511 char* ptr;
9512 (void)upb_Encode(msg, &google_protobuf_GeneratedCodeInfo_Annotation_msg_init, options, arena, &ptr, len);
9513 return ptr;
9514}
Mike Kruskal3bc50492022-12-01 13:34:12 -08009515UPB_INLINE void google_protobuf_GeneratedCodeInfo_Annotation_clear_path(google_protobuf_GeneratedCodeInfo_Annotation* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07009516 const upb_MiniTableField field = {1, UPB_SIZE(4, 16), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08009517 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermanf41049a2022-01-21 14:41:25 -08009518}
Eric Salob7d54ac2022-12-29 11:59:42 -08009519UPB_INLINE int32_t const* google_protobuf_GeneratedCodeInfo_Annotation_path(const google_protobuf_GeneratedCodeInfo_Annotation* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07009520 const upb_MiniTableField field = {1, UPB_SIZE(4, 16), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08009521 const upb_Array* arr = upb_Message_GetArray(msg, &field);
9522 if (arr) {
9523 if (size) *size = arr->size;
9524 return (int32_t const*)_upb_array_constptr(arr);
9525 } else {
9526 if (size) *size = 0;
9527 return NULL;
9528 }
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07009529}
Deanna Garciab26afb52023-04-25 13:37:18 -07009530UPB_INLINE const upb_Array* _google_protobuf_GeneratedCodeInfo_Annotation_path_upb_array(const google_protobuf_GeneratedCodeInfo_Annotation* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07009531 const upb_MiniTableField field = {1, UPB_SIZE(4, 16), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07009532 const upb_Array* arr = upb_Message_GetArray(msg, &field);
9533 if (size) {
9534 *size = arr ? arr->size : 0;
9535 }
9536 return arr;
9537}
9538UPB_INLINE upb_Array* _google_protobuf_GeneratedCodeInfo_Annotation_path_mutable_upb_array(const google_protobuf_GeneratedCodeInfo_Annotation* msg, size_t* size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07009539 const upb_MiniTableField field = {1, UPB_SIZE(4, 16), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Deanna Garciab26afb52023-04-25 13:37:18 -07009540 upb_Array* arr = upb_Message_GetOrCreateMutableArray(
9541 (upb_Message*)msg, &field, arena);
9542 if (size) {
9543 *size = arr ? arr->size : 0;
9544 }
9545 return arr;
9546}
Mike Kruskal3bc50492022-12-01 13:34:12 -08009547UPB_INLINE bool google_protobuf_GeneratedCodeInfo_Annotation_has_path(const google_protobuf_GeneratedCodeInfo_Annotation* msg) {
9548 size_t size;
9549 google_protobuf_GeneratedCodeInfo_Annotation_path(msg, &size);
9550 return size != 0;
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07009551}
Mike Kruskal3bc50492022-12-01 13:34:12 -08009552UPB_INLINE void google_protobuf_GeneratedCodeInfo_Annotation_clear_source_file(google_protobuf_GeneratedCodeInfo_Annotation* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07009553 const upb_MiniTableField field = {2, UPB_SIZE(20, 24), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08009554 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07009555}
Joshua Habermanf41049a2022-01-21 14:41:25 -08009556UPB_INLINE upb_StringView google_protobuf_GeneratedCodeInfo_Annotation_source_file(const google_protobuf_GeneratedCodeInfo_Annotation* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08009557 upb_StringView default_val = upb_StringView_FromString("");
9558 upb_StringView ret;
Jie Luo3560e232023-06-12 00:33:50 -07009559 const upb_MiniTableField field = {2, UPB_SIZE(20, 24), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08009560 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08009561 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08009562}
Mike Kruskal3bc50492022-12-01 13:34:12 -08009563UPB_INLINE bool google_protobuf_GeneratedCodeInfo_Annotation_has_source_file(const google_protobuf_GeneratedCodeInfo_Annotation* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07009564 const upb_MiniTableField field = {2, UPB_SIZE(20, 24), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08009565 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07009566}
Mike Kruskal3bc50492022-12-01 13:34:12 -08009567UPB_INLINE void google_protobuf_GeneratedCodeInfo_Annotation_clear_begin(google_protobuf_GeneratedCodeInfo_Annotation* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07009568 const upb_MiniTableField field = {3, UPB_SIZE(8, 4), 2, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08009569 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07009570}
Joshua Habermanf41049a2022-01-21 14:41:25 -08009571UPB_INLINE int32_t google_protobuf_GeneratedCodeInfo_Annotation_begin(const google_protobuf_GeneratedCodeInfo_Annotation* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08009572 int32_t default_val = (int32_t)0;
9573 int32_t ret;
Jie Luo3560e232023-06-12 00:33:50 -07009574 const upb_MiniTableField field = {3, UPB_SIZE(8, 4), 2, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08009575 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08009576 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08009577}
Mike Kruskal3bc50492022-12-01 13:34:12 -08009578UPB_INLINE bool google_protobuf_GeneratedCodeInfo_Annotation_has_begin(const google_protobuf_GeneratedCodeInfo_Annotation* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07009579 const upb_MiniTableField field = {3, UPB_SIZE(8, 4), 2, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08009580 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07009581}
Mike Kruskal3bc50492022-12-01 13:34:12 -08009582UPB_INLINE void google_protobuf_GeneratedCodeInfo_Annotation_clear_end(google_protobuf_GeneratedCodeInfo_Annotation* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07009583 const upb_MiniTableField field = {4, UPB_SIZE(12, 8), 3, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08009584 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07009585}
Joshua Habermanf41049a2022-01-21 14:41:25 -08009586UPB_INLINE int32_t google_protobuf_GeneratedCodeInfo_Annotation_end(const google_protobuf_GeneratedCodeInfo_Annotation* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08009587 int32_t default_val = (int32_t)0;
9588 int32_t ret;
Jie Luo3560e232023-06-12 00:33:50 -07009589 const upb_MiniTableField field = {4, UPB_SIZE(12, 8), 3, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08009590 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08009591 return ret;
Joshua Habermanf41049a2022-01-21 14:41:25 -08009592}
Mike Kruskal3bc50492022-12-01 13:34:12 -08009593UPB_INLINE bool google_protobuf_GeneratedCodeInfo_Annotation_has_end(const google_protobuf_GeneratedCodeInfo_Annotation* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07009594 const upb_MiniTableField field = {4, UPB_SIZE(12, 8), 3, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08009595 return _upb_Message_HasNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07009596}
Mike Kruskal3bc50492022-12-01 13:34:12 -08009597UPB_INLINE void google_protobuf_GeneratedCodeInfo_Annotation_clear_semantic(google_protobuf_GeneratedCodeInfo_Annotation* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07009598 const upb_MiniTableField field = {5, UPB_SIZE(16, 12), 4, 0, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08009599 _upb_Message_ClearNonExtensionField(msg, &field);
Joshua Habermand3995ec2022-09-30 16:54:39 -07009600}
9601UPB_INLINE int32_t google_protobuf_GeneratedCodeInfo_Annotation_semantic(const google_protobuf_GeneratedCodeInfo_Annotation* msg) {
Eric Salo8809a112022-11-21 13:01:06 -08009602 int32_t default_val = 0;
9603 int32_t ret;
Jie Luo3560e232023-06-12 00:33:50 -07009604 const upb_MiniTableField field = {5, UPB_SIZE(16, 12), 4, 0, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08009605 _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
Eric Salo8809a112022-11-21 13:01:06 -08009606 return ret;
Joshua Habermand3995ec2022-09-30 16:54:39 -07009607}
Mike Kruskal3bc50492022-12-01 13:34:12 -08009608UPB_INLINE bool google_protobuf_GeneratedCodeInfo_Annotation_has_semantic(const google_protobuf_GeneratedCodeInfo_Annotation* msg) {
Jie Luo3560e232023-06-12 00:33:50 -07009609 const upb_MiniTableField field = {5, UPB_SIZE(16, 12), 4, 0, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08009610 return _upb_Message_HasNonExtensionField(msg, &field);
Mike Kruskal3bc50492022-12-01 13:34:12 -08009611}
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009612
Eric Salob7d54ac2022-12-29 11:59:42 -08009613UPB_INLINE int32_t* google_protobuf_GeneratedCodeInfo_Annotation_mutable_path(google_protobuf_GeneratedCodeInfo_Annotation* msg, size_t* size) {
Jie Luo3560e232023-06-12 00:33:50 -07009614 upb_MiniTableField field = {1, UPB_SIZE(4, 16), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08009615 upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
9616 if (arr) {
9617 if (size) *size = arr->size;
9618 return (int32_t*)_upb_array_ptr(arr);
9619 } else {
9620 if (size) *size = 0;
9621 return NULL;
9622 }
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009623}
Eric Salob7d54ac2022-12-29 11:59:42 -08009624UPB_INLINE int32_t* google_protobuf_GeneratedCodeInfo_Annotation_resize_path(google_protobuf_GeneratedCodeInfo_Annotation* msg, size_t size, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07009625 upb_MiniTableField field = {1, UPB_SIZE(4, 16), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Jie Luof36a5c62023-05-23 17:56:18 -07009626 return (int32_t*)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009627}
Joshua Haberman7ecf43f2022-03-14 13:11:29 -07009628UPB_INLINE bool google_protobuf_GeneratedCodeInfo_Annotation_add_path(google_protobuf_GeneratedCodeInfo_Annotation* msg, int32_t val, upb_Arena* arena) {
Jie Luo3560e232023-06-12 00:33:50 -07009629 upb_MiniTableField field = {1, UPB_SIZE(4, 16), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
Eric Salob7d54ac2022-12-29 11:59:42 -08009630 upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
9631 if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
9632 return false;
9633 }
9634 _upb_Array_Set(arr, arr->size - 1, &val, sizeof(val));
9635 return true;
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009636}
Joshua Habermanf41049a2022-01-21 14:41:25 -08009637UPB_INLINE void google_protobuf_GeneratedCodeInfo_Annotation_set_source_file(google_protobuf_GeneratedCodeInfo_Annotation *msg, upb_StringView value) {
Jie Luo3560e232023-06-12 00:33:50 -07009638 const upb_MiniTableField field = {2, UPB_SIZE(20, 24), 1, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08009639 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08009640}
9641UPB_INLINE void google_protobuf_GeneratedCodeInfo_Annotation_set_begin(google_protobuf_GeneratedCodeInfo_Annotation *msg, int32_t value) {
Jie Luo3560e232023-06-12 00:33:50 -07009642 const upb_MiniTableField field = {3, UPB_SIZE(8, 4), 2, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08009643 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08009644}
9645UPB_INLINE void google_protobuf_GeneratedCodeInfo_Annotation_set_end(google_protobuf_GeneratedCodeInfo_Annotation *msg, int32_t value) {
Jie Luo3560e232023-06-12 00:33:50 -07009646 const upb_MiniTableField field = {4, UPB_SIZE(12, 8), 3, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08009647 _upb_Message_SetNonExtensionField(msg, &field, &value);
Mike Kruskal232ecf42023-01-14 00:09:40 -08009648}
9649UPB_INLINE void google_protobuf_GeneratedCodeInfo_Annotation_set_semantic(google_protobuf_GeneratedCodeInfo_Annotation *msg, int32_t value) {
Jie Luo3560e232023-06-12 00:33:50 -07009650 const upb_MiniTableField field = {5, UPB_SIZE(16, 12), 4, 0, 14, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
Eric Salo10505992022-12-12 12:16:36 -08009651 _upb_Message_SetNonExtensionField(msg, &field, &value);
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009652}
Mike Kruskal232ecf42023-01-14 00:09:40 -08009653
Eric Salo8809a112022-11-21 13:01:06 -08009654extern const upb_MiniTableFile google_protobuf_descriptor_proto_upb_file_layout;
Joshua Habermanf41049a2022-01-21 14:41:25 -08009655
9656/* Max size 32 is google.protobuf.FileOptions */
9657/* Max size 64 is google.protobuf.FileOptions */
Mike Kruskal4f9e4172023-06-30 20:14:50 -07009658#define _UPB_MAXOPT_SIZE UPB_SIZE(112, 200)
Joshua Habermanf41049a2022-01-21 14:41:25 -08009659
Joshua Haberman9abf6e22021-01-13 12:16:25 -08009660#ifdef __cplusplus
9661} /* extern "C" */
9662#endif
9663
9664
9665#endif /* GOOGLE_PROTOBUF_DESCRIPTOR_PROTO_UPB_H_ */
Joshua Habermandd69a482021-05-17 22:40:33 -07009666
Eric Salob7d54ac2022-12-29 11:59:42 -08009667#ifndef UPB_WIRE_EPS_COPY_INPUT_STREAM_H_
9668#define UPB_WIRE_EPS_COPY_INPUT_STREAM_H_
9669
9670#include <string.h>
9671
9672
9673// Must be last.
9674
9675#ifdef __cplusplus
9676extern "C" {
9677#endif
9678
9679// The maximum number of bytes a single protobuf field can take up in the
9680// wire format. We only want to do one bounds check per field, so the input
9681// stream guarantees that after upb_EpsCopyInputStream_IsDone() is called,
9682// the decoder can read this many bytes without performing another bounds
9683// check. The stream will copy into a patch buffer as necessary to guarantee
9684// this invariant.
9685#define kUpb_EpsCopyInputStream_SlopBytes 16
9686
9687enum {
9688 kUpb_EpsCopyInputStream_NoAliasing = 0,
9689 kUpb_EpsCopyInputStream_OnPatch = 1,
9690 kUpb_EpsCopyInputStream_NoDelta = 2
9691};
9692
9693typedef struct {
9694 const char* end; // Can read up to SlopBytes bytes beyond this.
9695 const char* limit_ptr; // For bounds checks, = end + UPB_MIN(limit, 0)
9696 uintptr_t aliasing;
9697 int limit; // Submessage limit relative to end
9698 bool error; // To distinguish between EOF and error.
9699 char patch[kUpb_EpsCopyInputStream_SlopBytes * 2];
9700} upb_EpsCopyInputStream;
9701
9702// Returns true if the stream is in the error state. A stream enters the error
9703// state when the user reads past a limit (caught in IsDone()) or the
9704// ZeroCopyInputStream returns an error.
9705UPB_INLINE bool upb_EpsCopyInputStream_IsError(upb_EpsCopyInputStream* e) {
9706 return e->error;
9707}
9708
9709typedef const char* upb_EpsCopyInputStream_BufferFlipCallback(
9710 upb_EpsCopyInputStream* e, const char* old_end, const char* new_start);
9711
9712typedef const char* upb_EpsCopyInputStream_IsDoneFallbackFunc(
9713 upb_EpsCopyInputStream* e, const char* ptr, int overrun);
9714
9715// Initializes a upb_EpsCopyInputStream using the contents of the buffer
9716// [*ptr, size]. Updates `*ptr` as necessary to guarantee that at least
9717// kUpb_EpsCopyInputStream_SlopBytes are available to read.
9718UPB_INLINE void upb_EpsCopyInputStream_Init(upb_EpsCopyInputStream* e,
9719 const char** ptr, size_t size,
9720 bool enable_aliasing) {
Eric Salob7d54ac2022-12-29 11:59:42 -08009721 if (size <= kUpb_EpsCopyInputStream_SlopBytes) {
9722 memset(&e->patch, 0, 32);
9723 if (size) memcpy(&e->patch, *ptr, size);
9724 e->aliasing = enable_aliasing ? (uintptr_t)*ptr - (uintptr_t)e->patch
9725 : kUpb_EpsCopyInputStream_NoAliasing;
9726 *ptr = e->patch;
9727 e->end = *ptr + size;
9728 e->limit = 0;
Eric Salob7d54ac2022-12-29 11:59:42 -08009729 } else {
9730 e->end = *ptr + size - kUpb_EpsCopyInputStream_SlopBytes;
9731 e->limit = kUpb_EpsCopyInputStream_SlopBytes;
9732 e->aliasing = enable_aliasing ? kUpb_EpsCopyInputStream_NoDelta
9733 : kUpb_EpsCopyInputStream_NoAliasing;
Eric Salob7d54ac2022-12-29 11:59:42 -08009734 }
9735 e->limit_ptr = e->end;
9736 e->error = false;
9737}
9738
9739typedef enum {
9740 // The current stream position is at a limit.
9741 kUpb_IsDoneStatus_Done,
9742
9743 // The current stream position is not at a limit.
9744 kUpb_IsDoneStatus_NotDone,
9745
9746 // The current stream position is not at a limit, and the stream needs to
9747 // be flipped to a new buffer before more data can be read.
9748 kUpb_IsDoneStatus_NeedFallback,
9749} upb_IsDoneStatus;
9750
9751// Returns the status of the current stream position. This is a low-level
9752// function, it is simpler to call upb_EpsCopyInputStream_IsDone() if possible.
9753UPB_INLINE upb_IsDoneStatus upb_EpsCopyInputStream_IsDoneStatus(
9754 upb_EpsCopyInputStream* e, const char* ptr, int* overrun) {
9755 *overrun = ptr - e->end;
9756 if (UPB_LIKELY(ptr < e->limit_ptr)) {
9757 return kUpb_IsDoneStatus_NotDone;
9758 } else if (UPB_LIKELY(*overrun == e->limit)) {
9759 return kUpb_IsDoneStatus_Done;
9760 } else {
9761 return kUpb_IsDoneStatus_NeedFallback;
9762 }
9763}
9764
9765// Returns true if the stream has hit a limit, either the current delimited
9766// limit or the overall end-of-stream. As a side effect, this function may flip
9767// the pointer to a new buffer if there are less than
9768// kUpb_EpsCopyInputStream_SlopBytes of data to be read in the current buffer.
9769//
9770// Postcondition: if the function returns false, there are at least
9771// kUpb_EpsCopyInputStream_SlopBytes of data available to read at *ptr.
9772UPB_INLINE bool upb_EpsCopyInputStream_IsDoneWithCallback(
9773 upb_EpsCopyInputStream* e, const char** ptr,
9774 upb_EpsCopyInputStream_IsDoneFallbackFunc* func) {
9775 int overrun;
9776 switch (upb_EpsCopyInputStream_IsDoneStatus(e, *ptr, &overrun)) {
9777 case kUpb_IsDoneStatus_Done:
9778 return true;
9779 case kUpb_IsDoneStatus_NotDone:
9780 return false;
9781 case kUpb_IsDoneStatus_NeedFallback:
9782 *ptr = func(e, *ptr, overrun);
9783 return *ptr == NULL;
9784 }
Mike Kruskal232ecf42023-01-14 00:09:40 -08009785 UPB_UNREACHABLE();
Eric Salob7d54ac2022-12-29 11:59:42 -08009786}
9787
9788const char* _upb_EpsCopyInputStream_IsDoneFallbackNoCallback(
9789 upb_EpsCopyInputStream* e, const char* ptr, int overrun);
9790
9791// A simpler version of IsDoneWithCallback() that does not support a buffer flip
9792// callback. Useful in cases where we do not need to insert custom logic at
9793// every buffer flip.
9794//
9795// If this returns true, the user must call upb_EpsCopyInputStream_IsError()
9796// to distinguish between EOF and error.
9797UPB_INLINE bool upb_EpsCopyInputStream_IsDone(upb_EpsCopyInputStream* e,
9798 const char** ptr) {
9799 return upb_EpsCopyInputStream_IsDoneWithCallback(
9800 e, ptr, _upb_EpsCopyInputStream_IsDoneFallbackNoCallback);
9801}
9802
9803// Returns the total number of bytes that are safe to read from the current
9804// buffer without reading uninitialized or unallocated memory.
9805//
9806// Note that this check does not respect any semantic limits on the stream,
9807// either limits from PushLimit() or the overall stream end, so some of these
9808// bytes may have unpredictable, nonsense values in them. The guarantee is only
9809// that the bytes are valid to read from the perspective of the C language
9810// (ie. you can read without triggering UBSAN or ASAN).
9811UPB_INLINE size_t upb_EpsCopyInputStream_BytesAvailable(
9812 upb_EpsCopyInputStream* e, const char* ptr) {
9813 return (e->end - ptr) + kUpb_EpsCopyInputStream_SlopBytes;
9814}
9815
9816// Returns true if the given delimited field size is valid (it does not extend
9817// beyond any previously-pushed limits). `ptr` should point to the beginning
9818// of the field data, after the delimited size.
9819//
9820// Note that this does *not* guarantee that all of the data for this field is in
9821// the current buffer.
9822UPB_INLINE bool upb_EpsCopyInputStream_CheckSize(
9823 const upb_EpsCopyInputStream* e, const char* ptr, int size) {
9824 UPB_ASSERT(size >= 0);
9825 return ptr - e->end + size <= e->limit;
9826}
9827
9828UPB_INLINE bool _upb_EpsCopyInputStream_CheckSizeAvailable(
9829 upb_EpsCopyInputStream* e, const char* ptr, int size, bool submessage) {
9830 // This is one extra branch compared to the more normal:
9831 // return (size_t)(end - ptr) < size;
9832 // However it is one less computation if we are just about to use "ptr + len":
9833 // https://godbolt.org/z/35YGPz
9834 // In microbenchmarks this shows a small improvement.
9835 uintptr_t uptr = (uintptr_t)ptr;
9836 uintptr_t uend = (uintptr_t)e->limit_ptr;
9837 uintptr_t res = uptr + (size_t)size;
9838 if (!submessage) uend += kUpb_EpsCopyInputStream_SlopBytes;
9839 // NOTE: this check depends on having a linear address space. This is not
9840 // technically guaranteed by uintptr_t.
9841 bool ret = res >= uptr && res <= uend;
9842 if (size < 0) UPB_ASSERT(!ret);
9843 return ret;
9844}
9845
9846// Returns true if the given delimited field size is valid (it does not extend
9847// beyond any previously-pushed limited) *and* all of the data for this field is
9848// available to be read in the current buffer.
9849//
9850// If the size is negative, this function will always return false. This
9851// property can be useful in some cases.
9852UPB_INLINE bool upb_EpsCopyInputStream_CheckDataSizeAvailable(
9853 upb_EpsCopyInputStream* e, const char* ptr, int size) {
9854 return _upb_EpsCopyInputStream_CheckSizeAvailable(e, ptr, size, false);
9855}
9856
9857// Returns true if the given sub-message size is valid (it does not extend
9858// beyond any previously-pushed limited) *and* all of the data for this
9859// sub-message is available to be parsed in the current buffer.
9860//
9861// This implies that all fields from the sub-message can be parsed from the
9862// current buffer while maintaining the invariant that we always have at least
9863// kUpb_EpsCopyInputStream_SlopBytes of data available past the beginning of
9864// any individual field start.
9865//
9866// If the size is negative, this function will always return false. This
9867// property can be useful in some cases.
9868UPB_INLINE bool upb_EpsCopyInputStream_CheckSubMessageSizeAvailable(
9869 upb_EpsCopyInputStream* e, const char* ptr, int size) {
9870 return _upb_EpsCopyInputStream_CheckSizeAvailable(e, ptr, size, true);
9871}
9872
9873// Returns true if aliasing_enabled=true was passed to
9874// upb_EpsCopyInputStream_Init() when this stream was initialized.
9875UPB_INLINE bool upb_EpsCopyInputStream_AliasingEnabled(
9876 upb_EpsCopyInputStream* e) {
9877 return e->aliasing != kUpb_EpsCopyInputStream_NoAliasing;
9878}
9879
9880// Returns true if aliasing_enabled=true was passed to
9881// upb_EpsCopyInputStream_Init() when this stream was initialized *and* we can
9882// alias into the region [ptr, size] in an input buffer.
9883UPB_INLINE bool upb_EpsCopyInputStream_AliasingAvailable(
9884 upb_EpsCopyInputStream* e, const char* ptr, size_t size) {
9885 // When EpsCopyInputStream supports streaming, this will need to become a
9886 // runtime check.
9887 return upb_EpsCopyInputStream_CheckDataSizeAvailable(e, ptr, size) &&
9888 e->aliasing >= kUpb_EpsCopyInputStream_NoDelta;
9889}
9890
9891// Returns a pointer into an input buffer that corresponds to the parsing
9892// pointer `ptr`. The returned pointer may be the same as `ptr`, but also may
9893// be different if we are currently parsing out of the patch buffer.
9894//
9895// REQUIRES: Aliasing must be available for the given pointer. If the input is a
9896// flat buffer and aliasing is enabled, then aliasing will always be available.
9897UPB_INLINE const char* upb_EpsCopyInputStream_GetAliasedPtr(
9898 upb_EpsCopyInputStream* e, const char* ptr) {
9899 UPB_ASSUME(upb_EpsCopyInputStream_AliasingAvailable(e, ptr, 0));
9900 uintptr_t delta =
9901 e->aliasing == kUpb_EpsCopyInputStream_NoDelta ? 0 : e->aliasing;
9902 return (const char*)((uintptr_t)ptr + delta);
9903}
9904
9905// Reads string data from the input, aliasing into the input buffer instead of
9906// copying. The parsing pointer is passed in `*ptr`, and will be updated if
9907// necessary to point to the actual input buffer. Returns the new parsing
9908// pointer, which will be advanced past the string data.
9909//
9910// REQUIRES: Aliasing must be available for this data region (test with
9911// upb_EpsCopyInputStream_AliasingAvailable().
9912UPB_INLINE const char* upb_EpsCopyInputStream_ReadStringAliased(
9913 upb_EpsCopyInputStream* e, const char** ptr, size_t size) {
9914 UPB_ASSUME(upb_EpsCopyInputStream_AliasingAvailable(e, *ptr, size));
9915 const char* ret = *ptr + size;
9916 *ptr = upb_EpsCopyInputStream_GetAliasedPtr(e, *ptr);
9917 UPB_ASSUME(ret != NULL);
9918 return ret;
9919}
9920
Mike Kruskal232ecf42023-01-14 00:09:40 -08009921// Skips `size` bytes of data from the input and returns a pointer past the end.
9922// Returns NULL on end of stream or error.
Eric Salob7d54ac2022-12-29 11:59:42 -08009923UPB_INLINE const char* upb_EpsCopyInputStream_Skip(upb_EpsCopyInputStream* e,
9924 const char* ptr, int size) {
9925 if (!upb_EpsCopyInputStream_CheckDataSizeAvailable(e, ptr, size)) return NULL;
9926 return ptr + size;
9927}
9928
Mike Kruskal232ecf42023-01-14 00:09:40 -08009929// Copies `size` bytes of data from the input `ptr` into the buffer `to`, and
9930// returns a pointer past the end. Returns NULL on end of stream or error.
9931UPB_INLINE const char* upb_EpsCopyInputStream_Copy(upb_EpsCopyInputStream* e,
9932 const char* ptr, void* to,
9933 int size) {
9934 if (!upb_EpsCopyInputStream_CheckDataSizeAvailable(e, ptr, size)) return NULL;
9935 memcpy(to, ptr, size);
9936 return ptr + size;
9937}
9938
Eric Salob7d54ac2022-12-29 11:59:42 -08009939// Reads string data from the stream and advances the pointer accordingly.
9940// If aliasing was enabled when the stream was initialized, then the returned
9941// pointer will point into the input buffer if possible, otherwise new data
9942// will be allocated from arena and copied into. We may be forced to copy even
9943// if aliasing was enabled if the input data spans input buffers.
9944//
9945// Returns NULL if memory allocation failed, or we reached a premature EOF.
9946UPB_INLINE const char* upb_EpsCopyInputStream_ReadString(
9947 upb_EpsCopyInputStream* e, const char** ptr, size_t size,
9948 upb_Arena* arena) {
9949 if (upb_EpsCopyInputStream_AliasingAvailable(e, *ptr, size)) {
9950 return upb_EpsCopyInputStream_ReadStringAliased(e, ptr, size);
9951 } else {
9952 // We need to allocate and copy.
9953 if (!upb_EpsCopyInputStream_CheckDataSizeAvailable(e, *ptr, size)) {
9954 return NULL;
9955 }
9956 UPB_ASSERT(arena);
9957 char* data = (char*)upb_Arena_Malloc(arena, size);
9958 if (!data) return NULL;
Mike Kruskal232ecf42023-01-14 00:09:40 -08009959 const char* ret = upb_EpsCopyInputStream_Copy(e, *ptr, data, size);
Eric Salob7d54ac2022-12-29 11:59:42 -08009960 *ptr = data;
Eric Salob7d54ac2022-12-29 11:59:42 -08009961 return ret;
9962 }
9963}
9964
9965UPB_INLINE void _upb_EpsCopyInputStream_CheckLimit(upb_EpsCopyInputStream* e) {
9966 UPB_ASSERT(e->limit_ptr == e->end + UPB_MIN(0, e->limit));
9967}
9968
9969// Pushes a limit onto the stack of limits for the current stream. The limit
9970// will extend for `size` bytes beyond the position in `ptr`. Future calls to
9971// upb_EpsCopyInputStream_IsDone() will return `true` when the stream position
9972// reaches this limit.
9973//
9974// Returns a delta that the caller must store and supply to PopLimit() below.
9975UPB_INLINE int upb_EpsCopyInputStream_PushLimit(upb_EpsCopyInputStream* e,
9976 const char* ptr, int size) {
9977 int limit = size + (int)(ptr - e->end);
9978 int delta = e->limit - limit;
9979 _upb_EpsCopyInputStream_CheckLimit(e);
Deanna Garcia59cfc2f2023-01-31 13:19:28 -08009980 UPB_ASSERT(limit <= e->limit);
Eric Salob7d54ac2022-12-29 11:59:42 -08009981 e->limit = limit;
9982 e->limit_ptr = e->end + UPB_MIN(0, limit);
9983 _upb_EpsCopyInputStream_CheckLimit(e);
9984 return delta;
9985}
9986
9987// Pops the last limit that was pushed on this stream. This may only be called
9988// once IsDone() returns true. The user must pass the delta that was returned
9989// from PushLimit().
9990UPB_INLINE void upb_EpsCopyInputStream_PopLimit(upb_EpsCopyInputStream* e,
9991 const char* ptr,
9992 int saved_delta) {
9993 UPB_ASSERT(ptr - e->end == e->limit);
9994 _upb_EpsCopyInputStream_CheckLimit(e);
9995 e->limit += saved_delta;
9996 e->limit_ptr = e->end + UPB_MIN(0, e->limit);
9997 _upb_EpsCopyInputStream_CheckLimit(e);
9998}
9999
10000UPB_INLINE const char* _upb_EpsCopyInputStream_IsDoneFallbackInline(
10001 upb_EpsCopyInputStream* e, const char* ptr, int overrun,
10002 upb_EpsCopyInputStream_BufferFlipCallback* callback) {
10003 if (overrun < e->limit) {
10004 // Need to copy remaining data into patch buffer.
10005 UPB_ASSERT(overrun < kUpb_EpsCopyInputStream_SlopBytes);
10006 const char* old_end = ptr;
10007 const char* new_start = &e->patch[0] + overrun;
10008 memset(e->patch + kUpb_EpsCopyInputStream_SlopBytes, 0,
10009 kUpb_EpsCopyInputStream_SlopBytes);
10010 memcpy(e->patch, e->end, kUpb_EpsCopyInputStream_SlopBytes);
10011 ptr = new_start;
10012 e->end = &e->patch[kUpb_EpsCopyInputStream_SlopBytes];
10013 e->limit -= kUpb_EpsCopyInputStream_SlopBytes;
10014 e->limit_ptr = e->end + e->limit;
10015 UPB_ASSERT(ptr < e->limit_ptr);
10016 if (e->aliasing != kUpb_EpsCopyInputStream_NoAliasing) {
10017 e->aliasing = (uintptr_t)old_end - (uintptr_t)new_start;
10018 }
10019 return callback(e, old_end, new_start);
10020 } else {
10021 UPB_ASSERT(overrun > e->limit);
10022 e->error = true;
10023 return callback(e, NULL, NULL);
10024 }
10025}
10026
10027typedef const char* upb_EpsCopyInputStream_ParseDelimitedFunc(
10028 upb_EpsCopyInputStream* e, const char* ptr, void* ctx);
10029
10030// Tries to perform a fast-path handling of the given delimited message data.
10031// If the sub-message beginning at `*ptr` and extending for `len` is short and
10032// fits within this buffer, calls `func` with `ctx` as a parameter, where the
10033// pushing and popping of limits is handled automatically and with lower cost
10034// than the normal PushLimit()/PopLimit() sequence.
10035static UPB_FORCEINLINE bool upb_EpsCopyInputStream_TryParseDelimitedFast(
10036 upb_EpsCopyInputStream* e, const char** ptr, int len,
10037 upb_EpsCopyInputStream_ParseDelimitedFunc* func, void* ctx) {
10038 if (!upb_EpsCopyInputStream_CheckSubMessageSizeAvailable(e, *ptr, len)) {
10039 return false;
10040 }
10041
10042 // Fast case: Sub-message is <128 bytes and fits in the current buffer.
10043 // This means we can preserve limit/limit_ptr verbatim.
10044 const char* saved_limit_ptr = e->limit_ptr;
10045 int saved_limit = e->limit;
10046 e->limit_ptr = *ptr + len;
10047 e->limit = e->limit_ptr - e->end;
10048 UPB_ASSERT(e->limit_ptr == e->end + UPB_MIN(0, e->limit));
10049 *ptr = func(e, *ptr, ctx);
10050 e->limit_ptr = saved_limit_ptr;
10051 e->limit = saved_limit;
10052 UPB_ASSERT(e->limit_ptr == e->end + UPB_MIN(0, e->limit));
10053 return true;
10054}
10055
10056#ifdef __cplusplus
10057} /* extern "C" */
10058#endif
10059
10060
10061#endif // UPB_WIRE_EPS_COPY_INPUT_STREAM_H_
10062
Eric Salo8809a112022-11-21 13:01:06 -080010063#ifndef UPB_HASH_INT_TABLE_H_
10064#define UPB_HASH_INT_TABLE_H_
Joshua Haberman9abf6e22021-01-13 12:16:25 -080010065
10066
Eric Salo8809a112022-11-21 13:01:06 -080010067// Must be last.
10068
10069typedef struct {
10070 upb_table t; // For entries that don't fit in the array part.
10071 const upb_tabval* array; // Array part of the table. See const note above.
10072 size_t array_size; // Array part size.
10073 size_t array_count; // Array part number of elements.
10074} upb_inttable;
10075
10076#ifdef __cplusplus
10077extern "C" {
10078#endif
10079
10080// Initialize a table. If memory allocation failed, false is returned and
10081// the table is uninitialized.
10082bool upb_inttable_init(upb_inttable* table, upb_Arena* a);
10083
10084// Returns the number of values in the table.
10085size_t upb_inttable_count(const upb_inttable* t);
10086
10087// Inserts the given key into the hashtable with the given value.
10088// The key must not already exist in the hash table.
10089// The value must not be UINTPTR_MAX.
10090//
10091// If a table resize was required but memory allocation failed, false is
10092// returned and the table is unchanged.
10093bool upb_inttable_insert(upb_inttable* t, uintptr_t key, upb_value val,
10094 upb_Arena* a);
10095
10096// Looks up key in this table, returning "true" if the key was found.
10097// If v is non-NULL, copies the value for this key into *v.
10098bool upb_inttable_lookup(const upb_inttable* t, uintptr_t key, upb_value* v);
10099
10100// Removes an item from the table. Returns true if the remove was successful,
10101// and stores the removed item in *val if non-NULL.
10102bool upb_inttable_remove(upb_inttable* t, uintptr_t key, upb_value* val);
10103
10104// Updates an existing entry in an inttable.
10105// If the entry does not exist, returns false and does nothing.
10106// Unlike insert/remove, this does not invalidate iterators.
10107bool upb_inttable_replace(upb_inttable* t, uintptr_t key, upb_value val);
10108
10109// Optimizes the table for the current set of entries, for both memory use and
10110// lookup time. Client should call this after all entries have been inserted;
10111// inserting more entries is legal, but will likely require a table resize.
10112void upb_inttable_compact(upb_inttable* t, upb_Arena* a);
10113
10114// Iteration over inttable:
10115//
10116// intptr_t iter = UPB_INTTABLE_BEGIN;
10117// uintptr_t key;
10118// upb_value val;
10119// while (upb_inttable_next(t, &key, &val, &iter)) {
10120// // ...
10121// }
10122
10123#define UPB_INTTABLE_BEGIN -1
10124
10125bool upb_inttable_next(const upb_inttable* t, uintptr_t* key, upb_value* val,
10126 intptr_t* iter);
10127void upb_inttable_removeiter(upb_inttable* t, intptr_t* iter);
10128
10129#ifdef __cplusplus
10130} /* extern "C" */
10131#endif
10132
10133
10134#endif /* UPB_HASH_INT_TABLE_H_ */
10135
10136#ifndef UPB_JSON_DECODE_H_
10137#define UPB_JSON_DECODE_H_
10138
10139
10140#ifndef UPB_REFLECTION_DEF_H_
10141#define UPB_REFLECTION_DEF_H_
10142
10143
10144// IWYU pragma: private, include "upb/reflection/def.h"
10145
10146#ifndef UPB_REFLECTION_DEF_POOL_H_
10147#define UPB_REFLECTION_DEF_POOL_H_
10148
10149
10150// IWYU pragma: private, include "upb/reflection/def.h"
10151
10152// Declarations common to all public def types.
10153
10154#ifndef UPB_REFLECTION_COMMON_H_
10155#define UPB_REFLECTION_COMMON_H_
10156
Mike Kruskal232ecf42023-01-14 00:09:40 -080010157// begin:google_only
10158// #ifndef UPB_BOOTSTRAP_STAGE0
10159// #include "net/proto2/proto/descriptor.upb.h"
10160// #else
10161// #include "google/protobuf/descriptor.upb.h"
10162// #endif
10163// end:google_only
10164
10165// begin:github_only
10166// end:github_only
Eric Salo8809a112022-11-21 13:01:06 -080010167
10168typedef enum { kUpb_Syntax_Proto2 = 2, kUpb_Syntax_Proto3 = 3 } upb_Syntax;
10169
10170// Forward declarations for circular references.
10171typedef struct upb_DefPool upb_DefPool;
10172typedef struct upb_EnumDef upb_EnumDef;
10173typedef struct upb_EnumReservedRange upb_EnumReservedRange;
10174typedef struct upb_EnumValueDef upb_EnumValueDef;
10175typedef struct upb_ExtensionRange upb_ExtensionRange;
10176typedef struct upb_FieldDef upb_FieldDef;
10177typedef struct upb_FileDef upb_FileDef;
10178typedef struct upb_MessageDef upb_MessageDef;
10179typedef struct upb_MessageReservedRange upb_MessageReservedRange;
10180typedef struct upb_MethodDef upb_MethodDef;
10181typedef struct upb_OneofDef upb_OneofDef;
10182typedef struct upb_ServiceDef upb_ServiceDef;
10183
10184// EVERYTHING BELOW THIS LINE IS INTERNAL - DO NOT USE /////////////////////////
10185
10186typedef struct upb_DefBuilder upb_DefBuilder;
10187
10188#endif /* UPB_REFLECTION_COMMON_H_ */
10189
10190#ifndef UPB_REFLECTION_DEF_TYPE_H_
10191#define UPB_REFLECTION_DEF_TYPE_H_
10192
10193
10194// Must be last.
10195
10196// Inside a symtab we store tagged pointers to specific def types.
10197typedef enum {
10198 UPB_DEFTYPE_MASK = 7,
10199
10200 // Only inside symtab table.
10201 UPB_DEFTYPE_EXT = 0,
10202 UPB_DEFTYPE_MSG = 1,
10203 UPB_DEFTYPE_ENUM = 2,
10204 UPB_DEFTYPE_ENUMVAL = 3,
10205 UPB_DEFTYPE_SERVICE = 4,
10206
10207 // Only inside message table.
10208 UPB_DEFTYPE_FIELD = 0,
10209 UPB_DEFTYPE_ONEOF = 1,
10210 UPB_DEFTYPE_FIELD_JSONNAME = 2,
10211} upb_deftype_t;
10212
10213#ifdef __cplusplus
10214extern "C" {
10215#endif
10216
10217// Our 3-bit pointer tagging requires all pointers to be multiples of 8.
10218// The arena will always yield 8-byte-aligned addresses, however we put
10219// the defs into arrays. For each element in the array to be 8-byte-aligned,
10220// the sizes of each def type must also be a multiple of 8.
10221//
10222// If any of these asserts fail, we need to add or remove padding on 32-bit
10223// machines (64-bit machines will have 8-byte alignment already due to
10224// pointers, which all of these structs have).
10225UPB_INLINE void _upb_DefType_CheckPadding(size_t size) {
10226 UPB_ASSERT((size & UPB_DEFTYPE_MASK) == 0);
10227}
10228
10229upb_deftype_t _upb_DefType_Type(upb_value v);
10230
10231upb_value _upb_DefType_Pack(const void* ptr, upb_deftype_t type);
10232
10233const void* _upb_DefType_Unpack(upb_value v, upb_deftype_t type);
10234
10235#ifdef __cplusplus
10236} /* extern "C" */
10237#endif
10238
10239
10240#endif /* UPB_REFLECTION_DEF_TYPE_H_ */
10241
10242// Must be last.
10243
10244#ifdef __cplusplus
10245extern "C" {
10246#endif
10247
10248void upb_DefPool_Free(upb_DefPool* s);
10249
10250upb_DefPool* upb_DefPool_New(void);
10251
10252const upb_MessageDef* upb_DefPool_FindMessageByName(const upb_DefPool* s,
10253 const char* sym);
10254
10255const upb_MessageDef* upb_DefPool_FindMessageByNameWithSize(
10256 const upb_DefPool* s, const char* sym, size_t len);
10257
10258const upb_EnumDef* upb_DefPool_FindEnumByName(const upb_DefPool* s,
10259 const char* sym);
10260
10261const upb_EnumValueDef* upb_DefPool_FindEnumByNameval(const upb_DefPool* s,
10262 const char* sym);
10263
10264const upb_FileDef* upb_DefPool_FindFileByName(const upb_DefPool* s,
10265 const char* name);
10266
10267const upb_FileDef* upb_DefPool_FindFileByNameWithSize(const upb_DefPool* s,
10268 const char* name,
10269 size_t len);
10270
10271const upb_FieldDef* upb_DefPool_FindExtensionByMiniTable(
10272 const upb_DefPool* s, const upb_MiniTableExtension* ext);
10273
10274const upb_FieldDef* upb_DefPool_FindExtensionByName(const upb_DefPool* s,
10275 const char* sym);
10276
10277const upb_FieldDef* upb_DefPool_FindExtensionByNameWithSize(
10278 const upb_DefPool* s, const char* name, size_t size);
10279
10280const upb_FieldDef* upb_DefPool_FindExtensionByNumber(const upb_DefPool* s,
10281 const upb_MessageDef* m,
10282 int32_t fieldnum);
10283
10284const upb_ServiceDef* upb_DefPool_FindServiceByName(const upb_DefPool* s,
10285 const char* name);
10286
10287const upb_ServiceDef* upb_DefPool_FindServiceByNameWithSize(
10288 const upb_DefPool* s, const char* name, size_t size);
10289
10290const upb_FileDef* upb_DefPool_FindFileContainingSymbol(const upb_DefPool* s,
10291 const char* name);
10292
Mike Kruskal232ecf42023-01-14 00:09:40 -080010293const upb_FileDef* upb_DefPool_AddFile(upb_DefPool* s,
10294 const UPB_DESC(FileDescriptorProto) *
10295 file_proto,
10296 upb_Status* status);
Eric Salo8809a112022-11-21 13:01:06 -080010297
10298const upb_ExtensionRegistry* upb_DefPool_ExtensionRegistry(
10299 const upb_DefPool* s);
10300
10301const upb_FieldDef** upb_DefPool_GetAllExtensions(const upb_DefPool* s,
10302 const upb_MessageDef* m,
10303 size_t* count);
10304
10305#ifdef __cplusplus
10306} /* extern "C" */
10307#endif
10308
10309
10310#endif /* UPB_REFLECTION_DEF_POOL_H_ */
10311
10312// IWYU pragma: private, include "upb/reflection/def.h"
10313
10314#ifndef UPB_REFLECTION_ENUM_DEF_H_
10315#define UPB_REFLECTION_ENUM_DEF_H_
Joshua Habermand3995ec2022-09-30 16:54:39 -070010316
10317
10318// Must be last.
Joshua Haberman9abf6e22021-01-13 12:16:25 -080010319
10320#ifdef __cplusplus
10321extern "C" {
Joshua Habermand3995ec2022-09-30 16:54:39 -070010322#endif
Joshua Haberman9abf6e22021-01-13 12:16:25 -080010323
Eric Salo8809a112022-11-21 13:01:06 -080010324bool upb_EnumDef_CheckNumber(const upb_EnumDef* e, int32_t num);
10325const upb_MessageDef* upb_EnumDef_ContainingType(const upb_EnumDef* e);
10326int32_t upb_EnumDef_Default(const upb_EnumDef* e);
10327const upb_FileDef* upb_EnumDef_File(const upb_EnumDef* e);
10328const upb_EnumValueDef* upb_EnumDef_FindValueByName(const upb_EnumDef* e,
10329 const char* name);
10330const upb_EnumValueDef* upb_EnumDef_FindValueByNameWithSize(
10331 const upb_EnumDef* e, const char* name, size_t size);
10332const upb_EnumValueDef* upb_EnumDef_FindValueByNumber(const upb_EnumDef* e,
10333 int32_t num);
10334const char* upb_EnumDef_FullName(const upb_EnumDef* e);
10335bool upb_EnumDef_HasOptions(const upb_EnumDef* e);
10336bool upb_EnumDef_IsClosed(const upb_EnumDef* e);
10337
10338// Creates a mini descriptor string for an enum, returns true on success.
10339bool upb_EnumDef_MiniDescriptorEncode(const upb_EnumDef* e, upb_Arena* a,
10340 upb_StringView* out);
10341
10342const char* upb_EnumDef_Name(const upb_EnumDef* e);
Mike Kruskal232ecf42023-01-14 00:09:40 -080010343const UPB_DESC(EnumOptions) * upb_EnumDef_Options(const upb_EnumDef* e);
Eric Salo8809a112022-11-21 13:01:06 -080010344
10345upb_StringView upb_EnumDef_ReservedName(const upb_EnumDef* e, int i);
10346int upb_EnumDef_ReservedNameCount(const upb_EnumDef* e);
10347
10348const upb_EnumReservedRange* upb_EnumDef_ReservedRange(const upb_EnumDef* e,
10349 int i);
10350int upb_EnumDef_ReservedRangeCount(const upb_EnumDef* e);
10351
10352const upb_EnumValueDef* upb_EnumDef_Value(const upb_EnumDef* e, int i);
10353int upb_EnumDef_ValueCount(const upb_EnumDef* e);
10354
10355#ifdef __cplusplus
10356} /* extern "C" */
10357#endif
10358
10359
10360#endif /* UPB_REFLECTION_ENUM_DEF_H_ */
10361
10362// IWYU pragma: private, include "upb/reflection/def.h"
10363
10364#ifndef UPB_REFLECTION_ENUM_VALUE_DEF_H_
10365#define UPB_REFLECTION_ENUM_VALUE_DEF_H_
10366
10367
10368// Must be last.
10369
10370#ifdef __cplusplus
10371extern "C" {
10372#endif
10373
10374const upb_EnumDef* upb_EnumValueDef_Enum(const upb_EnumValueDef* v);
10375const char* upb_EnumValueDef_FullName(const upb_EnumValueDef* v);
10376bool upb_EnumValueDef_HasOptions(const upb_EnumValueDef* v);
10377uint32_t upb_EnumValueDef_Index(const upb_EnumValueDef* v);
10378const char* upb_EnumValueDef_Name(const upb_EnumValueDef* v);
10379int32_t upb_EnumValueDef_Number(const upb_EnumValueDef* v);
Mike Kruskal232ecf42023-01-14 00:09:40 -080010380const UPB_DESC(EnumValueOptions) *
10381 upb_EnumValueDef_Options(const upb_EnumValueDef* v);
Eric Salo8809a112022-11-21 13:01:06 -080010382
10383#ifdef __cplusplus
10384} /* extern "C" */
10385#endif
10386
10387
10388#endif /* UPB_REFLECTION_ENUM_VALUE_DEF_H_ */
10389
10390// IWYU pragma: private, include "upb/reflection/def.h"
10391
10392#ifndef UPB_REFLECTION_EXTENSION_RANGE_H_
10393#define UPB_REFLECTION_EXTENSION_RANGE_H_
10394
10395
10396// Must be last.
10397
10398#ifdef __cplusplus
10399extern "C" {
10400#endif
10401
10402int32_t upb_ExtensionRange_Start(const upb_ExtensionRange* r);
10403int32_t upb_ExtensionRange_End(const upb_ExtensionRange* r);
10404
10405bool upb_ExtensionRange_HasOptions(const upb_ExtensionRange* r);
Mike Kruskal232ecf42023-01-14 00:09:40 -080010406const UPB_DESC(ExtensionRangeOptions) *
10407 upb_ExtensionRange_Options(const upb_ExtensionRange* r);
Eric Salo8809a112022-11-21 13:01:06 -080010408
10409#ifdef __cplusplus
10410} /* extern "C" */
10411#endif
10412
10413
10414#endif /* UPB_REFLECTION_EXTENSION_RANGE_H_ */
10415
10416// IWYU pragma: private, include "upb/reflection/def.h"
10417
10418#ifndef UPB_REFLECTION_FIELD_DEF_H_
10419#define UPB_REFLECTION_FIELD_DEF_H_
10420
10421
10422// Must be last.
10423
10424// Maximum field number allowed for FieldDefs.
10425// This is an inherent limit of the protobuf wire format.
10426#define kUpb_MaxFieldNumber ((1 << 29) - 1)
10427
10428#ifdef __cplusplus
10429extern "C" {
10430#endif
10431
10432const upb_OneofDef* upb_FieldDef_ContainingOneof(const upb_FieldDef* f);
10433const upb_MessageDef* upb_FieldDef_ContainingType(const upb_FieldDef* f);
10434upb_CType upb_FieldDef_CType(const upb_FieldDef* f);
Eric Salo3f36a912022-12-05 14:12:25 -080010435upb_MessageValue upb_FieldDef_Default(const upb_FieldDef* f);
Eric Salo8809a112022-11-21 13:01:06 -080010436const upb_EnumDef* upb_FieldDef_EnumSubDef(const upb_FieldDef* f);
10437const upb_MessageDef* upb_FieldDef_ExtensionScope(const upb_FieldDef* f);
10438const upb_FileDef* upb_FieldDef_File(const upb_FieldDef* f);
10439const char* upb_FieldDef_FullName(const upb_FieldDef* f);
10440bool upb_FieldDef_HasDefault(const upb_FieldDef* f);
10441bool upb_FieldDef_HasJsonName(const upb_FieldDef* f);
10442bool upb_FieldDef_HasOptions(const upb_FieldDef* f);
10443bool upb_FieldDef_HasPresence(const upb_FieldDef* f);
10444bool upb_FieldDef_HasSubDef(const upb_FieldDef* f);
10445uint32_t upb_FieldDef_Index(const upb_FieldDef* f);
10446bool upb_FieldDef_IsExtension(const upb_FieldDef* f);
10447bool upb_FieldDef_IsMap(const upb_FieldDef* f);
10448bool upb_FieldDef_IsOptional(const upb_FieldDef* f);
10449bool upb_FieldDef_IsPacked(const upb_FieldDef* f);
10450bool upb_FieldDef_IsPrimitive(const upb_FieldDef* f);
10451bool upb_FieldDef_IsRepeated(const upb_FieldDef* f);
10452bool upb_FieldDef_IsRequired(const upb_FieldDef* f);
10453bool upb_FieldDef_IsString(const upb_FieldDef* f);
10454bool upb_FieldDef_IsSubMessage(const upb_FieldDef* f);
10455const char* upb_FieldDef_JsonName(const upb_FieldDef* f);
10456upb_Label upb_FieldDef_Label(const upb_FieldDef* f);
10457const upb_MessageDef* upb_FieldDef_MessageSubDef(const upb_FieldDef* f);
10458
10459// Creates a mini descriptor string for a field, returns true on success.
10460bool upb_FieldDef_MiniDescriptorEncode(const upb_FieldDef* f, upb_Arena* a,
10461 upb_StringView* out);
10462
10463const upb_MiniTableField* upb_FieldDef_MiniTable(const upb_FieldDef* f);
10464const char* upb_FieldDef_Name(const upb_FieldDef* f);
10465uint32_t upb_FieldDef_Number(const upb_FieldDef* f);
Mike Kruskal232ecf42023-01-14 00:09:40 -080010466const UPB_DESC(FieldOptions) * upb_FieldDef_Options(const upb_FieldDef* f);
Eric Salo8809a112022-11-21 13:01:06 -080010467const upb_OneofDef* upb_FieldDef_RealContainingOneof(const upb_FieldDef* f);
10468upb_FieldType upb_FieldDef_Type(const upb_FieldDef* f);
10469
10470#ifdef __cplusplus
10471} /* extern "C" */
10472#endif
10473
10474
10475#endif /* UPB_REFLECTION_FIELD_DEF_H_ */
10476
10477// IWYU pragma: private, include "upb/reflection/def.h"
10478
10479#ifndef UPB_REFLECTION_FILE_DEF_H_
10480#define UPB_REFLECTION_FILE_DEF_H_
10481
10482
10483// Must be last.
10484
10485#ifdef __cplusplus
10486extern "C" {
10487#endif
10488
10489const upb_FileDef* upb_FileDef_Dependency(const upb_FileDef* f, int i);
10490int upb_FileDef_DependencyCount(const upb_FileDef* f);
10491bool upb_FileDef_HasOptions(const upb_FileDef* f);
10492const char* upb_FileDef_Name(const upb_FileDef* f);
Mike Kruskal232ecf42023-01-14 00:09:40 -080010493const UPB_DESC(FileOptions) * upb_FileDef_Options(const upb_FileDef* f);
Eric Salo8809a112022-11-21 13:01:06 -080010494const char* upb_FileDef_Package(const upb_FileDef* f);
Jakob Buchgraberc0c79b22023-03-20 08:13:52 -070010495const char* upb_FileDef_Edition(const upb_FileDef* f);
Eric Salo8809a112022-11-21 13:01:06 -080010496const upb_DefPool* upb_FileDef_Pool(const upb_FileDef* f);
10497
10498const upb_FileDef* upb_FileDef_PublicDependency(const upb_FileDef* f, int i);
10499int upb_FileDef_PublicDependencyCount(const upb_FileDef* f);
10500
10501const upb_ServiceDef* upb_FileDef_Service(const upb_FileDef* f, int i);
10502int upb_FileDef_ServiceCount(const upb_FileDef* f);
10503
10504upb_Syntax upb_FileDef_Syntax(const upb_FileDef* f);
10505
10506const upb_EnumDef* upb_FileDef_TopLevelEnum(const upb_FileDef* f, int i);
10507int upb_FileDef_TopLevelEnumCount(const upb_FileDef* f);
10508
10509const upb_FieldDef* upb_FileDef_TopLevelExtension(const upb_FileDef* f, int i);
10510int upb_FileDef_TopLevelExtensionCount(const upb_FileDef* f);
10511
10512const upb_MessageDef* upb_FileDef_TopLevelMessage(const upb_FileDef* f, int i);
10513int upb_FileDef_TopLevelMessageCount(const upb_FileDef* f);
10514
10515const upb_FileDef* upb_FileDef_WeakDependency(const upb_FileDef* f, int i);
10516int upb_FileDef_WeakDependencyCount(const upb_FileDef* f);
10517
10518#ifdef __cplusplus
10519} /* extern "C" */
10520#endif
10521
10522
10523#endif /* UPB_REFLECTION_FILE_DEF_H_ */
10524
10525// IWYU pragma: private, include "upb/reflection/def.h"
10526
10527#ifndef UPB_REFLECTION_MESSAGE_DEF_H_
10528#define UPB_REFLECTION_MESSAGE_DEF_H_
10529
10530
10531// Must be last.
10532
10533// Well-known field tag numbers for map-entry messages.
10534#define kUpb_MapEntry_KeyFieldNumber 1
10535#define kUpb_MapEntry_ValueFieldNumber 2
10536
10537// Well-known field tag numbers for Any messages.
10538#define kUpb_Any_TypeFieldNumber 1
10539#define kUpb_Any_ValueFieldNumber 2
10540
10541// Well-known field tag numbers for duration messages.
10542#define kUpb_Duration_SecondsFieldNumber 1
10543#define kUpb_Duration_NanosFieldNumber 2
10544
10545// Well-known field tag numbers for timestamp messages.
10546#define kUpb_Timestamp_SecondsFieldNumber 1
10547#define kUpb_Timestamp_NanosFieldNumber 2
10548
10549// All the different kind of well known type messages. For simplicity of check,
10550// number wrappers and string wrappers are grouped together. Make sure the
10551// order and number of these groups are not changed.
10552typedef enum {
10553 kUpb_WellKnown_Unspecified,
10554 kUpb_WellKnown_Any,
10555 kUpb_WellKnown_FieldMask,
10556 kUpb_WellKnown_Duration,
10557 kUpb_WellKnown_Timestamp,
10558
10559 // number wrappers
10560 kUpb_WellKnown_DoubleValue,
10561 kUpb_WellKnown_FloatValue,
10562 kUpb_WellKnown_Int64Value,
10563 kUpb_WellKnown_UInt64Value,
10564 kUpb_WellKnown_Int32Value,
10565 kUpb_WellKnown_UInt32Value,
10566
10567 // string wrappers
10568 kUpb_WellKnown_StringValue,
10569 kUpb_WellKnown_BytesValue,
10570 kUpb_WellKnown_BoolValue,
10571 kUpb_WellKnown_Value,
10572 kUpb_WellKnown_ListValue,
10573 kUpb_WellKnown_Struct,
10574} upb_WellKnown;
10575
10576#ifdef __cplusplus
10577extern "C" {
10578#endif
10579
10580const upb_MessageDef* upb_MessageDef_ContainingType(const upb_MessageDef* m);
10581
10582const upb_ExtensionRange* upb_MessageDef_ExtensionRange(const upb_MessageDef* m,
10583 int i);
10584int upb_MessageDef_ExtensionRangeCount(const upb_MessageDef* m);
10585
10586const upb_FieldDef* upb_MessageDef_Field(const upb_MessageDef* m, int i);
10587int upb_MessageDef_FieldCount(const upb_MessageDef* m);
10588
10589const upb_FileDef* upb_MessageDef_File(const upb_MessageDef* m);
10590
10591// Returns a field by either JSON name or regular proto name.
10592const upb_FieldDef* upb_MessageDef_FindByJsonNameWithSize(
10593 const upb_MessageDef* m, const char* name, size_t size);
10594UPB_INLINE const upb_FieldDef* upb_MessageDef_FindByJsonName(
10595 const upb_MessageDef* m, const char* name) {
10596 return upb_MessageDef_FindByJsonNameWithSize(m, name, strlen(name));
10597}
10598
10599// Lookup of either field or oneof by name. Returns whether either was found.
10600// If the return is true, then the found def will be set, and the non-found
10601// one set to NULL.
10602bool upb_MessageDef_FindByNameWithSize(const upb_MessageDef* m,
10603 const char* name, size_t size,
10604 const upb_FieldDef** f,
10605 const upb_OneofDef** o);
10606UPB_INLINE bool upb_MessageDef_FindByName(const upb_MessageDef* m,
10607 const char* name,
10608 const upb_FieldDef** f,
10609 const upb_OneofDef** o) {
10610 return upb_MessageDef_FindByNameWithSize(m, name, strlen(name), f, o);
10611}
10612
10613const upb_FieldDef* upb_MessageDef_FindFieldByName(const upb_MessageDef* m,
10614 const char* name);
10615const upb_FieldDef* upb_MessageDef_FindFieldByNameWithSize(
10616 const upb_MessageDef* m, const char* name, size_t size);
10617const upb_FieldDef* upb_MessageDef_FindFieldByNumber(const upb_MessageDef* m,
10618 uint32_t i);
10619const upb_OneofDef* upb_MessageDef_FindOneofByName(const upb_MessageDef* m,
10620 const char* name);
10621const upb_OneofDef* upb_MessageDef_FindOneofByNameWithSize(
10622 const upb_MessageDef* m, const char* name, size_t size);
10623const char* upb_MessageDef_FullName(const upb_MessageDef* m);
10624bool upb_MessageDef_HasOptions(const upb_MessageDef* m);
10625bool upb_MessageDef_IsMapEntry(const upb_MessageDef* m);
10626bool upb_MessageDef_IsMessageSet(const upb_MessageDef* m);
10627
10628// Creates a mini descriptor string for a message, returns true on success.
10629bool upb_MessageDef_MiniDescriptorEncode(const upb_MessageDef* m, upb_Arena* a,
10630 upb_StringView* out);
10631
10632const upb_MiniTable* upb_MessageDef_MiniTable(const upb_MessageDef* m);
10633const char* upb_MessageDef_Name(const upb_MessageDef* m);
10634
10635const upb_EnumDef* upb_MessageDef_NestedEnum(const upb_MessageDef* m, int i);
10636const upb_FieldDef* upb_MessageDef_NestedExtension(const upb_MessageDef* m,
10637 int i);
10638const upb_MessageDef* upb_MessageDef_NestedMessage(const upb_MessageDef* m,
10639 int i);
10640
10641int upb_MessageDef_NestedEnumCount(const upb_MessageDef* m);
10642int upb_MessageDef_NestedExtensionCount(const upb_MessageDef* m);
10643int upb_MessageDef_NestedMessageCount(const upb_MessageDef* m);
10644
10645const upb_OneofDef* upb_MessageDef_Oneof(const upb_MessageDef* m, int i);
10646int upb_MessageDef_OneofCount(const upb_MessageDef* m);
Mike Kruskal232ecf42023-01-14 00:09:40 -080010647int upb_MessageDef_RealOneofCount(const upb_MessageDef* m);
Eric Salo8809a112022-11-21 13:01:06 -080010648
Mike Kruskal232ecf42023-01-14 00:09:40 -080010649const UPB_DESC(MessageOptions) *
10650 upb_MessageDef_Options(const upb_MessageDef* m);
Eric Salo8809a112022-11-21 13:01:06 -080010651
10652upb_StringView upb_MessageDef_ReservedName(const upb_MessageDef* m, int i);
10653int upb_MessageDef_ReservedNameCount(const upb_MessageDef* m);
10654
10655const upb_MessageReservedRange* upb_MessageDef_ReservedRange(
10656 const upb_MessageDef* m, int i);
10657int upb_MessageDef_ReservedRangeCount(const upb_MessageDef* m);
10658
10659upb_Syntax upb_MessageDef_Syntax(const upb_MessageDef* m);
10660upb_WellKnown upb_MessageDef_WellKnownType(const upb_MessageDef* m);
10661
10662#ifdef __cplusplus
10663} /* extern "C" */
10664#endif
10665
10666
10667#endif /* UPB_REFLECTION_MESSAGE_DEF_H_ */
10668
10669// IWYU pragma: private, include "upb/reflection/def.h"
10670
10671#ifndef UPB_REFLECTION_METHOD_DEF_H_
10672#define UPB_REFLECTION_METHOD_DEF_H_
10673
10674
10675// Must be last.
10676
10677#ifdef __cplusplus
10678extern "C" {
10679#endif
10680
10681bool upb_MethodDef_ClientStreaming(const upb_MethodDef* m);
10682const char* upb_MethodDef_FullName(const upb_MethodDef* m);
10683bool upb_MethodDef_HasOptions(const upb_MethodDef* m);
10684int upb_MethodDef_Index(const upb_MethodDef* m);
10685const upb_MessageDef* upb_MethodDef_InputType(const upb_MethodDef* m);
10686const char* upb_MethodDef_Name(const upb_MethodDef* m);
Mike Kruskal232ecf42023-01-14 00:09:40 -080010687const UPB_DESC(MethodOptions) * upb_MethodDef_Options(const upb_MethodDef* m);
Eric Salo8809a112022-11-21 13:01:06 -080010688const upb_MessageDef* upb_MethodDef_OutputType(const upb_MethodDef* m);
10689bool upb_MethodDef_ServerStreaming(const upb_MethodDef* m);
10690const upb_ServiceDef* upb_MethodDef_Service(const upb_MethodDef* m);
10691
10692#ifdef __cplusplus
10693} /* extern "C" */
10694#endif
10695
10696
10697#endif /* UPB_REFLECTION_METHOD_DEF_H_ */
10698
10699// IWYU pragma: private, include "upb/reflection/def.h"
10700
10701#ifndef UPB_REFLECTION_ONEOF_DEF_H_
10702#define UPB_REFLECTION_ONEOF_DEF_H_
10703
10704
10705// Must be last.
10706
10707#ifdef __cplusplus
10708extern "C" {
10709#endif
10710
10711const upb_MessageDef* upb_OneofDef_ContainingType(const upb_OneofDef* o);
10712const upb_FieldDef* upb_OneofDef_Field(const upb_OneofDef* o, int i);
10713int upb_OneofDef_FieldCount(const upb_OneofDef* o);
10714const char* upb_OneofDef_FullName(const upb_OneofDef* o);
10715bool upb_OneofDef_HasOptions(const upb_OneofDef* o);
10716uint32_t upb_OneofDef_Index(const upb_OneofDef* o);
10717bool upb_OneofDef_IsSynthetic(const upb_OneofDef* o);
10718const upb_FieldDef* upb_OneofDef_LookupName(const upb_OneofDef* o,
10719 const char* name);
10720const upb_FieldDef* upb_OneofDef_LookupNameWithSize(const upb_OneofDef* o,
10721 const char* name,
10722 size_t size);
10723const upb_FieldDef* upb_OneofDef_LookupNumber(const upb_OneofDef* o,
10724 uint32_t num);
10725const char* upb_OneofDef_Name(const upb_OneofDef* o);
10726int upb_OneofDef_numfields(const upb_OneofDef* o);
Mike Kruskal232ecf42023-01-14 00:09:40 -080010727const UPB_DESC(OneofOptions) * upb_OneofDef_Options(const upb_OneofDef* o);
Eric Salo8809a112022-11-21 13:01:06 -080010728
10729#ifdef __cplusplus
10730} /* extern "C" */
10731#endif
10732
10733
10734#endif /* UPB_REFLECTION_ONEOF_DEF_H_ */
10735
10736// IWYU pragma: private, include "upb/reflection/def.h"
10737
10738#ifndef UPB_REFLECTION_SERVICE_DEF_H_
10739#define UPB_REFLECTION_SERVICE_DEF_H_
10740
10741
10742// Must be last.
10743
10744#ifdef __cplusplus
10745extern "C" {
10746#endif
10747
10748const upb_FileDef* upb_ServiceDef_File(const upb_ServiceDef* s);
10749const upb_MethodDef* upb_ServiceDef_FindMethodByName(const upb_ServiceDef* s,
10750 const char* name);
10751const char* upb_ServiceDef_FullName(const upb_ServiceDef* s);
10752bool upb_ServiceDef_HasOptions(const upb_ServiceDef* s);
10753int upb_ServiceDef_Index(const upb_ServiceDef* s);
10754const upb_MethodDef* upb_ServiceDef_Method(const upb_ServiceDef* s, int i);
10755int upb_ServiceDef_MethodCount(const upb_ServiceDef* s);
10756const char* upb_ServiceDef_Name(const upb_ServiceDef* s);
Mike Kruskal232ecf42023-01-14 00:09:40 -080010757const UPB_DESC(ServiceOptions) *
10758 upb_ServiceDef_Options(const upb_ServiceDef* s);
Eric Salo8809a112022-11-21 13:01:06 -080010759
10760#ifdef __cplusplus
10761} /* extern "C" */
10762#endif
10763
10764
10765#endif /* UPB_REFLECTION_SERVICE_DEF_H_ */
10766
10767#endif /* UPB_REFLECTION_DEF_H_ */
10768
10769// Must be last.
10770
10771#ifdef __cplusplus
10772extern "C" {
10773#endif
10774
10775enum { upb_JsonDecode_IgnoreUnknown = 1 };
10776
10777bool upb_JsonDecode(const char* buf, size_t size, upb_Message* msg,
10778 const upb_MessageDef* m, const upb_DefPool* symtab,
10779 int options, upb_Arena* arena, upb_Status* status);
10780
10781#ifdef __cplusplus
10782} /* extern "C" */
10783#endif
10784
10785
10786#endif /* UPB_JSONDECODE_H_ */
10787
10788#ifndef UPB_LEX_ATOI_H_
10789#define UPB_LEX_ATOI_H_
10790
10791// Must be last.
10792
10793#ifdef __cplusplus
10794extern "C" {
10795#endif
10796
10797// We use these hand-written routines instead of strto[u]l() because the "long
10798// long" variants aren't in c89. Also our version allows setting a ptr limit.
10799// Return the new position of the pointer after parsing the int, or NULL on
10800// integer overflow.
10801
10802const char* upb_BufToUint64(const char* ptr, const char* end, uint64_t* val);
10803const char* upb_BufToInt64(const char* ptr, const char* end, int64_t* val,
10804 bool* is_neg);
10805
10806#ifdef __cplusplus
10807} /* extern "C" */
10808#endif
10809
10810
10811#endif /* UPB_LEX_ATOI_H_ */
10812
10813#ifndef UPB_LEX_UNICODE_H_
10814#define UPB_LEX_UNICODE_H_
10815
10816// Must be last.
10817
10818#ifdef __cplusplus
10819extern "C" {
10820#endif
10821
10822// Returns true iff a codepoint is the value for a high surrogate.
10823UPB_INLINE bool upb_Unicode_IsHigh(uint32_t cp) {
10824 return (cp >= 0xd800 && cp <= 0xdbff);
10825}
10826
10827// Returns true iff a codepoint is the value for a low surrogate.
10828UPB_INLINE bool upb_Unicode_IsLow(uint32_t cp) {
10829 return (cp >= 0xdc00 && cp <= 0xdfff);
10830}
10831
10832// Returns the high 16-bit surrogate value for a supplementary codepoint.
10833// Does not sanity-check the input.
10834UPB_INLINE uint16_t upb_Unicode_ToHigh(uint32_t cp) {
10835 return (cp >> 10) + 0xd7c0;
10836}
10837
10838// Returns the low 16-bit surrogate value for a supplementary codepoint.
10839// Does not sanity-check the input.
10840UPB_INLINE uint16_t upb_Unicode_ToLow(uint32_t cp) {
10841 return (cp & 0x3ff) | 0xdc00;
10842}
10843
10844// Returns the 32-bit value corresponding to a pair of 16-bit surrogates.
10845// Does not sanity-check the input.
10846UPB_INLINE uint32_t upb_Unicode_FromPair(uint32_t high, uint32_t low) {
10847 return ((high & 0x3ff) << 10) + (low & 0x3ff) + 0x10000;
10848}
10849
10850// Outputs a codepoint as UTF8.
10851// Returns the number of bytes written (1-4 on success, 0 on error).
10852// Does not sanity-check the input. Specifically does not check for surrogates.
10853int upb_Unicode_ToUTF8(uint32_t cp, char* out);
10854
10855#ifdef __cplusplus
10856} /* extern "C" */
10857#endif
10858
10859
10860#endif /* UPB_LEX_UNICODE_H_ */
10861
10862#ifndef UPB_REFLECTION_MESSAGE_H_
10863#define UPB_REFLECTION_MESSAGE_H_
10864
10865
10866// Must be last.
10867
10868#ifdef __cplusplus
10869extern "C" {
10870#endif
10871
Eric Salo3f36a912022-12-05 14:12:25 -080010872// Returns a mutable pointer to a map, array, or submessage value. If the given
10873// arena is non-NULL this will construct a new object if it was not previously
10874// present. May not be called for primitive fields.
Eric Salo8809a112022-11-21 13:01:06 -080010875upb_MutableMessageValue upb_Message_Mutable(upb_Message* msg,
10876 const upb_FieldDef* f,
10877 upb_Arena* a);
10878
Eric Salo3f36a912022-12-05 14:12:25 -080010879// Returns the field that is set in the oneof, or NULL if none are set.
Eric Salo8809a112022-11-21 13:01:06 -080010880const upb_FieldDef* upb_Message_WhichOneof(const upb_Message* msg,
10881 const upb_OneofDef* o);
10882
Eric Salo3f36a912022-12-05 14:12:25 -080010883// Clear all data and unknown fields.
10884void upb_Message_ClearByDef(upb_Message* msg, const upb_MessageDef* m);
Eric Salo8809a112022-11-21 13:01:06 -080010885
Eric Salo3f36a912022-12-05 14:12:25 -080010886// Clears any field presence and sets the value back to its default.
10887void upb_Message_ClearFieldByDef(upb_Message* msg, const upb_FieldDef* f);
Eric Salo8809a112022-11-21 13:01:06 -080010888
Eric Salo3f36a912022-12-05 14:12:25 -080010889// May only be called for fields where upb_FieldDef_HasPresence(f) == true.
10890bool upb_Message_HasFieldByDef(const upb_Message* msg, const upb_FieldDef* f);
Eric Salo8809a112022-11-21 13:01:06 -080010891
Eric Salo3f36a912022-12-05 14:12:25 -080010892// Returns the value in the message associated with this field def.
10893upb_MessageValue upb_Message_GetFieldByDef(const upb_Message* msg,
10894 const upb_FieldDef* f);
10895
10896// Sets the given field to the given value. For a msg/array/map/string, the
10897// caller must ensure that the target data outlives |msg| (by living either in
10898// the same arena or a different arena that outlives it).
10899//
10900// Returns false if allocation fails.
10901bool upb_Message_SetFieldByDef(upb_Message* msg, const upb_FieldDef* f,
10902 upb_MessageValue val, upb_Arena* a);
10903
10904// Iterate over present fields.
10905//
10906// size_t iter = kUpb_Message_Begin;
10907// const upb_FieldDef *f;
10908// upb_MessageValue val;
10909// while (upb_Message_Next(msg, m, ext_pool, &f, &val, &iter)) {
10910// process_field(f, val);
10911// }
10912//
10913// If ext_pool is NULL, no extensions will be returned. If the given symtab
10914// returns extensions that don't match what is in this message, those extensions
10915// will be skipped.
Eric Salo8809a112022-11-21 13:01:06 -080010916
10917#define kUpb_Message_Begin -1
Eric Salo3f36a912022-12-05 14:12:25 -080010918
Eric Salo8809a112022-11-21 13:01:06 -080010919bool upb_Message_Next(const upb_Message* msg, const upb_MessageDef* m,
10920 const upb_DefPool* ext_pool, const upb_FieldDef** f,
10921 upb_MessageValue* val, size_t* iter);
10922
Eric Salo3f36a912022-12-05 14:12:25 -080010923// Clears all unknown field data from this message and all submessages.
Eric Salo8809a112022-11-21 13:01:06 -080010924bool upb_Message_DiscardUnknown(upb_Message* msg, const upb_MessageDef* m,
10925 int maxdepth);
10926
10927#ifdef __cplusplus
10928} /* extern "C" */
10929#endif
10930
10931
10932#endif /* UPB_REFLECTION_MESSAGE_H_ */
10933
10934#ifndef UPB_JSON_ENCODE_H_
10935#define UPB_JSON_ENCODE_H_
10936
10937
10938// Must be last.
10939
10940#ifdef __cplusplus
10941extern "C" {
10942#endif
10943
10944enum {
10945 /* When set, emits 0/default values. TODO(haberman): proto3 only? */
10946 upb_JsonEncode_EmitDefaults = 1 << 0,
10947
10948 /* When set, use normal (snake_case) field names instead of JSON (camelCase)
10949 names. */
10950 upb_JsonEncode_UseProtoNames = 1 << 1,
10951
10952 /* When set, emits enums as their integer values instead of as their names. */
10953 upb_JsonEncode_FormatEnumsAsIntegers = 1 << 2
10954};
10955
10956/* Encodes the given |msg| to JSON format. The message's reflection is given in
10957 * |m|. The symtab in |symtab| is used to find extensions (if NULL, extensions
10958 * will not be printed).
10959 *
10960 * Output is placed in the given buffer, and always NULL-terminated. The output
10961 * size (excluding NULL) is returned. This means that a return value >= |size|
10962 * implies that the output was truncated. (These are the same semantics as
10963 * snprintf()). */
10964size_t upb_JsonEncode(const upb_Message* msg, const upb_MessageDef* m,
10965 const upb_DefPool* ext_pool, int options, char* buf,
10966 size_t size, upb_Status* status);
10967
10968#ifdef __cplusplus
10969} /* extern "C" */
10970#endif
10971
10972
10973#endif /* UPB_JSONENCODE_H_ */
10974
10975#ifndef UPB_LEX_ROUND_TRIP_H_
10976#define UPB_LEX_ROUND_TRIP_H_
10977
10978// Must be last.
10979
10980// Encodes a float or double that is round-trippable, but as short as possible.
10981// These routines are not fully optimal (not guaranteed to be shortest), but are
10982// short-ish and match the implementation that has been used in protobuf since
10983// the beginning.
10984
10985// The given buffer size must be at least kUpb_RoundTripBufferSize.
10986enum { kUpb_RoundTripBufferSize = 32 };
10987
10988#ifdef __cplusplus
10989extern "C" {
10990#endif
10991
10992void _upb_EncodeRoundTripDouble(double val, char* buf, size_t size);
10993void _upb_EncodeRoundTripFloat(float val, char* buf, size_t size);
10994
10995#ifdef __cplusplus
10996} /* extern "C" */
10997#endif
10998
10999
11000#endif /* UPB_LEX_ROUND_TRIP_H_ */
11001
11002#ifndef UPB_PORT_VSNPRINTF_COMPAT_H_
11003#define UPB_PORT_VSNPRINTF_COMPAT_H_
11004
11005// Must be last.
11006
11007UPB_INLINE int _upb_vsnprintf(char* buf, size_t size, const char* fmt,
11008 va_list ap) {
11009#if defined(__MINGW64__) || defined(__MINGW32__) || defined(_MSC_VER)
11010 // The msvc runtime has a non-conforming vsnprintf() that requires the
11011 // following compatibility code to become conformant.
11012 int n = -1;
11013 if (size != 0) n = _vsnprintf_s(buf, size, _TRUNCATE, fmt, ap);
11014 if (n == -1) n = _vscprintf(fmt, ap);
11015 return n;
11016#else
11017 return vsnprintf(buf, size, fmt, ap);
11018#endif
11019}
11020
11021
11022#endif // UPB_PORT_VSNPRINTF_COMPAT_H_
11023
11024#ifndef UPB_LEX_STRTOD_H_
11025#define UPB_LEX_STRTOD_H_
11026
11027// Must be last.
11028
11029#ifdef __cplusplus
11030extern "C" {
11031#endif
11032
11033double _upb_NoLocaleStrtod(const char *str, char **endptr);
11034
11035#ifdef __cplusplus
11036} /* extern "C" */
11037#endif
11038
11039
11040#endif /* UPB_LEX_STRTOD_H_ */
11041
11042#ifndef UPB_MEM_ARENA_INTERNAL_H_
11043#define UPB_MEM_ARENA_INTERNAL_H_
11044
11045
11046// Must be last.
11047
11048typedef struct _upb_MemBlock _upb_MemBlock;
Joshua Habermand3995ec2022-09-30 16:54:39 -070011049
11050struct upb_Arena {
11051 _upb_ArenaHead head;
Joshua Habermand3995ec2022-09-30 16:54:39 -070011052
Deanna Garciac7d979d2023-04-14 17:22:13 -070011053 // upb_alloc* together with a low bit which signals if there is an initial
11054 // block.
11055 uintptr_t block_alloc;
Joshua Habermand3995ec2022-09-30 16:54:39 -070011056
Deanna Garciac7d979d2023-04-14 17:22:13 -070011057 // When multiple arenas are fused together, each arena points to a parent
11058 // arena (root points to itself). The root tracks how many live arenas
11059 // reference it.
Joshua Habermand3995ec2022-09-30 16:54:39 -070011060
Deanna Garciac7d979d2023-04-14 17:22:13 -070011061 // The low bit is tagged:
11062 // 0: pointer to parent
11063 // 1: count, left shifted by one
11064 UPB_ATOMIC(uintptr_t) parent_or_count;
11065
11066 // All nodes that are fused together are in a singly-linked list.
11067 UPB_ATOMIC(upb_Arena*) next; // NULL at end of list.
11068
11069 // The last element of the linked list. This is present only as an
11070 // optimization, so that we do not have to iterate over all members for every
11071 // fuse. Only significant for an arena root. In other cases it is ignored.
11072 UPB_ATOMIC(upb_Arena*) tail; // == self when no other list members.
11073
11074 // Linked list of blocks to free/cleanup. Atomic only for the benefit of
11075 // upb_Arena_SpaceAllocated().
11076 UPB_ATOMIC(_upb_MemBlock*) blocks;
Joshua Habermand3995ec2022-09-30 16:54:39 -070011077};
11078
Eric Salodfb71552023-03-22 12:35:09 -070011079UPB_INLINE bool _upb_Arena_IsTaggedRefcount(uintptr_t parent_or_count) {
11080 return (parent_or_count & 1) == 1;
11081}
Eric Salo8809a112022-11-21 13:01:06 -080011082
Eric Salodfb71552023-03-22 12:35:09 -070011083UPB_INLINE bool _upb_Arena_IsTaggedPointer(uintptr_t parent_or_count) {
11084 return (parent_or_count & 1) == 0;
11085}
11086
Deanna Garciac7d979d2023-04-14 17:22:13 -070011087UPB_INLINE uintptr_t _upb_Arena_RefCountFromTagged(uintptr_t parent_or_count) {
Eric Salodfb71552023-03-22 12:35:09 -070011088 UPB_ASSERT(_upb_Arena_IsTaggedRefcount(parent_or_count));
11089 return parent_or_count >> 1;
11090}
11091
Deanna Garciac7d979d2023-04-14 17:22:13 -070011092UPB_INLINE uintptr_t _upb_Arena_TaggedFromRefcount(uintptr_t refcount) {
11093 uintptr_t parent_or_count = (refcount << 1) | 1;
Eric Salodfb71552023-03-22 12:35:09 -070011094 UPB_ASSERT(_upb_Arena_IsTaggedRefcount(parent_or_count));
11095 return parent_or_count;
11096}
11097
11098UPB_INLINE upb_Arena* _upb_Arena_PointerFromTagged(uintptr_t parent_or_count) {
11099 UPB_ASSERT(_upb_Arena_IsTaggedPointer(parent_or_count));
11100 return (upb_Arena*)parent_or_count;
11101}
11102
11103UPB_INLINE uintptr_t _upb_Arena_TaggedFromPointer(upb_Arena* a) {
11104 uintptr_t parent_or_count = (uintptr_t)a;
11105 UPB_ASSERT(_upb_Arena_IsTaggedPointer(parent_or_count));
11106 return parent_or_count;
11107}
Joshua Habermand3995ec2022-09-30 16:54:39 -070011108
Deanna Garciac7d979d2023-04-14 17:22:13 -070011109UPB_INLINE upb_alloc* upb_Arena_BlockAlloc(upb_Arena* arena) {
11110 return (upb_alloc*)(arena->block_alloc & ~0x1);
11111}
11112
11113UPB_INLINE uintptr_t upb_Arena_MakeBlockAlloc(upb_alloc* alloc,
11114 bool has_initial) {
11115 uintptr_t alloc_uint = (uintptr_t)alloc;
11116 UPB_ASSERT((alloc_uint & 1) == 0);
11117 return alloc_uint | (has_initial ? 1 : 0);
11118}
11119
11120UPB_INLINE bool upb_Arena_HasInitialBlock(upb_Arena* arena) {
11121 return arena->block_alloc & 0x1;
11122}
11123
Joshua Habermand3995ec2022-09-30 16:54:39 -070011124
Mike Kruskal9cf9db82022-11-04 21:22:31 -070011125#endif /* UPB_MEM_ARENA_INTERNAL_H_ */
Eric Salo8809a112022-11-21 13:01:06 -080011126
Eric Salodfb71552023-03-22 12:35:09 -070011127#ifndef UPB_PORT_ATOMIC_H_
11128#define UPB_PORT_ATOMIC_H_
11129
11130
11131#ifdef UPB_USE_C11_ATOMICS
11132
11133#include <stdatomic.h>
11134#include <stdbool.h>
11135
Deanna Garciac7d979d2023-04-14 17:22:13 -070011136#define upb_Atomic_Init(addr, val) atomic_init(addr, val)
11137#define upb_Atomic_Load(addr, order) atomic_load_explicit(addr, order)
11138#define upb_Atomic_Store(addr, val, order) \
11139 atomic_store_explicit(addr, val, order)
11140#define upb_Atomic_Add(addr, val, order) \
11141 atomic_fetch_add_explicit(addr, val, order)
11142#define upb_Atomic_Sub(addr, val, order) \
Deanna Garciabd6a0cf2023-04-20 10:30:44 -070011143 atomic_fetch_sub_explicit(addr, val, order)
11144#define upb_Atomic_Exchange(addr, val, order) \
11145 atomic_exchange_explicit(addr, val, order)
Deanna Garciac7d979d2023-04-14 17:22:13 -070011146#define upb_Atomic_CompareExchangeStrong(addr, expected, desired, \
11147 success_order, failure_order) \
11148 atomic_compare_exchange_strong_explicit(addr, expected, desired, \
11149 success_order, failure_order)
11150#define upb_Atomic_CompareExchangeWeak(addr, expected, desired, success_order, \
11151 failure_order) \
11152 atomic_compare_exchange_weak_explicit(addr, expected, desired, \
11153 success_order, failure_order)
Eric Salodfb71552023-03-22 12:35:09 -070011154
11155#else // !UPB_USE_C11_ATOMICS
11156
Deanna Garciac7d979d2023-04-14 17:22:13 -070011157#include <string.h>
Eric Salodfb71552023-03-22 12:35:09 -070011158
Deanna Garciac7d979d2023-04-14 17:22:13 -070011159#define upb_Atomic_Init(addr, val) (*addr = val)
11160#define upb_Atomic_Load(addr, order) (*addr)
11161#define upb_Atomic_Store(addr, val, order) (*(addr) = val)
11162#define upb_Atomic_Add(addr, val, order) (*(addr) += val)
11163#define upb_Atomic_Sub(addr, val, order) (*(addr) -= val)
Eric Salodfb71552023-03-22 12:35:09 -070011164
Deanna Garciabd6a0cf2023-04-20 10:30:44 -070011165UPB_INLINE void* _upb_NonAtomic_Exchange(void* addr, void* value) {
11166 void* old;
11167 memcpy(&old, addr, sizeof(value));
11168 memcpy(addr, &value, sizeof(value));
11169 return old;
11170}
11171
11172#define upb_Atomic_Exchange(addr, val, order) _upb_NonAtomic_Exchange(addr, val)
11173
Deanna Garciac7d979d2023-04-14 17:22:13 -070011174// `addr` and `expected` are logically double pointers.
11175UPB_INLINE bool _upb_NonAtomic_CompareExchangeStrongP(void* addr,
11176 void* expected,
11177 void* desired) {
11178 if (memcmp(addr, expected, sizeof(desired)) == 0) {
11179 memcpy(addr, &desired, sizeof(desired));
Eric Salodfb71552023-03-22 12:35:09 -070011180 return true;
11181 } else {
Deanna Garciac7d979d2023-04-14 17:22:13 -070011182 memcpy(expected, addr, sizeof(desired));
Eric Salodfb71552023-03-22 12:35:09 -070011183 return false;
11184 }
11185}
11186
Deanna Garciac7d979d2023-04-14 17:22:13 -070011187#define upb_Atomic_CompareExchangeStrong(addr, expected, desired, \
11188 success_order, failure_order) \
11189 _upb_NonAtomic_CompareExchangeStrongP((void*)addr, (void*)expected, \
11190 (void*)desired)
11191#define upb_Atomic_CompareExchangeWeak(addr, expected, desired, success_order, \
11192 failure_order) \
11193 upb_Atomic_CompareExchangeStrong(addr, expected, desired, 0, 0)
11194
Eric Salodfb71552023-03-22 12:35:09 -070011195#endif
11196
11197
11198#endif // UPB_PORT_ATOMIC_H_
11199
Deanna Garciac7d979d2023-04-14 17:22:13 -070011200#ifndef UPB_WIRE_COMMON_H_
11201#define UPB_WIRE_COMMON_H_
11202
11203// Must be last.
11204
11205#ifdef __cplusplus
11206extern "C" {
11207#endif
11208
11209#define kUpb_WireFormat_DefaultDepthLimit 100
11210
11211#ifdef __cplusplus
11212}
11213#endif
11214
11215#endif // UPB_WIRE_COMMON_H_
11216
Eric Salob7d54ac2022-12-29 11:59:42 -080011217#ifndef UPB_WIRE_READER_H_
11218#define UPB_WIRE_READER_H_
11219
11220
11221#ifndef UPB_WIRE_SWAP_INTERNAL_H_
11222#define UPB_WIRE_SWAP_INTERNAL_H_
11223
11224// Must be last.
11225
11226#ifdef __cplusplus
11227extern "C" {
11228#endif
11229
11230UPB_INLINE bool _upb_IsLittleEndian(void) {
11231 int x = 1;
11232 return *(char*)&x == 1;
11233}
11234
11235UPB_INLINE uint32_t _upb_BigEndian_Swap32(uint32_t val) {
11236 if (_upb_IsLittleEndian()) return val;
11237
11238 return ((val & 0xff) << 24) | ((val & 0xff00) << 8) |
11239 ((val & 0xff0000) >> 8) | ((val & 0xff000000) >> 24);
11240}
11241
11242UPB_INLINE uint64_t _upb_BigEndian_Swap64(uint64_t val) {
11243 if (_upb_IsLittleEndian()) return val;
11244
11245 return ((uint64_t)_upb_BigEndian_Swap32((uint32_t)val) << 32) |
11246 _upb_BigEndian_Swap32((uint32_t)(val >> 32));
11247}
11248
11249#ifdef __cplusplus
11250} /* extern "C" */
11251#endif
11252
11253
11254#endif /* UPB_WIRE_SWAP_INTERNAL_H_ */
11255
Eric Salo8809a112022-11-21 13:01:06 -080011256#ifndef UPB_WIRE_TYPES_H_
11257#define UPB_WIRE_TYPES_H_
11258
11259// A list of types as they are encoded on the wire.
11260typedef enum {
11261 kUpb_WireType_Varint = 0,
11262 kUpb_WireType_64Bit = 1,
11263 kUpb_WireType_Delimited = 2,
11264 kUpb_WireType_StartGroup = 3,
11265 kUpb_WireType_EndGroup = 4,
11266 kUpb_WireType_32Bit = 5
11267} upb_WireType;
11268
11269#endif /* UPB_WIRE_TYPES_H_ */
11270
Eric Salob7d54ac2022-12-29 11:59:42 -080011271// Must be last.
11272
11273#ifdef __cplusplus
11274extern "C" {
11275#endif
11276
11277// The upb_WireReader interface is suitable for general-purpose parsing of
11278// protobuf binary wire format. It is designed to be used along with
11279// upb_EpsCopyInputStream for buffering, and all parsing routines in this file
11280// assume that at least kUpb_EpsCopyInputStream_SlopBytes worth of data is
11281// available to read without any bounds checks.
11282
11283#define kUpb_WireReader_WireTypeMask 7
11284#define kUpb_WireReader_WireTypeBits 3
11285
11286typedef struct {
11287 const char* ptr;
11288 uint64_t val;
11289} _upb_WireReader_ReadLongVarintRet;
11290
11291_upb_WireReader_ReadLongVarintRet _upb_WireReader_ReadLongVarint(
11292 const char* ptr, uint64_t val);
11293
11294static UPB_FORCEINLINE const char* _upb_WireReader_ReadVarint(const char* ptr,
11295 uint64_t* val,
11296 int maxlen,
11297 uint64_t maxval) {
11298 uint64_t byte = (uint8_t)*ptr;
11299 if (UPB_LIKELY((byte & 0x80) == 0)) {
11300 *val = (uint32_t)byte;
11301 return ptr + 1;
11302 }
11303 const char* start = ptr;
11304 _upb_WireReader_ReadLongVarintRet res =
11305 _upb_WireReader_ReadLongVarint(ptr, byte);
11306 if (!res.ptr || (maxlen < 10 && res.ptr - start > maxlen) ||
11307 res.val > maxval) {
11308 return NULL; // Malformed.
11309 }
11310 *val = res.val;
11311 return res.ptr;
11312}
11313
11314// Parses a tag into `tag`, and returns a pointer past the end of the tag, or
11315// NULL if there was an error in the tag data.
11316//
11317// REQUIRES: there must be at least 10 bytes of data available at `ptr`.
11318// Bounds checks must be performed before calling this function, preferably
11319// by calling upb_EpsCopyInputStream_IsDone().
11320static UPB_FORCEINLINE const char* upb_WireReader_ReadTag(const char* ptr,
11321 uint32_t* tag) {
11322 uint64_t val;
11323 ptr = _upb_WireReader_ReadVarint(ptr, &val, 5, UINT32_MAX);
11324 if (!ptr) return NULL;
11325 *tag = val;
11326 return ptr;
11327}
11328
11329// Given a tag, returns the field number.
11330UPB_INLINE uint32_t upb_WireReader_GetFieldNumber(uint32_t tag) {
11331 return tag >> kUpb_WireReader_WireTypeBits;
11332}
11333
11334// Given a tag, returns the wire type.
11335UPB_INLINE uint8_t upb_WireReader_GetWireType(uint32_t tag) {
11336 return tag & kUpb_WireReader_WireTypeMask;
11337}
11338
11339UPB_INLINE const char* upb_WireReader_ReadVarint(const char* ptr,
11340 uint64_t* val) {
11341 return _upb_WireReader_ReadVarint(ptr, val, 10, UINT64_MAX);
11342}
11343
11344// Skips data for a varint, returning a pointer past the end of the varint, or
11345// NULL if there was an error in the varint data.
11346//
11347// REQUIRES: there must be at least 10 bytes of data available at `ptr`.
11348// Bounds checks must be performed before calling this function, preferably
11349// by calling upb_EpsCopyInputStream_IsDone().
11350UPB_INLINE const char* upb_WireReader_SkipVarint(const char* ptr) {
11351 uint64_t val;
11352 return upb_WireReader_ReadVarint(ptr, &val);
11353}
11354
11355// Reads a varint indicating the size of a delimited field into `size`, or
11356// NULL if there was an error in the varint data.
11357//
11358// REQUIRES: there must be at least 10 bytes of data available at `ptr`.
11359// Bounds checks must be performed before calling this function, preferably
11360// by calling upb_EpsCopyInputStream_IsDone().
11361UPB_INLINE const char* upb_WireReader_ReadSize(const char* ptr, int* size) {
11362 uint64_t size64;
11363 ptr = upb_WireReader_ReadVarint(ptr, &size64);
11364 if (!ptr || size64 >= INT32_MAX) return NULL;
11365 *size = size64;
11366 return ptr;
11367}
11368
11369// Reads a fixed32 field, performing byte swapping if necessary.
11370//
11371// REQUIRES: there must be at least 4 bytes of data available at `ptr`.
11372// Bounds checks must be performed before calling this function, preferably
11373// by calling upb_EpsCopyInputStream_IsDone().
11374UPB_INLINE const char* upb_WireReader_ReadFixed32(const char* ptr, void* val) {
11375 uint32_t uval;
11376 memcpy(&uval, ptr, 4);
11377 uval = _upb_BigEndian_Swap32(uval);
11378 memcpy(val, &uval, 4);
11379 return ptr + 4;
11380}
11381
11382// Reads a fixed64 field, performing byte swapping if necessary.
11383//
11384// REQUIRES: there must be at least 4 bytes of data available at `ptr`.
11385// Bounds checks must be performed before calling this function, preferably
11386// by calling upb_EpsCopyInputStream_IsDone().
11387UPB_INLINE const char* upb_WireReader_ReadFixed64(const char* ptr, void* val) {
11388 uint64_t uval;
11389 memcpy(&uval, ptr, 8);
11390 uval = _upb_BigEndian_Swap64(uval);
11391 memcpy(val, &uval, 8);
11392 return ptr + 8;
11393}
11394
Mike Kruskal232ecf42023-01-14 00:09:40 -080011395const char* _upb_WireReader_SkipGroup(const char* ptr, uint32_t tag,
11396 int depth_limit,
11397 upb_EpsCopyInputStream* stream);
11398
Eric Salob7d54ac2022-12-29 11:59:42 -080011399// Skips data for a group, returning a pointer past the end of the group, or
11400// NULL if there was an error parsing the group. The `tag` argument should be
11401// the start group tag that begins the group. The `depth_limit` argument
11402// indicates how many levels of recursion the group is allowed to have before
11403// reporting a parse error (this limit exists to protect against stack
11404// overflow).
Eric Salob7d54ac2022-12-29 11:59:42 -080011405//
Mike Kruskal232ecf42023-01-14 00:09:40 -080011406// TODO: evaluate how the depth_limit should be specified. Do users need
11407// control over this?
11408UPB_INLINE const char* upb_WireReader_SkipGroup(
11409 const char* ptr, uint32_t tag, upb_EpsCopyInputStream* stream) {
11410 return _upb_WireReader_SkipGroup(ptr, tag, 100, stream);
11411}
11412
11413UPB_INLINE const char* _upb_WireReader_SkipValue(
Eric Salob7d54ac2022-12-29 11:59:42 -080011414 const char* ptr, uint32_t tag, int depth_limit,
11415 upb_EpsCopyInputStream* stream) {
11416 switch (upb_WireReader_GetWireType(tag)) {
11417 case kUpb_WireType_Varint:
11418 return upb_WireReader_SkipVarint(ptr);
11419 case kUpb_WireType_32Bit:
11420 return ptr + 4;
11421 case kUpb_WireType_64Bit:
11422 return ptr + 8;
11423 case kUpb_WireType_Delimited: {
11424 int size;
11425 ptr = upb_WireReader_ReadSize(ptr, &size);
11426 if (!ptr) return NULL;
11427 ptr += size;
11428 return ptr;
11429 }
11430 case kUpb_WireType_StartGroup:
Mike Kruskal232ecf42023-01-14 00:09:40 -080011431 return _upb_WireReader_SkipGroup(ptr, tag, depth_limit, stream);
Eric Salob7d54ac2022-12-29 11:59:42 -080011432 case kUpb_WireType_EndGroup:
11433 return NULL; // Should be handled before now.
11434 default:
11435 return NULL; // Unknown wire type.
11436 }
11437}
11438
Mike Kruskal232ecf42023-01-14 00:09:40 -080011439// Skips data for a wire value of any type, returning a pointer past the end of
11440// the data, or NULL if there was an error parsing the group. The `tag` argument
11441// should be the tag that was just parsed. The `depth_limit` argument indicates
11442// how many levels of recursion a group is allowed to have before reporting a
11443// parse error (this limit exists to protect against stack overflow).
11444//
11445// REQUIRES: there must be at least 10 bytes of data available at `ptr`.
11446// Bounds checks must be performed before calling this function, preferably
11447// by calling upb_EpsCopyInputStream_IsDone().
11448//
11449// TODO: evaluate how the depth_limit should be specified. Do users need
11450// control over this?
11451UPB_INLINE const char* upb_WireReader_SkipValue(
11452 const char* ptr, uint32_t tag, upb_EpsCopyInputStream* stream) {
11453 return _upb_WireReader_SkipValue(ptr, tag, 100, stream);
11454}
11455
Eric Salob7d54ac2022-12-29 11:59:42 -080011456#ifdef __cplusplus
11457} /* extern "C" */
11458#endif
11459
11460
11461#endif // UPB_WIRE_READER_H_
11462
Eric Salo8809a112022-11-21 13:01:06 -080011463#ifndef UPB_MINI_TABLE_COMMON_INTERNAL_H_
11464#define UPB_MINI_TABLE_COMMON_INTERNAL_H_
11465
11466
11467// Must be last.
11468
11469typedef enum {
11470 kUpb_EncodedType_Double = 0,
11471 kUpb_EncodedType_Float = 1,
11472 kUpb_EncodedType_Fixed32 = 2,
11473 kUpb_EncodedType_Fixed64 = 3,
11474 kUpb_EncodedType_SFixed32 = 4,
11475 kUpb_EncodedType_SFixed64 = 5,
11476 kUpb_EncodedType_Int32 = 6,
11477 kUpb_EncodedType_UInt32 = 7,
11478 kUpb_EncodedType_SInt32 = 8,
11479 kUpb_EncodedType_Int64 = 9,
11480 kUpb_EncodedType_UInt64 = 10,
11481 kUpb_EncodedType_SInt64 = 11,
11482 kUpb_EncodedType_OpenEnum = 12,
11483 kUpb_EncodedType_Bool = 13,
11484 kUpb_EncodedType_Bytes = 14,
11485 kUpb_EncodedType_String = 15,
11486 kUpb_EncodedType_Group = 16,
11487 kUpb_EncodedType_Message = 17,
11488 kUpb_EncodedType_ClosedEnum = 18,
11489
11490 kUpb_EncodedType_RepeatedBase = 20,
11491} upb_EncodedType;
11492
11493typedef enum {
11494 kUpb_EncodedFieldModifier_FlipPacked = 1 << 0,
Mike Kruskal3bc50492022-12-01 13:34:12 -080011495 kUpb_EncodedFieldModifier_IsRequired = 1 << 1,
Eric Salo8809a112022-11-21 13:01:06 -080011496 kUpb_EncodedFieldModifier_IsProto3Singular = 1 << 2,
Eric Salo8809a112022-11-21 13:01:06 -080011497} upb_EncodedFieldModifier;
11498
11499enum {
11500 kUpb_EncodedValue_MinField = ' ',
11501 kUpb_EncodedValue_MaxField = 'I',
11502 kUpb_EncodedValue_MinModifier = 'L',
11503 kUpb_EncodedValue_MaxModifier = '[',
11504 kUpb_EncodedValue_End = '^',
11505 kUpb_EncodedValue_MinSkip = '_',
11506 kUpb_EncodedValue_MaxSkip = '~',
11507 kUpb_EncodedValue_OneofSeparator = '~',
11508 kUpb_EncodedValue_FieldSeparator = '|',
11509 kUpb_EncodedValue_MinOneofField = ' ',
11510 kUpb_EncodedValue_MaxOneofField = 'b',
11511 kUpb_EncodedValue_MaxEnumMask = 'A',
11512};
11513
11514enum {
11515 kUpb_EncodedVersion_EnumV1 = '!',
11516 kUpb_EncodedVersion_ExtensionV1 = '#',
11517 kUpb_EncodedVersion_MapV1 = '%',
11518 kUpb_EncodedVersion_MessageV1 = '$',
11519 kUpb_EncodedVersion_MessageSetV1 = '&',
11520};
11521
11522#ifdef __cplusplus
11523extern "C" {
11524#endif
11525
11526UPB_INLINE char _upb_ToBase92(int8_t ch) {
11527 extern const char _kUpb_ToBase92[];
11528 UPB_ASSERT(0 <= ch && ch < 92);
11529 return _kUpb_ToBase92[ch];
11530}
11531
11532UPB_INLINE char _upb_FromBase92(uint8_t ch) {
11533 extern const int8_t _kUpb_FromBase92[];
11534 if (' ' > ch || ch > '~') return -1;
11535 return _kUpb_FromBase92[ch - ' '];
11536}
11537
Eric Salo8809a112022-11-21 13:01:06 -080011538#ifdef __cplusplus
11539} /* extern "C" */
11540#endif
11541
11542
11543#endif /* UPB_MINI_TABLE_COMMON_INTERNAL_H_ */
11544
11545#ifndef UPB_MINI_TABLE_DECODE_H_
11546#define UPB_MINI_TABLE_DECODE_H_
11547
11548
11549// Must be last.
11550
11551typedef enum {
11552 kUpb_MiniTablePlatform_32Bit,
11553 kUpb_MiniTablePlatform_64Bit,
11554 kUpb_MiniTablePlatform_Native =
11555 UPB_SIZE(kUpb_MiniTablePlatform_32Bit, kUpb_MiniTablePlatform_64Bit),
11556} upb_MiniTablePlatform;
11557
11558#ifdef __cplusplus
11559extern "C" {
11560#endif
11561
11562// Builds a mini table from the data encoded in the buffer [data, len]. If any
11563// errors occur, returns NULL and sets a status message. In the success case,
11564// the caller must call upb_MiniTable_SetSub*() for all message or proto2 enum
11565// fields to link the table to the appropriate sub-tables.
Mike Kruskal3bc50492022-12-01 13:34:12 -080011566upb_MiniTable* _upb_MiniTable_Build(const char* data, size_t len,
11567 upb_MiniTablePlatform platform,
11568 upb_Arena* arena, upb_Status* status);
11569
Eric Salo3f36a912022-12-05 14:12:25 -080011570UPB_API_INLINE upb_MiniTable* upb_MiniTable_Build(const char* data, size_t len,
11571 upb_Arena* arena,
11572 upb_Status* status) {
Mike Kruskal3bc50492022-12-01 13:34:12 -080011573 return _upb_MiniTable_Build(data, len, kUpb_MiniTablePlatform_Native, arena,
11574 status);
11575}
Eric Salo8809a112022-11-21 13:01:06 -080011576
Deanna Garcia59cfc2f2023-01-31 13:19:28 -080011577// Links a sub-message field to a MiniTable for that sub-message. If a
Eric Salo8809a112022-11-21 13:01:06 -080011578// sub-message field is not linked, it will be treated as an unknown field
Deanna Garcia59cfc2f2023-01-31 13:19:28 -080011579// during parsing, and setting the field will not be allowed. It is possible
Eric Salo8809a112022-11-21 13:01:06 -080011580// to link the message field later, at which point it will no longer be treated
Deanna Garcia59cfc2f2023-01-31 13:19:28 -080011581// as unknown. However there is no synchronization for this operation, which
Eric Salo8809a112022-11-21 13:01:06 -080011582// means parallel mutation requires external synchronization.
Deanna Garcia59cfc2f2023-01-31 13:19:28 -080011583// Returns success/failure.
11584UPB_API bool upb_MiniTable_SetSubMessage(upb_MiniTable* table,
Eric Salo3f36a912022-12-05 14:12:25 -080011585 upb_MiniTableField* field,
11586 const upb_MiniTable* sub);
Eric Salo8809a112022-11-21 13:01:06 -080011587
Deanna Garcia59cfc2f2023-01-31 13:19:28 -080011588// Links an enum field to a MiniTable for that enum.
11589// All enum fields must be linked prior to parsing.
11590// Returns success/failure.
11591UPB_API bool upb_MiniTable_SetSubEnum(upb_MiniTable* table,
Eric Salo3f36a912022-12-05 14:12:25 -080011592 upb_MiniTableField* field,
11593 const upb_MiniTableEnum* sub);
Eric Salo8809a112022-11-21 13:01:06 -080011594
Jakob Buchgraberc0c79b22023-03-20 08:13:52 -070011595// Initializes a MiniTableExtension buffer that has already been allocated.
11596// This is needed by upb_FileDef and upb_MessageDef, which allocate all of the
11597// extensions together in a single contiguous array.
11598const char* _upb_MiniTableExtension_Init(const char* data, size_t len,
11599 upb_MiniTableExtension* ext,
11600 const upb_MiniTable* extendee,
11601 upb_MiniTableSub sub,
11602 upb_MiniTablePlatform platform,
11603 upb_Status* status);
Eric Salo8809a112022-11-21 13:01:06 -080011604
Jakob Buchgraberc0c79b22023-03-20 08:13:52 -070011605UPB_API_INLINE const char* upb_MiniTableExtension_Init(
Eric Salo8809a112022-11-21 13:01:06 -080011606 const char* data, size_t len, upb_MiniTableExtension* ext,
11607 const upb_MiniTable* extendee, upb_MiniTableSub sub, upb_Status* status) {
Jakob Buchgraberc0c79b22023-03-20 08:13:52 -070011608 return _upb_MiniTableExtension_Init(data, len, ext, extendee, sub,
11609 kUpb_MiniTablePlatform_Native, status);
11610}
11611
11612UPB_API upb_MiniTableExtension* _upb_MiniTableExtension_Build(
11613 const char* data, size_t len, const upb_MiniTable* extendee,
11614 upb_MiniTableSub sub, upb_MiniTablePlatform platform, upb_Arena* arena,
11615 upb_Status* status);
11616
11617UPB_API_INLINE upb_MiniTableExtension* upb_MiniTableExtension_Build(
11618 const char* data, size_t len, const upb_MiniTable* extendee,
11619 upb_Arena* arena, upb_Status* status) {
Deanna Garciac7d979d2023-04-14 17:22:13 -070011620 upb_MiniTableSub sub;
11621 sub.submsg = NULL;
Jakob Buchgraberc0c79b22023-03-20 08:13:52 -070011622 return _upb_MiniTableExtension_Build(
11623 data, len, extendee, sub, kUpb_MiniTablePlatform_Native, arena, status);
11624}
11625
11626UPB_API_INLINE upb_MiniTableExtension* upb_MiniTableExtension_BuildMessage(
11627 const char* data, size_t len, const upb_MiniTable* extendee,
11628 upb_MiniTable* submsg, upb_Arena* arena, upb_Status* status) {
Deanna Garciac7d979d2023-04-14 17:22:13 -070011629 upb_MiniTableSub sub;
11630 sub.submsg = submsg;
Jakob Buchgraberc0c79b22023-03-20 08:13:52 -070011631 return _upb_MiniTableExtension_Build(
11632 data, len, extendee, sub, kUpb_MiniTablePlatform_Native, arena, status);
11633}
11634
11635UPB_API_INLINE upb_MiniTableExtension* upb_MiniTableExtension_BuildEnum(
11636 const char* data, size_t len, const upb_MiniTable* extendee,
11637 upb_MiniTableEnum* subenum, upb_Arena* arena, upb_Status* status) {
Deanna Garciac7d979d2023-04-14 17:22:13 -070011638 upb_MiniTableSub sub;
11639 sub.subenum = subenum;
Jakob Buchgraberc0c79b22023-03-20 08:13:52 -070011640 return _upb_MiniTableExtension_Build(
11641 data, len, extendee, sub, kUpb_MiniTablePlatform_Native, arena, status);
Eric Salo8809a112022-11-21 13:01:06 -080011642}
11643
Eric Salo3f36a912022-12-05 14:12:25 -080011644UPB_API upb_MiniTableEnum* upb_MiniTableEnum_Build(const char* data, size_t len,
11645 upb_Arena* arena,
11646 upb_Status* status);
Eric Salo8809a112022-11-21 13:01:06 -080011647
11648// Like upb_MiniTable_Build(), but the user provides a buffer of layout data so
11649// it can be reused from call to call, avoiding repeated realloc()/free().
11650//
11651// The caller owns `*buf` both before and after the call, and must free() it
11652// when it is no longer in use. The function will realloc() `*buf` as
11653// necessary, updating `*size` accordingly.
11654upb_MiniTable* upb_MiniTable_BuildWithBuf(const char* data, size_t len,
11655 upb_MiniTablePlatform platform,
11656 upb_Arena* arena, void** buf,
11657 size_t* buf_size, upb_Status* status);
11658
Jakob Buchgraberc0c79b22023-03-20 08:13:52 -070011659// Returns a list of fields that require linking at runtime, to connect the
11660// MiniTable to its sub-messages and sub-enums. The list of fields will be
11661// written to the `subs` array, which must have been allocated by the caller
11662// and must be large enough to hold a list of all fields in the message.
11663//
11664// The order of the fields returned by this function is significant: it matches
11665// the order expected by upb_MiniTable_Link() below.
11666//
11667// The return value packs the sub-message count and sub-enum count into a single
11668// integer like so:
11669// return (msg_count << 16) | enum_count;
11670UPB_API uint32_t upb_MiniTable_GetSubList(const upb_MiniTable* mt,
11671 const upb_MiniTableField** subs);
11672
11673// Links a message to its sub-messages and sub-enums. The caller must pass
11674// arrays of sub-tables and sub-enums, in the same length and order as is
11675// returned by upb_MiniTable_GetSubList() above. However, individual elements
11676// of the sub_tables may be NULL if those sub-messages were tree shaken.
11677//
11678// Returns false if either array is too short, or if any of the tables fails
11679// to link.
11680UPB_API bool upb_MiniTable_Link(upb_MiniTable* mt,
11681 const upb_MiniTable** sub_tables,
11682 size_t sub_table_count,
11683 const upb_MiniTableEnum** sub_enums,
11684 size_t sub_enum_count);
11685
Eric Salo8809a112022-11-21 13:01:06 -080011686#ifdef __cplusplus
11687} /* extern "C" */
11688#endif
11689
11690
11691#endif /* UPB_MINI_TABLE_DECODE_H_ */
11692
11693#ifndef UPB_MINI_TABLE_ENCODE_INTERNAL_H_
11694#define UPB_MINI_TABLE_ENCODE_INTERNAL_H_
11695
11696
11697// Must be last.
11698
11699// If the input buffer has at least this many bytes available, the encoder call
11700// is guaranteed to succeed (as long as field number order is maintained).
11701#define kUpb_MtDataEncoder_MinSize 16
11702
11703typedef struct {
11704 char* end; // Limit of the buffer passed as a parameter.
11705 // Aliased to internal-only members in .cc.
11706 char internal[32];
11707} upb_MtDataEncoder;
11708
11709#ifdef __cplusplus
11710extern "C" {
11711#endif
11712
11713// Encodes field/oneof information for a given message. The sequence of calls
11714// should look like:
11715//
11716// upb_MtDataEncoder e;
11717// char buf[256];
11718// char* ptr = buf;
11719// e.end = ptr + sizeof(buf);
11720// unit64_t msg_mod = ...; // bitwise & of kUpb_MessageModifiers or zero
11721// ptr = upb_MtDataEncoder_StartMessage(&e, ptr, msg_mod);
11722// // Fields *must* be in field number order.
11723// ptr = upb_MtDataEncoder_PutField(&e, ptr, ...);
11724// ptr = upb_MtDataEncoder_PutField(&e, ptr, ...);
11725// ptr = upb_MtDataEncoder_PutField(&e, ptr, ...);
11726//
11727// // If oneofs are present. Oneofs must be encoded after regular fields.
11728// ptr = upb_MiniTable_StartOneof(&e, ptr)
11729// ptr = upb_MiniTable_PutOneofField(&e, ptr, ...);
11730// ptr = upb_MiniTable_PutOneofField(&e, ptr, ...);
11731//
11732// ptr = upb_MiniTable_StartOneof(&e, ptr);
11733// ptr = upb_MiniTable_PutOneofField(&e, ptr, ...);
11734// ptr = upb_MiniTable_PutOneofField(&e, ptr, ...);
11735//
11736// Oneofs must be encoded after all regular fields.
11737char* upb_MtDataEncoder_StartMessage(upb_MtDataEncoder* e, char* ptr,
11738 uint64_t msg_mod);
11739char* upb_MtDataEncoder_PutField(upb_MtDataEncoder* e, char* ptr,
11740 upb_FieldType type, uint32_t field_num,
11741 uint64_t field_mod);
11742char* upb_MtDataEncoder_StartOneof(upb_MtDataEncoder* e, char* ptr);
11743char* upb_MtDataEncoder_PutOneofField(upb_MtDataEncoder* e, char* ptr,
11744 uint32_t field_num);
11745
11746// Encodes the set of values for a given enum. The values must be given in
11747// order (after casting to uint32_t), and repeats are not allowed.
11748char* upb_MtDataEncoder_StartEnum(upb_MtDataEncoder* e, char* ptr);
11749char* upb_MtDataEncoder_PutEnumValue(upb_MtDataEncoder* e, char* ptr,
11750 uint32_t val);
11751char* upb_MtDataEncoder_EndEnum(upb_MtDataEncoder* e, char* ptr);
11752
11753// Encodes an entire mini descriptor for an extension.
11754char* upb_MtDataEncoder_EncodeExtension(upb_MtDataEncoder* e, char* ptr,
11755 upb_FieldType type, uint32_t field_num,
11756 uint64_t field_mod);
11757
11758// Encodes an entire mini descriptor for a map.
11759char* upb_MtDataEncoder_EncodeMap(upb_MtDataEncoder* e, char* ptr,
11760 upb_FieldType key_type,
Mike Kruskal3bc50492022-12-01 13:34:12 -080011761 upb_FieldType value_type, uint64_t key_mod,
11762 uint64_t value_mod);
Eric Salo8809a112022-11-21 13:01:06 -080011763
11764// Encodes an entire mini descriptor for a message set.
11765char* upb_MtDataEncoder_EncodeMessageSet(upb_MtDataEncoder* e, char* ptr);
11766
11767#ifdef __cplusplus
11768} /* extern "C" */
11769#endif
11770
11771
11772#endif /* UPB_MINI_TABLE_ENCODE_INTERNAL_H_ */
11773
11774#ifndef UPB_REFLECTION_DEF_BUILDER_INTERNAL_H_
11775#define UPB_REFLECTION_DEF_BUILDER_INTERNAL_H_
11776
11777
11778#ifndef UPB_REFLECTION_DEF_POOL_INTERNAL_H_
11779#define UPB_REFLECTION_DEF_POOL_INTERNAL_H_
11780
11781
11782// Must be last.
11783
11784#ifdef __cplusplus
11785extern "C" {
11786#endif
11787
11788upb_Arena* _upb_DefPool_Arena(const upb_DefPool* s);
11789size_t _upb_DefPool_BytesLoaded(const upb_DefPool* s);
11790upb_ExtensionRegistry* _upb_DefPool_ExtReg(const upb_DefPool* s);
11791
11792bool _upb_DefPool_InsertExt(upb_DefPool* s, const upb_MiniTableExtension* ext,
Jakob Buchgraberc0c79b22023-03-20 08:13:52 -070011793 const upb_FieldDef* f);
Eric Salo8809a112022-11-21 13:01:06 -080011794bool _upb_DefPool_InsertSym(upb_DefPool* s, upb_StringView sym, upb_value v,
11795 upb_Status* status);
11796bool _upb_DefPool_LookupSym(const upb_DefPool* s, const char* sym, size_t size,
11797 upb_value* v);
11798
11799void** _upb_DefPool_ScratchData(const upb_DefPool* s);
11800size_t* _upb_DefPool_ScratchSize(const upb_DefPool* s);
Mike Kruskal232ecf42023-01-14 00:09:40 -080011801void _upb_DefPool_SetPlatform(upb_DefPool* s, upb_MiniTablePlatform platform);
Eric Salo8809a112022-11-21 13:01:06 -080011802
11803// For generated code only: loads a generated descriptor.
11804typedef struct _upb_DefPool_Init {
11805 struct _upb_DefPool_Init** deps; // Dependencies of this file.
11806 const upb_MiniTableFile* layout;
11807 const char* filename;
11808 upb_StringView descriptor; // Serialized descriptor.
11809} _upb_DefPool_Init;
11810
11811bool _upb_DefPool_LoadDefInit(upb_DefPool* s, const _upb_DefPool_Init* init);
11812
11813// Should only be directly called by tests. This variant lets us suppress
11814// the use of compiled-in tables, forcing a rebuild of the tables at runtime.
11815bool _upb_DefPool_LoadDefInitEx(upb_DefPool* s, const _upb_DefPool_Init* init,
11816 bool rebuild_minitable);
11817
11818#ifdef __cplusplus
11819} /* extern "C" */
11820#endif
11821
11822
11823#endif /* UPB_REFLECTION_DEF_POOL_INTERNAL_H_ */
11824
11825// Must be last.
11826
11827// We want to copy the options verbatim into the destination options proto.
11828// We use serialize+parse as our deep copy.
Mike Kruskal232ecf42023-01-14 00:09:40 -080011829#define UPB_DEF_SET_OPTIONS(target, desc_type, options_type, proto) \
11830 if (UPB_DESC(desc_type##_has_options)(proto)) { \
11831 size_t size; \
11832 char* pb = UPB_DESC(options_type##_serialize)( \
11833 UPB_DESC(desc_type##_options)(proto), ctx->tmp_arena, &size); \
11834 if (!pb) _upb_DefBuilder_OomErr(ctx); \
11835 target = \
11836 UPB_DESC(options_type##_parse)(pb, size, _upb_DefBuilder_Arena(ctx)); \
11837 if (!target) _upb_DefBuilder_OomErr(ctx); \
11838 } else { \
11839 target = (const UPB_DESC(options_type)*)kUpbDefOptDefault; \
Eric Salo8809a112022-11-21 13:01:06 -080011840 }
11841
11842#ifdef __cplusplus
11843extern "C" {
11844#endif
11845
11846struct upb_DefBuilder {
11847 upb_DefPool* symtab;
11848 upb_FileDef* file; // File we are building.
11849 upb_Arena* arena; // Allocate defs here.
11850 upb_Arena* tmp_arena; // For temporary allocations.
11851 upb_Status* status; // Record errors here.
11852 const upb_MiniTableFile* layout; // NULL if we should build layouts.
Mike Kruskal232ecf42023-01-14 00:09:40 -080011853 upb_MiniTablePlatform platform; // Platform we are targeting.
Eric Salo8809a112022-11-21 13:01:06 -080011854 int enum_count; // Count of enums built so far.
11855 int msg_count; // Count of messages built so far.
11856 int ext_count; // Count of extensions built so far.
11857 jmp_buf err; // longjmp() on error.
11858};
11859
11860extern const char* kUpbDefOptDefault;
11861
11862// ctx->status has already been set elsewhere so just fail/longjmp()
11863UPB_NORETURN void _upb_DefBuilder_FailJmp(upb_DefBuilder* ctx);
11864
11865UPB_NORETURN void _upb_DefBuilder_Errf(upb_DefBuilder* ctx, const char* fmt,
11866 ...) UPB_PRINTF(2, 3);
11867UPB_NORETURN void _upb_DefBuilder_OomErr(upb_DefBuilder* ctx);
11868
11869const char* _upb_DefBuilder_MakeFullName(upb_DefBuilder* ctx,
11870 const char* prefix,
11871 upb_StringView name);
11872
11873// Given a symbol and the base symbol inside which it is defined,
11874// find the symbol's definition.
11875const void* _upb_DefBuilder_ResolveAny(upb_DefBuilder* ctx,
11876 const char* from_name_dbg,
11877 const char* base, upb_StringView sym,
11878 upb_deftype_t* type);
11879
11880const void* _upb_DefBuilder_Resolve(upb_DefBuilder* ctx,
11881 const char* from_name_dbg, const char* base,
11882 upb_StringView sym, upb_deftype_t type);
11883
11884char _upb_DefBuilder_ParseEscape(upb_DefBuilder* ctx, const upb_FieldDef* f,
11885 const char** src, const char* end);
11886
11887const char* _upb_DefBuilder_FullToShort(const char* fullname);
11888
11889UPB_INLINE void* _upb_DefBuilder_Alloc(upb_DefBuilder* ctx, size_t bytes) {
11890 if (bytes == 0) return NULL;
11891 void* ret = upb_Arena_Malloc(ctx->arena, bytes);
11892 if (!ret) _upb_DefBuilder_OomErr(ctx);
11893 return ret;
11894}
11895
11896// Adds a symbol |v| to the symtab, which must be a def pointer previously
11897// packed with pack_def(). The def's pointer to upb_FileDef* must be set before
11898// adding, so we know which entries to remove if building this file fails.
11899UPB_INLINE void _upb_DefBuilder_Add(upb_DefBuilder* ctx, const char* name,
11900 upb_value v) {
11901 upb_StringView sym = {.data = name, .size = strlen(name)};
11902 bool ok = _upb_DefPool_InsertSym(ctx->symtab, sym, v, ctx->status);
11903 if (!ok) _upb_DefBuilder_FailJmp(ctx);
11904}
11905
11906UPB_INLINE upb_Arena* _upb_DefBuilder_Arena(const upb_DefBuilder* ctx) {
11907 return ctx->arena;
11908}
11909
11910UPB_INLINE upb_FileDef* _upb_DefBuilder_File(const upb_DefBuilder* ctx) {
11911 return ctx->file;
11912}
11913
11914// This version of CheckIdent() is only called by other, faster versions after
11915// they detect a parsing error.
11916void _upb_DefBuilder_CheckIdentSlow(upb_DefBuilder* ctx, upb_StringView name,
11917 bool full);
11918
Eric Salo8809a112022-11-21 13:01:06 -080011919// Verify a full identifier string. This is slightly more complicated than
11920// verifying a relative identifier string because we must track '.' chars.
11921UPB_INLINE void _upb_DefBuilder_CheckIdentFull(upb_DefBuilder* ctx,
11922 upb_StringView name) {
11923 bool good = name.size > 0;
11924 bool start = true;
11925
11926 for (size_t i = 0; i < name.size; i++) {
11927 const char c = name.data[i];
11928 const char d = c | 0x20; // force lowercase
11929 const bool is_alpha = (('a' <= d) & (d <= 'z')) | (c == '_');
11930 const bool is_numer = ('0' <= c) & (c <= '9') & !start;
11931 const bool is_dot = (c == '.') & !start;
11932
11933 good &= is_alpha | is_numer | is_dot;
11934 start = is_dot;
11935 }
11936
11937 if (!good) _upb_DefBuilder_CheckIdentSlow(ctx, name, true);
11938}
11939
11940#ifdef __cplusplus
11941} /* extern "C" */
11942#endif
11943
11944
11945#endif /* UPB_REFLECTION_DEF_BUILDER_INTERNAL_H_ */
11946
11947#ifndef UPB_REFLECTION_ENUM_DEF_INTERNAL_H_
11948#define UPB_REFLECTION_ENUM_DEF_INTERNAL_H_
11949
11950
11951// Must be last.
11952
11953#ifdef __cplusplus
11954extern "C" {
11955#endif
11956
11957upb_EnumDef* _upb_EnumDef_At(const upb_EnumDef* e, int i);
11958bool _upb_EnumDef_Insert(upb_EnumDef* e, upb_EnumValueDef* v, upb_Arena* a);
11959const upb_MiniTableEnum* _upb_EnumDef_MiniTable(const upb_EnumDef* e);
11960
11961// Allocate and initialize an array of |n| enum defs.
Mike Kruskal232ecf42023-01-14 00:09:40 -080011962upb_EnumDef* _upb_EnumDefs_New(
11963 upb_DefBuilder* ctx, int n,
11964 const UPB_DESC(EnumDescriptorProto) * const* protos,
11965 const upb_MessageDef* containing_type);
Eric Salo8809a112022-11-21 13:01:06 -080011966
11967#ifdef __cplusplus
11968} /* extern "C" */
11969#endif
11970
11971
11972#endif /* UPB_REFLECTION_ENUM_DEF_INTERNAL_H_ */
11973
11974#ifndef UPB_REFLECTION_ENUM_VALUE_DEF_INTERNAL_H_
11975#define UPB_REFLECTION_ENUM_VALUE_DEF_INTERNAL_H_
11976
11977
11978// Must be last.
11979
11980#ifdef __cplusplus
11981extern "C" {
11982#endif
11983
11984upb_EnumValueDef* _upb_EnumValueDef_At(const upb_EnumValueDef* v, int i);
11985
11986// Allocate and initialize an array of |n| enum value defs owned by |e|.
11987upb_EnumValueDef* _upb_EnumValueDefs_New(
11988 upb_DefBuilder* ctx, const char* prefix, int n,
Mike Kruskal232ecf42023-01-14 00:09:40 -080011989 const UPB_DESC(EnumValueDescriptorProto) * const* protos, upb_EnumDef* e,
Eric Salo8809a112022-11-21 13:01:06 -080011990 bool* is_sorted);
11991
11992const upb_EnumValueDef** _upb_EnumValueDefs_Sorted(const upb_EnumValueDef* v,
11993 int n, upb_Arena* a);
11994
11995#ifdef __cplusplus
11996} /* extern "C" */
11997#endif
11998
11999
12000#endif /* UPB_REFLECTION_ENUM_VALUE_DEF_INTERNAL_H_ */
12001
12002#ifndef UPB_REFLECTION_FIELD_DEF_INTERNAL_H_
12003#define UPB_REFLECTION_FIELD_DEF_INTERNAL_H_
12004
12005
12006// Must be last.
12007
12008#ifdef __cplusplus
12009extern "C" {
12010#endif
12011
12012upb_FieldDef* _upb_FieldDef_At(const upb_FieldDef* f, int i);
12013
12014const upb_MiniTableExtension* _upb_FieldDef_ExtensionMiniTable(
12015 const upb_FieldDef* f);
12016bool _upb_FieldDef_IsClosedEnum(const upb_FieldDef* f);
12017bool _upb_FieldDef_IsProto3Optional(const upb_FieldDef* f);
12018int _upb_FieldDef_LayoutIndex(const upb_FieldDef* f);
12019uint64_t _upb_FieldDef_Modifiers(const upb_FieldDef* f);
12020void _upb_FieldDef_Resolve(upb_DefBuilder* ctx, const char* prefix,
12021 upb_FieldDef* f);
Jakob Buchgraberc0c79b22023-03-20 08:13:52 -070012022void _upb_FieldDef_BuildMiniTableExtension(upb_DefBuilder* ctx,
12023 const upb_FieldDef* f);
12024
12025// Allocate and initialize an array of |n| extensions (field defs).
12026upb_FieldDef* _upb_Extensions_New(
12027 upb_DefBuilder* ctx, int n,
12028 const UPB_DESC(FieldDescriptorProto) * const* protos, const char* prefix,
12029 upb_MessageDef* m);
Eric Salo8809a112022-11-21 13:01:06 -080012030
12031// Allocate and initialize an array of |n| field defs.
12032upb_FieldDef* _upb_FieldDefs_New(
12033 upb_DefBuilder* ctx, int n,
Mike Kruskal232ecf42023-01-14 00:09:40 -080012034 const UPB_DESC(FieldDescriptorProto) * const* protos, const char* prefix,
Eric Salo8809a112022-11-21 13:01:06 -080012035 upb_MessageDef* m, bool* is_sorted);
12036
12037// Allocate and return a list of pointers to the |n| field defs in |ff|,
12038// sorted by field number.
12039const upb_FieldDef** _upb_FieldDefs_Sorted(const upb_FieldDef* f, int n,
12040 upb_Arena* a);
12041
12042#ifdef __cplusplus
12043} /* extern "C" */
12044#endif
12045
12046
12047#endif /* UPB_REFLECTION_FIELD_DEF_INTERNAL_H_ */
12048
12049#ifndef UPB_REFLECTION_FILE_DEF_INTERNAL_H_
12050#define UPB_REFLECTION_FILE_DEF_INTERNAL_H_
12051
12052
12053// Must be last.
12054
12055#ifdef __cplusplus
12056extern "C" {
12057#endif
12058
12059const upb_MiniTableExtension* _upb_FileDef_ExtensionMiniTable(
12060 const upb_FileDef* f, int i);
12061const int32_t* _upb_FileDef_PublicDependencyIndexes(const upb_FileDef* f);
12062const int32_t* _upb_FileDef_WeakDependencyIndexes(const upb_FileDef* f);
12063
12064// upb_FileDef_Package() returns "" if f->package is NULL, this does not.
12065const char* _upb_FileDef_RawPackage(const upb_FileDef* f);
12066
12067void _upb_FileDef_Create(upb_DefBuilder* ctx,
Mike Kruskal232ecf42023-01-14 00:09:40 -080012068 const UPB_DESC(FileDescriptorProto) * file_proto);
Eric Salo8809a112022-11-21 13:01:06 -080012069
12070#ifdef __cplusplus
12071} /* extern "C" */
12072#endif
12073
12074
12075#endif /* UPB_REFLECTION_FILE_DEF_INTERNAL_H_ */
12076
12077#ifndef UPB_REFLECTION_MESSAGE_DEF_INTERNAL_H_
12078#define UPB_REFLECTION_MESSAGE_DEF_INTERNAL_H_
12079
12080
12081// Must be last.
12082
12083#ifdef __cplusplus
12084extern "C" {
12085#endif
12086
12087upb_MessageDef* _upb_MessageDef_At(const upb_MessageDef* m, int i);
12088bool _upb_MessageDef_InMessageSet(const upb_MessageDef* m);
12089bool _upb_MessageDef_Insert(upb_MessageDef* m, const char* name, size_t size,
12090 upb_value v, upb_Arena* a);
12091void _upb_MessageDef_InsertField(upb_DefBuilder* ctx, upb_MessageDef* m,
12092 const upb_FieldDef* f);
12093bool _upb_MessageDef_IsValidExtensionNumber(const upb_MessageDef* m, int n);
Jakob Buchgraberc0c79b22023-03-20 08:13:52 -070012094void _upb_MessageDef_CreateMiniTable(upb_DefBuilder* ctx, upb_MessageDef* m);
Eric Salo8809a112022-11-21 13:01:06 -080012095void _upb_MessageDef_LinkMiniTable(upb_DefBuilder* ctx,
12096 const upb_MessageDef* m);
12097void _upb_MessageDef_Resolve(upb_DefBuilder* ctx, upb_MessageDef* m);
12098
12099// Allocate and initialize an array of |n| message defs.
12100upb_MessageDef* _upb_MessageDefs_New(
Mike Kruskal232ecf42023-01-14 00:09:40 -080012101 upb_DefBuilder* ctx, int n, const UPB_DESC(DescriptorProto) * const* protos,
Eric Salo8809a112022-11-21 13:01:06 -080012102 const upb_MessageDef* containing_type);
12103
12104#ifdef __cplusplus
12105} /* extern "C" */
12106#endif
12107
12108
12109#endif /* UPB_REFLECTION_MESSAGE_DEF_INTERNAL_H_ */
12110
12111#ifndef UPB_REFLECTION_SERVICE_DEF_INTERNAL_H_
12112#define UPB_REFLECTION_SERVICE_DEF_INTERNAL_H_
12113
12114
12115// Must be last.
12116
12117#ifdef __cplusplus
12118extern "C" {
12119#endif
12120
12121upb_ServiceDef* _upb_ServiceDef_At(const upb_ServiceDef* s, int i);
12122
12123// Allocate and initialize an array of |n| service defs.
12124upb_ServiceDef* _upb_ServiceDefs_New(
12125 upb_DefBuilder* ctx, int n,
Mike Kruskal232ecf42023-01-14 00:09:40 -080012126 const UPB_DESC(ServiceDescriptorProto) * const* protos);
Eric Salo8809a112022-11-21 13:01:06 -080012127
12128#ifdef __cplusplus
12129} /* extern "C" */
12130#endif
12131
12132
12133#endif /* UPB_REFLECTION_SERVICE_DEF_INTERNAL_H_ */
12134
12135#ifndef UPB_REFLECTION_DESC_STATE_INTERNAL_H_
12136#define UPB_REFLECTION_DESC_STATE_INTERNAL_H_
12137
12138
12139// Must be last.
12140
12141// Manages the storage for mini descriptor strings as they are being encoded.
12142// TODO(b/234740652): Move some of this state directly into the encoder, maybe.
12143typedef struct {
12144 upb_MtDataEncoder e;
12145 size_t bufsize;
12146 char* buf;
12147 char* ptr;
12148} upb_DescState;
12149
12150#ifdef __cplusplus
12151extern "C" {
12152#endif
12153
12154UPB_INLINE void _upb_DescState_Init(upb_DescState* d) {
12155 d->bufsize = kUpb_MtDataEncoder_MinSize * 2;
12156 d->buf = NULL;
12157 d->ptr = NULL;
12158}
12159
12160bool _upb_DescState_Grow(upb_DescState* d, upb_Arena* a);
12161
12162#ifdef __cplusplus
12163} /* extern "C" */
12164#endif
12165
12166
12167#endif /* UPB_REFLECTION_DESC_STATE_INTERNAL_H_ */
12168
12169#ifndef UPB_REFLECTION_ENUM_RESERVED_RANGE_INTERNAL_H_
12170#define UPB_REFLECTION_ENUM_RESERVED_RANGE_INTERNAL_H_
12171
12172
12173// IWYU pragma: private, include "upb/reflection/def.h"
12174
12175#ifndef UPB_REFLECTION_ENUM_RESERVED_RANGE_H_
12176#define UPB_REFLECTION_ENUM_RESERVED_RANGE_H_
12177
12178
12179// Must be last.
12180
12181#ifdef __cplusplus
12182extern "C" {
12183#endif
12184
12185int32_t upb_EnumReservedRange_Start(const upb_EnumReservedRange* r);
12186int32_t upb_EnumReservedRange_End(const upb_EnumReservedRange* r);
12187
12188#ifdef __cplusplus
12189} /* extern "C" */
12190#endif
12191
12192
12193#endif /* UPB_REFLECTION_ENUM_RESERVED_RANGE_H_ */
12194
12195// Must be last.
12196
12197#ifdef __cplusplus
12198extern "C" {
12199#endif
12200
12201upb_EnumReservedRange* _upb_EnumReservedRange_At(const upb_EnumReservedRange* r,
12202 int i);
12203
12204// Allocate and initialize an array of |n| reserved ranges owned by |e|.
12205upb_EnumReservedRange* _upb_EnumReservedRanges_New(
12206 upb_DefBuilder* ctx, int n,
Mike Kruskal232ecf42023-01-14 00:09:40 -080012207 const UPB_DESC(EnumDescriptorProto_EnumReservedRange) * const* protos,
Eric Salo8809a112022-11-21 13:01:06 -080012208 const upb_EnumDef* e);
12209
12210#ifdef __cplusplus
12211} /* extern "C" */
12212#endif
12213
12214
12215#endif /* UPB_REFLECTION_ENUM_RESERVED_RANGE_INTERNAL_H_ */
12216
12217#ifndef UPB_REFLECTION_EXTENSION_RANGE_INTERNAL_H_
12218#define UPB_REFLECTION_EXTENSION_RANGE_INTERNAL_H_
12219
12220
12221// Must be last.
12222
12223#ifdef __cplusplus
12224extern "C" {
12225#endif
12226
12227upb_ExtensionRange* _upb_ExtensionRange_At(const upb_ExtensionRange* r, int i);
12228
12229// Allocate and initialize an array of |n| extension ranges owned by |m|.
12230upb_ExtensionRange* _upb_ExtensionRanges_New(
12231 upb_DefBuilder* ctx, int n,
Mike Kruskal232ecf42023-01-14 00:09:40 -080012232 const UPB_DESC(DescriptorProto_ExtensionRange) * const* protos,
Eric Salo8809a112022-11-21 13:01:06 -080012233 const upb_MessageDef* m);
12234
12235#ifdef __cplusplus
12236} /* extern "C" */
12237#endif
12238
12239
12240#endif /* UPB_REFLECTION_EXTENSION_RANGE_INTERNAL_H_ */
12241
12242#ifndef UPB_REFLECTION_ONEOF_DEF_INTERNAL_H_
12243#define UPB_REFLECTION_ONEOF_DEF_INTERNAL_H_
12244
12245
12246// Must be last.
12247
12248#ifdef __cplusplus
12249extern "C" {
12250#endif
12251
12252upb_OneofDef* _upb_OneofDef_At(const upb_OneofDef* o, int i);
Jakob Buchgraberc0c79b22023-03-20 08:13:52 -070012253void _upb_OneofDef_Insert(upb_DefBuilder* ctx, upb_OneofDef* o,
12254 const upb_FieldDef* f, const char* name, size_t size);
Eric Salo8809a112022-11-21 13:01:06 -080012255
12256// Allocate and initialize an array of |n| oneof defs owned by |m|.
12257upb_OneofDef* _upb_OneofDefs_New(
12258 upb_DefBuilder* ctx, int n,
Mike Kruskal232ecf42023-01-14 00:09:40 -080012259 const UPB_DESC(OneofDescriptorProto) * const* protos, upb_MessageDef* m);
Eric Salo8809a112022-11-21 13:01:06 -080012260
12261size_t _upb_OneofDefs_Finalize(upb_DefBuilder* ctx, upb_MessageDef* m);
12262
12263#ifdef __cplusplus
12264} /* extern "C" */
12265#endif
12266
12267
12268#endif /* UPB_REFLECTION_ONEOF_DEF_INTERNAL_H_ */
12269
12270#ifndef UPB_REFLECTION_MESSAGE_RESERVED_RANGE_INTERNAL_H_
12271#define UPB_REFLECTION_MESSAGE_RESERVED_RANGE_INTERNAL_H_
12272
12273
12274// IWYU pragma: private, include "upb/reflection/def.h"
12275
12276#ifndef UPB_REFLECTION_MESSAGE_RESERVED_RANGE_H_
12277#define UPB_REFLECTION_MESSAGE_RESERVED_RANGE_H_
12278
12279
12280// Must be last.
12281
12282#ifdef __cplusplus
12283extern "C" {
12284#endif
12285
12286int32_t upb_MessageReservedRange_Start(const upb_MessageReservedRange* r);
12287int32_t upb_MessageReservedRange_End(const upb_MessageReservedRange* r);
12288
12289#ifdef __cplusplus
12290} /* extern "C" */
12291#endif
12292
12293
12294#endif /* UPB_REFLECTION_MESSAGE_RESERVED_RANGE_H_ */
12295
12296// Must be last.
12297
12298#ifdef __cplusplus
12299extern "C" {
12300#endif
12301
12302upb_MessageReservedRange* _upb_MessageReservedRange_At(
12303 const upb_MessageReservedRange* r, int i);
12304
12305// Allocate and initialize an array of |n| reserved ranges owned by |m|.
12306upb_MessageReservedRange* _upb_MessageReservedRanges_New(
12307 upb_DefBuilder* ctx, int n,
Mike Kruskal232ecf42023-01-14 00:09:40 -080012308 const UPB_DESC(DescriptorProto_ReservedRange) * const* protos,
Eric Salo8809a112022-11-21 13:01:06 -080012309 const upb_MessageDef* m);
12310
12311#ifdef __cplusplus
12312} /* extern "C" */
12313#endif
12314
12315
12316#endif /* UPB_REFLECTION_MESSAGE_RESERVED_RANGE_INTERNAL_H_ */
12317
12318#ifndef UPB_REFLECTION_METHOD_DEF_INTERNAL_H_
12319#define UPB_REFLECTION_METHOD_DEF_INTERNAL_H_
12320
12321
12322// Must be last.
12323
12324#ifdef __cplusplus
12325extern "C" {
12326#endif
12327
12328upb_MethodDef* _upb_MethodDef_At(const upb_MethodDef* m, int i);
12329
12330// Allocate and initialize an array of |n| method defs owned by |s|.
12331upb_MethodDef* _upb_MethodDefs_New(
12332 upb_DefBuilder* ctx, int n,
Mike Kruskal232ecf42023-01-14 00:09:40 -080012333 const UPB_DESC(MethodDescriptorProto) * const* protos, upb_ServiceDef* s);
Eric Salo8809a112022-11-21 13:01:06 -080012334
12335#ifdef __cplusplus
12336} /* extern "C" */
12337#endif
12338
12339
12340#endif /* UPB_REFLECTION_METHOD_DEF_INTERNAL_H_ */
12341
12342#ifndef UPB_WIRE_COMMON_INTERNAL_H_
12343#define UPB_WIRE_COMMON_INTERNAL_H_
12344
12345// Must be last.
12346
12347// MessageSet wire format is:
12348// message MessageSet {
12349// repeated group Item = 1 {
12350// required int32 type_id = 2;
12351// required bytes message = 3;
12352// }
12353// }
12354
12355enum {
12356 kUpb_MsgSet_Item = 1,
12357 kUpb_MsgSet_TypeId = 2,
12358 kUpb_MsgSet_Message = 3,
12359};
12360
12361
12362#endif /* UPB_WIRE_COMMON_INTERNAL_H_ */
12363
12364/*
12365 * Internal implementation details of the decoder that are shared between
12366 * decode.c and decode_fast.c.
12367 */
12368
12369#ifndef UPB_WIRE_DECODE_INTERNAL_H_
12370#define UPB_WIRE_DECODE_INTERNAL_H_
12371
Eric Salo3f36a912022-12-05 14:12:25 -080012372#include "utf8_range.h"
Joshua Habermand3995ec2022-09-30 16:54:39 -070012373
12374// Must be last.
12375
12376#define DECODE_NOGROUP (uint32_t) - 1
12377
12378typedef struct upb_Decoder {
Eric Salo10505992022-12-12 12:16:36 -080012379 upb_EpsCopyInputStream input;
12380 const upb_ExtensionRegistry* extreg;
12381 const char* unknown; // Start of unknown data, preserve at buffer flip
12382 upb_Message* unknown_msg; // Pointer to preserve data to
12383 int depth; // Tracks recursion depth to bound stack usage.
12384 uint32_t end_group; // field number of END_GROUP tag, else DECODE_NOGROUP.
Joshua Habermand3995ec2022-09-30 16:54:39 -070012385 uint16_t options;
12386 bool missing_required;
Joshua Habermand3995ec2022-09-30 16:54:39 -070012387 upb_Arena arena;
Mike Kruskal232ecf42023-01-14 00:09:40 -080012388 upb_DecodeStatus status;
Joshua Habermand3995ec2022-09-30 16:54:39 -070012389 jmp_buf err;
12390
12391#ifndef NDEBUG
12392 const char* debug_tagstart;
12393 const char* debug_valstart;
12394#endif
12395} upb_Decoder;
12396
12397/* Error function that will abort decoding with longjmp(). We can't declare this
12398 * UPB_NORETURN, even though it is appropriate, because if we do then compilers
12399 * will "helpfully" refuse to tailcall to it
12400 * (see: https://stackoverflow.com/a/55657013), which will defeat a major goal
12401 * of our optimizations. That is also why we must declare it in a separate file,
12402 * otherwise the compiler will see that it calls longjmp() and deduce that it is
12403 * noreturn. */
12404const char* _upb_FastDecoder_ErrorJmp(upb_Decoder* d, int status);
12405
12406extern const uint8_t upb_utf8_offsets[];
12407
12408UPB_INLINE
12409bool _upb_Decoder_VerifyUtf8Inline(const char* ptr, int len) {
12410 const char* end = ptr + len;
12411
12412 // Check 8 bytes at a time for any non-ASCII char.
12413 while (end - ptr >= 8) {
12414 uint64_t data;
12415 memcpy(&data, ptr, 8);
12416 if (data & 0x8080808080808080) goto non_ascii;
12417 ptr += 8;
12418 }
12419
12420 // Check one byte at a time for non-ASCII.
12421 while (ptr < end) {
12422 if (*ptr & 0x80) goto non_ascii;
12423 ptr++;
12424 }
12425
12426 return true;
12427
12428non_ascii:
12429 return utf8_range2((const unsigned char*)ptr, end - ptr) == 0;
12430}
12431
12432const char* _upb_Decoder_CheckRequired(upb_Decoder* d, const char* ptr,
12433 const upb_Message* msg,
12434 const upb_MiniTable* l);
12435
12436/* x86-64 pointers always have the high 16 bits matching. So we can shift
12437 * left 8 and right 8 without loss of information. */
12438UPB_INLINE intptr_t decode_totable(const upb_MiniTable* tablep) {
12439 return ((intptr_t)tablep << 8) | tablep->table_mask;
12440}
12441
12442UPB_INLINE const upb_MiniTable* decode_totablep(intptr_t table) {
12443 return (const upb_MiniTable*)(table >> 8);
12444}
12445
Eric Salo10505992022-12-12 12:16:36 -080012446const char* _upb_Decoder_IsDoneFallback(upb_EpsCopyInputStream* e,
12447 const char* ptr, int overrun);
12448
12449UPB_INLINE bool _upb_Decoder_IsDone(upb_Decoder* d, const char** ptr) {
Eric Salob7d54ac2022-12-29 11:59:42 -080012450 return upb_EpsCopyInputStream_IsDoneWithCallback(
12451 &d->input, ptr, &_upb_Decoder_IsDoneFallback);
Joshua Habermand3995ec2022-09-30 16:54:39 -070012452}
12453
Eric Salo10505992022-12-12 12:16:36 -080012454UPB_INLINE const char* _upb_Decoder_BufferFlipCallback(
12455 upb_EpsCopyInputStream* e, const char* old_end, const char* new_start) {
12456 upb_Decoder* d = (upb_Decoder*)e;
12457 if (!old_end) _upb_FastDecoder_ErrorJmp(d, kUpb_DecodeStatus_Malformed);
Joshua Habermand3995ec2022-09-30 16:54:39 -070012458
Eric Salo10505992022-12-12 12:16:36 -080012459 if (d->unknown) {
12460 if (!_upb_Message_AddUnknown(d->unknown_msg, d->unknown,
12461 old_end - d->unknown, &d->arena)) {
12462 _upb_FastDecoder_ErrorJmp(d, kUpb_DecodeStatus_OutOfMemory);
12463 }
12464 d->unknown = new_start;
Joshua Habermand3995ec2022-09-30 16:54:39 -070012465 }
Eric Salo10505992022-12-12 12:16:36 -080012466 return new_start;
Joshua Habermand3995ec2022-09-30 16:54:39 -070012467}
12468
12469#if UPB_FASTTABLE
12470UPB_INLINE
12471const char* _upb_FastDecoder_TagDispatch(upb_Decoder* d, const char* ptr,
12472 upb_Message* msg, intptr_t table,
12473 uint64_t hasbits, uint64_t tag) {
12474 const upb_MiniTable* table_p = decode_totablep(table);
12475 uint8_t mask = table;
12476 uint64_t data;
12477 size_t idx = tag & mask;
12478 UPB_ASSUME((idx & 7) == 0);
12479 idx >>= 3;
12480 data = table_p->fasttable[idx].field_data ^ tag;
12481 UPB_MUSTTAIL return table_p->fasttable[idx].field_parser(d, ptr, msg, table,
12482 hasbits, data);
12483}
12484#endif
12485
12486UPB_INLINE uint32_t _upb_FastDecoder_LoadTag(const char* ptr) {
12487 uint16_t tag;
12488 memcpy(&tag, ptr, 2);
12489 return tag;
12490}
12491
Joshua Habermand3995ec2022-09-30 16:54:39 -070012492
Mike Kruskal9cf9db82022-11-04 21:22:31 -070012493#endif /* UPB_WIRE_DECODE_INTERNAL_H_ */
Joshua Habermand3995ec2022-09-30 16:54:39 -070012494
Eric Salo8809a112022-11-21 13:01:06 -080012495// This should #undef all macros #defined in def.inc
Joshua Haberman9abf6e22021-01-13 12:16:25 -080012496
Joshua Haberman9abf6e22021-01-13 12:16:25 -080012497#undef UPB_SIZE
12498#undef UPB_PTR_AT
Joshua Habermandd69a482021-05-17 22:40:33 -070012499#undef UPB_MAPTYPE_STRING
Eric Salo3f36a912022-12-05 14:12:25 -080012500#undef UPB_EXPORT
Joshua Haberman9abf6e22021-01-13 12:16:25 -080012501#undef UPB_INLINE
Eric Salo3f36a912022-12-05 14:12:25 -080012502#undef UPB_API
12503#undef UPB_API_INLINE
Joshua Haberman9abf6e22021-01-13 12:16:25 -080012504#undef UPB_ALIGN_UP
12505#undef UPB_ALIGN_DOWN
12506#undef UPB_ALIGN_MALLOC
12507#undef UPB_ALIGN_OF
Joshua Habermand3995ec2022-09-30 16:54:39 -070012508#undef UPB_MALLOC_ALIGN
Joshua Habermandd69a482021-05-17 22:40:33 -070012509#undef UPB_LIKELY
12510#undef UPB_UNLIKELY
Joshua Haberman9abf6e22021-01-13 12:16:25 -080012511#undef UPB_FORCEINLINE
12512#undef UPB_NOINLINE
12513#undef UPB_NORETURN
Joshua Habermandd69a482021-05-17 22:40:33 -070012514#undef UPB_PRINTF
Joshua Haberman9abf6e22021-01-13 12:16:25 -080012515#undef UPB_MAX
12516#undef UPB_MIN
12517#undef UPB_UNUSED
12518#undef UPB_ASSUME
12519#undef UPB_ASSERT
12520#undef UPB_UNREACHABLE
Joshua Habermandd69a482021-05-17 22:40:33 -070012521#undef UPB_SETJMP
12522#undef UPB_LONGJMP
12523#undef UPB_PTRADD
12524#undef UPB_MUSTTAIL
12525#undef UPB_FASTTABLE_SUPPORTED
Mike Kruskal232ecf42023-01-14 00:09:40 -080012526#undef UPB_FASTTABLE_MASK
Joshua Habermandd69a482021-05-17 22:40:33 -070012527#undef UPB_FASTTABLE
12528#undef UPB_FASTTABLE_INIT
Joshua Haberman9abf6e22021-01-13 12:16:25 -080012529#undef UPB_POISON_MEMORY_REGION
12530#undef UPB_UNPOISON_MEMORY_REGION
12531#undef UPB_ASAN
Joshua Haberman7ecf43f2022-03-14 13:11:29 -070012532#undef UPB_TREAT_PROTO2_ENUMS_LIKE_PROTO3
Joshua Habermand3995ec2022-09-30 16:54:39 -070012533#undef UPB_DEPRECATED
12534#undef UPB_GNUC_MIN
Mike Kruskal232ecf42023-01-14 00:09:40 -080012535#undef UPB_DESCRIPTOR_UPB_H_FILENAME
12536#undef UPB_DESC
12537#undef UPB_IS_GOOGLE3
Eric Salodfb71552023-03-22 12:35:09 -070012538#undef UPB_ATOMIC
12539#undef UPB_USE_C11_ATOMICS
Deanna Garciac7d979d2023-04-14 17:22:13 -070012540#undef UPB_PRIVATE