google-protobuf 3.6.1-x64-mingw32 → 3.7.0.rc.2-x64-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of google-protobuf might be problematic. Click here for more details.

@@ -1,4 +1,110 @@
1
1
  // Amalgamated source file
2
+
3
+ #if UINTPTR_MAX == 0xffffffff
4
+ #define UPB_SIZE(size32, size64) size32
5
+ #else
6
+ #define UPB_SIZE(size32, size64) size64
7
+ #endif
8
+
9
+ #define UPB_FIELD_AT(msg, fieldtype, offset) \
10
+ *(fieldtype*)((const char*)(msg) + offset)
11
+
12
+ #define UPB_READ_ONEOF(msg, fieldtype, offset, case_offset, case_val, default) \
13
+ UPB_FIELD_AT(msg, int, case_offset) == case_val \
14
+ ? UPB_FIELD_AT(msg, fieldtype, offset) \
15
+ : default
16
+
17
+ #define UPB_WRITE_ONEOF(msg, fieldtype, offset, value, case_offset, case_val) \
18
+ UPB_FIELD_AT(msg, int, case_offset) = case_val; \
19
+ UPB_FIELD_AT(msg, fieldtype, offset) = value;
20
+ /*
21
+ ** upb::Message is a representation for protobuf messages.
22
+ **
23
+ ** However it differs from other common representations like
24
+ ** google::protobuf::Message in one key way: it does not prescribe any
25
+ ** ownership between messages and submessages, and it relies on the
26
+ ** client to ensure that each submessage/array/map outlives its parent.
27
+ **
28
+ ** All messages, arrays, and maps live in an Arena. If the entire message
29
+ ** tree is in the same arena, ensuring proper lifetimes is simple. However
30
+ ** the client can mix arenas as long as they ensure that there are no
31
+ ** dangling pointers.
32
+ **
33
+ ** A client can access a upb::Message without knowing anything about
34
+ ** ownership semantics, but to create or mutate a message a user needs
35
+ ** to implement the memory management themselves.
36
+ **
37
+ ** TODO: UTF-8 checking?
38
+ **/
39
+
40
+ #ifndef UPB_MSG_H_
41
+ #define UPB_MSG_H_
42
+
43
+ /*
44
+ ** Defs are upb's internal representation of the constructs that can appear
45
+ ** in a .proto file:
46
+ **
47
+ ** - upb::MessageDef (upb_msgdef): describes a "message" construct.
48
+ ** - upb::FieldDef (upb_fielddef): describes a message field.
49
+ ** - upb::FileDef (upb_filedef): describes a .proto file and its defs.
50
+ ** - upb::EnumDef (upb_enumdef): describes an enum.
51
+ ** - upb::OneofDef (upb_oneofdef): describes a oneof.
52
+ ** - upb::Def (upb_def): base class of all the others.
53
+ **
54
+ ** TODO: definitions of services.
55
+ **
56
+ ** Like upb_refcounted objects, defs are mutable only until frozen, and are
57
+ ** only thread-safe once frozen.
58
+ **
59
+ ** This is a mixed C/C++ interface that offers a full API to both languages.
60
+ ** See the top-level README for more information.
61
+ */
62
+
63
+ #ifndef UPB_DEF_H_
64
+ #define UPB_DEF_H_
65
+
66
+ /*
67
+ ** upb::RefCounted (upb_refcounted)
68
+ **
69
+ ** A refcounting scheme that supports circular refs. It accomplishes this by
70
+ ** partitioning the set of objects into groups such that no cycle spans groups;
71
+ ** we can then reference-count the group as a whole and ignore refs within the
72
+ ** group. When objects are mutable, these groups are computed very
73
+ ** conservatively; we group any objects that have ever had a link between them.
74
+ ** When objects are frozen, we compute strongly-connected components which
75
+ ** allows us to be precise and only group objects that are actually cyclic.
76
+ **
77
+ ** This is a mixed C/C++ interface that offers a full API to both languages.
78
+ ** See the top-level README for more information.
79
+ */
80
+
81
+ #ifndef UPB_REFCOUNTED_H_
82
+ #define UPB_REFCOUNTED_H_
83
+
84
+ /*
85
+ ** upb_table
86
+ **
87
+ ** This header is INTERNAL-ONLY! Its interfaces are not public or stable!
88
+ ** This file defines very fast int->upb_value (inttable) and string->upb_value
89
+ ** (strtable) hash tables.
90
+ **
91
+ ** The table uses chained scatter with Brent's variation (inspired by the Lua
92
+ ** implementation of hash tables). The hash function for strings is Austin
93
+ ** Appleby's "MurmurHash."
94
+ **
95
+ ** The inttable uses uintptr_t as its key, which guarantees it can be used to
96
+ ** store pointers or integers of at least 32 bits (upb isn't really useful on
97
+ ** systems where sizeof(void*) < 4).
98
+ **
99
+ ** The table must be homogenous (all values of the same type). In debug
100
+ ** mode, we check this on insert and lookup.
101
+ */
102
+
103
+ #ifndef UPB_TABLE_H_
104
+ #define UPB_TABLE_H_
105
+
106
+ #include <stdint.h>
107
+ #include <string.h>
2
108
  /*
3
109
  ** This file contains shared definitions that are widely used across upb.
4
110
  **
@@ -737,106 +843,6 @@ template <int N> class upb::InlinedEnvironment : public upb::Environment {
737
843
 
738
844
 
739
845
  #endif /* UPB_H_ */
740
- /*
741
- ** upb_decode: parsing into a upb_msg using a upb_msglayout.
742
- */
743
-
744
- #ifndef UPB_DECODE_H_
745
- #define UPB_DECODE_H_
746
-
747
- /*
748
- ** upb::Message is a representation for protobuf messages.
749
- **
750
- ** However it differs from other common representations like
751
- ** google::protobuf::Message in one key way: it does not prescribe any
752
- ** ownership between messages and submessages, and it relies on the
753
- ** client to delete each message/submessage/array/map at the appropriate
754
- ** time.
755
- **
756
- ** A client can access a upb::Message without knowing anything about
757
- ** ownership semantics, but to create or mutate a message a user needs
758
- ** to implement the memory management themselves.
759
- **
760
- ** Currently all messages, arrays, and maps store a upb_alloc* internally.
761
- ** Mutating operations use this when they require dynamically-allocated
762
- ** memory. We could potentially eliminate this size overhead later by
763
- ** letting the user flip a bit on the factory that prevents this from
764
- ** being stored. The user would then need to use separate functions where
765
- ** the upb_alloc* is passed explicitly. However for handlers to populate
766
- ** such structures, they would need a place to store this upb_alloc* during
767
- ** parsing; upb_handlers don't currently have a good way to accommodate this.
768
- **
769
- ** TODO: UTF-8 checking?
770
- **/
771
-
772
- #ifndef UPB_MSG_H_
773
- #define UPB_MSG_H_
774
-
775
- /*
776
- ** Defs are upb's internal representation of the constructs that can appear
777
- ** in a .proto file:
778
- **
779
- ** - upb::MessageDef (upb_msgdef): describes a "message" construct.
780
- ** - upb::FieldDef (upb_fielddef): describes a message field.
781
- ** - upb::FileDef (upb_filedef): describes a .proto file and its defs.
782
- ** - upb::EnumDef (upb_enumdef): describes an enum.
783
- ** - upb::OneofDef (upb_oneofdef): describes a oneof.
784
- ** - upb::Def (upb_def): base class of all the others.
785
- **
786
- ** TODO: definitions of services.
787
- **
788
- ** Like upb_refcounted objects, defs are mutable only until frozen, and are
789
- ** only thread-safe once frozen.
790
- **
791
- ** This is a mixed C/C++ interface that offers a full API to both languages.
792
- ** See the top-level README for more information.
793
- */
794
-
795
- #ifndef UPB_DEF_H_
796
- #define UPB_DEF_H_
797
-
798
- /*
799
- ** upb::RefCounted (upb_refcounted)
800
- **
801
- ** A refcounting scheme that supports circular refs. It accomplishes this by
802
- ** partitioning the set of objects into groups such that no cycle spans groups;
803
- ** we can then reference-count the group as a whole and ignore refs within the
804
- ** group. When objects are mutable, these groups are computed very
805
- ** conservatively; we group any objects that have ever had a link between them.
806
- ** When objects are frozen, we compute strongly-connected components which
807
- ** allows us to be precise and only group objects that are actually cyclic.
808
- **
809
- ** This is a mixed C/C++ interface that offers a full API to both languages.
810
- ** See the top-level README for more information.
811
- */
812
-
813
- #ifndef UPB_REFCOUNTED_H_
814
- #define UPB_REFCOUNTED_H_
815
-
816
- /*
817
- ** upb_table
818
- **
819
- ** This header is INTERNAL-ONLY! Its interfaces are not public or stable!
820
- ** This file defines very fast int->upb_value (inttable) and string->upb_value
821
- ** (strtable) hash tables.
822
- **
823
- ** The table uses chained scatter with Brent's variation (inspired by the Lua
824
- ** implementation of hash tables). The hash function for strings is Austin
825
- ** Appleby's "MurmurHash."
826
- **
827
- ** The inttable uses uintptr_t as its key, which guarantees it can be used to
828
- ** store pointers or integers of at least 32 bits (upb isn't really useful on
829
- ** systems where sizeof(void*) < 4).
830
- **
831
- ** The table must be homogenous (all values of the same type). In debug
832
- ** mode, we check this on insert and lookup.
833
- */
834
-
835
- #ifndef UPB_TABLE_H_
836
- #define UPB_TABLE_H_
837
-
838
- #include <stdint.h>
839
- #include <string.h>
840
846
 
841
847
  #ifdef __cplusplus
842
848
  extern "C" {
@@ -1995,6 +2001,36 @@ typedef enum {
1995
2001
  UPB_SYNTAX_PROTO3 = 3
1996
2002
  } upb_syntax_t;
1997
2003
 
2004
+ /* All the different kind of well known type messages. For simplicity of check,
2005
+ * number wrappers and string wrappers are grouped together. Make sure the
2006
+ * order and merber of these groups are not changed.
2007
+ */
2008
+ typedef enum {
2009
+ UPB_WELLKNOWN_UNSPECIFIED,
2010
+ UPB_WELLKNOWN_ANY,
2011
+ UPB_WELLKNOWN_FIELDMASK,
2012
+ UPB_WELLKNOWN_DURATION,
2013
+ UPB_WELLKNOWN_TIMESTAMP,
2014
+ /* number wrappers */
2015
+ UPB_WELLKNOWN_DOUBLEVALUE,
2016
+ UPB_WELLKNOWN_FLOATVALUE,
2017
+ UPB_WELLKNOWN_INT64VALUE,
2018
+ UPB_WELLKNOWN_UINT64VALUE,
2019
+ UPB_WELLKNOWN_INT32VALUE,
2020
+ UPB_WELLKNOWN_UINT32VALUE,
2021
+ /* string wrappers */
2022
+ UPB_WELLKNOWN_STRINGVALUE,
2023
+ UPB_WELLKNOWN_BYTESVALUE,
2024
+ UPB_WELLKNOWN_BOOLVALUE,
2025
+ UPB_WELLKNOWN_VALUE,
2026
+ UPB_WELLKNOWN_LISTVALUE,
2027
+ UPB_WELLKNOWN_STRUCT
2028
+ } upb_wellknowntype_t;
2029
+
2030
+
2031
+ /* Maps descriptor type -> upb field type. */
2032
+ extern const uint8_t upb_desctype_to_fieldtype[];
2033
+
1998
2034
  /* Maximum field number allowed for FieldDefs. This is an inherent limit of the
1999
2035
  * protobuf wire format. */
2000
2036
  #define UPB_MAX_FIELDNUMBER ((1 << 29) - 1)
@@ -2376,6 +2412,18 @@ typedef upb_strtable_iter upb_msg_oneof_iter;
2376
2412
  #define UPB_MAPENTRY_KEY 1
2377
2413
  #define UPB_MAPENTRY_VALUE 2
2378
2414
 
2415
+ /* Well-known field tag numbers for Any messages. */
2416
+ #define UPB_ANY_TYPE 1
2417
+ #define UPB_ANY_VALUE 2
2418
+
2419
+ /* Well-known field tag numbers for timestamp messages. */
2420
+ #define UPB_DURATION_SECONDS 1
2421
+ #define UPB_DURATION_NANOS 2
2422
+
2423
+ /* Well-known field tag numbers for duration messages. */
2424
+ #define UPB_TIMESTAMP_SECONDS 1
2425
+ #define UPB_TIMESTAMP_NANOS 2
2426
+
2379
2427
  #ifdef __cplusplus
2380
2428
 
2381
2429
  /* Structure that describes a single .proto message type.
@@ -2490,6 +2538,13 @@ class upb::MessageDef {
2490
2538
  void setmapentry(bool map_entry);
2491
2539
  bool mapentry() const;
2492
2540
 
2541
+ /* Return the type of well known type message. UPB_WELLKNOWN_UNSPECIFIED for
2542
+ * non-well-known message. */
2543
+ upb_wellknowntype_t wellknowntype() const;
2544
+
2545
+ /* Whether is a number wrapper. */
2546
+ bool isnumberwrapper() const;
2547
+
2493
2548
  /* Iteration over fields. The order is undefined. */
2494
2549
  class field_iterator
2495
2550
  : public std::iterator<std::forward_iterator_tag, FieldDef*> {
@@ -2631,6 +2686,8 @@ bool upb_msgdef_addoneof(upb_msgdef *m, upb_oneofdef *o, const void *ref_donor,
2631
2686
  bool upb_msgdef_setfullname(upb_msgdef *m, const char *fullname, upb_status *s);
2632
2687
  void upb_msgdef_setmapentry(upb_msgdef *m, bool map_entry);
2633
2688
  bool upb_msgdef_mapentry(const upb_msgdef *m);
2689
+ upb_wellknowntype_t upb_msgdef_wellknowntype(const upb_msgdef *m);
2690
+ bool upb_msgdef_isnumberwrapper(const upb_msgdef *m);
2634
2691
  bool upb_msgdef_setsyntax(upb_msgdef *m, upb_syntax_t syntax);
2635
2692
 
2636
2693
  /* Field lookup in a couple of different variations:
@@ -3214,6 +3271,8 @@ const upb_def *upb_symtab_resolve(const upb_symtab *s, const char *base,
3214
3271
  const char *sym);
3215
3272
  const upb_def *upb_symtab_lookup(const upb_symtab *s, const char *sym);
3216
3273
  const upb_msgdef *upb_symtab_lookupmsg(const upb_symtab *s, const char *sym);
3274
+ const upb_msgdef *upb_symtab_lookupmsg2(
3275
+ const upb_symtab *s, const char *sym, size_t len);
3217
3276
  const upb_enumdef *upb_symtab_lookupenum(const upb_symtab *s, const char *sym);
3218
3277
  bool upb_symtab_add(upb_symtab *s, upb_def *const*defs, size_t n,
3219
3278
  void *ref_donor, upb_status *status);
@@ -3570,6 +3629,12 @@ inline void MessageDef::setmapentry(bool map_entry) {
3570
3629
  inline bool MessageDef::mapentry() const {
3571
3630
  return upb_msgdef_mapentry(this);
3572
3631
  }
3632
+ inline upb_wellknowntype_t MessageDef::wellknowntype() const {
3633
+ return upb_msgdef_wellknowntype(this);
3634
+ }
3635
+ inline bool MessageDef::isnumberwrapper() const {
3636
+ return upb_msgdef_isnumberwrapper(this);
3637
+ }
3573
3638
  inline MessageDef::field_iterator MessageDef::field_begin() {
3574
3639
  return field_iterator(this);
3575
3640
  }
@@ -4697,6 +4762,34 @@ UPB_INLINE upb_selector_t upb_handlers_getendselector(upb_selector_t start) {
4697
4762
  uint32_t upb_handlers_selectorbaseoffset(const upb_fielddef *f);
4698
4763
  uint32_t upb_handlers_selectorcount(const upb_fielddef *f);
4699
4764
 
4765
+
4766
+ /** Message handlers ******************************************************************/
4767
+
4768
+ /* These are the handlers used internally by upb_msgfactory_getmergehandlers().
4769
+ * They write scalar data to a known offset from the message pointer.
4770
+ *
4771
+ * These would be trivial for anyone to implement themselves, but it's better
4772
+ * to use these because some JITs will recognize and specialize these instead
4773
+ * of actually calling the function. */
4774
+
4775
+ /* Sets a handler for the given primitive field that will write the data at the
4776
+ * given offset. If hasbit > 0, also sets a hasbit at the given bit offset
4777
+ * (addressing each byte low to high). */
4778
+ bool upb_msg_setscalarhandler(upb_handlers *h,
4779
+ const upb_fielddef *f,
4780
+ size_t offset,
4781
+ int32_t hasbit);
4782
+
4783
+ /* If the given handler is a msghandlers_primitive field, returns true and sets
4784
+ * *type, *offset and *hasbit. Otherwise returns false. */
4785
+ bool upb_msg_getscalarhandlerdata(const upb_handlers *h,
4786
+ upb_selector_t s,
4787
+ upb_fieldtype_t *type,
4788
+ size_t *offset,
4789
+ int32_t *hasbit);
4790
+
4791
+
4792
+
4700
4793
  UPB_END_EXTERN_C
4701
4794
 
4702
4795
  /*
@@ -6381,21 +6474,14 @@ namespace upb {
6381
6474
  class Array;
6382
6475
  class Map;
6383
6476
  class MapIterator;
6384
- class MessageFactory;
6385
6477
  class MessageLayout;
6386
- class Visitor;
6387
- class VisitorPlan;
6388
6478
  }
6389
6479
 
6390
6480
  #endif
6391
6481
 
6392
- UPB_DECLARE_TYPE(upb::MessageFactory, upb_msgfactory)
6393
- UPB_DECLARE_TYPE(upb::MessageLayout, upb_msglayout)
6394
6482
  UPB_DECLARE_TYPE(upb::Array, upb_array)
6395
6483
  UPB_DECLARE_TYPE(upb::Map, upb_map)
6396
6484
  UPB_DECLARE_TYPE(upb::MapIterator, upb_mapiter)
6397
- UPB_DECLARE_TYPE(upb::Visitor, upb_visitor)
6398
- UPB_DECLARE_TYPE(upb::VisitorPlan, upb_visitorplan)
6399
6485
 
6400
6486
  /* TODO(haberman): C++ accessors */
6401
6487
 
@@ -6406,53 +6492,28 @@ typedef void upb_msg;
6406
6492
 
6407
6493
  /** upb_msglayout *************************************************************/
6408
6494
 
6409
- /* upb_msglayout represents the memory layout of a given upb_msgdef. You get
6410
- * instances of this from a upb_msgfactory, and the factory always owns the
6411
- * msglayout. */
6412
-
6413
-
6414
- /** upb_visitor ***************************************************************/
6415
-
6416
- /* upb_visitor will visit all the fields of a message and its submessages. It
6417
- * uses a upb_visitorplan which you can obtain from a upb_msgfactory. */
6418
-
6419
- upb_visitor *upb_visitor_create(upb_env *e, const upb_visitorplan *vp,
6420
- upb_sink *output);
6421
- bool upb_visitor_visitmsg(upb_visitor *v, const upb_msg *msg);
6422
-
6423
-
6424
- /** upb_msgfactory ************************************************************/
6425
-
6426
- /* A upb_msgfactory contains a cache of upb_msglayout, upb_handlers, and
6427
- * upb_visitorplan objects. These are the objects necessary to represent,
6428
- * populate, and and visit upb_msg objects.
6429
- *
6430
- * These caches are all populated by upb_msgdef, and lazily created on demand.
6431
- */
6432
-
6433
- /* Creates and destroys a msgfactory, respectively. The messages for this
6434
- * msgfactory must come from |symtab| (which should outlive the msgfactory). */
6435
- upb_msgfactory *upb_msgfactory_new(const upb_symtab *symtab);
6436
- void upb_msgfactory_free(upb_msgfactory *f);
6495
+ /* upb_msglayout represents the memory layout of a given upb_msgdef. The
6496
+ * members are public so generated code can initialize them, but users MUST NOT
6497
+ * read or write any of its members. */
6437
6498
 
6438
- const upb_symtab *upb_msgfactory_symtab(const upb_msgfactory *f);
6499
+ typedef struct {
6500
+ uint32_t number;
6501
+ uint16_t offset;
6502
+ int16_t presence; /* If >0, hasbit_index+1. If <0, oneof_index+1. */
6503
+ uint16_t submsg_index; /* undefined if descriptortype != MESSAGE or GROUP. */
6504
+ uint8_t descriptortype;
6505
+ uint8_t label;
6506
+ } upb_msglayout_field;
6439
6507
 
6440
- /* The functions to get cached objects, lazily creating them on demand. These
6441
- * all require:
6442
- *
6443
- * - m is in upb_msgfactory_symtab(f)
6444
- * - upb_msgdef_mapentry(m) == false (since map messages can't have layouts).
6445
- *
6446
- * The returned objects will live for as long as the msgfactory does.
6447
- *
6448
- * TODO(haberman): consider making this thread-safe and take a const
6449
- * upb_msgfactory. */
6450
- const upb_msglayout *upb_msgfactory_getlayout(upb_msgfactory *f,
6451
- const upb_msgdef *m);
6452
- const upb_handlers *upb_msgfactory_getmergehandlers(upb_msgfactory *f,
6453
- const upb_msgdef *m);
6454
- const upb_visitorplan *upb_msgfactory_getvisitorplan(upb_msgfactory *f,
6455
- const upb_handlers *h);
6508
+ typedef struct upb_msglayout {
6509
+ const struct upb_msglayout *const* submsgs;
6510
+ const upb_msglayout_field *fields;
6511
+ /* Must be aligned to sizeof(void*). Doesn't include internal members like
6512
+ * unknown fields, extension dict, pointer to msglayout, etc. */
6513
+ uint16_t size;
6514
+ uint16_t field_count;
6515
+ bool extendable;
6516
+ } upb_msglayout;
6456
6517
 
6457
6518
 
6458
6519
  /** upb_stringview ************************************************************/
@@ -6528,52 +6589,16 @@ UPB_INLINE upb_msgval upb_msgval_makestr(const char *data, size_t size) {
6528
6589
  /** upb_msg *******************************************************************/
6529
6590
 
6530
6591
  /* A upb_msg represents a protobuf message. It always corresponds to a specific
6531
- * upb_msglayout, which describes how it is laid out in memory.
6532
- *
6533
- * The message will have a fixed size, as returned by upb_msg_sizeof(), which
6534
- * will be used to store fixed-length fields. The upb_msg may also allocate
6535
- * dynamic memory internally to store data such as:
6536
- *
6537
- * - extensions
6538
- * - unknown fields
6539
- */
6592
+ * upb_msglayout, which describes how it is laid out in memory. */
6540
6593
 
6541
- /* Returns the size of a message given this layout. */
6542
- size_t upb_msg_sizeof(const upb_msglayout *l);
6594
+ /* Creates a new message of the given type/layout in this arena. */
6595
+ upb_msg *upb_msg_new(const upb_msglayout *l, upb_arena *a);
6543
6596
 
6544
- /* upb_msg_init() / upb_msg_uninit() allow the user to use a pre-allocated
6545
- * block of memory as a message. The block's size should be upb_msg_sizeof().
6546
- * upb_msg_uninit() must be called to release internally-allocated memory
6547
- * unless the allocator is an arena that does not require freeing.
6548
- *
6549
- * Please note that upb_msg_init() may return a value that is different than
6550
- * |msg|, so you must assign the return value and not cast your memory block
6551
- * to upb_msg* directly!
6552
- *
6553
- * Please note that upb_msg_uninit() does *not* free any submessages, maps,
6554
- * or arrays referred to by this message's fields. You must free them manually
6555
- * yourself.
6556
- *
6557
- * upb_msg_uninit returns the original memory block, which may be useful if
6558
- * you dynamically allocated it (though upb_msg_new() would normally be more
6559
- * appropriate in this case). */
6560
- upb_msg *upb_msg_init(void *msg, const upb_msglayout *l, upb_alloc *a);
6561
- void *upb_msg_uninit(upb_msg *msg, const upb_msglayout *l);
6562
-
6563
- /* Like upb_msg_init() / upb_msg_uninit(), except the message's memory is
6564
- * allocated / freed from the given upb_alloc. */
6565
- upb_msg *upb_msg_new(const upb_msglayout *l, upb_alloc *a);
6566
- void upb_msg_free(upb_msg *msg, const upb_msglayout *l);
6567
-
6568
- /* Returns the upb_alloc for the given message.
6569
- * TODO(haberman): get rid of this? Not sure we want to be storing this
6570
- * for every message. */
6571
- upb_alloc *upb_msg_alloc(const upb_msg *msg);
6572
-
6573
- /* Packs the tree of messages rooted at "msg" into a single hunk of memory,
6574
- * allocated from the given allocator. */
6575
- void *upb_msg_pack(const upb_msg *msg, const upb_msglayout *l,
6576
- void *p, size_t *ofs, size_t size);
6597
+ /* Returns the arena for the given message. */
6598
+ upb_arena *upb_msg_arena(const upb_msg *msg);
6599
+
6600
+ void upb_msg_addunknown(upb_msg *msg, const char *data, size_t len);
6601
+ const char *upb_msg_getunknown(const upb_msg *msg, size_t *len);
6577
6602
 
6578
6603
  /* Read-only message API. Can be safely called by anyone. */
6579
6604
 
@@ -6627,16 +6652,12 @@ bool upb_msg_clearfield(upb_msg *msg,
6627
6652
  * semantics are the same as upb_msg. A upb_array allocates dynamic
6628
6653
  * memory internally for the array elements. */
6629
6654
 
6630
- size_t upb_array_sizeof(upb_fieldtype_t type);
6631
- void upb_array_init(upb_array *arr, upb_fieldtype_t type, upb_alloc *a);
6632
- void upb_array_uninit(upb_array *arr);
6633
- upb_array *upb_array_new(upb_fieldtype_t type, upb_alloc *a);
6634
- void upb_array_free(upb_array *arr);
6655
+ upb_array *upb_array_new(upb_fieldtype_t type, upb_arena *a);
6656
+ upb_fieldtype_t upb_array_type(const upb_array *arr);
6635
6657
 
6636
6658
  /* Read-only interface. Safe for anyone to call. */
6637
6659
 
6638
6660
  size_t upb_array_size(const upb_array *arr);
6639
- upb_fieldtype_t upb_array_type(const upb_array *arr);
6640
6661
  upb_msgval upb_array_get(const upb_array *arr, size_t i);
6641
6662
 
6642
6663
  /* Write interface. May only be called by the message's owner who can enforce
@@ -6653,12 +6674,8 @@ bool upb_array_set(upb_array *arr, size_t i, upb_msgval val);
6653
6674
  * So you must ensure that any string or message values outlive the map, and you
6654
6675
  * must delete them manually when they are no longer required. */
6655
6676
 
6656
- size_t upb_map_sizeof(upb_fieldtype_t ktype, upb_fieldtype_t vtype);
6657
- bool upb_map_init(upb_map *map, upb_fieldtype_t ktype, upb_fieldtype_t vtype,
6658
- upb_alloc *a);
6659
- void upb_map_uninit(upb_map *map);
6660
- upb_map *upb_map_new(upb_fieldtype_t ktype, upb_fieldtype_t vtype, upb_alloc *a);
6661
- void upb_map_free(upb_map *map);
6677
+ upb_map *upb_map_new(upb_fieldtype_t ktype, upb_fieldtype_t vtype,
6678
+ upb_arena *a);
6662
6679
 
6663
6680
  /* Read-only interface. Safe for anyone to call. */
6664
6681
 
@@ -6702,90 +6719,869 @@ upb_msgval upb_mapiter_value(const upb_mapiter *i);
6702
6719
  void upb_mapiter_setdone(upb_mapiter *i);
6703
6720
  bool upb_mapiter_isequal(const upb_mapiter *i1, const upb_mapiter *i2);
6704
6721
 
6722
+ UPB_END_EXTERN_C
6705
6723
 
6706
- /** Handlers ******************************************************************/
6707
-
6708
- /* These are the handlers used internally by upb_msgfactory_getmergehandlers().
6709
- * They write scalar data to a known offset from the message pointer.
6724
+ #endif /* UPB_MSG_H_ */
6725
+ /* This file was generated by upbc (the upb compiler) from the input
6726
+ * file:
6710
6727
  *
6711
- * These would be trivial for anyone to implement themselves, but it's better
6712
- * to use these because some JITs will recognize and specialize these instead
6713
- * of actually calling the function. */
6728
+ * google/protobuf/descriptor.proto
6729
+ *
6730
+ * Do not edit -- your changes will be discarded when the file is
6731
+ * regenerated. */
6714
6732
 
6715
- /* Sets a handler for the given primitive field that will write the data at the
6716
- * given offset. If hasbit > 0, also sets a hasbit at the given bit offset
6717
- * (addressing each byte low to high). */
6718
- bool upb_msg_setscalarhandler(upb_handlers *h,
6719
- const upb_fielddef *f,
6720
- size_t offset,
6721
- int32_t hasbit);
6733
+ #ifndef GOOGLE_PROTOBUF_DESCRIPTOR_PROTO_UPB_H_
6734
+ #define GOOGLE_PROTOBUF_DESCRIPTOR_PROTO_UPB_H_
6722
6735
 
6723
- /* If the given handler is a msghandlers_primitive field, returns true and sets
6724
- * *type, *offset and *hasbit. Otherwise returns false. */
6725
- bool upb_msg_getscalarhandlerdata(const upb_handlers *h,
6726
- upb_selector_t s,
6727
- upb_fieldtype_t *type,
6728
- size_t *offset,
6729
- int32_t *hasbit);
6730
6736
 
6737
+ /*
6738
+ ** upb_decode: parsing into a upb_msg using a upb_msglayout.
6739
+ */
6731
6740
 
6732
- /** Interfaces for generated code *********************************************/
6741
+ #ifndef UPB_DECODE_H_
6742
+ #define UPB_DECODE_H_
6733
6743
 
6734
- #define UPB_NOT_IN_ONEOF UINT16_MAX
6735
- #define UPB_NO_HASBIT UINT16_MAX
6736
- #define UPB_NO_SUBMSG UINT16_MAX
6737
6744
 
6738
- typedef struct {
6739
- uint32_t number;
6740
- uint32_t offset; /* If in a oneof, offset of default in default_msg below. */
6741
- uint16_t hasbit; /* UPB_NO_HASBIT if no hasbit. */
6742
- uint16_t oneof_index; /* UPB_NOT_IN_ONEOF if not in a oneof. */
6743
- uint16_t submsg_index; /* UPB_NO_SUBMSG if no submsg. */
6744
- uint8_t type;
6745
- uint8_t label;
6746
- } upb_msglayout_fieldinit_v1;
6745
+ UPB_BEGIN_EXTERN_C
6747
6746
 
6748
- typedef struct {
6749
- uint32_t data_offset;
6750
- uint32_t case_offset;
6751
- } upb_msglayout_oneofinit_v1;
6752
-
6753
- typedef struct upb_msglayout_msginit_v1 {
6754
- const struct upb_msglayout_msginit_v1 *const* submsgs;
6755
- const upb_msglayout_fieldinit_v1 *fields;
6756
- const upb_msglayout_oneofinit_v1 *oneofs;
6757
- void *default_msg;
6758
- /* Must be aligned to sizeof(void*). Doesn't include internal members like
6759
- * unknown fields, extension dict, pointer to msglayout, etc. */
6760
- uint32_t size;
6761
- uint16_t field_count;
6762
- uint16_t oneof_count;
6763
- bool extendable;
6764
- bool is_proto2;
6765
- } upb_msglayout_msginit_v1;
6747
+ bool upb_decode(upb_stringview buf, upb_msg *msg, const upb_msglayout *l);
6766
6748
 
6767
- #define UPB_ALIGN_UP_TO(val, align) ((val + (align - 1)) & -align)
6768
- #define UPB_ALIGNED_SIZEOF(type) UPB_ALIGN_UP_TO(sizeof(type), sizeof(void*))
6749
+ UPB_END_EXTERN_C
6769
6750
 
6770
- /* Initialize/uninitialize a msglayout from a msginit. If upb uses v1
6771
- * internally, this will not allocate any memory. Should only be used by
6772
- * generated code. */
6773
- upb_msglayout *upb_msglayout_frominit_v1(
6774
- const upb_msglayout_msginit_v1 *init, upb_alloc *a);
6775
- void upb_msglayout_uninit_v1(upb_msglayout *layout, upb_alloc *a);
6751
+ #endif /* UPB_DECODE_H_ */
6752
+ /*
6753
+ ** upb_encode: parsing into a upb_msg using a upb_msglayout.
6754
+ */
6776
6755
 
6777
- UPB_END_EXTERN_C
6756
+ #ifndef UPB_ENCODE_H_
6757
+ #define UPB_ENCODE_H_
6778
6758
 
6779
- #endif /* UPB_MSG_H_ */
6780
6759
 
6781
6760
  UPB_BEGIN_EXTERN_C
6782
6761
 
6783
- bool upb_decode(upb_stringview buf, void *msg,
6784
- const upb_msglayout_msginit_v1 *l, upb_env *env);
6762
+ char *upb_encode(const void *msg, const upb_msglayout *l, upb_arena *arena,
6763
+ size_t *size);
6785
6764
 
6786
6765
  UPB_END_EXTERN_C
6787
6766
 
6788
- #endif /* UPB_DECODE_H_ */
6767
+ #endif /* UPB_ENCODE_H_ */
6768
+ UPB_BEGIN_EXTERN_C
6769
+
6770
+ struct google_protobuf_FileDescriptorSet;
6771
+ struct google_protobuf_FileDescriptorProto;
6772
+ struct google_protobuf_DescriptorProto;
6773
+ struct google_protobuf_DescriptorProto_ExtensionRange;
6774
+ struct google_protobuf_DescriptorProto_ReservedRange;
6775
+ struct google_protobuf_ExtensionRangeOptions;
6776
+ struct google_protobuf_FieldDescriptorProto;
6777
+ struct google_protobuf_OneofDescriptorProto;
6778
+ struct google_protobuf_EnumDescriptorProto;
6779
+ struct google_protobuf_EnumDescriptorProto_EnumReservedRange;
6780
+ struct google_protobuf_EnumValueDescriptorProto;
6781
+ struct google_protobuf_ServiceDescriptorProto;
6782
+ struct google_protobuf_MethodDescriptorProto;
6783
+ struct google_protobuf_FileOptions;
6784
+ struct google_protobuf_MessageOptions;
6785
+ struct google_protobuf_FieldOptions;
6786
+ struct google_protobuf_OneofOptions;
6787
+ struct google_protobuf_EnumOptions;
6788
+ struct google_protobuf_EnumValueOptions;
6789
+ struct google_protobuf_ServiceOptions;
6790
+ struct google_protobuf_MethodOptions;
6791
+ struct google_protobuf_UninterpretedOption;
6792
+ struct google_protobuf_UninterpretedOption_NamePart;
6793
+ struct google_protobuf_SourceCodeInfo;
6794
+ struct google_protobuf_SourceCodeInfo_Location;
6795
+ struct google_protobuf_GeneratedCodeInfo;
6796
+ struct google_protobuf_GeneratedCodeInfo_Annotation;
6797
+ typedef struct google_protobuf_FileDescriptorSet google_protobuf_FileDescriptorSet;
6798
+ typedef struct google_protobuf_FileDescriptorProto google_protobuf_FileDescriptorProto;
6799
+ typedef struct google_protobuf_DescriptorProto google_protobuf_DescriptorProto;
6800
+ typedef struct google_protobuf_DescriptorProto_ExtensionRange google_protobuf_DescriptorProto_ExtensionRange;
6801
+ typedef struct google_protobuf_DescriptorProto_ReservedRange google_protobuf_DescriptorProto_ReservedRange;
6802
+ typedef struct google_protobuf_ExtensionRangeOptions google_protobuf_ExtensionRangeOptions;
6803
+ typedef struct google_protobuf_FieldDescriptorProto google_protobuf_FieldDescriptorProto;
6804
+ typedef struct google_protobuf_OneofDescriptorProto google_protobuf_OneofDescriptorProto;
6805
+ typedef struct google_protobuf_EnumDescriptorProto google_protobuf_EnumDescriptorProto;
6806
+ typedef struct google_protobuf_EnumDescriptorProto_EnumReservedRange google_protobuf_EnumDescriptorProto_EnumReservedRange;
6807
+ typedef struct google_protobuf_EnumValueDescriptorProto google_protobuf_EnumValueDescriptorProto;
6808
+ typedef struct google_protobuf_ServiceDescriptorProto google_protobuf_ServiceDescriptorProto;
6809
+ typedef struct google_protobuf_MethodDescriptorProto google_protobuf_MethodDescriptorProto;
6810
+ typedef struct google_protobuf_FileOptions google_protobuf_FileOptions;
6811
+ typedef struct google_protobuf_MessageOptions google_protobuf_MessageOptions;
6812
+ typedef struct google_protobuf_FieldOptions google_protobuf_FieldOptions;
6813
+ typedef struct google_protobuf_OneofOptions google_protobuf_OneofOptions;
6814
+ typedef struct google_protobuf_EnumOptions google_protobuf_EnumOptions;
6815
+ typedef struct google_protobuf_EnumValueOptions google_protobuf_EnumValueOptions;
6816
+ typedef struct google_protobuf_ServiceOptions google_protobuf_ServiceOptions;
6817
+ typedef struct google_protobuf_MethodOptions google_protobuf_MethodOptions;
6818
+ typedef struct google_protobuf_UninterpretedOption google_protobuf_UninterpretedOption;
6819
+ typedef struct google_protobuf_UninterpretedOption_NamePart google_protobuf_UninterpretedOption_NamePart;
6820
+ typedef struct google_protobuf_SourceCodeInfo google_protobuf_SourceCodeInfo;
6821
+ typedef struct google_protobuf_SourceCodeInfo_Location google_protobuf_SourceCodeInfo_Location;
6822
+ typedef struct google_protobuf_GeneratedCodeInfo google_protobuf_GeneratedCodeInfo;
6823
+ typedef struct google_protobuf_GeneratedCodeInfo_Annotation google_protobuf_GeneratedCodeInfo_Annotation;
6824
+
6825
+ /* Enums */
6826
+
6827
+ typedef enum {
6828
+ google_protobuf_FieldDescriptorProto_LABEL_OPTIONAL = 1,
6829
+ google_protobuf_FieldDescriptorProto_LABEL_REQUIRED = 2,
6830
+ google_protobuf_FieldDescriptorProto_LABEL_REPEATED = 3
6831
+ } google_protobuf_FieldDescriptorProto_Label;
6832
+
6833
+ typedef enum {
6834
+ google_protobuf_FieldDescriptorProto_TYPE_DOUBLE = 1,
6835
+ google_protobuf_FieldDescriptorProto_TYPE_FLOAT = 2,
6836
+ google_protobuf_FieldDescriptorProto_TYPE_INT64 = 3,
6837
+ google_protobuf_FieldDescriptorProto_TYPE_UINT64 = 4,
6838
+ google_protobuf_FieldDescriptorProto_TYPE_INT32 = 5,
6839
+ google_protobuf_FieldDescriptorProto_TYPE_FIXED64 = 6,
6840
+ google_protobuf_FieldDescriptorProto_TYPE_FIXED32 = 7,
6841
+ google_protobuf_FieldDescriptorProto_TYPE_BOOL = 8,
6842
+ google_protobuf_FieldDescriptorProto_TYPE_STRING = 9,
6843
+ google_protobuf_FieldDescriptorProto_TYPE_GROUP = 10,
6844
+ google_protobuf_FieldDescriptorProto_TYPE_MESSAGE = 11,
6845
+ google_protobuf_FieldDescriptorProto_TYPE_BYTES = 12,
6846
+ google_protobuf_FieldDescriptorProto_TYPE_UINT32 = 13,
6847
+ google_protobuf_FieldDescriptorProto_TYPE_ENUM = 14,
6848
+ google_protobuf_FieldDescriptorProto_TYPE_SFIXED32 = 15,
6849
+ google_protobuf_FieldDescriptorProto_TYPE_SFIXED64 = 16,
6850
+ google_protobuf_FieldDescriptorProto_TYPE_SINT32 = 17,
6851
+ google_protobuf_FieldDescriptorProto_TYPE_SINT64 = 18
6852
+ } google_protobuf_FieldDescriptorProto_Type;
6853
+
6854
+ typedef enum {
6855
+ google_protobuf_FieldOptions_STRING = 0,
6856
+ google_protobuf_FieldOptions_CORD = 1,
6857
+ google_protobuf_FieldOptions_STRING_PIECE = 2
6858
+ } google_protobuf_FieldOptions_CType;
6859
+
6860
+ typedef enum {
6861
+ google_protobuf_FieldOptions_JS_NORMAL = 0,
6862
+ google_protobuf_FieldOptions_JS_STRING = 1,
6863
+ google_protobuf_FieldOptions_JS_NUMBER = 2
6864
+ } google_protobuf_FieldOptions_JSType;
6865
+
6866
+ typedef enum {
6867
+ google_protobuf_FileOptions_SPEED = 1,
6868
+ google_protobuf_FileOptions_CODE_SIZE = 2,
6869
+ google_protobuf_FileOptions_LITE_RUNTIME = 3
6870
+ } google_protobuf_FileOptions_OptimizeMode;
6871
+
6872
+ typedef enum {
6873
+ google_protobuf_MethodOptions_IDEMPOTENCY_UNKNOWN = 0,
6874
+ google_protobuf_MethodOptions_NO_SIDE_EFFECTS = 1,
6875
+ google_protobuf_MethodOptions_IDEMPOTENT = 2
6876
+ } google_protobuf_MethodOptions_IdempotencyLevel;
6877
+
6878
+ /* google.protobuf.FileDescriptorSet */
6879
+
6880
+ extern const upb_msglayout google_protobuf_FileDescriptorSet_msginit;
6881
+ UPB_INLINE google_protobuf_FileDescriptorSet *google_protobuf_FileDescriptorSet_new(upb_arena *arena) {
6882
+ return (google_protobuf_FileDescriptorSet *)upb_msg_new(&google_protobuf_FileDescriptorSet_msginit, arena);
6883
+ }
6884
+ UPB_INLINE google_protobuf_FileDescriptorSet *google_protobuf_FileDescriptorSet_parsenew(upb_stringview buf, upb_arena *arena) {
6885
+ google_protobuf_FileDescriptorSet *ret = google_protobuf_FileDescriptorSet_new(arena);
6886
+ return (ret && upb_decode(buf, ret, &google_protobuf_FileDescriptorSet_msginit)) ? ret : NULL;
6887
+ }
6888
+ UPB_INLINE char *google_protobuf_FileDescriptorSet_serialize(const google_protobuf_FileDescriptorSet *msg, upb_arena *arena, size_t *len) {
6889
+ return upb_encode(msg, &google_protobuf_FileDescriptorSet_msginit, arena, len);
6890
+ }
6891
+
6892
+ UPB_INLINE const upb_array* google_protobuf_FileDescriptorSet_file(const google_protobuf_FileDescriptorSet *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(0, 0)); }
6893
+
6894
+ UPB_INLINE void google_protobuf_FileDescriptorSet_set_file(google_protobuf_FileDescriptorSet *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(0, 0)) = value; }
6895
+
6896
+
6897
+ /* google.protobuf.FileDescriptorProto */
6898
+
6899
+ extern const upb_msglayout google_protobuf_FileDescriptorProto_msginit;
6900
+ UPB_INLINE google_protobuf_FileDescriptorProto *google_protobuf_FileDescriptorProto_new(upb_arena *arena) {
6901
+ return (google_protobuf_FileDescriptorProto *)upb_msg_new(&google_protobuf_FileDescriptorProto_msginit, arena);
6902
+ }
6903
+ UPB_INLINE google_protobuf_FileDescriptorProto *google_protobuf_FileDescriptorProto_parsenew(upb_stringview buf, upb_arena *arena) {
6904
+ google_protobuf_FileDescriptorProto *ret = google_protobuf_FileDescriptorProto_new(arena);
6905
+ return (ret && upb_decode(buf, ret, &google_protobuf_FileDescriptorProto_msginit)) ? ret : NULL;
6906
+ }
6907
+ UPB_INLINE char *google_protobuf_FileDescriptorProto_serialize(const google_protobuf_FileDescriptorProto *msg, upb_arena *arena, size_t *len) {
6908
+ return upb_encode(msg, &google_protobuf_FileDescriptorProto_msginit, arena, len);
6909
+ }
6910
+
6911
+ UPB_INLINE upb_stringview google_protobuf_FileDescriptorProto_name(const google_protobuf_FileDescriptorProto *msg) { return UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(8, 16)); }
6912
+ UPB_INLINE upb_stringview google_protobuf_FileDescriptorProto_package(const google_protobuf_FileDescriptorProto *msg) { return UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(16, 32)); }
6913
+ UPB_INLINE const upb_array* google_protobuf_FileDescriptorProto_dependency(const google_protobuf_FileDescriptorProto *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(40, 80)); }
6914
+ UPB_INLINE const upb_array* google_protobuf_FileDescriptorProto_message_type(const google_protobuf_FileDescriptorProto *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(44, 88)); }
6915
+ UPB_INLINE const upb_array* google_protobuf_FileDescriptorProto_enum_type(const google_protobuf_FileDescriptorProto *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(48, 96)); }
6916
+ UPB_INLINE const upb_array* google_protobuf_FileDescriptorProto_service(const google_protobuf_FileDescriptorProto *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(52, 104)); }
6917
+ UPB_INLINE const upb_array* google_protobuf_FileDescriptorProto_extension(const google_protobuf_FileDescriptorProto *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(56, 112)); }
6918
+ UPB_INLINE const google_protobuf_FileOptions* google_protobuf_FileDescriptorProto_options(const google_protobuf_FileDescriptorProto *msg) { return UPB_FIELD_AT(msg, const google_protobuf_FileOptions*, UPB_SIZE(32, 64)); }
6919
+ UPB_INLINE const google_protobuf_SourceCodeInfo* google_protobuf_FileDescriptorProto_source_code_info(const google_protobuf_FileDescriptorProto *msg) { return UPB_FIELD_AT(msg, const google_protobuf_SourceCodeInfo*, UPB_SIZE(36, 72)); }
6920
+ UPB_INLINE const upb_array* google_protobuf_FileDescriptorProto_public_dependency(const google_protobuf_FileDescriptorProto *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(60, 120)); }
6921
+ UPB_INLINE const upb_array* google_protobuf_FileDescriptorProto_weak_dependency(const google_protobuf_FileDescriptorProto *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(64, 128)); }
6922
+ UPB_INLINE upb_stringview google_protobuf_FileDescriptorProto_syntax(const google_protobuf_FileDescriptorProto *msg) { return UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(24, 48)); }
6923
+
6924
+ UPB_INLINE void google_protobuf_FileDescriptorProto_set_name(google_protobuf_FileDescriptorProto *msg, upb_stringview value) { UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(8, 16)) = value; }
6925
+ UPB_INLINE void google_protobuf_FileDescriptorProto_set_package(google_protobuf_FileDescriptorProto *msg, upb_stringview value) { UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(16, 32)) = value; }
6926
+ UPB_INLINE void google_protobuf_FileDescriptorProto_set_dependency(google_protobuf_FileDescriptorProto *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(40, 80)) = value; }
6927
+ UPB_INLINE void google_protobuf_FileDescriptorProto_set_message_type(google_protobuf_FileDescriptorProto *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(44, 88)) = value; }
6928
+ UPB_INLINE void google_protobuf_FileDescriptorProto_set_enum_type(google_protobuf_FileDescriptorProto *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(48, 96)) = value; }
6929
+ UPB_INLINE void google_protobuf_FileDescriptorProto_set_service(google_protobuf_FileDescriptorProto *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(52, 104)) = value; }
6930
+ UPB_INLINE void google_protobuf_FileDescriptorProto_set_extension(google_protobuf_FileDescriptorProto *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(56, 112)) = value; }
6931
+ UPB_INLINE void google_protobuf_FileDescriptorProto_set_options(google_protobuf_FileDescriptorProto *msg, google_protobuf_FileOptions* value) { UPB_FIELD_AT(msg, google_protobuf_FileOptions*, UPB_SIZE(32, 64)) = value; }
6932
+ UPB_INLINE void google_protobuf_FileDescriptorProto_set_source_code_info(google_protobuf_FileDescriptorProto *msg, google_protobuf_SourceCodeInfo* value) { UPB_FIELD_AT(msg, google_protobuf_SourceCodeInfo*, UPB_SIZE(36, 72)) = value; }
6933
+ UPB_INLINE void google_protobuf_FileDescriptorProto_set_public_dependency(google_protobuf_FileDescriptorProto *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(60, 120)) = value; }
6934
+ UPB_INLINE void google_protobuf_FileDescriptorProto_set_weak_dependency(google_protobuf_FileDescriptorProto *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(64, 128)) = value; }
6935
+ UPB_INLINE void google_protobuf_FileDescriptorProto_set_syntax(google_protobuf_FileDescriptorProto *msg, upb_stringview value) { UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(24, 48)) = value; }
6936
+
6937
+
6938
+ /* google.protobuf.DescriptorProto */
6939
+
6940
+ extern const upb_msglayout google_protobuf_DescriptorProto_msginit;
6941
+ UPB_INLINE google_protobuf_DescriptorProto *google_protobuf_DescriptorProto_new(upb_arena *arena) {
6942
+ return (google_protobuf_DescriptorProto *)upb_msg_new(&google_protobuf_DescriptorProto_msginit, arena);
6943
+ }
6944
+ UPB_INLINE google_protobuf_DescriptorProto *google_protobuf_DescriptorProto_parsenew(upb_stringview buf, upb_arena *arena) {
6945
+ google_protobuf_DescriptorProto *ret = google_protobuf_DescriptorProto_new(arena);
6946
+ return (ret && upb_decode(buf, ret, &google_protobuf_DescriptorProto_msginit)) ? ret : NULL;
6947
+ }
6948
+ UPB_INLINE char *google_protobuf_DescriptorProto_serialize(const google_protobuf_DescriptorProto *msg, upb_arena *arena, size_t *len) {
6949
+ return upb_encode(msg, &google_protobuf_DescriptorProto_msginit, arena, len);
6950
+ }
6951
+
6952
+ UPB_INLINE upb_stringview google_protobuf_DescriptorProto_name(const google_protobuf_DescriptorProto *msg) { return UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(8, 16)); }
6953
+ UPB_INLINE const upb_array* google_protobuf_DescriptorProto_field(const google_protobuf_DescriptorProto *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(20, 40)); }
6954
+ UPB_INLINE const upb_array* google_protobuf_DescriptorProto_nested_type(const google_protobuf_DescriptorProto *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(24, 48)); }
6955
+ UPB_INLINE const upb_array* google_protobuf_DescriptorProto_enum_type(const google_protobuf_DescriptorProto *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(28, 56)); }
6956
+ UPB_INLINE const upb_array* google_protobuf_DescriptorProto_extension_range(const google_protobuf_DescriptorProto *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(32, 64)); }
6957
+ UPB_INLINE const upb_array* google_protobuf_DescriptorProto_extension(const google_protobuf_DescriptorProto *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(36, 72)); }
6958
+ UPB_INLINE const google_protobuf_MessageOptions* google_protobuf_DescriptorProto_options(const google_protobuf_DescriptorProto *msg) { return UPB_FIELD_AT(msg, const google_protobuf_MessageOptions*, UPB_SIZE(16, 32)); }
6959
+ UPB_INLINE const upb_array* google_protobuf_DescriptorProto_oneof_decl(const google_protobuf_DescriptorProto *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(40, 80)); }
6960
+ UPB_INLINE const upb_array* google_protobuf_DescriptorProto_reserved_range(const google_protobuf_DescriptorProto *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(44, 88)); }
6961
+ UPB_INLINE const upb_array* google_protobuf_DescriptorProto_reserved_name(const google_protobuf_DescriptorProto *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(48, 96)); }
6962
+
6963
+ UPB_INLINE void google_protobuf_DescriptorProto_set_name(google_protobuf_DescriptorProto *msg, upb_stringview value) { UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(8, 16)) = value; }
6964
+ UPB_INLINE void google_protobuf_DescriptorProto_set_field(google_protobuf_DescriptorProto *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(20, 40)) = value; }
6965
+ UPB_INLINE void google_protobuf_DescriptorProto_set_nested_type(google_protobuf_DescriptorProto *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(24, 48)) = value; }
6966
+ UPB_INLINE void google_protobuf_DescriptorProto_set_enum_type(google_protobuf_DescriptorProto *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(28, 56)) = value; }
6967
+ UPB_INLINE void google_protobuf_DescriptorProto_set_extension_range(google_protobuf_DescriptorProto *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(32, 64)) = value; }
6968
+ UPB_INLINE void google_protobuf_DescriptorProto_set_extension(google_protobuf_DescriptorProto *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(36, 72)) = value; }
6969
+ UPB_INLINE void google_protobuf_DescriptorProto_set_options(google_protobuf_DescriptorProto *msg, google_protobuf_MessageOptions* value) { UPB_FIELD_AT(msg, google_protobuf_MessageOptions*, UPB_SIZE(16, 32)) = value; }
6970
+ UPB_INLINE void google_protobuf_DescriptorProto_set_oneof_decl(google_protobuf_DescriptorProto *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(40, 80)) = value; }
6971
+ UPB_INLINE void google_protobuf_DescriptorProto_set_reserved_range(google_protobuf_DescriptorProto *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(44, 88)) = value; }
6972
+ UPB_INLINE void google_protobuf_DescriptorProto_set_reserved_name(google_protobuf_DescriptorProto *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(48, 96)) = value; }
6973
+
6974
+
6975
+ /* google.protobuf.DescriptorProto.ExtensionRange */
6976
+
6977
+ extern const upb_msglayout google_protobuf_DescriptorProto_ExtensionRange_msginit;
6978
+ UPB_INLINE google_protobuf_DescriptorProto_ExtensionRange *google_protobuf_DescriptorProto_ExtensionRange_new(upb_arena *arena) {
6979
+ return (google_protobuf_DescriptorProto_ExtensionRange *)upb_msg_new(&google_protobuf_DescriptorProto_ExtensionRange_msginit, arena);
6980
+ }
6981
+ UPB_INLINE google_protobuf_DescriptorProto_ExtensionRange *google_protobuf_DescriptorProto_ExtensionRange_parsenew(upb_stringview buf, upb_arena *arena) {
6982
+ google_protobuf_DescriptorProto_ExtensionRange *ret = google_protobuf_DescriptorProto_ExtensionRange_new(arena);
6983
+ return (ret && upb_decode(buf, ret, &google_protobuf_DescriptorProto_ExtensionRange_msginit)) ? ret : NULL;
6984
+ }
6985
+ UPB_INLINE char *google_protobuf_DescriptorProto_ExtensionRange_serialize(const google_protobuf_DescriptorProto_ExtensionRange *msg, upb_arena *arena, size_t *len) {
6986
+ return upb_encode(msg, &google_protobuf_DescriptorProto_ExtensionRange_msginit, arena, len);
6987
+ }
6988
+
6989
+ UPB_INLINE int32_t google_protobuf_DescriptorProto_ExtensionRange_start(const google_protobuf_DescriptorProto_ExtensionRange *msg) { return UPB_FIELD_AT(msg, int32_t, UPB_SIZE(4, 4)); }
6990
+ UPB_INLINE int32_t google_protobuf_DescriptorProto_ExtensionRange_end(const google_protobuf_DescriptorProto_ExtensionRange *msg) { return UPB_FIELD_AT(msg, int32_t, UPB_SIZE(8, 8)); }
6991
+ UPB_INLINE const google_protobuf_ExtensionRangeOptions* google_protobuf_DescriptorProto_ExtensionRange_options(const google_protobuf_DescriptorProto_ExtensionRange *msg) { return UPB_FIELD_AT(msg, const google_protobuf_ExtensionRangeOptions*, UPB_SIZE(12, 16)); }
6992
+
6993
+ UPB_INLINE void google_protobuf_DescriptorProto_ExtensionRange_set_start(google_protobuf_DescriptorProto_ExtensionRange *msg, int32_t value) { UPB_FIELD_AT(msg, int32_t, UPB_SIZE(4, 4)) = value; }
6994
+ UPB_INLINE void google_protobuf_DescriptorProto_ExtensionRange_set_end(google_protobuf_DescriptorProto_ExtensionRange *msg, int32_t value) { UPB_FIELD_AT(msg, int32_t, UPB_SIZE(8, 8)) = value; }
6995
+ UPB_INLINE void google_protobuf_DescriptorProto_ExtensionRange_set_options(google_protobuf_DescriptorProto_ExtensionRange *msg, google_protobuf_ExtensionRangeOptions* value) { UPB_FIELD_AT(msg, google_protobuf_ExtensionRangeOptions*, UPB_SIZE(12, 16)) = value; }
6996
+
6997
+
6998
+ /* google.protobuf.DescriptorProto.ReservedRange */
6999
+
7000
+ extern const upb_msglayout google_protobuf_DescriptorProto_ReservedRange_msginit;
7001
+ UPB_INLINE google_protobuf_DescriptorProto_ReservedRange *google_protobuf_DescriptorProto_ReservedRange_new(upb_arena *arena) {
7002
+ return (google_protobuf_DescriptorProto_ReservedRange *)upb_msg_new(&google_protobuf_DescriptorProto_ReservedRange_msginit, arena);
7003
+ }
7004
+ UPB_INLINE google_protobuf_DescriptorProto_ReservedRange *google_protobuf_DescriptorProto_ReservedRange_parsenew(upb_stringview buf, upb_arena *arena) {
7005
+ google_protobuf_DescriptorProto_ReservedRange *ret = google_protobuf_DescriptorProto_ReservedRange_new(arena);
7006
+ return (ret && upb_decode(buf, ret, &google_protobuf_DescriptorProto_ReservedRange_msginit)) ? ret : NULL;
7007
+ }
7008
+ UPB_INLINE char *google_protobuf_DescriptorProto_ReservedRange_serialize(const google_protobuf_DescriptorProto_ReservedRange *msg, upb_arena *arena, size_t *len) {
7009
+ return upb_encode(msg, &google_protobuf_DescriptorProto_ReservedRange_msginit, arena, len);
7010
+ }
7011
+
7012
+ UPB_INLINE int32_t google_protobuf_DescriptorProto_ReservedRange_start(const google_protobuf_DescriptorProto_ReservedRange *msg) { return UPB_FIELD_AT(msg, int32_t, UPB_SIZE(4, 4)); }
7013
+ UPB_INLINE int32_t google_protobuf_DescriptorProto_ReservedRange_end(const google_protobuf_DescriptorProto_ReservedRange *msg) { return UPB_FIELD_AT(msg, int32_t, UPB_SIZE(8, 8)); }
7014
+
7015
+ UPB_INLINE void google_protobuf_DescriptorProto_ReservedRange_set_start(google_protobuf_DescriptorProto_ReservedRange *msg, int32_t value) { UPB_FIELD_AT(msg, int32_t, UPB_SIZE(4, 4)) = value; }
7016
+ UPB_INLINE void google_protobuf_DescriptorProto_ReservedRange_set_end(google_protobuf_DescriptorProto_ReservedRange *msg, int32_t value) { UPB_FIELD_AT(msg, int32_t, UPB_SIZE(8, 8)) = value; }
7017
+
7018
+
7019
+ /* google.protobuf.ExtensionRangeOptions */
7020
+
7021
+ extern const upb_msglayout google_protobuf_ExtensionRangeOptions_msginit;
7022
+ UPB_INLINE google_protobuf_ExtensionRangeOptions *google_protobuf_ExtensionRangeOptions_new(upb_arena *arena) {
7023
+ return (google_protobuf_ExtensionRangeOptions *)upb_msg_new(&google_protobuf_ExtensionRangeOptions_msginit, arena);
7024
+ }
7025
+ UPB_INLINE google_protobuf_ExtensionRangeOptions *google_protobuf_ExtensionRangeOptions_parsenew(upb_stringview buf, upb_arena *arena) {
7026
+ google_protobuf_ExtensionRangeOptions *ret = google_protobuf_ExtensionRangeOptions_new(arena);
7027
+ return (ret && upb_decode(buf, ret, &google_protobuf_ExtensionRangeOptions_msginit)) ? ret : NULL;
7028
+ }
7029
+ UPB_INLINE char *google_protobuf_ExtensionRangeOptions_serialize(const google_protobuf_ExtensionRangeOptions *msg, upb_arena *arena, size_t *len) {
7030
+ return upb_encode(msg, &google_protobuf_ExtensionRangeOptions_msginit, arena, len);
7031
+ }
7032
+
7033
+ UPB_INLINE const upb_array* google_protobuf_ExtensionRangeOptions_uninterpreted_option(const google_protobuf_ExtensionRangeOptions *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(0, 0)); }
7034
+
7035
+ UPB_INLINE void google_protobuf_ExtensionRangeOptions_set_uninterpreted_option(google_protobuf_ExtensionRangeOptions *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(0, 0)) = value; }
7036
+
7037
+
7038
+ /* google.protobuf.FieldDescriptorProto */
7039
+
7040
+ extern const upb_msglayout google_protobuf_FieldDescriptorProto_msginit;
7041
+ UPB_INLINE google_protobuf_FieldDescriptorProto *google_protobuf_FieldDescriptorProto_new(upb_arena *arena) {
7042
+ return (google_protobuf_FieldDescriptorProto *)upb_msg_new(&google_protobuf_FieldDescriptorProto_msginit, arena);
7043
+ }
7044
+ UPB_INLINE google_protobuf_FieldDescriptorProto *google_protobuf_FieldDescriptorProto_parsenew(upb_stringview buf, upb_arena *arena) {
7045
+ google_protobuf_FieldDescriptorProto *ret = google_protobuf_FieldDescriptorProto_new(arena);
7046
+ return (ret && upb_decode(buf, ret, &google_protobuf_FieldDescriptorProto_msginit)) ? ret : NULL;
7047
+ }
7048
+ UPB_INLINE char *google_protobuf_FieldDescriptorProto_serialize(const google_protobuf_FieldDescriptorProto *msg, upb_arena *arena, size_t *len) {
7049
+ return upb_encode(msg, &google_protobuf_FieldDescriptorProto_msginit, arena, len);
7050
+ }
7051
+
7052
+ UPB_INLINE upb_stringview google_protobuf_FieldDescriptorProto_name(const google_protobuf_FieldDescriptorProto *msg) { return UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(32, 32)); }
7053
+ UPB_INLINE upb_stringview google_protobuf_FieldDescriptorProto_extendee(const google_protobuf_FieldDescriptorProto *msg) { return UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(40, 48)); }
7054
+ UPB_INLINE int32_t google_protobuf_FieldDescriptorProto_number(const google_protobuf_FieldDescriptorProto *msg) { return UPB_FIELD_AT(msg, int32_t, UPB_SIZE(24, 24)); }
7055
+ UPB_INLINE google_protobuf_FieldDescriptorProto_Label google_protobuf_FieldDescriptorProto_label(const google_protobuf_FieldDescriptorProto *msg) { return UPB_FIELD_AT(msg, google_protobuf_FieldDescriptorProto_Label, UPB_SIZE(8, 8)); }
7056
+ UPB_INLINE google_protobuf_FieldDescriptorProto_Type google_protobuf_FieldDescriptorProto_type(const google_protobuf_FieldDescriptorProto *msg) { return UPB_FIELD_AT(msg, google_protobuf_FieldDescriptorProto_Type, UPB_SIZE(16, 16)); }
7057
+ UPB_INLINE upb_stringview google_protobuf_FieldDescriptorProto_type_name(const google_protobuf_FieldDescriptorProto *msg) { return UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(48, 64)); }
7058
+ UPB_INLINE upb_stringview google_protobuf_FieldDescriptorProto_default_value(const google_protobuf_FieldDescriptorProto *msg) { return UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(56, 80)); }
7059
+ UPB_INLINE const google_protobuf_FieldOptions* google_protobuf_FieldDescriptorProto_options(const google_protobuf_FieldDescriptorProto *msg) { return UPB_FIELD_AT(msg, const google_protobuf_FieldOptions*, UPB_SIZE(72, 112)); }
7060
+ UPB_INLINE int32_t google_protobuf_FieldDescriptorProto_oneof_index(const google_protobuf_FieldDescriptorProto *msg) { return UPB_FIELD_AT(msg, int32_t, UPB_SIZE(28, 28)); }
7061
+ UPB_INLINE upb_stringview google_protobuf_FieldDescriptorProto_json_name(const google_protobuf_FieldDescriptorProto *msg) { return UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(64, 96)); }
7062
+
7063
+ UPB_INLINE void google_protobuf_FieldDescriptorProto_set_name(google_protobuf_FieldDescriptorProto *msg, upb_stringview value) { UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(32, 32)) = value; }
7064
+ UPB_INLINE void google_protobuf_FieldDescriptorProto_set_extendee(google_protobuf_FieldDescriptorProto *msg, upb_stringview value) { UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(40, 48)) = value; }
7065
+ UPB_INLINE void google_protobuf_FieldDescriptorProto_set_number(google_protobuf_FieldDescriptorProto *msg, int32_t value) { UPB_FIELD_AT(msg, int32_t, UPB_SIZE(24, 24)) = value; }
7066
+ UPB_INLINE void google_protobuf_FieldDescriptorProto_set_label(google_protobuf_FieldDescriptorProto *msg, google_protobuf_FieldDescriptorProto_Label value) { UPB_FIELD_AT(msg, google_protobuf_FieldDescriptorProto_Label, UPB_SIZE(8, 8)) = value; }
7067
+ UPB_INLINE void google_protobuf_FieldDescriptorProto_set_type(google_protobuf_FieldDescriptorProto *msg, google_protobuf_FieldDescriptorProto_Type value) { UPB_FIELD_AT(msg, google_protobuf_FieldDescriptorProto_Type, UPB_SIZE(16, 16)) = value; }
7068
+ UPB_INLINE void google_protobuf_FieldDescriptorProto_set_type_name(google_protobuf_FieldDescriptorProto *msg, upb_stringview value) { UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(48, 64)) = value; }
7069
+ UPB_INLINE void google_protobuf_FieldDescriptorProto_set_default_value(google_protobuf_FieldDescriptorProto *msg, upb_stringview value) { UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(56, 80)) = value; }
7070
+ UPB_INLINE void google_protobuf_FieldDescriptorProto_set_options(google_protobuf_FieldDescriptorProto *msg, google_protobuf_FieldOptions* value) { UPB_FIELD_AT(msg, google_protobuf_FieldOptions*, UPB_SIZE(72, 112)) = value; }
7071
+ UPB_INLINE void google_protobuf_FieldDescriptorProto_set_oneof_index(google_protobuf_FieldDescriptorProto *msg, int32_t value) { UPB_FIELD_AT(msg, int32_t, UPB_SIZE(28, 28)) = value; }
7072
+ UPB_INLINE void google_protobuf_FieldDescriptorProto_set_json_name(google_protobuf_FieldDescriptorProto *msg, upb_stringview value) { UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(64, 96)) = value; }
7073
+
7074
+
7075
+ /* google.protobuf.OneofDescriptorProto */
7076
+
7077
+ extern const upb_msglayout google_protobuf_OneofDescriptorProto_msginit;
7078
+ UPB_INLINE google_protobuf_OneofDescriptorProto *google_protobuf_OneofDescriptorProto_new(upb_arena *arena) {
7079
+ return (google_protobuf_OneofDescriptorProto *)upb_msg_new(&google_protobuf_OneofDescriptorProto_msginit, arena);
7080
+ }
7081
+ UPB_INLINE google_protobuf_OneofDescriptorProto *google_protobuf_OneofDescriptorProto_parsenew(upb_stringview buf, upb_arena *arena) {
7082
+ google_protobuf_OneofDescriptorProto *ret = google_protobuf_OneofDescriptorProto_new(arena);
7083
+ return (ret && upb_decode(buf, ret, &google_protobuf_OneofDescriptorProto_msginit)) ? ret : NULL;
7084
+ }
7085
+ UPB_INLINE char *google_protobuf_OneofDescriptorProto_serialize(const google_protobuf_OneofDescriptorProto *msg, upb_arena *arena, size_t *len) {
7086
+ return upb_encode(msg, &google_protobuf_OneofDescriptorProto_msginit, arena, len);
7087
+ }
7088
+
7089
+ UPB_INLINE upb_stringview google_protobuf_OneofDescriptorProto_name(const google_protobuf_OneofDescriptorProto *msg) { return UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(8, 16)); }
7090
+ UPB_INLINE const google_protobuf_OneofOptions* google_protobuf_OneofDescriptorProto_options(const google_protobuf_OneofDescriptorProto *msg) { return UPB_FIELD_AT(msg, const google_protobuf_OneofOptions*, UPB_SIZE(16, 32)); }
7091
+
7092
+ UPB_INLINE void google_protobuf_OneofDescriptorProto_set_name(google_protobuf_OneofDescriptorProto *msg, upb_stringview value) { UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(8, 16)) = value; }
7093
+ UPB_INLINE void google_protobuf_OneofDescriptorProto_set_options(google_protobuf_OneofDescriptorProto *msg, google_protobuf_OneofOptions* value) { UPB_FIELD_AT(msg, google_protobuf_OneofOptions*, UPB_SIZE(16, 32)) = value; }
7094
+
7095
+
7096
+ /* google.protobuf.EnumDescriptorProto */
7097
+
7098
+ extern const upb_msglayout google_protobuf_EnumDescriptorProto_msginit;
7099
+ UPB_INLINE google_protobuf_EnumDescriptorProto *google_protobuf_EnumDescriptorProto_new(upb_arena *arena) {
7100
+ return (google_protobuf_EnumDescriptorProto *)upb_msg_new(&google_protobuf_EnumDescriptorProto_msginit, arena);
7101
+ }
7102
+ UPB_INLINE google_protobuf_EnumDescriptorProto *google_protobuf_EnumDescriptorProto_parsenew(upb_stringview buf, upb_arena *arena) {
7103
+ google_protobuf_EnumDescriptorProto *ret = google_protobuf_EnumDescriptorProto_new(arena);
7104
+ return (ret && upb_decode(buf, ret, &google_protobuf_EnumDescriptorProto_msginit)) ? ret : NULL;
7105
+ }
7106
+ UPB_INLINE char *google_protobuf_EnumDescriptorProto_serialize(const google_protobuf_EnumDescriptorProto *msg, upb_arena *arena, size_t *len) {
7107
+ return upb_encode(msg, &google_protobuf_EnumDescriptorProto_msginit, arena, len);
7108
+ }
7109
+
7110
+ UPB_INLINE upb_stringview google_protobuf_EnumDescriptorProto_name(const google_protobuf_EnumDescriptorProto *msg) { return UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(8, 16)); }
7111
+ UPB_INLINE const upb_array* google_protobuf_EnumDescriptorProto_value(const google_protobuf_EnumDescriptorProto *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(20, 40)); }
7112
+ UPB_INLINE const google_protobuf_EnumOptions* google_protobuf_EnumDescriptorProto_options(const google_protobuf_EnumDescriptorProto *msg) { return UPB_FIELD_AT(msg, const google_protobuf_EnumOptions*, UPB_SIZE(16, 32)); }
7113
+ UPB_INLINE const upb_array* google_protobuf_EnumDescriptorProto_reserved_range(const google_protobuf_EnumDescriptorProto *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(24, 48)); }
7114
+ UPB_INLINE const upb_array* google_protobuf_EnumDescriptorProto_reserved_name(const google_protobuf_EnumDescriptorProto *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(28, 56)); }
7115
+
7116
+ UPB_INLINE void google_protobuf_EnumDescriptorProto_set_name(google_protobuf_EnumDescriptorProto *msg, upb_stringview value) { UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(8, 16)) = value; }
7117
+ UPB_INLINE void google_protobuf_EnumDescriptorProto_set_value(google_protobuf_EnumDescriptorProto *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(20, 40)) = value; }
7118
+ UPB_INLINE void google_protobuf_EnumDescriptorProto_set_options(google_protobuf_EnumDescriptorProto *msg, google_protobuf_EnumOptions* value) { UPB_FIELD_AT(msg, google_protobuf_EnumOptions*, UPB_SIZE(16, 32)) = value; }
7119
+ UPB_INLINE void google_protobuf_EnumDescriptorProto_set_reserved_range(google_protobuf_EnumDescriptorProto *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(24, 48)) = value; }
7120
+ UPB_INLINE void google_protobuf_EnumDescriptorProto_set_reserved_name(google_protobuf_EnumDescriptorProto *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(28, 56)) = value; }
7121
+
7122
+
7123
+ /* google.protobuf.EnumDescriptorProto.EnumReservedRange */
7124
+
7125
+ extern const upb_msglayout google_protobuf_EnumDescriptorProto_EnumReservedRange_msginit;
7126
+ UPB_INLINE google_protobuf_EnumDescriptorProto_EnumReservedRange *google_protobuf_EnumDescriptorProto_EnumReservedRange_new(upb_arena *arena) {
7127
+ return (google_protobuf_EnumDescriptorProto_EnumReservedRange *)upb_msg_new(&google_protobuf_EnumDescriptorProto_EnumReservedRange_msginit, arena);
7128
+ }
7129
+ UPB_INLINE google_protobuf_EnumDescriptorProto_EnumReservedRange *google_protobuf_EnumDescriptorProto_EnumReservedRange_parsenew(upb_stringview buf, upb_arena *arena) {
7130
+ google_protobuf_EnumDescriptorProto_EnumReservedRange *ret = google_protobuf_EnumDescriptorProto_EnumReservedRange_new(arena);
7131
+ return (ret && upb_decode(buf, ret, &google_protobuf_EnumDescriptorProto_EnumReservedRange_msginit)) ? ret : NULL;
7132
+ }
7133
+ UPB_INLINE char *google_protobuf_EnumDescriptorProto_EnumReservedRange_serialize(const google_protobuf_EnumDescriptorProto_EnumReservedRange *msg, upb_arena *arena, size_t *len) {
7134
+ return upb_encode(msg, &google_protobuf_EnumDescriptorProto_EnumReservedRange_msginit, arena, len);
7135
+ }
7136
+
7137
+ UPB_INLINE int32_t google_protobuf_EnumDescriptorProto_EnumReservedRange_start(const google_protobuf_EnumDescriptorProto_EnumReservedRange *msg) { return UPB_FIELD_AT(msg, int32_t, UPB_SIZE(4, 4)); }
7138
+ UPB_INLINE int32_t google_protobuf_EnumDescriptorProto_EnumReservedRange_end(const google_protobuf_EnumDescriptorProto_EnumReservedRange *msg) { return UPB_FIELD_AT(msg, int32_t, UPB_SIZE(8, 8)); }
7139
+
7140
+ UPB_INLINE void google_protobuf_EnumDescriptorProto_EnumReservedRange_set_start(google_protobuf_EnumDescriptorProto_EnumReservedRange *msg, int32_t value) { UPB_FIELD_AT(msg, int32_t, UPB_SIZE(4, 4)) = value; }
7141
+ UPB_INLINE void google_protobuf_EnumDescriptorProto_EnumReservedRange_set_end(google_protobuf_EnumDescriptorProto_EnumReservedRange *msg, int32_t value) { UPB_FIELD_AT(msg, int32_t, UPB_SIZE(8, 8)) = value; }
7142
+
7143
+
7144
+ /* google.protobuf.EnumValueDescriptorProto */
7145
+
7146
+ extern const upb_msglayout google_protobuf_EnumValueDescriptorProto_msginit;
7147
+ UPB_INLINE google_protobuf_EnumValueDescriptorProto *google_protobuf_EnumValueDescriptorProto_new(upb_arena *arena) {
7148
+ return (google_protobuf_EnumValueDescriptorProto *)upb_msg_new(&google_protobuf_EnumValueDescriptorProto_msginit, arena);
7149
+ }
7150
+ UPB_INLINE google_protobuf_EnumValueDescriptorProto *google_protobuf_EnumValueDescriptorProto_parsenew(upb_stringview buf, upb_arena *arena) {
7151
+ google_protobuf_EnumValueDescriptorProto *ret = google_protobuf_EnumValueDescriptorProto_new(arena);
7152
+ return (ret && upb_decode(buf, ret, &google_protobuf_EnumValueDescriptorProto_msginit)) ? ret : NULL;
7153
+ }
7154
+ UPB_INLINE char *google_protobuf_EnumValueDescriptorProto_serialize(const google_protobuf_EnumValueDescriptorProto *msg, upb_arena *arena, size_t *len) {
7155
+ return upb_encode(msg, &google_protobuf_EnumValueDescriptorProto_msginit, arena, len);
7156
+ }
7157
+
7158
+ UPB_INLINE upb_stringview google_protobuf_EnumValueDescriptorProto_name(const google_protobuf_EnumValueDescriptorProto *msg) { return UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(8, 16)); }
7159
+ UPB_INLINE int32_t google_protobuf_EnumValueDescriptorProto_number(const google_protobuf_EnumValueDescriptorProto *msg) { return UPB_FIELD_AT(msg, int32_t, UPB_SIZE(4, 4)); }
7160
+ UPB_INLINE const google_protobuf_EnumValueOptions* google_protobuf_EnumValueDescriptorProto_options(const google_protobuf_EnumValueDescriptorProto *msg) { return UPB_FIELD_AT(msg, const google_protobuf_EnumValueOptions*, UPB_SIZE(16, 32)); }
7161
+
7162
+ UPB_INLINE void google_protobuf_EnumValueDescriptorProto_set_name(google_protobuf_EnumValueDescriptorProto *msg, upb_stringview value) { UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(8, 16)) = value; }
7163
+ UPB_INLINE void google_protobuf_EnumValueDescriptorProto_set_number(google_protobuf_EnumValueDescriptorProto *msg, int32_t value) { UPB_FIELD_AT(msg, int32_t, UPB_SIZE(4, 4)) = value; }
7164
+ UPB_INLINE void google_protobuf_EnumValueDescriptorProto_set_options(google_protobuf_EnumValueDescriptorProto *msg, google_protobuf_EnumValueOptions* value) { UPB_FIELD_AT(msg, google_protobuf_EnumValueOptions*, UPB_SIZE(16, 32)) = value; }
7165
+
7166
+
7167
+ /* google.protobuf.ServiceDescriptorProto */
7168
+
7169
+ extern const upb_msglayout google_protobuf_ServiceDescriptorProto_msginit;
7170
+ UPB_INLINE google_protobuf_ServiceDescriptorProto *google_protobuf_ServiceDescriptorProto_new(upb_arena *arena) {
7171
+ return (google_protobuf_ServiceDescriptorProto *)upb_msg_new(&google_protobuf_ServiceDescriptorProto_msginit, arena);
7172
+ }
7173
+ UPB_INLINE google_protobuf_ServiceDescriptorProto *google_protobuf_ServiceDescriptorProto_parsenew(upb_stringview buf, upb_arena *arena) {
7174
+ google_protobuf_ServiceDescriptorProto *ret = google_protobuf_ServiceDescriptorProto_new(arena);
7175
+ return (ret && upb_decode(buf, ret, &google_protobuf_ServiceDescriptorProto_msginit)) ? ret : NULL;
7176
+ }
7177
+ UPB_INLINE char *google_protobuf_ServiceDescriptorProto_serialize(const google_protobuf_ServiceDescriptorProto *msg, upb_arena *arena, size_t *len) {
7178
+ return upb_encode(msg, &google_protobuf_ServiceDescriptorProto_msginit, arena, len);
7179
+ }
7180
+
7181
+ UPB_INLINE upb_stringview google_protobuf_ServiceDescriptorProto_name(const google_protobuf_ServiceDescriptorProto *msg) { return UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(8, 16)); }
7182
+ UPB_INLINE const upb_array* google_protobuf_ServiceDescriptorProto_method(const google_protobuf_ServiceDescriptorProto *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(20, 40)); }
7183
+ UPB_INLINE const google_protobuf_ServiceOptions* google_protobuf_ServiceDescriptorProto_options(const google_protobuf_ServiceDescriptorProto *msg) { return UPB_FIELD_AT(msg, const google_protobuf_ServiceOptions*, UPB_SIZE(16, 32)); }
7184
+
7185
+ UPB_INLINE void google_protobuf_ServiceDescriptorProto_set_name(google_protobuf_ServiceDescriptorProto *msg, upb_stringview value) { UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(8, 16)) = value; }
7186
+ UPB_INLINE void google_protobuf_ServiceDescriptorProto_set_method(google_protobuf_ServiceDescriptorProto *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(20, 40)) = value; }
7187
+ UPB_INLINE void google_protobuf_ServiceDescriptorProto_set_options(google_protobuf_ServiceDescriptorProto *msg, google_protobuf_ServiceOptions* value) { UPB_FIELD_AT(msg, google_protobuf_ServiceOptions*, UPB_SIZE(16, 32)) = value; }
7188
+
7189
+
7190
+ /* google.protobuf.MethodDescriptorProto */
7191
+
7192
+ extern const upb_msglayout google_protobuf_MethodDescriptorProto_msginit;
7193
+ UPB_INLINE google_protobuf_MethodDescriptorProto *google_protobuf_MethodDescriptorProto_new(upb_arena *arena) {
7194
+ return (google_protobuf_MethodDescriptorProto *)upb_msg_new(&google_protobuf_MethodDescriptorProto_msginit, arena);
7195
+ }
7196
+ UPB_INLINE google_protobuf_MethodDescriptorProto *google_protobuf_MethodDescriptorProto_parsenew(upb_stringview buf, upb_arena *arena) {
7197
+ google_protobuf_MethodDescriptorProto *ret = google_protobuf_MethodDescriptorProto_new(arena);
7198
+ return (ret && upb_decode(buf, ret, &google_protobuf_MethodDescriptorProto_msginit)) ? ret : NULL;
7199
+ }
7200
+ UPB_INLINE char *google_protobuf_MethodDescriptorProto_serialize(const google_protobuf_MethodDescriptorProto *msg, upb_arena *arena, size_t *len) {
7201
+ return upb_encode(msg, &google_protobuf_MethodDescriptorProto_msginit, arena, len);
7202
+ }
7203
+
7204
+ UPB_INLINE upb_stringview google_protobuf_MethodDescriptorProto_name(const google_protobuf_MethodDescriptorProto *msg) { return UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(8, 16)); }
7205
+ UPB_INLINE upb_stringview google_protobuf_MethodDescriptorProto_input_type(const google_protobuf_MethodDescriptorProto *msg) { return UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(16, 32)); }
7206
+ UPB_INLINE upb_stringview google_protobuf_MethodDescriptorProto_output_type(const google_protobuf_MethodDescriptorProto *msg) { return UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(24, 48)); }
7207
+ UPB_INLINE const google_protobuf_MethodOptions* google_protobuf_MethodDescriptorProto_options(const google_protobuf_MethodDescriptorProto *msg) { return UPB_FIELD_AT(msg, const google_protobuf_MethodOptions*, UPB_SIZE(32, 64)); }
7208
+ UPB_INLINE bool google_protobuf_MethodDescriptorProto_client_streaming(const google_protobuf_MethodDescriptorProto *msg) { return UPB_FIELD_AT(msg, bool, UPB_SIZE(1, 1)); }
7209
+ UPB_INLINE bool google_protobuf_MethodDescriptorProto_server_streaming(const google_protobuf_MethodDescriptorProto *msg) { return UPB_FIELD_AT(msg, bool, UPB_SIZE(2, 2)); }
7210
+
7211
+ UPB_INLINE void google_protobuf_MethodDescriptorProto_set_name(google_protobuf_MethodDescriptorProto *msg, upb_stringview value) { UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(8, 16)) = value; }
7212
+ UPB_INLINE void google_protobuf_MethodDescriptorProto_set_input_type(google_protobuf_MethodDescriptorProto *msg, upb_stringview value) { UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(16, 32)) = value; }
7213
+ UPB_INLINE void google_protobuf_MethodDescriptorProto_set_output_type(google_protobuf_MethodDescriptorProto *msg, upb_stringview value) { UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(24, 48)) = value; }
7214
+ UPB_INLINE void google_protobuf_MethodDescriptorProto_set_options(google_protobuf_MethodDescriptorProto *msg, google_protobuf_MethodOptions* value) { UPB_FIELD_AT(msg, google_protobuf_MethodOptions*, UPB_SIZE(32, 64)) = value; }
7215
+ UPB_INLINE void google_protobuf_MethodDescriptorProto_set_client_streaming(google_protobuf_MethodDescriptorProto *msg, bool value) { UPB_FIELD_AT(msg, bool, UPB_SIZE(1, 1)) = value; }
7216
+ UPB_INLINE void google_protobuf_MethodDescriptorProto_set_server_streaming(google_protobuf_MethodDescriptorProto *msg, bool value) { UPB_FIELD_AT(msg, bool, UPB_SIZE(2, 2)) = value; }
7217
+
7218
+
7219
+ /* google.protobuf.FileOptions */
7220
+
7221
+ extern const upb_msglayout google_protobuf_FileOptions_msginit;
7222
+ UPB_INLINE google_protobuf_FileOptions *google_protobuf_FileOptions_new(upb_arena *arena) {
7223
+ return (google_protobuf_FileOptions *)upb_msg_new(&google_protobuf_FileOptions_msginit, arena);
7224
+ }
7225
+ UPB_INLINE google_protobuf_FileOptions *google_protobuf_FileOptions_parsenew(upb_stringview buf, upb_arena *arena) {
7226
+ google_protobuf_FileOptions *ret = google_protobuf_FileOptions_new(arena);
7227
+ return (ret && upb_decode(buf, ret, &google_protobuf_FileOptions_msginit)) ? ret : NULL;
7228
+ }
7229
+ UPB_INLINE char *google_protobuf_FileOptions_serialize(const google_protobuf_FileOptions *msg, upb_arena *arena, size_t *len) {
7230
+ return upb_encode(msg, &google_protobuf_FileOptions_msginit, arena, len);
7231
+ }
7232
+
7233
+ UPB_INLINE upb_stringview google_protobuf_FileOptions_java_package(const google_protobuf_FileOptions *msg) { return UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(32, 32)); }
7234
+ UPB_INLINE upb_stringview google_protobuf_FileOptions_java_outer_classname(const google_protobuf_FileOptions *msg) { return UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(40, 48)); }
7235
+ UPB_INLINE google_protobuf_FileOptions_OptimizeMode google_protobuf_FileOptions_optimize_for(const google_protobuf_FileOptions *msg) { return UPB_FIELD_AT(msg, google_protobuf_FileOptions_OptimizeMode, UPB_SIZE(8, 8)); }
7236
+ UPB_INLINE bool google_protobuf_FileOptions_java_multiple_files(const google_protobuf_FileOptions *msg) { return UPB_FIELD_AT(msg, bool, UPB_SIZE(16, 16)); }
7237
+ UPB_INLINE upb_stringview google_protobuf_FileOptions_go_package(const google_protobuf_FileOptions *msg) { return UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(48, 64)); }
7238
+ UPB_INLINE bool google_protobuf_FileOptions_cc_generic_services(const google_protobuf_FileOptions *msg) { return UPB_FIELD_AT(msg, bool, UPB_SIZE(17, 17)); }
7239
+ UPB_INLINE bool google_protobuf_FileOptions_java_generic_services(const google_protobuf_FileOptions *msg) { return UPB_FIELD_AT(msg, bool, UPB_SIZE(18, 18)); }
7240
+ UPB_INLINE bool google_protobuf_FileOptions_py_generic_services(const google_protobuf_FileOptions *msg) { return UPB_FIELD_AT(msg, bool, UPB_SIZE(19, 19)); }
7241
+ UPB_INLINE bool google_protobuf_FileOptions_java_generate_equals_and_hash(const google_protobuf_FileOptions *msg) { return UPB_FIELD_AT(msg, bool, UPB_SIZE(20, 20)); }
7242
+ UPB_INLINE bool google_protobuf_FileOptions_deprecated(const google_protobuf_FileOptions *msg) { return UPB_FIELD_AT(msg, bool, UPB_SIZE(21, 21)); }
7243
+ UPB_INLINE bool google_protobuf_FileOptions_java_string_check_utf8(const google_protobuf_FileOptions *msg) { return UPB_FIELD_AT(msg, bool, UPB_SIZE(22, 22)); }
7244
+ UPB_INLINE bool google_protobuf_FileOptions_cc_enable_arenas(const google_protobuf_FileOptions *msg) { return UPB_FIELD_AT(msg, bool, UPB_SIZE(23, 23)); }
7245
+ UPB_INLINE upb_stringview google_protobuf_FileOptions_objc_class_prefix(const google_protobuf_FileOptions *msg) { return UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(56, 80)); }
7246
+ UPB_INLINE upb_stringview google_protobuf_FileOptions_csharp_namespace(const google_protobuf_FileOptions *msg) { return UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(64, 96)); }
7247
+ UPB_INLINE upb_stringview google_protobuf_FileOptions_swift_prefix(const google_protobuf_FileOptions *msg) { return UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(72, 112)); }
7248
+ UPB_INLINE upb_stringview google_protobuf_FileOptions_php_class_prefix(const google_protobuf_FileOptions *msg) { return UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(80, 128)); }
7249
+ UPB_INLINE upb_stringview google_protobuf_FileOptions_php_namespace(const google_protobuf_FileOptions *msg) { return UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(88, 144)); }
7250
+ UPB_INLINE bool google_protobuf_FileOptions_php_generic_services(const google_protobuf_FileOptions *msg) { return UPB_FIELD_AT(msg, bool, UPB_SIZE(24, 24)); }
7251
+ UPB_INLINE const upb_array* google_protobuf_FileOptions_uninterpreted_option(const google_protobuf_FileOptions *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(96, 160)); }
7252
+
7253
+ UPB_INLINE void google_protobuf_FileOptions_set_java_package(google_protobuf_FileOptions *msg, upb_stringview value) { UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(32, 32)) = value; }
7254
+ UPB_INLINE void google_protobuf_FileOptions_set_java_outer_classname(google_protobuf_FileOptions *msg, upb_stringview value) { UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(40, 48)) = value; }
7255
+ UPB_INLINE void google_protobuf_FileOptions_set_optimize_for(google_protobuf_FileOptions *msg, google_protobuf_FileOptions_OptimizeMode value) { UPB_FIELD_AT(msg, google_protobuf_FileOptions_OptimizeMode, UPB_SIZE(8, 8)) = value; }
7256
+ UPB_INLINE void google_protobuf_FileOptions_set_java_multiple_files(google_protobuf_FileOptions *msg, bool value) { UPB_FIELD_AT(msg, bool, UPB_SIZE(16, 16)) = value; }
7257
+ UPB_INLINE void google_protobuf_FileOptions_set_go_package(google_protobuf_FileOptions *msg, upb_stringview value) { UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(48, 64)) = value; }
7258
+ UPB_INLINE void google_protobuf_FileOptions_set_cc_generic_services(google_protobuf_FileOptions *msg, bool value) { UPB_FIELD_AT(msg, bool, UPB_SIZE(17, 17)) = value; }
7259
+ UPB_INLINE void google_protobuf_FileOptions_set_java_generic_services(google_protobuf_FileOptions *msg, bool value) { UPB_FIELD_AT(msg, bool, UPB_SIZE(18, 18)) = value; }
7260
+ UPB_INLINE void google_protobuf_FileOptions_set_py_generic_services(google_protobuf_FileOptions *msg, bool value) { UPB_FIELD_AT(msg, bool, UPB_SIZE(19, 19)) = value; }
7261
+ UPB_INLINE void google_protobuf_FileOptions_set_java_generate_equals_and_hash(google_protobuf_FileOptions *msg, bool value) { UPB_FIELD_AT(msg, bool, UPB_SIZE(20, 20)) = value; }
7262
+ UPB_INLINE void google_protobuf_FileOptions_set_deprecated(google_protobuf_FileOptions *msg, bool value) { UPB_FIELD_AT(msg, bool, UPB_SIZE(21, 21)) = value; }
7263
+ UPB_INLINE void google_protobuf_FileOptions_set_java_string_check_utf8(google_protobuf_FileOptions *msg, bool value) { UPB_FIELD_AT(msg, bool, UPB_SIZE(22, 22)) = value; }
7264
+ UPB_INLINE void google_protobuf_FileOptions_set_cc_enable_arenas(google_protobuf_FileOptions *msg, bool value) { UPB_FIELD_AT(msg, bool, UPB_SIZE(23, 23)) = value; }
7265
+ UPB_INLINE void google_protobuf_FileOptions_set_objc_class_prefix(google_protobuf_FileOptions *msg, upb_stringview value) { UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(56, 80)) = value; }
7266
+ UPB_INLINE void google_protobuf_FileOptions_set_csharp_namespace(google_protobuf_FileOptions *msg, upb_stringview value) { UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(64, 96)) = value; }
7267
+ UPB_INLINE void google_protobuf_FileOptions_set_swift_prefix(google_protobuf_FileOptions *msg, upb_stringview value) { UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(72, 112)) = value; }
7268
+ UPB_INLINE void google_protobuf_FileOptions_set_php_class_prefix(google_protobuf_FileOptions *msg, upb_stringview value) { UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(80, 128)) = value; }
7269
+ UPB_INLINE void google_protobuf_FileOptions_set_php_namespace(google_protobuf_FileOptions *msg, upb_stringview value) { UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(88, 144)) = value; }
7270
+ UPB_INLINE void google_protobuf_FileOptions_set_php_generic_services(google_protobuf_FileOptions *msg, bool value) { UPB_FIELD_AT(msg, bool, UPB_SIZE(24, 24)) = value; }
7271
+ UPB_INLINE void google_protobuf_FileOptions_set_uninterpreted_option(google_protobuf_FileOptions *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(96, 160)) = value; }
7272
+
7273
+
7274
+ /* google.protobuf.MessageOptions */
7275
+
7276
+ extern const upb_msglayout google_protobuf_MessageOptions_msginit;
7277
+ UPB_INLINE google_protobuf_MessageOptions *google_protobuf_MessageOptions_new(upb_arena *arena) {
7278
+ return (google_protobuf_MessageOptions *)upb_msg_new(&google_protobuf_MessageOptions_msginit, arena);
7279
+ }
7280
+ UPB_INLINE google_protobuf_MessageOptions *google_protobuf_MessageOptions_parsenew(upb_stringview buf, upb_arena *arena) {
7281
+ google_protobuf_MessageOptions *ret = google_protobuf_MessageOptions_new(arena);
7282
+ return (ret && upb_decode(buf, ret, &google_protobuf_MessageOptions_msginit)) ? ret : NULL;
7283
+ }
7284
+ UPB_INLINE char *google_protobuf_MessageOptions_serialize(const google_protobuf_MessageOptions *msg, upb_arena *arena, size_t *len) {
7285
+ return upb_encode(msg, &google_protobuf_MessageOptions_msginit, arena, len);
7286
+ }
7287
+
7288
+ UPB_INLINE bool google_protobuf_MessageOptions_message_set_wire_format(const google_protobuf_MessageOptions *msg) { return UPB_FIELD_AT(msg, bool, UPB_SIZE(1, 1)); }
7289
+ UPB_INLINE bool google_protobuf_MessageOptions_no_standard_descriptor_accessor(const google_protobuf_MessageOptions *msg) { return UPB_FIELD_AT(msg, bool, UPB_SIZE(2, 2)); }
7290
+ UPB_INLINE bool google_protobuf_MessageOptions_deprecated(const google_protobuf_MessageOptions *msg) { return UPB_FIELD_AT(msg, bool, UPB_SIZE(3, 3)); }
7291
+ UPB_INLINE bool google_protobuf_MessageOptions_map_entry(const google_protobuf_MessageOptions *msg) { return UPB_FIELD_AT(msg, bool, UPB_SIZE(4, 4)); }
7292
+ UPB_INLINE const upb_array* google_protobuf_MessageOptions_uninterpreted_option(const google_protobuf_MessageOptions *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(8, 8)); }
7293
+
7294
+ UPB_INLINE void google_protobuf_MessageOptions_set_message_set_wire_format(google_protobuf_MessageOptions *msg, bool value) { UPB_FIELD_AT(msg, bool, UPB_SIZE(1, 1)) = value; }
7295
+ UPB_INLINE void google_protobuf_MessageOptions_set_no_standard_descriptor_accessor(google_protobuf_MessageOptions *msg, bool value) { UPB_FIELD_AT(msg, bool, UPB_SIZE(2, 2)) = value; }
7296
+ UPB_INLINE void google_protobuf_MessageOptions_set_deprecated(google_protobuf_MessageOptions *msg, bool value) { UPB_FIELD_AT(msg, bool, UPB_SIZE(3, 3)) = value; }
7297
+ UPB_INLINE void google_protobuf_MessageOptions_set_map_entry(google_protobuf_MessageOptions *msg, bool value) { UPB_FIELD_AT(msg, bool, UPB_SIZE(4, 4)) = value; }
7298
+ UPB_INLINE void google_protobuf_MessageOptions_set_uninterpreted_option(google_protobuf_MessageOptions *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(8, 8)) = value; }
7299
+
7300
+
7301
+ /* google.protobuf.FieldOptions */
7302
+
7303
+ extern const upb_msglayout google_protobuf_FieldOptions_msginit;
7304
+ UPB_INLINE google_protobuf_FieldOptions *google_protobuf_FieldOptions_new(upb_arena *arena) {
7305
+ return (google_protobuf_FieldOptions *)upb_msg_new(&google_protobuf_FieldOptions_msginit, arena);
7306
+ }
7307
+ UPB_INLINE google_protobuf_FieldOptions *google_protobuf_FieldOptions_parsenew(upb_stringview buf, upb_arena *arena) {
7308
+ google_protobuf_FieldOptions *ret = google_protobuf_FieldOptions_new(arena);
7309
+ return (ret && upb_decode(buf, ret, &google_protobuf_FieldOptions_msginit)) ? ret : NULL;
7310
+ }
7311
+ UPB_INLINE char *google_protobuf_FieldOptions_serialize(const google_protobuf_FieldOptions *msg, upb_arena *arena, size_t *len) {
7312
+ return upb_encode(msg, &google_protobuf_FieldOptions_msginit, arena, len);
7313
+ }
7314
+
7315
+ UPB_INLINE google_protobuf_FieldOptions_CType google_protobuf_FieldOptions_ctype(const google_protobuf_FieldOptions *msg) { return UPB_FIELD_AT(msg, google_protobuf_FieldOptions_CType, UPB_SIZE(8, 8)); }
7316
+ UPB_INLINE bool google_protobuf_FieldOptions_packed(const google_protobuf_FieldOptions *msg) { return UPB_FIELD_AT(msg, bool, UPB_SIZE(24, 24)); }
7317
+ UPB_INLINE bool google_protobuf_FieldOptions_deprecated(const google_protobuf_FieldOptions *msg) { return UPB_FIELD_AT(msg, bool, UPB_SIZE(25, 25)); }
7318
+ UPB_INLINE bool google_protobuf_FieldOptions_lazy(const google_protobuf_FieldOptions *msg) { return UPB_FIELD_AT(msg, bool, UPB_SIZE(26, 26)); }
7319
+ UPB_INLINE google_protobuf_FieldOptions_JSType google_protobuf_FieldOptions_jstype(const google_protobuf_FieldOptions *msg) { return UPB_FIELD_AT(msg, google_protobuf_FieldOptions_JSType, UPB_SIZE(16, 16)); }
7320
+ UPB_INLINE bool google_protobuf_FieldOptions_weak(const google_protobuf_FieldOptions *msg) { return UPB_FIELD_AT(msg, bool, UPB_SIZE(27, 27)); }
7321
+ UPB_INLINE const upb_array* google_protobuf_FieldOptions_uninterpreted_option(const google_protobuf_FieldOptions *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(28, 32)); }
7322
+
7323
+ UPB_INLINE void google_protobuf_FieldOptions_set_ctype(google_protobuf_FieldOptions *msg, google_protobuf_FieldOptions_CType value) { UPB_FIELD_AT(msg, google_protobuf_FieldOptions_CType, UPB_SIZE(8, 8)) = value; }
7324
+ UPB_INLINE void google_protobuf_FieldOptions_set_packed(google_protobuf_FieldOptions *msg, bool value) { UPB_FIELD_AT(msg, bool, UPB_SIZE(24, 24)) = value; }
7325
+ UPB_INLINE void google_protobuf_FieldOptions_set_deprecated(google_protobuf_FieldOptions *msg, bool value) { UPB_FIELD_AT(msg, bool, UPB_SIZE(25, 25)) = value; }
7326
+ UPB_INLINE void google_protobuf_FieldOptions_set_lazy(google_protobuf_FieldOptions *msg, bool value) { UPB_FIELD_AT(msg, bool, UPB_SIZE(26, 26)) = value; }
7327
+ UPB_INLINE void google_protobuf_FieldOptions_set_jstype(google_protobuf_FieldOptions *msg, google_protobuf_FieldOptions_JSType value) { UPB_FIELD_AT(msg, google_protobuf_FieldOptions_JSType, UPB_SIZE(16, 16)) = value; }
7328
+ UPB_INLINE void google_protobuf_FieldOptions_set_weak(google_protobuf_FieldOptions *msg, bool value) { UPB_FIELD_AT(msg, bool, UPB_SIZE(27, 27)) = value; }
7329
+ UPB_INLINE void google_protobuf_FieldOptions_set_uninterpreted_option(google_protobuf_FieldOptions *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(28, 32)) = value; }
7330
+
7331
+
7332
+ /* google.protobuf.OneofOptions */
7333
+
7334
+ extern const upb_msglayout google_protobuf_OneofOptions_msginit;
7335
+ UPB_INLINE google_protobuf_OneofOptions *google_protobuf_OneofOptions_new(upb_arena *arena) {
7336
+ return (google_protobuf_OneofOptions *)upb_msg_new(&google_protobuf_OneofOptions_msginit, arena);
7337
+ }
7338
+ UPB_INLINE google_protobuf_OneofOptions *google_protobuf_OneofOptions_parsenew(upb_stringview buf, upb_arena *arena) {
7339
+ google_protobuf_OneofOptions *ret = google_protobuf_OneofOptions_new(arena);
7340
+ return (ret && upb_decode(buf, ret, &google_protobuf_OneofOptions_msginit)) ? ret : NULL;
7341
+ }
7342
+ UPB_INLINE char *google_protobuf_OneofOptions_serialize(const google_protobuf_OneofOptions *msg, upb_arena *arena, size_t *len) {
7343
+ return upb_encode(msg, &google_protobuf_OneofOptions_msginit, arena, len);
7344
+ }
7345
+
7346
+ UPB_INLINE const upb_array* google_protobuf_OneofOptions_uninterpreted_option(const google_protobuf_OneofOptions *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(0, 0)); }
7347
+
7348
+ UPB_INLINE void google_protobuf_OneofOptions_set_uninterpreted_option(google_protobuf_OneofOptions *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(0, 0)) = value; }
7349
+
7350
+
7351
+ /* google.protobuf.EnumOptions */
7352
+
7353
+ extern const upb_msglayout google_protobuf_EnumOptions_msginit;
7354
+ UPB_INLINE google_protobuf_EnumOptions *google_protobuf_EnumOptions_new(upb_arena *arena) {
7355
+ return (google_protobuf_EnumOptions *)upb_msg_new(&google_protobuf_EnumOptions_msginit, arena);
7356
+ }
7357
+ UPB_INLINE google_protobuf_EnumOptions *google_protobuf_EnumOptions_parsenew(upb_stringview buf, upb_arena *arena) {
7358
+ google_protobuf_EnumOptions *ret = google_protobuf_EnumOptions_new(arena);
7359
+ return (ret && upb_decode(buf, ret, &google_protobuf_EnumOptions_msginit)) ? ret : NULL;
7360
+ }
7361
+ UPB_INLINE char *google_protobuf_EnumOptions_serialize(const google_protobuf_EnumOptions *msg, upb_arena *arena, size_t *len) {
7362
+ return upb_encode(msg, &google_protobuf_EnumOptions_msginit, arena, len);
7363
+ }
7364
+
7365
+ UPB_INLINE bool google_protobuf_EnumOptions_allow_alias(const google_protobuf_EnumOptions *msg) { return UPB_FIELD_AT(msg, bool, UPB_SIZE(1, 1)); }
7366
+ UPB_INLINE bool google_protobuf_EnumOptions_deprecated(const google_protobuf_EnumOptions *msg) { return UPB_FIELD_AT(msg, bool, UPB_SIZE(2, 2)); }
7367
+ UPB_INLINE const upb_array* google_protobuf_EnumOptions_uninterpreted_option(const google_protobuf_EnumOptions *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(4, 8)); }
7368
+
7369
+ UPB_INLINE void google_protobuf_EnumOptions_set_allow_alias(google_protobuf_EnumOptions *msg, bool value) { UPB_FIELD_AT(msg, bool, UPB_SIZE(1, 1)) = value; }
7370
+ UPB_INLINE void google_protobuf_EnumOptions_set_deprecated(google_protobuf_EnumOptions *msg, bool value) { UPB_FIELD_AT(msg, bool, UPB_SIZE(2, 2)) = value; }
7371
+ UPB_INLINE void google_protobuf_EnumOptions_set_uninterpreted_option(google_protobuf_EnumOptions *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(4, 8)) = value; }
7372
+
7373
+
7374
+ /* google.protobuf.EnumValueOptions */
7375
+
7376
+ extern const upb_msglayout google_protobuf_EnumValueOptions_msginit;
7377
+ UPB_INLINE google_protobuf_EnumValueOptions *google_protobuf_EnumValueOptions_new(upb_arena *arena) {
7378
+ return (google_protobuf_EnumValueOptions *)upb_msg_new(&google_protobuf_EnumValueOptions_msginit, arena);
7379
+ }
7380
+ UPB_INLINE google_protobuf_EnumValueOptions *google_protobuf_EnumValueOptions_parsenew(upb_stringview buf, upb_arena *arena) {
7381
+ google_protobuf_EnumValueOptions *ret = google_protobuf_EnumValueOptions_new(arena);
7382
+ return (ret && upb_decode(buf, ret, &google_protobuf_EnumValueOptions_msginit)) ? ret : NULL;
7383
+ }
7384
+ UPB_INLINE char *google_protobuf_EnumValueOptions_serialize(const google_protobuf_EnumValueOptions *msg, upb_arena *arena, size_t *len) {
7385
+ return upb_encode(msg, &google_protobuf_EnumValueOptions_msginit, arena, len);
7386
+ }
7387
+
7388
+ UPB_INLINE bool google_protobuf_EnumValueOptions_deprecated(const google_protobuf_EnumValueOptions *msg) { return UPB_FIELD_AT(msg, bool, UPB_SIZE(1, 1)); }
7389
+ UPB_INLINE const upb_array* google_protobuf_EnumValueOptions_uninterpreted_option(const google_protobuf_EnumValueOptions *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(4, 8)); }
7390
+
7391
+ UPB_INLINE void google_protobuf_EnumValueOptions_set_deprecated(google_protobuf_EnumValueOptions *msg, bool value) { UPB_FIELD_AT(msg, bool, UPB_SIZE(1, 1)) = value; }
7392
+ UPB_INLINE void google_protobuf_EnumValueOptions_set_uninterpreted_option(google_protobuf_EnumValueOptions *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(4, 8)) = value; }
7393
+
7394
+
7395
+ /* google.protobuf.ServiceOptions */
7396
+
7397
+ extern const upb_msglayout google_protobuf_ServiceOptions_msginit;
7398
+ UPB_INLINE google_protobuf_ServiceOptions *google_protobuf_ServiceOptions_new(upb_arena *arena) {
7399
+ return (google_protobuf_ServiceOptions *)upb_msg_new(&google_protobuf_ServiceOptions_msginit, arena);
7400
+ }
7401
+ UPB_INLINE google_protobuf_ServiceOptions *google_protobuf_ServiceOptions_parsenew(upb_stringview buf, upb_arena *arena) {
7402
+ google_protobuf_ServiceOptions *ret = google_protobuf_ServiceOptions_new(arena);
7403
+ return (ret && upb_decode(buf, ret, &google_protobuf_ServiceOptions_msginit)) ? ret : NULL;
7404
+ }
7405
+ UPB_INLINE char *google_protobuf_ServiceOptions_serialize(const google_protobuf_ServiceOptions *msg, upb_arena *arena, size_t *len) {
7406
+ return upb_encode(msg, &google_protobuf_ServiceOptions_msginit, arena, len);
7407
+ }
7408
+
7409
+ UPB_INLINE bool google_protobuf_ServiceOptions_deprecated(const google_protobuf_ServiceOptions *msg) { return UPB_FIELD_AT(msg, bool, UPB_SIZE(1, 1)); }
7410
+ UPB_INLINE const upb_array* google_protobuf_ServiceOptions_uninterpreted_option(const google_protobuf_ServiceOptions *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(4, 8)); }
7411
+
7412
+ UPB_INLINE void google_protobuf_ServiceOptions_set_deprecated(google_protobuf_ServiceOptions *msg, bool value) { UPB_FIELD_AT(msg, bool, UPB_SIZE(1, 1)) = value; }
7413
+ UPB_INLINE void google_protobuf_ServiceOptions_set_uninterpreted_option(google_protobuf_ServiceOptions *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(4, 8)) = value; }
7414
+
7415
+
7416
+ /* google.protobuf.MethodOptions */
7417
+
7418
+ extern const upb_msglayout google_protobuf_MethodOptions_msginit;
7419
+ UPB_INLINE google_protobuf_MethodOptions *google_protobuf_MethodOptions_new(upb_arena *arena) {
7420
+ return (google_protobuf_MethodOptions *)upb_msg_new(&google_protobuf_MethodOptions_msginit, arena);
7421
+ }
7422
+ UPB_INLINE google_protobuf_MethodOptions *google_protobuf_MethodOptions_parsenew(upb_stringview buf, upb_arena *arena) {
7423
+ google_protobuf_MethodOptions *ret = google_protobuf_MethodOptions_new(arena);
7424
+ return (ret && upb_decode(buf, ret, &google_protobuf_MethodOptions_msginit)) ? ret : NULL;
7425
+ }
7426
+ UPB_INLINE char *google_protobuf_MethodOptions_serialize(const google_protobuf_MethodOptions *msg, upb_arena *arena, size_t *len) {
7427
+ return upb_encode(msg, &google_protobuf_MethodOptions_msginit, arena, len);
7428
+ }
7429
+
7430
+ UPB_INLINE bool google_protobuf_MethodOptions_deprecated(const google_protobuf_MethodOptions *msg) { return UPB_FIELD_AT(msg, bool, UPB_SIZE(16, 16)); }
7431
+ UPB_INLINE google_protobuf_MethodOptions_IdempotencyLevel google_protobuf_MethodOptions_idempotency_level(const google_protobuf_MethodOptions *msg) { return UPB_FIELD_AT(msg, google_protobuf_MethodOptions_IdempotencyLevel, UPB_SIZE(8, 8)); }
7432
+ UPB_INLINE const upb_array* google_protobuf_MethodOptions_uninterpreted_option(const google_protobuf_MethodOptions *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(20, 24)); }
7433
+
7434
+ UPB_INLINE void google_protobuf_MethodOptions_set_deprecated(google_protobuf_MethodOptions *msg, bool value) { UPB_FIELD_AT(msg, bool, UPB_SIZE(16, 16)) = value; }
7435
+ UPB_INLINE void google_protobuf_MethodOptions_set_idempotency_level(google_protobuf_MethodOptions *msg, google_protobuf_MethodOptions_IdempotencyLevel value) { UPB_FIELD_AT(msg, google_protobuf_MethodOptions_IdempotencyLevel, UPB_SIZE(8, 8)) = value; }
7436
+ UPB_INLINE void google_protobuf_MethodOptions_set_uninterpreted_option(google_protobuf_MethodOptions *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(20, 24)) = value; }
7437
+
7438
+
7439
+ /* google.protobuf.UninterpretedOption */
7440
+
7441
+ extern const upb_msglayout google_protobuf_UninterpretedOption_msginit;
7442
+ UPB_INLINE google_protobuf_UninterpretedOption *google_protobuf_UninterpretedOption_new(upb_arena *arena) {
7443
+ return (google_protobuf_UninterpretedOption *)upb_msg_new(&google_protobuf_UninterpretedOption_msginit, arena);
7444
+ }
7445
+ UPB_INLINE google_protobuf_UninterpretedOption *google_protobuf_UninterpretedOption_parsenew(upb_stringview buf, upb_arena *arena) {
7446
+ google_protobuf_UninterpretedOption *ret = google_protobuf_UninterpretedOption_new(arena);
7447
+ return (ret && upb_decode(buf, ret, &google_protobuf_UninterpretedOption_msginit)) ? ret : NULL;
7448
+ }
7449
+ UPB_INLINE char *google_protobuf_UninterpretedOption_serialize(const google_protobuf_UninterpretedOption *msg, upb_arena *arena, size_t *len) {
7450
+ return upb_encode(msg, &google_protobuf_UninterpretedOption_msginit, arena, len);
7451
+ }
7452
+
7453
+ UPB_INLINE const upb_array* google_protobuf_UninterpretedOption_name(const google_protobuf_UninterpretedOption *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(56, 80)); }
7454
+ UPB_INLINE upb_stringview google_protobuf_UninterpretedOption_identifier_value(const google_protobuf_UninterpretedOption *msg) { return UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(32, 32)); }
7455
+ UPB_INLINE uint64_t google_protobuf_UninterpretedOption_positive_int_value(const google_protobuf_UninterpretedOption *msg) { return UPB_FIELD_AT(msg, uint64_t, UPB_SIZE(8, 8)); }
7456
+ UPB_INLINE int64_t google_protobuf_UninterpretedOption_negative_int_value(const google_protobuf_UninterpretedOption *msg) { return UPB_FIELD_AT(msg, int64_t, UPB_SIZE(16, 16)); }
7457
+ UPB_INLINE double google_protobuf_UninterpretedOption_double_value(const google_protobuf_UninterpretedOption *msg) { return UPB_FIELD_AT(msg, double, UPB_SIZE(24, 24)); }
7458
+ UPB_INLINE upb_stringview google_protobuf_UninterpretedOption_string_value(const google_protobuf_UninterpretedOption *msg) { return UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(40, 48)); }
7459
+ UPB_INLINE upb_stringview google_protobuf_UninterpretedOption_aggregate_value(const google_protobuf_UninterpretedOption *msg) { return UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(48, 64)); }
7460
+
7461
+ UPB_INLINE void google_protobuf_UninterpretedOption_set_name(google_protobuf_UninterpretedOption *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(56, 80)) = value; }
7462
+ UPB_INLINE void google_protobuf_UninterpretedOption_set_identifier_value(google_protobuf_UninterpretedOption *msg, upb_stringview value) { UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(32, 32)) = value; }
7463
+ UPB_INLINE void google_protobuf_UninterpretedOption_set_positive_int_value(google_protobuf_UninterpretedOption *msg, uint64_t value) { UPB_FIELD_AT(msg, uint64_t, UPB_SIZE(8, 8)) = value; }
7464
+ UPB_INLINE void google_protobuf_UninterpretedOption_set_negative_int_value(google_protobuf_UninterpretedOption *msg, int64_t value) { UPB_FIELD_AT(msg, int64_t, UPB_SIZE(16, 16)) = value; }
7465
+ UPB_INLINE void google_protobuf_UninterpretedOption_set_double_value(google_protobuf_UninterpretedOption *msg, double value) { UPB_FIELD_AT(msg, double, UPB_SIZE(24, 24)) = value; }
7466
+ UPB_INLINE void google_protobuf_UninterpretedOption_set_string_value(google_protobuf_UninterpretedOption *msg, upb_stringview value) { UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(40, 48)) = value; }
7467
+ UPB_INLINE void google_protobuf_UninterpretedOption_set_aggregate_value(google_protobuf_UninterpretedOption *msg, upb_stringview value) { UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(48, 64)) = value; }
7468
+
7469
+
7470
+ /* google.protobuf.UninterpretedOption.NamePart */
7471
+
7472
+ extern const upb_msglayout google_protobuf_UninterpretedOption_NamePart_msginit;
7473
+ UPB_INLINE google_protobuf_UninterpretedOption_NamePart *google_protobuf_UninterpretedOption_NamePart_new(upb_arena *arena) {
7474
+ return (google_protobuf_UninterpretedOption_NamePart *)upb_msg_new(&google_protobuf_UninterpretedOption_NamePart_msginit, arena);
7475
+ }
7476
+ UPB_INLINE google_protobuf_UninterpretedOption_NamePart *google_protobuf_UninterpretedOption_NamePart_parsenew(upb_stringview buf, upb_arena *arena) {
7477
+ google_protobuf_UninterpretedOption_NamePart *ret = google_protobuf_UninterpretedOption_NamePart_new(arena);
7478
+ return (ret && upb_decode(buf, ret, &google_protobuf_UninterpretedOption_NamePart_msginit)) ? ret : NULL;
7479
+ }
7480
+ UPB_INLINE char *google_protobuf_UninterpretedOption_NamePart_serialize(const google_protobuf_UninterpretedOption_NamePart *msg, upb_arena *arena, size_t *len) {
7481
+ return upb_encode(msg, &google_protobuf_UninterpretedOption_NamePart_msginit, arena, len);
7482
+ }
7483
+
7484
+ UPB_INLINE upb_stringview google_protobuf_UninterpretedOption_NamePart_name_part(const google_protobuf_UninterpretedOption_NamePart *msg) { return UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(8, 16)); }
7485
+ UPB_INLINE bool google_protobuf_UninterpretedOption_NamePart_is_extension(const google_protobuf_UninterpretedOption_NamePart *msg) { return UPB_FIELD_AT(msg, bool, UPB_SIZE(1, 1)); }
7486
+
7487
+ UPB_INLINE void google_protobuf_UninterpretedOption_NamePart_set_name_part(google_protobuf_UninterpretedOption_NamePart *msg, upb_stringview value) { UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(8, 16)) = value; }
7488
+ UPB_INLINE void google_protobuf_UninterpretedOption_NamePart_set_is_extension(google_protobuf_UninterpretedOption_NamePart *msg, bool value) { UPB_FIELD_AT(msg, bool, UPB_SIZE(1, 1)) = value; }
7489
+
7490
+
7491
+ /* google.protobuf.SourceCodeInfo */
7492
+
7493
+ extern const upb_msglayout google_protobuf_SourceCodeInfo_msginit;
7494
+ UPB_INLINE google_protobuf_SourceCodeInfo *google_protobuf_SourceCodeInfo_new(upb_arena *arena) {
7495
+ return (google_protobuf_SourceCodeInfo *)upb_msg_new(&google_protobuf_SourceCodeInfo_msginit, arena);
7496
+ }
7497
+ UPB_INLINE google_protobuf_SourceCodeInfo *google_protobuf_SourceCodeInfo_parsenew(upb_stringview buf, upb_arena *arena) {
7498
+ google_protobuf_SourceCodeInfo *ret = google_protobuf_SourceCodeInfo_new(arena);
7499
+ return (ret && upb_decode(buf, ret, &google_protobuf_SourceCodeInfo_msginit)) ? ret : NULL;
7500
+ }
7501
+ UPB_INLINE char *google_protobuf_SourceCodeInfo_serialize(const google_protobuf_SourceCodeInfo *msg, upb_arena *arena, size_t *len) {
7502
+ return upb_encode(msg, &google_protobuf_SourceCodeInfo_msginit, arena, len);
7503
+ }
7504
+
7505
+ UPB_INLINE const upb_array* google_protobuf_SourceCodeInfo_location(const google_protobuf_SourceCodeInfo *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(0, 0)); }
7506
+
7507
+ UPB_INLINE void google_protobuf_SourceCodeInfo_set_location(google_protobuf_SourceCodeInfo *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(0, 0)) = value; }
7508
+
7509
+
7510
+ /* google.protobuf.SourceCodeInfo.Location */
7511
+
7512
+ extern const upb_msglayout google_protobuf_SourceCodeInfo_Location_msginit;
7513
+ UPB_INLINE google_protobuf_SourceCodeInfo_Location *google_protobuf_SourceCodeInfo_Location_new(upb_arena *arena) {
7514
+ return (google_protobuf_SourceCodeInfo_Location *)upb_msg_new(&google_protobuf_SourceCodeInfo_Location_msginit, arena);
7515
+ }
7516
+ UPB_INLINE google_protobuf_SourceCodeInfo_Location *google_protobuf_SourceCodeInfo_Location_parsenew(upb_stringview buf, upb_arena *arena) {
7517
+ google_protobuf_SourceCodeInfo_Location *ret = google_protobuf_SourceCodeInfo_Location_new(arena);
7518
+ return (ret && upb_decode(buf, ret, &google_protobuf_SourceCodeInfo_Location_msginit)) ? ret : NULL;
7519
+ }
7520
+ UPB_INLINE char *google_protobuf_SourceCodeInfo_Location_serialize(const google_protobuf_SourceCodeInfo_Location *msg, upb_arena *arena, size_t *len) {
7521
+ return upb_encode(msg, &google_protobuf_SourceCodeInfo_Location_msginit, arena, len);
7522
+ }
7523
+
7524
+ UPB_INLINE const upb_array* google_protobuf_SourceCodeInfo_Location_path(const google_protobuf_SourceCodeInfo_Location *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(24, 48)); }
7525
+ UPB_INLINE const upb_array* google_protobuf_SourceCodeInfo_Location_span(const google_protobuf_SourceCodeInfo_Location *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(28, 56)); }
7526
+ UPB_INLINE upb_stringview google_protobuf_SourceCodeInfo_Location_leading_comments(const google_protobuf_SourceCodeInfo_Location *msg) { return UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(8, 16)); }
7527
+ UPB_INLINE upb_stringview google_protobuf_SourceCodeInfo_Location_trailing_comments(const google_protobuf_SourceCodeInfo_Location *msg) { return UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(16, 32)); }
7528
+ UPB_INLINE const upb_array* google_protobuf_SourceCodeInfo_Location_leading_detached_comments(const google_protobuf_SourceCodeInfo_Location *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(32, 64)); }
7529
+
7530
+ UPB_INLINE void google_protobuf_SourceCodeInfo_Location_set_path(google_protobuf_SourceCodeInfo_Location *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(24, 48)) = value; }
7531
+ UPB_INLINE void google_protobuf_SourceCodeInfo_Location_set_span(google_protobuf_SourceCodeInfo_Location *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(28, 56)) = value; }
7532
+ UPB_INLINE void google_protobuf_SourceCodeInfo_Location_set_leading_comments(google_protobuf_SourceCodeInfo_Location *msg, upb_stringview value) { UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(8, 16)) = value; }
7533
+ UPB_INLINE void google_protobuf_SourceCodeInfo_Location_set_trailing_comments(google_protobuf_SourceCodeInfo_Location *msg, upb_stringview value) { UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(16, 32)) = value; }
7534
+ UPB_INLINE void google_protobuf_SourceCodeInfo_Location_set_leading_detached_comments(google_protobuf_SourceCodeInfo_Location *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(32, 64)) = value; }
7535
+
7536
+
7537
+ /* google.protobuf.GeneratedCodeInfo */
7538
+
7539
+ extern const upb_msglayout google_protobuf_GeneratedCodeInfo_msginit;
7540
+ UPB_INLINE google_protobuf_GeneratedCodeInfo *google_protobuf_GeneratedCodeInfo_new(upb_arena *arena) {
7541
+ return (google_protobuf_GeneratedCodeInfo *)upb_msg_new(&google_protobuf_GeneratedCodeInfo_msginit, arena);
7542
+ }
7543
+ UPB_INLINE google_protobuf_GeneratedCodeInfo *google_protobuf_GeneratedCodeInfo_parsenew(upb_stringview buf, upb_arena *arena) {
7544
+ google_protobuf_GeneratedCodeInfo *ret = google_protobuf_GeneratedCodeInfo_new(arena);
7545
+ return (ret && upb_decode(buf, ret, &google_protobuf_GeneratedCodeInfo_msginit)) ? ret : NULL;
7546
+ }
7547
+ UPB_INLINE char *google_protobuf_GeneratedCodeInfo_serialize(const google_protobuf_GeneratedCodeInfo *msg, upb_arena *arena, size_t *len) {
7548
+ return upb_encode(msg, &google_protobuf_GeneratedCodeInfo_msginit, arena, len);
7549
+ }
7550
+
7551
+ UPB_INLINE const upb_array* google_protobuf_GeneratedCodeInfo_annotation(const google_protobuf_GeneratedCodeInfo *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(0, 0)); }
7552
+
7553
+ UPB_INLINE void google_protobuf_GeneratedCodeInfo_set_annotation(google_protobuf_GeneratedCodeInfo *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(0, 0)) = value; }
7554
+
7555
+
7556
+ /* google.protobuf.GeneratedCodeInfo.Annotation */
7557
+
7558
+ extern const upb_msglayout google_protobuf_GeneratedCodeInfo_Annotation_msginit;
7559
+ UPB_INLINE google_protobuf_GeneratedCodeInfo_Annotation *google_protobuf_GeneratedCodeInfo_Annotation_new(upb_arena *arena) {
7560
+ return (google_protobuf_GeneratedCodeInfo_Annotation *)upb_msg_new(&google_protobuf_GeneratedCodeInfo_Annotation_msginit, arena);
7561
+ }
7562
+ UPB_INLINE google_protobuf_GeneratedCodeInfo_Annotation *google_protobuf_GeneratedCodeInfo_Annotation_parsenew(upb_stringview buf, upb_arena *arena) {
7563
+ google_protobuf_GeneratedCodeInfo_Annotation *ret = google_protobuf_GeneratedCodeInfo_Annotation_new(arena);
7564
+ return (ret && upb_decode(buf, ret, &google_protobuf_GeneratedCodeInfo_Annotation_msginit)) ? ret : NULL;
7565
+ }
7566
+ UPB_INLINE char *google_protobuf_GeneratedCodeInfo_Annotation_serialize(const google_protobuf_GeneratedCodeInfo_Annotation *msg, upb_arena *arena, size_t *len) {
7567
+ return upb_encode(msg, &google_protobuf_GeneratedCodeInfo_Annotation_msginit, arena, len);
7568
+ }
7569
+
7570
+ UPB_INLINE const upb_array* google_protobuf_GeneratedCodeInfo_Annotation_path(const google_protobuf_GeneratedCodeInfo_Annotation *msg) { return UPB_FIELD_AT(msg, const upb_array*, UPB_SIZE(24, 32)); }
7571
+ UPB_INLINE upb_stringview google_protobuf_GeneratedCodeInfo_Annotation_source_file(const google_protobuf_GeneratedCodeInfo_Annotation *msg) { return UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(16, 16)); }
7572
+ UPB_INLINE int32_t google_protobuf_GeneratedCodeInfo_Annotation_begin(const google_protobuf_GeneratedCodeInfo_Annotation *msg) { return UPB_FIELD_AT(msg, int32_t, UPB_SIZE(4, 4)); }
7573
+ UPB_INLINE int32_t google_protobuf_GeneratedCodeInfo_Annotation_end(const google_protobuf_GeneratedCodeInfo_Annotation *msg) { return UPB_FIELD_AT(msg, int32_t, UPB_SIZE(8, 8)); }
7574
+
7575
+ UPB_INLINE void google_protobuf_GeneratedCodeInfo_Annotation_set_path(google_protobuf_GeneratedCodeInfo_Annotation *msg, upb_array* value) { UPB_FIELD_AT(msg, upb_array*, UPB_SIZE(24, 32)) = value; }
7576
+ UPB_INLINE void google_protobuf_GeneratedCodeInfo_Annotation_set_source_file(google_protobuf_GeneratedCodeInfo_Annotation *msg, upb_stringview value) { UPB_FIELD_AT(msg, upb_stringview, UPB_SIZE(16, 16)) = value; }
7577
+ UPB_INLINE void google_protobuf_GeneratedCodeInfo_Annotation_set_begin(google_protobuf_GeneratedCodeInfo_Annotation *msg, int32_t value) { UPB_FIELD_AT(msg, int32_t, UPB_SIZE(4, 4)) = value; }
7578
+ UPB_INLINE void google_protobuf_GeneratedCodeInfo_Annotation_set_end(google_protobuf_GeneratedCodeInfo_Annotation *msg, int32_t value) { UPB_FIELD_AT(msg, int32_t, UPB_SIZE(8, 8)) = value; }
7579
+
7580
+
7581
+ UPB_END_EXTERN_C
7582
+
7583
+
7584
+ #endif /* GOOGLE_PROTOBUF_DESCRIPTOR_PROTO_UPB_H_ */
6789
7585
  /*
6790
7586
  ** structs.int.h: structures definitions that are internal to upb.
6791
7587
  */
@@ -6799,7 +7595,7 @@ struct upb_array {
6799
7595
  void *data; /* Each element is element_size. */
6800
7596
  size_t len; /* Measured in elements. */
6801
7597
  size_t size; /* Measured in elements. */
6802
- upb_alloc *alloc;
7598
+ upb_arena *arena;
6803
7599
  };
6804
7600
 
6805
7601
  #endif /* UPB_STRUCTS_H_ */
@@ -6920,6 +7716,10 @@ struct upb_msgdef {
6920
7716
  /* Whether this message has proto2 or proto3 semantics. */
6921
7717
  upb_syntax_t syntax;
6922
7718
 
7719
+ /* Type of well known type message. UPB_WELLKNOWN_UNSPECIFIED for
7720
+ * non-well-known message. */
7721
+ upb_wellknowntype_t well_known_type;
7722
+
6923
7723
  /* TODO(haberman): proper extension ranges (there can be multiple). */
6924
7724
  };
6925
7725
 
@@ -6928,10 +7728,11 @@ extern const struct upb_refcounted_vtbl upb_msgdef_vtbl;
6928
7728
  /* TODO: also support static initialization of the oneofs table. This will be
6929
7729
  * needed if we compile in descriptors that contain oneofs. */
6930
7730
  #define UPB_MSGDEF_INIT(name, selector_count, submsg_field_count, itof, ntof, \
6931
- map_entry, syntax, refs, ref2s) \
7731
+ map_entry, syntax, well_known_type, refs, ref2s) \
6932
7732
  { \
6933
7733
  UPB_DEF_INIT(name, UPB_DEF_MSG, &upb_fielddef_vtbl, refs, ref2s), \
6934
- selector_count, submsg_field_count, itof, ntof, map_entry, syntax \
7734
+ selector_count, submsg_field_count, itof, ntof, map_entry, syntax, \
7735
+ well_known_type \
6935
7736
  }
6936
7737
 
6937
7738
 
@@ -6994,22 +7795,44 @@ struct upb_filedef {
6994
7795
  extern const struct upb_refcounted_vtbl upb_filedef_vtbl;
6995
7796
 
6996
7797
  #endif /* UPB_STATICINIT_H_ */
6997
- /*
6998
- ** upb_encode: parsing into a upb_msg using a upb_msglayout.
6999
- */
7000
7798
 
7001
- #ifndef UPB_ENCODE_H_
7002
- #define UPB_ENCODE_H_
7003
7799
 
7800
+ #ifndef UPB_MSGFACTORY_H_
7801
+ #define UPB_MSGFACTORY_H_
7004
7802
 
7005
- UPB_BEGIN_EXTERN_C
7803
+ UPB_DECLARE_TYPE(upb::MessageFactory, upb_msgfactory)
7006
7804
 
7007
- char *upb_encode(const void *msg, const upb_msglayout_msginit_v1 *l,
7008
- upb_env *env, size_t *size);
7805
+ /** upb_msgfactory ************************************************************/
7009
7806
 
7010
- UPB_END_EXTERN_C
7807
+ /* A upb_msgfactory contains a cache of upb_msglayout, upb_handlers, and
7808
+ * upb_visitorplan objects. These are the objects necessary to represent,
7809
+ * populate, and and visit upb_msg objects.
7810
+ *
7811
+ * These caches are all populated by upb_msgdef, and lazily created on demand.
7812
+ */
7011
7813
 
7012
- #endif /* UPB_ENCODE_H_ */
7814
+ /* Creates and destroys a msgfactory, respectively. The messages for this
7815
+ * msgfactory must come from |symtab| (which should outlive the msgfactory). */
7816
+ upb_msgfactory *upb_msgfactory_new(const upb_symtab *symtab);
7817
+ void upb_msgfactory_free(upb_msgfactory *f);
7818
+
7819
+ const upb_symtab *upb_msgfactory_symtab(const upb_msgfactory *f);
7820
+
7821
+ /* The functions to get cached objects, lazily creating them on demand. These
7822
+ * all require:
7823
+ *
7824
+ * - m is in upb_msgfactory_symtab(f)
7825
+ * - upb_msgdef_mapentry(m) == false (since map messages can't have layouts).
7826
+ *
7827
+ * The returned objects will live for as long as the msgfactory does.
7828
+ *
7829
+ * TODO(haberman): consider making this thread-safe and take a const
7830
+ * upb_msgfactory. */
7831
+ const upb_msglayout *upb_msgfactory_getlayout(upb_msgfactory *f,
7832
+ const upb_msgdef *m);
7833
+
7834
+
7835
+ #endif /* UPB_MSGFACTORY_H_ */
7013
7836
  /*
7014
7837
  ** upb::descriptor::Reader (upb_descreader)
7015
7838
  **
@@ -7112,53 +7935,6 @@ inline FileDef* Reader::file(size_t i) const {
7112
7935
 
7113
7936
  UPB_BEGIN_EXTERN_C
7114
7937
 
7115
- /* Enums */
7116
-
7117
- typedef enum {
7118
- google_protobuf_FieldDescriptorProto_LABEL_OPTIONAL = 1,
7119
- google_protobuf_FieldDescriptorProto_LABEL_REQUIRED = 2,
7120
- google_protobuf_FieldDescriptorProto_LABEL_REPEATED = 3
7121
- } google_protobuf_FieldDescriptorProto_Label;
7122
-
7123
- typedef enum {
7124
- google_protobuf_FieldDescriptorProto_TYPE_DOUBLE = 1,
7125
- google_protobuf_FieldDescriptorProto_TYPE_FLOAT = 2,
7126
- google_protobuf_FieldDescriptorProto_TYPE_INT64 = 3,
7127
- google_protobuf_FieldDescriptorProto_TYPE_UINT64 = 4,
7128
- google_protobuf_FieldDescriptorProto_TYPE_INT32 = 5,
7129
- google_protobuf_FieldDescriptorProto_TYPE_FIXED64 = 6,
7130
- google_protobuf_FieldDescriptorProto_TYPE_FIXED32 = 7,
7131
- google_protobuf_FieldDescriptorProto_TYPE_BOOL = 8,
7132
- google_protobuf_FieldDescriptorProto_TYPE_STRING = 9,
7133
- google_protobuf_FieldDescriptorProto_TYPE_GROUP = 10,
7134
- google_protobuf_FieldDescriptorProto_TYPE_MESSAGE = 11,
7135
- google_protobuf_FieldDescriptorProto_TYPE_BYTES = 12,
7136
- google_protobuf_FieldDescriptorProto_TYPE_UINT32 = 13,
7137
- google_protobuf_FieldDescriptorProto_TYPE_ENUM = 14,
7138
- google_protobuf_FieldDescriptorProto_TYPE_SFIXED32 = 15,
7139
- google_protobuf_FieldDescriptorProto_TYPE_SFIXED64 = 16,
7140
- google_protobuf_FieldDescriptorProto_TYPE_SINT32 = 17,
7141
- google_protobuf_FieldDescriptorProto_TYPE_SINT64 = 18
7142
- } google_protobuf_FieldDescriptorProto_Type;
7143
-
7144
- typedef enum {
7145
- google_protobuf_FieldOptions_STRING = 0,
7146
- google_protobuf_FieldOptions_CORD = 1,
7147
- google_protobuf_FieldOptions_STRING_PIECE = 2
7148
- } google_protobuf_FieldOptions_CType;
7149
-
7150
- typedef enum {
7151
- google_protobuf_FieldOptions_JS_NORMAL = 0,
7152
- google_protobuf_FieldOptions_JS_STRING = 1,
7153
- google_protobuf_FieldOptions_JS_NUMBER = 2
7154
- } google_protobuf_FieldOptions_JSType;
7155
-
7156
- typedef enum {
7157
- google_protobuf_FileOptions_SPEED = 1,
7158
- google_protobuf_FileOptions_CODE_SIZE = 2,
7159
- google_protobuf_FileOptions_LITE_RUNTIME = 3
7160
- } google_protobuf_FileOptions_OptimizeMode;
7161
-
7162
7938
  /* MessageDefs: call these functions to get a ref to a msgdef. */
7163
7939
  const upb_msgdef *upbdefs_google_protobuf_DescriptorProto_get(const void *owner);
7164
7940
  const upb_msgdef *upbdefs_google_protobuf_DescriptorProto_ExtensionRange_get(const void *owner);
@@ -8793,7 +9569,7 @@ UPB_DECLARE_DERIVED_TYPE(upb::json::ParserMethod, upb::RefCounted,
8793
9569
  * constructed. This hint may be an overestimate for some build configurations.
8794
9570
  * But if the parser library is upgraded without recompiling the application,
8795
9571
  * it may be an underestimate. */
8796
- #define UPB_JSON_PARSER_SIZE 4112
9572
+ #define UPB_JSON_PARSER_SIZE 5712
8797
9573
 
8798
9574
  #ifdef __cplusplus
8799
9575
 
@@ -8802,7 +9578,8 @@ UPB_DECLARE_DERIVED_TYPE(upb::json::ParserMethod, upb::RefCounted,
8802
9578
  class upb::json::Parser {
8803
9579
  public:
8804
9580
  static Parser* Create(Environment* env, const ParserMethod* method,
8805
- Sink* output);
9581
+ const SymbolTable* symtab,
9582
+ Sink* output, bool ignore_json_unknown);
8806
9583
 
8807
9584
  BytesSink* input();
8808
9585
 
@@ -8836,7 +9613,9 @@ UPB_BEGIN_EXTERN_C
8836
9613
 
8837
9614
  upb_json_parser* upb_json_parser_create(upb_env* e,
8838
9615
  const upb_json_parsermethod* m,
8839
- upb_sink* output);
9616
+ const upb_symtab* symtab,
9617
+ upb_sink* output,
9618
+ bool ignore_json_unknown);
8840
9619
  upb_bytessink *upb_json_parser_input(upb_json_parser *p);
8841
9620
 
8842
9621
  upb_json_parsermethod* upb_json_parsermethod_new(const upb_msgdef* md,
@@ -8856,8 +9635,10 @@ UPB_END_EXTERN_C
8856
9635
  namespace upb {
8857
9636
  namespace json {
8858
9637
  inline Parser* Parser::Create(Environment* env, const ParserMethod* method,
8859
- Sink* output) {
8860
- return upb_json_parser_create(env, method, output);
9638
+ const SymbolTable* symtab,
9639
+ Sink* output, bool ignore_json_unknown) {
9640
+ return upb_json_parser_create(
9641
+ env, method, symtab, output, ignore_json_unknown);
8861
9642
  }
8862
9643
  inline BytesSink* Parser::input() {
8863
9644
  return upb_json_parser_input(this);
@@ -8906,7 +9687,7 @@ UPB_DECLARE_TYPE(upb::json::Printer, upb_json_printer)
8906
9687
 
8907
9688
  /* upb::json::Printer *********************************************************/
8908
9689
 
8909
- #define UPB_JSON_PRINTER_SIZE 176
9690
+ #define UPB_JSON_PRINTER_SIZE 192
8910
9691
 
8911
9692
  #ifdef __cplusplus
8912
9693
 
@@ -8967,3 +9748,8 @@ inline reffed_ptr<const Handlers> Printer::NewHandlers(
8967
9748
  #endif
8968
9749
 
8969
9750
  #endif /* UPB_JSON_TYPED_PRINTER_H_ */
9751
+
9752
+ #undef UPB_SIZE
9753
+ #undef UPB_FIELD_AT
9754
+ #undef UPB_READ_ONEOF
9755
+ #undef UPB_WRITE_ONEOF