grpc 1.39.0 → 1.40.0.pre1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of grpc might be problematic. Click here for more details.

Files changed (168) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +20 -4
  3. data/include/grpc/event_engine/event_engine.h +10 -14
  4. data/include/grpc/event_engine/slice_allocator.h +8 -33
  5. data/include/grpc/impl/codegen/grpc_types.h +18 -8
  6. data/include/grpc/impl/codegen/port_platform.h +24 -0
  7. data/src/core/ext/filters/client_channel/client_channel.cc +413 -247
  8. data/src/core/ext/filters/client_channel/client_channel.h +42 -18
  9. data/src/core/ext/filters/client_channel/config_selector.h +19 -6
  10. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +7 -8
  11. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +12 -21
  12. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +3 -5
  13. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +17 -38
  14. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +8 -15
  15. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +3 -6
  16. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +8 -12
  17. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +14 -22
  18. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +2 -9
  19. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +5 -8
  20. data/src/core/ext/filters/client_channel/lb_policy.cc +1 -15
  21. data/src/core/ext/filters/client_channel/lb_policy.h +70 -46
  22. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +101 -73
  23. data/src/core/ext/filters/client_channel/retry_filter.cc +392 -243
  24. data/src/core/ext/filters/client_channel/retry_service_config.cc +36 -26
  25. data/src/core/ext/filters/client_channel/retry_service_config.h +1 -1
  26. data/src/core/ext/filters/client_channel/service_config_call_data.h +45 -5
  27. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +0 -6
  28. data/src/core/ext/filters/http/client/http_client_filter.cc +5 -2
  29. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +5 -1
  30. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +1 -1
  31. data/src/core/{lib/event_engine/slice_allocator.cc → ext/transport/chttp2/transport/chttp2_slice_allocator.cc} +15 -38
  32. data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.h +74 -0
  33. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +2 -6
  34. data/src/core/ext/transport/chttp2/transport/flow_control.h +1 -1
  35. data/src/core/ext/transport/chttp2/transport/frame_data.cc +4 -4
  36. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +8 -8
  37. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +5 -5
  38. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +639 -752
  39. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +190 -69
  40. data/src/core/ext/transport/chttp2/transport/internal.h +1 -1
  41. data/src/core/ext/transport/chttp2/transport/parsing.cc +70 -54
  42. data/src/core/ext/transport/chttp2/transport/varint.cc +6 -4
  43. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +56 -35
  44. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +180 -76
  45. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +35 -27
  46. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +97 -48
  47. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +45 -9
  48. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +67 -7
  49. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +66 -9
  50. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +227 -0
  51. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +46 -0
  52. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +121 -0
  53. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +1 -0
  54. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +35 -0
  55. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +90 -0
  56. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +32 -24
  57. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +120 -73
  58. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +4 -2
  59. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +15 -0
  60. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +48 -0
  61. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +171 -0
  62. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +8 -6
  63. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +27 -19
  64. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +1 -0
  65. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +24 -7
  66. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +57 -0
  67. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +29 -17
  68. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +72 -0
  69. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +3 -2
  70. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +4 -0
  71. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +6 -5
  72. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +15 -11
  73. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +85 -43
  74. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +274 -91
  75. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +11 -8
  76. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +30 -13
  77. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +33 -5
  78. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +115 -0
  79. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +60 -0
  80. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +181 -0
  81. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +1 -0
  82. data/src/core/ext/upb-generated/validate/validate.upb.c +82 -66
  83. data/src/core/ext/upb-generated/validate/validate.upb.h +220 -124
  84. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +15 -7
  85. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +53 -52
  86. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +318 -277
  87. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +5 -0
  88. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +437 -410
  89. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +198 -170
  90. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +10 -0
  91. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +9 -8
  92. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +219 -163
  93. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +15 -0
  94. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +59 -0
  95. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +40 -0
  96. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +29 -25
  97. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +52 -0
  98. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +35 -0
  99. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +135 -125
  100. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +5 -0
  101. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +131 -123
  102. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +90 -0
  103. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +35 -0
  104. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +32 -24
  105. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +69 -55
  106. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +5 -0
  107. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +684 -664
  108. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +5 -0
  109. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +13 -10
  110. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +13 -10
  111. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +441 -375
  112. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +10 -0
  113. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +122 -114
  114. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +1 -1
  115. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +112 -79
  116. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +5 -0
  117. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +64 -0
  118. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +50 -0
  119. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +35 -32
  120. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +4 -4
  121. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +182 -160
  122. data/src/core/ext/xds/certificate_provider_store.h +1 -1
  123. data/src/core/ext/xds/xds_api.cc +320 -121
  124. data/src/core/ext/xds/xds_api.h +31 -2
  125. data/src/core/ext/xds/xds_bootstrap.cc +4 -1
  126. data/src/core/ext/xds/xds_client.cc +66 -43
  127. data/src/core/ext/xds/xds_client.h +0 -4
  128. data/src/core/ext/xds/xds_http_filters.cc +3 -2
  129. data/src/core/ext/xds/xds_http_filters.h +3 -0
  130. data/src/core/lib/channel/call_tracer.h +85 -0
  131. data/src/core/lib/channel/channel_stack.h +1 -1
  132. data/src/core/lib/channel/context.h +3 -0
  133. data/src/core/lib/channel/status_util.h +4 -0
  134. data/src/core/lib/compression/stream_compression.h +1 -1
  135. data/src/core/lib/compression/stream_compression_gzip.h +1 -1
  136. data/src/core/lib/compression/stream_compression_identity.h +1 -1
  137. data/src/core/lib/debug/stats.h +1 -1
  138. data/src/core/lib/gpr/murmur_hash.cc +4 -2
  139. data/src/core/lib/gprpp/manual_constructor.h +1 -1
  140. data/src/core/lib/gprpp/orphanable.h +3 -3
  141. data/src/core/lib/gprpp/sync.h +2 -30
  142. data/src/core/lib/iomgr/buffer_list.cc +1 -1
  143. data/src/core/lib/iomgr/ev_apple.h +1 -1
  144. data/src/core/lib/iomgr/event_engine/endpoint.cc +6 -8
  145. data/src/core/lib/iomgr/event_engine/tcp.cc +30 -10
  146. data/src/core/lib/iomgr/python_util.h +1 -1
  147. data/src/core/lib/iomgr/resource_quota.cc +2 -0
  148. data/src/core/lib/iomgr/tcp_client_windows.cc +2 -0
  149. data/src/core/lib/iomgr/tcp_server_posix.cc +1 -0
  150. data/src/core/lib/iomgr/timer_manager.cc +1 -1
  151. data/src/core/lib/json/json_reader.cc +1 -2
  152. data/src/core/lib/matchers/matchers.cc +8 -20
  153. data/src/core/lib/matchers/matchers.h +2 -1
  154. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +49 -0
  155. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +7 -0
  156. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +6 -18
  157. data/src/core/lib/security/transport/security_handshaker.cc +12 -4
  158. data/src/core/lib/security/transport/server_auth_filter.cc +0 -7
  159. data/src/core/lib/slice/slice_internal.h +1 -0
  160. data/src/core/lib/surface/call.cc +5 -6
  161. data/src/core/lib/surface/server.cc +3 -1
  162. data/src/core/lib/surface/server.h +3 -3
  163. data/src/core/lib/surface/version.cc +1 -3
  164. data/src/ruby/ext/grpc/extconf.rb +1 -1
  165. data/src/ruby/lib/grpc/version.rb +1 -1
  166. data/third_party/xxhash/xxhash.h +77 -195
  167. metadata +52 -35
  168. data/src/core/lib/gpr/arena.h +0 -47
@@ -10,6 +10,7 @@
10
10
  #include "upb/msg.h"
11
11
  #include "envoy/type/matcher/v3/regex.upb.h"
12
12
  #include "google/protobuf/wrappers.upb.h"
13
+ #include "envoy/annotations/deprecation.upb.h"
13
14
  #include "udpa/annotations/status.upb.h"
14
15
  #include "udpa/annotations/versioning.upb.h"
15
16
  #include "validate/validate.upb.h"
@@ -71,196 +71,208 @@ const upb_msglayout validate_FieldRules_msginit = {
71
71
  UPB_SIZE(16, 32), 22, false, 255,
72
72
  };
73
73
 
74
- static const upb_msglayout_field validate_FloatRules__fields[7] = {
74
+ static const upb_msglayout_field validate_FloatRules__fields[8] = {
75
75
  {1, UPB_SIZE(4, 4), 1, 0, 2, 1},
76
76
  {2, UPB_SIZE(8, 8), 2, 0, 2, 1},
77
77
  {3, UPB_SIZE(12, 12), 3, 0, 2, 1},
78
78
  {4, UPB_SIZE(16, 16), 4, 0, 2, 1},
79
79
  {5, UPB_SIZE(20, 20), 5, 0, 2, 1},
80
- {6, UPB_SIZE(24, 24), 0, 0, 2, 3},
81
- {7, UPB_SIZE(28, 32), 0, 0, 2, 3},
80
+ {6, UPB_SIZE(28, 32), 0, 0, 2, 3},
81
+ {7, UPB_SIZE(32, 40), 0, 0, 2, 3},
82
+ {8, UPB_SIZE(24, 24), 6, 0, 8, 1},
82
83
  };
83
84
 
84
85
  const upb_msglayout validate_FloatRules_msginit = {
85
86
  NULL,
86
87
  &validate_FloatRules__fields[0],
87
- UPB_SIZE(32, 40), 7, false, 255,
88
+ UPB_SIZE(40, 48), 8, false, 255,
88
89
  };
89
90
 
90
- static const upb_msglayout_field validate_DoubleRules__fields[7] = {
91
+ static const upb_msglayout_field validate_DoubleRules__fields[8] = {
91
92
  {1, UPB_SIZE(8, 8), 1, 0, 1, 1},
92
93
  {2, UPB_SIZE(16, 16), 2, 0, 1, 1},
93
94
  {3, UPB_SIZE(24, 24), 3, 0, 1, 1},
94
95
  {4, UPB_SIZE(32, 32), 4, 0, 1, 1},
95
96
  {5, UPB_SIZE(40, 40), 5, 0, 1, 1},
96
- {6, UPB_SIZE(48, 48), 0, 0, 1, 3},
97
- {7, UPB_SIZE(52, 56), 0, 0, 1, 3},
97
+ {6, UPB_SIZE(52, 56), 0, 0, 1, 3},
98
+ {7, UPB_SIZE(56, 64), 0, 0, 1, 3},
99
+ {8, UPB_SIZE(48, 48), 6, 0, 8, 1},
98
100
  };
99
101
 
100
102
  const upb_msglayout validate_DoubleRules_msginit = {
101
103
  NULL,
102
104
  &validate_DoubleRules__fields[0],
103
- UPB_SIZE(56, 64), 7, false, 255,
105
+ UPB_SIZE(64, 72), 8, false, 255,
104
106
  };
105
107
 
106
- static const upb_msglayout_field validate_Int32Rules__fields[7] = {
108
+ static const upb_msglayout_field validate_Int32Rules__fields[8] = {
107
109
  {1, UPB_SIZE(4, 4), 1, 0, 5, 1},
108
110
  {2, UPB_SIZE(8, 8), 2, 0, 5, 1},
109
111
  {3, UPB_SIZE(12, 12), 3, 0, 5, 1},
110
112
  {4, UPB_SIZE(16, 16), 4, 0, 5, 1},
111
113
  {5, UPB_SIZE(20, 20), 5, 0, 5, 1},
112
- {6, UPB_SIZE(24, 24), 0, 0, 5, 3},
113
- {7, UPB_SIZE(28, 32), 0, 0, 5, 3},
114
+ {6, UPB_SIZE(28, 32), 0, 0, 5, 3},
115
+ {7, UPB_SIZE(32, 40), 0, 0, 5, 3},
116
+ {8, UPB_SIZE(24, 24), 6, 0, 8, 1},
114
117
  };
115
118
 
116
119
  const upb_msglayout validate_Int32Rules_msginit = {
117
120
  NULL,
118
121
  &validate_Int32Rules__fields[0],
119
- UPB_SIZE(32, 40), 7, false, 255,
122
+ UPB_SIZE(40, 48), 8, false, 255,
120
123
  };
121
124
 
122
- static const upb_msglayout_field validate_Int64Rules__fields[7] = {
125
+ static const upb_msglayout_field validate_Int64Rules__fields[8] = {
123
126
  {1, UPB_SIZE(8, 8), 1, 0, 3, 1},
124
127
  {2, UPB_SIZE(16, 16), 2, 0, 3, 1},
125
128
  {3, UPB_SIZE(24, 24), 3, 0, 3, 1},
126
129
  {4, UPB_SIZE(32, 32), 4, 0, 3, 1},
127
130
  {5, UPB_SIZE(40, 40), 5, 0, 3, 1},
128
- {6, UPB_SIZE(48, 48), 0, 0, 3, 3},
129
- {7, UPB_SIZE(52, 56), 0, 0, 3, 3},
131
+ {6, UPB_SIZE(52, 56), 0, 0, 3, 3},
132
+ {7, UPB_SIZE(56, 64), 0, 0, 3, 3},
133
+ {8, UPB_SIZE(48, 48), 6, 0, 8, 1},
130
134
  };
131
135
 
132
136
  const upb_msglayout validate_Int64Rules_msginit = {
133
137
  NULL,
134
138
  &validate_Int64Rules__fields[0],
135
- UPB_SIZE(56, 64), 7, false, 255,
139
+ UPB_SIZE(64, 72), 8, false, 255,
136
140
  };
137
141
 
138
- static const upb_msglayout_field validate_UInt32Rules__fields[7] = {
142
+ static const upb_msglayout_field validate_UInt32Rules__fields[8] = {
139
143
  {1, UPB_SIZE(4, 4), 1, 0, 13, 1},
140
144
  {2, UPB_SIZE(8, 8), 2, 0, 13, 1},
141
145
  {3, UPB_SIZE(12, 12), 3, 0, 13, 1},
142
146
  {4, UPB_SIZE(16, 16), 4, 0, 13, 1},
143
147
  {5, UPB_SIZE(20, 20), 5, 0, 13, 1},
144
- {6, UPB_SIZE(24, 24), 0, 0, 13, 3},
145
- {7, UPB_SIZE(28, 32), 0, 0, 13, 3},
148
+ {6, UPB_SIZE(28, 32), 0, 0, 13, 3},
149
+ {7, UPB_SIZE(32, 40), 0, 0, 13, 3},
150
+ {8, UPB_SIZE(24, 24), 6, 0, 8, 1},
146
151
  };
147
152
 
148
153
  const upb_msglayout validate_UInt32Rules_msginit = {
149
154
  NULL,
150
155
  &validate_UInt32Rules__fields[0],
151
- UPB_SIZE(32, 40), 7, false, 255,
156
+ UPB_SIZE(40, 48), 8, false, 255,
152
157
  };
153
158
 
154
- static const upb_msglayout_field validate_UInt64Rules__fields[7] = {
159
+ static const upb_msglayout_field validate_UInt64Rules__fields[8] = {
155
160
  {1, UPB_SIZE(8, 8), 1, 0, 4, 1},
156
161
  {2, UPB_SIZE(16, 16), 2, 0, 4, 1},
157
162
  {3, UPB_SIZE(24, 24), 3, 0, 4, 1},
158
163
  {4, UPB_SIZE(32, 32), 4, 0, 4, 1},
159
164
  {5, UPB_SIZE(40, 40), 5, 0, 4, 1},
160
- {6, UPB_SIZE(48, 48), 0, 0, 4, 3},
161
- {7, UPB_SIZE(52, 56), 0, 0, 4, 3},
165
+ {6, UPB_SIZE(52, 56), 0, 0, 4, 3},
166
+ {7, UPB_SIZE(56, 64), 0, 0, 4, 3},
167
+ {8, UPB_SIZE(48, 48), 6, 0, 8, 1},
162
168
  };
163
169
 
164
170
  const upb_msglayout validate_UInt64Rules_msginit = {
165
171
  NULL,
166
172
  &validate_UInt64Rules__fields[0],
167
- UPB_SIZE(56, 64), 7, false, 255,
173
+ UPB_SIZE(64, 72), 8, false, 255,
168
174
  };
169
175
 
170
- static const upb_msglayout_field validate_SInt32Rules__fields[7] = {
176
+ static const upb_msglayout_field validate_SInt32Rules__fields[8] = {
171
177
  {1, UPB_SIZE(4, 4), 1, 0, 17, 1},
172
178
  {2, UPB_SIZE(8, 8), 2, 0, 17, 1},
173
179
  {3, UPB_SIZE(12, 12), 3, 0, 17, 1},
174
180
  {4, UPB_SIZE(16, 16), 4, 0, 17, 1},
175
181
  {5, UPB_SIZE(20, 20), 5, 0, 17, 1},
176
- {6, UPB_SIZE(24, 24), 0, 0, 17, 3},
177
- {7, UPB_SIZE(28, 32), 0, 0, 17, 3},
182
+ {6, UPB_SIZE(28, 32), 0, 0, 17, 3},
183
+ {7, UPB_SIZE(32, 40), 0, 0, 17, 3},
184
+ {8, UPB_SIZE(24, 24), 6, 0, 8, 1},
178
185
  };
179
186
 
180
187
  const upb_msglayout validate_SInt32Rules_msginit = {
181
188
  NULL,
182
189
  &validate_SInt32Rules__fields[0],
183
- UPB_SIZE(32, 40), 7, false, 255,
190
+ UPB_SIZE(40, 48), 8, false, 255,
184
191
  };
185
192
 
186
- static const upb_msglayout_field validate_SInt64Rules__fields[7] = {
193
+ static const upb_msglayout_field validate_SInt64Rules__fields[8] = {
187
194
  {1, UPB_SIZE(8, 8), 1, 0, 18, 1},
188
195
  {2, UPB_SIZE(16, 16), 2, 0, 18, 1},
189
196
  {3, UPB_SIZE(24, 24), 3, 0, 18, 1},
190
197
  {4, UPB_SIZE(32, 32), 4, 0, 18, 1},
191
198
  {5, UPB_SIZE(40, 40), 5, 0, 18, 1},
192
- {6, UPB_SIZE(48, 48), 0, 0, 18, 3},
193
- {7, UPB_SIZE(52, 56), 0, 0, 18, 3},
199
+ {6, UPB_SIZE(52, 56), 0, 0, 18, 3},
200
+ {7, UPB_SIZE(56, 64), 0, 0, 18, 3},
201
+ {8, UPB_SIZE(48, 48), 6, 0, 8, 1},
194
202
  };
195
203
 
196
204
  const upb_msglayout validate_SInt64Rules_msginit = {
197
205
  NULL,
198
206
  &validate_SInt64Rules__fields[0],
199
- UPB_SIZE(56, 64), 7, false, 255,
207
+ UPB_SIZE(64, 72), 8, false, 255,
200
208
  };
201
209
 
202
- static const upb_msglayout_field validate_Fixed32Rules__fields[7] = {
210
+ static const upb_msglayout_field validate_Fixed32Rules__fields[8] = {
203
211
  {1, UPB_SIZE(4, 4), 1, 0, 7, 1},
204
212
  {2, UPB_SIZE(8, 8), 2, 0, 7, 1},
205
213
  {3, UPB_SIZE(12, 12), 3, 0, 7, 1},
206
214
  {4, UPB_SIZE(16, 16), 4, 0, 7, 1},
207
215
  {5, UPB_SIZE(20, 20), 5, 0, 7, 1},
208
- {6, UPB_SIZE(24, 24), 0, 0, 7, 3},
209
- {7, UPB_SIZE(28, 32), 0, 0, 7, 3},
216
+ {6, UPB_SIZE(28, 32), 0, 0, 7, 3},
217
+ {7, UPB_SIZE(32, 40), 0, 0, 7, 3},
218
+ {8, UPB_SIZE(24, 24), 6, 0, 8, 1},
210
219
  };
211
220
 
212
221
  const upb_msglayout validate_Fixed32Rules_msginit = {
213
222
  NULL,
214
223
  &validate_Fixed32Rules__fields[0],
215
- UPB_SIZE(32, 40), 7, false, 255,
224
+ UPB_SIZE(40, 48), 8, false, 255,
216
225
  };
217
226
 
218
- static const upb_msglayout_field validate_Fixed64Rules__fields[7] = {
227
+ static const upb_msglayout_field validate_Fixed64Rules__fields[8] = {
219
228
  {1, UPB_SIZE(8, 8), 1, 0, 6, 1},
220
229
  {2, UPB_SIZE(16, 16), 2, 0, 6, 1},
221
230
  {3, UPB_SIZE(24, 24), 3, 0, 6, 1},
222
231
  {4, UPB_SIZE(32, 32), 4, 0, 6, 1},
223
232
  {5, UPB_SIZE(40, 40), 5, 0, 6, 1},
224
- {6, UPB_SIZE(48, 48), 0, 0, 6, 3},
225
- {7, UPB_SIZE(52, 56), 0, 0, 6, 3},
233
+ {6, UPB_SIZE(52, 56), 0, 0, 6, 3},
234
+ {7, UPB_SIZE(56, 64), 0, 0, 6, 3},
235
+ {8, UPB_SIZE(48, 48), 6, 0, 8, 1},
226
236
  };
227
237
 
228
238
  const upb_msglayout validate_Fixed64Rules_msginit = {
229
239
  NULL,
230
240
  &validate_Fixed64Rules__fields[0],
231
- UPB_SIZE(56, 64), 7, false, 255,
241
+ UPB_SIZE(64, 72), 8, false, 255,
232
242
  };
233
243
 
234
- static const upb_msglayout_field validate_SFixed32Rules__fields[7] = {
244
+ static const upb_msglayout_field validate_SFixed32Rules__fields[8] = {
235
245
  {1, UPB_SIZE(4, 4), 1, 0, 15, 1},
236
246
  {2, UPB_SIZE(8, 8), 2, 0, 15, 1},
237
247
  {3, UPB_SIZE(12, 12), 3, 0, 15, 1},
238
248
  {4, UPB_SIZE(16, 16), 4, 0, 15, 1},
239
249
  {5, UPB_SIZE(20, 20), 5, 0, 15, 1},
240
- {6, UPB_SIZE(24, 24), 0, 0, 15, 3},
241
- {7, UPB_SIZE(28, 32), 0, 0, 15, 3},
250
+ {6, UPB_SIZE(28, 32), 0, 0, 15, 3},
251
+ {7, UPB_SIZE(32, 40), 0, 0, 15, 3},
252
+ {8, UPB_SIZE(24, 24), 6, 0, 8, 1},
242
253
  };
243
254
 
244
255
  const upb_msglayout validate_SFixed32Rules_msginit = {
245
256
  NULL,
246
257
  &validate_SFixed32Rules__fields[0],
247
- UPB_SIZE(32, 40), 7, false, 255,
258
+ UPB_SIZE(40, 48), 8, false, 255,
248
259
  };
249
260
 
250
- static const upb_msglayout_field validate_SFixed64Rules__fields[7] = {
261
+ static const upb_msglayout_field validate_SFixed64Rules__fields[8] = {
251
262
  {1, UPB_SIZE(8, 8), 1, 0, 16, 1},
252
263
  {2, UPB_SIZE(16, 16), 2, 0, 16, 1},
253
264
  {3, UPB_SIZE(24, 24), 3, 0, 16, 1},
254
265
  {4, UPB_SIZE(32, 32), 4, 0, 16, 1},
255
266
  {5, UPB_SIZE(40, 40), 5, 0, 16, 1},
256
- {6, UPB_SIZE(48, 48), 0, 0, 16, 3},
257
- {7, UPB_SIZE(52, 56), 0, 0, 16, 3},
267
+ {6, UPB_SIZE(52, 56), 0, 0, 16, 3},
268
+ {7, UPB_SIZE(56, 64), 0, 0, 16, 3},
269
+ {8, UPB_SIZE(48, 48), 6, 0, 8, 1},
258
270
  };
259
271
 
260
272
  const upb_msglayout validate_SFixed64Rules_msginit = {
261
273
  NULL,
262
274
  &validate_SFixed64Rules__fields[0],
263
- UPB_SIZE(56, 64), 7, false, 255,
275
+ UPB_SIZE(64, 72), 8, false, 255,
264
276
  };
265
277
 
266
278
  static const upb_msglayout_field validate_BoolRules__fields[1] = {
@@ -273,7 +285,7 @@ const upb_msglayout validate_BoolRules_msginit = {
273
285
  UPB_SIZE(8, 8), 1, false, 255,
274
286
  };
275
287
 
276
- static const upb_msglayout_field validate_StringRules__fields[25] = {
288
+ static const upb_msglayout_field validate_StringRules__fields[26] = {
277
289
  {1, UPB_SIZE(60, 64), 1, 0, 12, 1},
278
290
  {2, UPB_SIZE(8, 8), 2, 0, 4, 1},
279
291
  {3, UPB_SIZE(16, 16), 3, 0, 4, 1},
@@ -299,34 +311,36 @@ static const upb_msglayout_field validate_StringRules__fields[25] = {
299
311
  {23, UPB_SIZE(100, 144), 12, 0, 12, 1},
300
312
  {24, UPB_SIZE(116, 176), UPB_SIZE(-121, -181), 0, 14, 1},
301
313
  {25, UPB_SIZE(56, 56), 13, 0, 8, 1},
314
+ {26, UPB_SIZE(57, 57), 14, 0, 8, 1},
302
315
  };
303
316
 
304
317
  const upb_msglayout validate_StringRules_msginit = {
305
318
  NULL,
306
319
  &validate_StringRules__fields[0],
307
- UPB_SIZE(128, 192), 25, false, 255,
320
+ UPB_SIZE(128, 192), 26, false, 255,
308
321
  };
309
322
 
310
- static const upb_msglayout_field validate_BytesRules__fields[13] = {
311
- {1, UPB_SIZE(32, 32), 1, 0, 12, 1},
323
+ static const upb_msglayout_field validate_BytesRules__fields[14] = {
324
+ {1, UPB_SIZE(36, 40), 1, 0, 12, 1},
312
325
  {2, UPB_SIZE(8, 8), 2, 0, 4, 1},
313
326
  {3, UPB_SIZE(16, 16), 3, 0, 4, 1},
314
- {4, UPB_SIZE(40, 48), 4, 0, 12, 1},
315
- {5, UPB_SIZE(48, 64), 5, 0, 12, 1},
316
- {6, UPB_SIZE(56, 80), 6, 0, 12, 1},
317
- {7, UPB_SIZE(64, 96), 7, 0, 12, 1},
318
- {8, UPB_SIZE(72, 112), 0, 0, 12, 3},
319
- {9, UPB_SIZE(76, 120), 0, 0, 12, 3},
320
- {10, UPB_SIZE(80, 128), UPB_SIZE(-85, -133), 0, 8, 1},
321
- {11, UPB_SIZE(80, 128), UPB_SIZE(-85, -133), 0, 8, 1},
322
- {12, UPB_SIZE(80, 128), UPB_SIZE(-85, -133), 0, 8, 1},
327
+ {4, UPB_SIZE(44, 56), 4, 0, 12, 1},
328
+ {5, UPB_SIZE(52, 72), 5, 0, 12, 1},
329
+ {6, UPB_SIZE(60, 88), 6, 0, 12, 1},
330
+ {7, UPB_SIZE(68, 104), 7, 0, 12, 1},
331
+ {8, UPB_SIZE(76, 120), 0, 0, 12, 3},
332
+ {9, UPB_SIZE(80, 128), 0, 0, 12, 3},
333
+ {10, UPB_SIZE(84, 136), UPB_SIZE(-89, -141), 0, 8, 1},
334
+ {11, UPB_SIZE(84, 136), UPB_SIZE(-89, -141), 0, 8, 1},
335
+ {12, UPB_SIZE(84, 136), UPB_SIZE(-89, -141), 0, 8, 1},
323
336
  {13, UPB_SIZE(24, 24), 8, 0, 4, 1},
337
+ {14, UPB_SIZE(32, 32), 9, 0, 8, 1},
324
338
  };
325
339
 
326
340
  const upb_msglayout validate_BytesRules_msginit = {
327
341
  NULL,
328
342
  &validate_BytesRules__fields[0],
329
- UPB_SIZE(88, 144), 13, false, 255,
343
+ UPB_SIZE(96, 144), 14, false, 255,
330
344
  };
331
345
 
332
346
  static const upb_msglayout_field validate_EnumRules__fields[4] = {
@@ -357,35 +371,37 @@ static const upb_msglayout *const validate_RepeatedRules_submsgs[1] = {
357
371
  &validate_FieldRules_msginit,
358
372
  };
359
373
 
360
- static const upb_msglayout_field validate_RepeatedRules__fields[4] = {
374
+ static const upb_msglayout_field validate_RepeatedRules__fields[5] = {
361
375
  {1, UPB_SIZE(8, 8), 1, 0, 4, 1},
362
376
  {2, UPB_SIZE(16, 16), 2, 0, 4, 1},
363
377
  {3, UPB_SIZE(24, 24), 3, 0, 8, 1},
364
378
  {4, UPB_SIZE(28, 32), 4, 0, 11, 1},
379
+ {5, UPB_SIZE(25, 25), 5, 0, 8, 1},
365
380
  };
366
381
 
367
382
  const upb_msglayout validate_RepeatedRules_msginit = {
368
383
  &validate_RepeatedRules_submsgs[0],
369
384
  &validate_RepeatedRules__fields[0],
370
- UPB_SIZE(32, 40), 4, false, 255,
385
+ UPB_SIZE(32, 40), 5, false, 255,
371
386
  };
372
387
 
373
388
  static const upb_msglayout *const validate_MapRules_submsgs[1] = {
374
389
  &validate_FieldRules_msginit,
375
390
  };
376
391
 
377
- static const upb_msglayout_field validate_MapRules__fields[5] = {
392
+ static const upb_msglayout_field validate_MapRules__fields[6] = {
378
393
  {1, UPB_SIZE(8, 8), 1, 0, 4, 1},
379
394
  {2, UPB_SIZE(16, 16), 2, 0, 4, 1},
380
395
  {3, UPB_SIZE(24, 24), 3, 0, 8, 1},
381
396
  {4, UPB_SIZE(28, 32), 4, 0, 11, 1},
382
397
  {5, UPB_SIZE(32, 40), 5, 0, 11, 1},
398
+ {6, UPB_SIZE(25, 25), 6, 0, 8, 1},
383
399
  };
384
400
 
385
401
  const upb_msglayout validate_MapRules_msginit = {
386
402
  &validate_MapRules_submsgs[0],
387
403
  &validate_MapRules__fields[0],
388
- UPB_SIZE(40, 48), 5, false, 255,
404
+ UPB_SIZE(40, 48), 6, false, 255,
389
405
  };
390
406
 
391
407
  static const upb_msglayout_field validate_AnyRules__fields[3] = {
@@ -488,8 +488,10 @@ UPB_INLINE bool validate_FloatRules_has_gt(const validate_FloatRules *msg) { ret
488
488
  UPB_INLINE float validate_FloatRules_gt(const validate_FloatRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(16, 16), float); }
489
489
  UPB_INLINE bool validate_FloatRules_has_gte(const validate_FloatRules *msg) { return _upb_hasbit(msg, 5); }
490
490
  UPB_INLINE float validate_FloatRules_gte(const validate_FloatRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(20, 20), float); }
491
- UPB_INLINE float const* validate_FloatRules_in(const validate_FloatRules *msg, size_t *len) { return (float const*)_upb_array_accessor(msg, UPB_SIZE(24, 24), len); }
492
- UPB_INLINE float const* validate_FloatRules_not_in(const validate_FloatRules *msg, size_t *len) { return (float const*)_upb_array_accessor(msg, UPB_SIZE(28, 32), len); }
491
+ UPB_INLINE float const* validate_FloatRules_in(const validate_FloatRules *msg, size_t *len) { return (float const*)_upb_array_accessor(msg, UPB_SIZE(28, 32), len); }
492
+ UPB_INLINE float const* validate_FloatRules_not_in(const validate_FloatRules *msg, size_t *len) { return (float const*)_upb_array_accessor(msg, UPB_SIZE(32, 40), len); }
493
+ UPB_INLINE bool validate_FloatRules_has_ignore_empty(const validate_FloatRules *msg) { return _upb_hasbit(msg, 6); }
494
+ UPB_INLINE bool validate_FloatRules_ignore_empty(const validate_FloatRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(24, 24), bool); }
493
495
 
494
496
  UPB_INLINE void validate_FloatRules_set_const(validate_FloatRules *msg, float value) {
495
497
  _upb_sethas(msg, 1);
@@ -512,25 +514,29 @@ UPB_INLINE void validate_FloatRules_set_gte(validate_FloatRules *msg, float valu
512
514
  *UPB_PTR_AT(msg, UPB_SIZE(20, 20), float) = value;
513
515
  }
514
516
  UPB_INLINE float* validate_FloatRules_mutable_in(validate_FloatRules *msg, size_t *len) {
515
- return (float*)_upb_array_mutable_accessor(msg, UPB_SIZE(24, 24), len);
517
+ return (float*)_upb_array_mutable_accessor(msg, UPB_SIZE(28, 32), len);
516
518
  }
517
519
  UPB_INLINE float* validate_FloatRules_resize_in(validate_FloatRules *msg, size_t len, upb_arena *arena) {
518
- return (float*)_upb_array_resize_accessor2(msg, UPB_SIZE(24, 24), len, 2, arena);
520
+ return (float*)_upb_array_resize_accessor2(msg, UPB_SIZE(28, 32), len, 2, arena);
519
521
  }
520
522
  UPB_INLINE bool validate_FloatRules_add_in(validate_FloatRules *msg, float val, upb_arena *arena) {
521
- return _upb_array_append_accessor2(msg, UPB_SIZE(24, 24), 2, &val,
523
+ return _upb_array_append_accessor2(msg, UPB_SIZE(28, 32), 2, &val,
522
524
  arena);
523
525
  }
524
526
  UPB_INLINE float* validate_FloatRules_mutable_not_in(validate_FloatRules *msg, size_t *len) {
525
- return (float*)_upb_array_mutable_accessor(msg, UPB_SIZE(28, 32), len);
527
+ return (float*)_upb_array_mutable_accessor(msg, UPB_SIZE(32, 40), len);
526
528
  }
527
529
  UPB_INLINE float* validate_FloatRules_resize_not_in(validate_FloatRules *msg, size_t len, upb_arena *arena) {
528
- return (float*)_upb_array_resize_accessor2(msg, UPB_SIZE(28, 32), len, 2, arena);
530
+ return (float*)_upb_array_resize_accessor2(msg, UPB_SIZE(32, 40), len, 2, arena);
529
531
  }
530
532
  UPB_INLINE bool validate_FloatRules_add_not_in(validate_FloatRules *msg, float val, upb_arena *arena) {
531
- return _upb_array_append_accessor2(msg, UPB_SIZE(28, 32), 2, &val,
533
+ return _upb_array_append_accessor2(msg, UPB_SIZE(32, 40), 2, &val,
532
534
  arena);
533
535
  }
536
+ UPB_INLINE void validate_FloatRules_set_ignore_empty(validate_FloatRules *msg, bool value) {
537
+ _upb_sethas(msg, 6);
538
+ *UPB_PTR_AT(msg, UPB_SIZE(24, 24), bool) = value;
539
+ }
534
540
 
535
541
  /* validate.DoubleRules */
536
542
 
@@ -562,8 +568,10 @@ UPB_INLINE bool validate_DoubleRules_has_gt(const validate_DoubleRules *msg) { r
562
568
  UPB_INLINE double validate_DoubleRules_gt(const validate_DoubleRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(32, 32), double); }
563
569
  UPB_INLINE bool validate_DoubleRules_has_gte(const validate_DoubleRules *msg) { return _upb_hasbit(msg, 5); }
564
570
  UPB_INLINE double validate_DoubleRules_gte(const validate_DoubleRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(40, 40), double); }
565
- UPB_INLINE double const* validate_DoubleRules_in(const validate_DoubleRules *msg, size_t *len) { return (double const*)_upb_array_accessor(msg, UPB_SIZE(48, 48), len); }
566
- UPB_INLINE double const* validate_DoubleRules_not_in(const validate_DoubleRules *msg, size_t *len) { return (double const*)_upb_array_accessor(msg, UPB_SIZE(52, 56), len); }
571
+ UPB_INLINE double const* validate_DoubleRules_in(const validate_DoubleRules *msg, size_t *len) { return (double const*)_upb_array_accessor(msg, UPB_SIZE(52, 56), len); }
572
+ UPB_INLINE double const* validate_DoubleRules_not_in(const validate_DoubleRules *msg, size_t *len) { return (double const*)_upb_array_accessor(msg, UPB_SIZE(56, 64), len); }
573
+ UPB_INLINE bool validate_DoubleRules_has_ignore_empty(const validate_DoubleRules *msg) { return _upb_hasbit(msg, 6); }
574
+ UPB_INLINE bool validate_DoubleRules_ignore_empty(const validate_DoubleRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(48, 48), bool); }
567
575
 
568
576
  UPB_INLINE void validate_DoubleRules_set_const(validate_DoubleRules *msg, double value) {
569
577
  _upb_sethas(msg, 1);
@@ -586,25 +594,29 @@ UPB_INLINE void validate_DoubleRules_set_gte(validate_DoubleRules *msg, double v
586
594
  *UPB_PTR_AT(msg, UPB_SIZE(40, 40), double) = value;
587
595
  }
588
596
  UPB_INLINE double* validate_DoubleRules_mutable_in(validate_DoubleRules *msg, size_t *len) {
589
- return (double*)_upb_array_mutable_accessor(msg, UPB_SIZE(48, 48), len);
597
+ return (double*)_upb_array_mutable_accessor(msg, UPB_SIZE(52, 56), len);
590
598
  }
591
599
  UPB_INLINE double* validate_DoubleRules_resize_in(validate_DoubleRules *msg, size_t len, upb_arena *arena) {
592
- return (double*)_upb_array_resize_accessor2(msg, UPB_SIZE(48, 48), len, 3, arena);
600
+ return (double*)_upb_array_resize_accessor2(msg, UPB_SIZE(52, 56), len, 3, arena);
593
601
  }
594
602
  UPB_INLINE bool validate_DoubleRules_add_in(validate_DoubleRules *msg, double val, upb_arena *arena) {
595
- return _upb_array_append_accessor2(msg, UPB_SIZE(48, 48), 3, &val,
603
+ return _upb_array_append_accessor2(msg, UPB_SIZE(52, 56), 3, &val,
596
604
  arena);
597
605
  }
598
606
  UPB_INLINE double* validate_DoubleRules_mutable_not_in(validate_DoubleRules *msg, size_t *len) {
599
- return (double*)_upb_array_mutable_accessor(msg, UPB_SIZE(52, 56), len);
607
+ return (double*)_upb_array_mutable_accessor(msg, UPB_SIZE(56, 64), len);
600
608
  }
601
609
  UPB_INLINE double* validate_DoubleRules_resize_not_in(validate_DoubleRules *msg, size_t len, upb_arena *arena) {
602
- return (double*)_upb_array_resize_accessor2(msg, UPB_SIZE(52, 56), len, 3, arena);
610
+ return (double*)_upb_array_resize_accessor2(msg, UPB_SIZE(56, 64), len, 3, arena);
603
611
  }
604
612
  UPB_INLINE bool validate_DoubleRules_add_not_in(validate_DoubleRules *msg, double val, upb_arena *arena) {
605
- return _upb_array_append_accessor2(msg, UPB_SIZE(52, 56), 3, &val,
613
+ return _upb_array_append_accessor2(msg, UPB_SIZE(56, 64), 3, &val,
606
614
  arena);
607
615
  }
616
+ UPB_INLINE void validate_DoubleRules_set_ignore_empty(validate_DoubleRules *msg, bool value) {
617
+ _upb_sethas(msg, 6);
618
+ *UPB_PTR_AT(msg, UPB_SIZE(48, 48), bool) = value;
619
+ }
608
620
 
609
621
  /* validate.Int32Rules */
610
622
 
@@ -636,8 +648,10 @@ UPB_INLINE bool validate_Int32Rules_has_gt(const validate_Int32Rules *msg) { ret
636
648
  UPB_INLINE int32_t validate_Int32Rules_gt(const validate_Int32Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(16, 16), int32_t); }
637
649
  UPB_INLINE bool validate_Int32Rules_has_gte(const validate_Int32Rules *msg) { return _upb_hasbit(msg, 5); }
638
650
  UPB_INLINE int32_t validate_Int32Rules_gte(const validate_Int32Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(20, 20), int32_t); }
639
- UPB_INLINE int32_t const* validate_Int32Rules_in(const validate_Int32Rules *msg, size_t *len) { return (int32_t const*)_upb_array_accessor(msg, UPB_SIZE(24, 24), len); }
640
- UPB_INLINE int32_t const* validate_Int32Rules_not_in(const validate_Int32Rules *msg, size_t *len) { return (int32_t const*)_upb_array_accessor(msg, UPB_SIZE(28, 32), len); }
651
+ UPB_INLINE int32_t const* validate_Int32Rules_in(const validate_Int32Rules *msg, size_t *len) { return (int32_t const*)_upb_array_accessor(msg, UPB_SIZE(28, 32), len); }
652
+ UPB_INLINE int32_t const* validate_Int32Rules_not_in(const validate_Int32Rules *msg, size_t *len) { return (int32_t const*)_upb_array_accessor(msg, UPB_SIZE(32, 40), len); }
653
+ UPB_INLINE bool validate_Int32Rules_has_ignore_empty(const validate_Int32Rules *msg) { return _upb_hasbit(msg, 6); }
654
+ UPB_INLINE bool validate_Int32Rules_ignore_empty(const validate_Int32Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(24, 24), bool); }
641
655
 
642
656
  UPB_INLINE void validate_Int32Rules_set_const(validate_Int32Rules *msg, int32_t value) {
643
657
  _upb_sethas(msg, 1);
@@ -660,25 +674,29 @@ UPB_INLINE void validate_Int32Rules_set_gte(validate_Int32Rules *msg, int32_t va
660
674
  *UPB_PTR_AT(msg, UPB_SIZE(20, 20), int32_t) = value;
661
675
  }
662
676
  UPB_INLINE int32_t* validate_Int32Rules_mutable_in(validate_Int32Rules *msg, size_t *len) {
663
- return (int32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(24, 24), len);
677
+ return (int32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(28, 32), len);
664
678
  }
665
679
  UPB_INLINE int32_t* validate_Int32Rules_resize_in(validate_Int32Rules *msg, size_t len, upb_arena *arena) {
666
- return (int32_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(24, 24), len, 2, arena);
680
+ return (int32_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(28, 32), len, 2, arena);
667
681
  }
668
682
  UPB_INLINE bool validate_Int32Rules_add_in(validate_Int32Rules *msg, int32_t val, upb_arena *arena) {
669
- return _upb_array_append_accessor2(msg, UPB_SIZE(24, 24), 2, &val,
683
+ return _upb_array_append_accessor2(msg, UPB_SIZE(28, 32), 2, &val,
670
684
  arena);
671
685
  }
672
686
  UPB_INLINE int32_t* validate_Int32Rules_mutable_not_in(validate_Int32Rules *msg, size_t *len) {
673
- return (int32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(28, 32), len);
687
+ return (int32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(32, 40), len);
674
688
  }
675
689
  UPB_INLINE int32_t* validate_Int32Rules_resize_not_in(validate_Int32Rules *msg, size_t len, upb_arena *arena) {
676
- return (int32_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(28, 32), len, 2, arena);
690
+ return (int32_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(32, 40), len, 2, arena);
677
691
  }
678
692
  UPB_INLINE bool validate_Int32Rules_add_not_in(validate_Int32Rules *msg, int32_t val, upb_arena *arena) {
679
- return _upb_array_append_accessor2(msg, UPB_SIZE(28, 32), 2, &val,
693
+ return _upb_array_append_accessor2(msg, UPB_SIZE(32, 40), 2, &val,
680
694
  arena);
681
695
  }
696
+ UPB_INLINE void validate_Int32Rules_set_ignore_empty(validate_Int32Rules *msg, bool value) {
697
+ _upb_sethas(msg, 6);
698
+ *UPB_PTR_AT(msg, UPB_SIZE(24, 24), bool) = value;
699
+ }
682
700
 
683
701
  /* validate.Int64Rules */
684
702
 
@@ -710,8 +728,10 @@ UPB_INLINE bool validate_Int64Rules_has_gt(const validate_Int64Rules *msg) { ret
710
728
  UPB_INLINE int64_t validate_Int64Rules_gt(const validate_Int64Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(32, 32), int64_t); }
711
729
  UPB_INLINE bool validate_Int64Rules_has_gte(const validate_Int64Rules *msg) { return _upb_hasbit(msg, 5); }
712
730
  UPB_INLINE int64_t validate_Int64Rules_gte(const validate_Int64Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(40, 40), int64_t); }
713
- UPB_INLINE int64_t const* validate_Int64Rules_in(const validate_Int64Rules *msg, size_t *len) { return (int64_t const*)_upb_array_accessor(msg, UPB_SIZE(48, 48), len); }
714
- UPB_INLINE int64_t const* validate_Int64Rules_not_in(const validate_Int64Rules *msg, size_t *len) { return (int64_t const*)_upb_array_accessor(msg, UPB_SIZE(52, 56), len); }
731
+ UPB_INLINE int64_t const* validate_Int64Rules_in(const validate_Int64Rules *msg, size_t *len) { return (int64_t const*)_upb_array_accessor(msg, UPB_SIZE(52, 56), len); }
732
+ UPB_INLINE int64_t const* validate_Int64Rules_not_in(const validate_Int64Rules *msg, size_t *len) { return (int64_t const*)_upb_array_accessor(msg, UPB_SIZE(56, 64), len); }
733
+ UPB_INLINE bool validate_Int64Rules_has_ignore_empty(const validate_Int64Rules *msg) { return _upb_hasbit(msg, 6); }
734
+ UPB_INLINE bool validate_Int64Rules_ignore_empty(const validate_Int64Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(48, 48), bool); }
715
735
 
716
736
  UPB_INLINE void validate_Int64Rules_set_const(validate_Int64Rules *msg, int64_t value) {
717
737
  _upb_sethas(msg, 1);
@@ -734,25 +754,29 @@ UPB_INLINE void validate_Int64Rules_set_gte(validate_Int64Rules *msg, int64_t va
734
754
  *UPB_PTR_AT(msg, UPB_SIZE(40, 40), int64_t) = value;
735
755
  }
736
756
  UPB_INLINE int64_t* validate_Int64Rules_mutable_in(validate_Int64Rules *msg, size_t *len) {
737
- return (int64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(48, 48), len);
757
+ return (int64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(52, 56), len);
738
758
  }
739
759
  UPB_INLINE int64_t* validate_Int64Rules_resize_in(validate_Int64Rules *msg, size_t len, upb_arena *arena) {
740
- return (int64_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(48, 48), len, 3, arena);
760
+ return (int64_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(52, 56), len, 3, arena);
741
761
  }
742
762
  UPB_INLINE bool validate_Int64Rules_add_in(validate_Int64Rules *msg, int64_t val, upb_arena *arena) {
743
- return _upb_array_append_accessor2(msg, UPB_SIZE(48, 48), 3, &val,
763
+ return _upb_array_append_accessor2(msg, UPB_SIZE(52, 56), 3, &val,
744
764
  arena);
745
765
  }
746
766
  UPB_INLINE int64_t* validate_Int64Rules_mutable_not_in(validate_Int64Rules *msg, size_t *len) {
747
- return (int64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(52, 56), len);
767
+ return (int64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(56, 64), len);
748
768
  }
749
769
  UPB_INLINE int64_t* validate_Int64Rules_resize_not_in(validate_Int64Rules *msg, size_t len, upb_arena *arena) {
750
- return (int64_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(52, 56), len, 3, arena);
770
+ return (int64_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(56, 64), len, 3, arena);
751
771
  }
752
772
  UPB_INLINE bool validate_Int64Rules_add_not_in(validate_Int64Rules *msg, int64_t val, upb_arena *arena) {
753
- return _upb_array_append_accessor2(msg, UPB_SIZE(52, 56), 3, &val,
773
+ return _upb_array_append_accessor2(msg, UPB_SIZE(56, 64), 3, &val,
754
774
  arena);
755
775
  }
776
+ UPB_INLINE void validate_Int64Rules_set_ignore_empty(validate_Int64Rules *msg, bool value) {
777
+ _upb_sethas(msg, 6);
778
+ *UPB_PTR_AT(msg, UPB_SIZE(48, 48), bool) = value;
779
+ }
756
780
 
757
781
  /* validate.UInt32Rules */
758
782
 
@@ -784,8 +808,10 @@ UPB_INLINE bool validate_UInt32Rules_has_gt(const validate_UInt32Rules *msg) { r
784
808
  UPB_INLINE uint32_t validate_UInt32Rules_gt(const validate_UInt32Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(16, 16), uint32_t); }
785
809
  UPB_INLINE bool validate_UInt32Rules_has_gte(const validate_UInt32Rules *msg) { return _upb_hasbit(msg, 5); }
786
810
  UPB_INLINE uint32_t validate_UInt32Rules_gte(const validate_UInt32Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(20, 20), uint32_t); }
787
- UPB_INLINE uint32_t const* validate_UInt32Rules_in(const validate_UInt32Rules *msg, size_t *len) { return (uint32_t const*)_upb_array_accessor(msg, UPB_SIZE(24, 24), len); }
788
- UPB_INLINE uint32_t const* validate_UInt32Rules_not_in(const validate_UInt32Rules *msg, size_t *len) { return (uint32_t const*)_upb_array_accessor(msg, UPB_SIZE(28, 32), len); }
811
+ UPB_INLINE uint32_t const* validate_UInt32Rules_in(const validate_UInt32Rules *msg, size_t *len) { return (uint32_t const*)_upb_array_accessor(msg, UPB_SIZE(28, 32), len); }
812
+ UPB_INLINE uint32_t const* validate_UInt32Rules_not_in(const validate_UInt32Rules *msg, size_t *len) { return (uint32_t const*)_upb_array_accessor(msg, UPB_SIZE(32, 40), len); }
813
+ UPB_INLINE bool validate_UInt32Rules_has_ignore_empty(const validate_UInt32Rules *msg) { return _upb_hasbit(msg, 6); }
814
+ UPB_INLINE bool validate_UInt32Rules_ignore_empty(const validate_UInt32Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(24, 24), bool); }
789
815
 
790
816
  UPB_INLINE void validate_UInt32Rules_set_const(validate_UInt32Rules *msg, uint32_t value) {
791
817
  _upb_sethas(msg, 1);
@@ -808,25 +834,29 @@ UPB_INLINE void validate_UInt32Rules_set_gte(validate_UInt32Rules *msg, uint32_t
808
834
  *UPB_PTR_AT(msg, UPB_SIZE(20, 20), uint32_t) = value;
809
835
  }
810
836
  UPB_INLINE uint32_t* validate_UInt32Rules_mutable_in(validate_UInt32Rules *msg, size_t *len) {
811
- return (uint32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(24, 24), len);
837
+ return (uint32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(28, 32), len);
812
838
  }
813
839
  UPB_INLINE uint32_t* validate_UInt32Rules_resize_in(validate_UInt32Rules *msg, size_t len, upb_arena *arena) {
814
- return (uint32_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(24, 24), len, 2, arena);
840
+ return (uint32_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(28, 32), len, 2, arena);
815
841
  }
816
842
  UPB_INLINE bool validate_UInt32Rules_add_in(validate_UInt32Rules *msg, uint32_t val, upb_arena *arena) {
817
- return _upb_array_append_accessor2(msg, UPB_SIZE(24, 24), 2, &val,
843
+ return _upb_array_append_accessor2(msg, UPB_SIZE(28, 32), 2, &val,
818
844
  arena);
819
845
  }
820
846
  UPB_INLINE uint32_t* validate_UInt32Rules_mutable_not_in(validate_UInt32Rules *msg, size_t *len) {
821
- return (uint32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(28, 32), len);
847
+ return (uint32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(32, 40), len);
822
848
  }
823
849
  UPB_INLINE uint32_t* validate_UInt32Rules_resize_not_in(validate_UInt32Rules *msg, size_t len, upb_arena *arena) {
824
- return (uint32_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(28, 32), len, 2, arena);
850
+ return (uint32_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(32, 40), len, 2, arena);
825
851
  }
826
852
  UPB_INLINE bool validate_UInt32Rules_add_not_in(validate_UInt32Rules *msg, uint32_t val, upb_arena *arena) {
827
- return _upb_array_append_accessor2(msg, UPB_SIZE(28, 32), 2, &val,
853
+ return _upb_array_append_accessor2(msg, UPB_SIZE(32, 40), 2, &val,
828
854
  arena);
829
855
  }
856
+ UPB_INLINE void validate_UInt32Rules_set_ignore_empty(validate_UInt32Rules *msg, bool value) {
857
+ _upb_sethas(msg, 6);
858
+ *UPB_PTR_AT(msg, UPB_SIZE(24, 24), bool) = value;
859
+ }
830
860
 
831
861
  /* validate.UInt64Rules */
832
862
 
@@ -858,8 +888,10 @@ UPB_INLINE bool validate_UInt64Rules_has_gt(const validate_UInt64Rules *msg) { r
858
888
  UPB_INLINE uint64_t validate_UInt64Rules_gt(const validate_UInt64Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(32, 32), uint64_t); }
859
889
  UPB_INLINE bool validate_UInt64Rules_has_gte(const validate_UInt64Rules *msg) { return _upb_hasbit(msg, 5); }
860
890
  UPB_INLINE uint64_t validate_UInt64Rules_gte(const validate_UInt64Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(40, 40), uint64_t); }
861
- UPB_INLINE uint64_t const* validate_UInt64Rules_in(const validate_UInt64Rules *msg, size_t *len) { return (uint64_t const*)_upb_array_accessor(msg, UPB_SIZE(48, 48), len); }
862
- UPB_INLINE uint64_t const* validate_UInt64Rules_not_in(const validate_UInt64Rules *msg, size_t *len) { return (uint64_t const*)_upb_array_accessor(msg, UPB_SIZE(52, 56), len); }
891
+ UPB_INLINE uint64_t const* validate_UInt64Rules_in(const validate_UInt64Rules *msg, size_t *len) { return (uint64_t const*)_upb_array_accessor(msg, UPB_SIZE(52, 56), len); }
892
+ UPB_INLINE uint64_t const* validate_UInt64Rules_not_in(const validate_UInt64Rules *msg, size_t *len) { return (uint64_t const*)_upb_array_accessor(msg, UPB_SIZE(56, 64), len); }
893
+ UPB_INLINE bool validate_UInt64Rules_has_ignore_empty(const validate_UInt64Rules *msg) { return _upb_hasbit(msg, 6); }
894
+ UPB_INLINE bool validate_UInt64Rules_ignore_empty(const validate_UInt64Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(48, 48), bool); }
863
895
 
864
896
  UPB_INLINE void validate_UInt64Rules_set_const(validate_UInt64Rules *msg, uint64_t value) {
865
897
  _upb_sethas(msg, 1);
@@ -882,25 +914,29 @@ UPB_INLINE void validate_UInt64Rules_set_gte(validate_UInt64Rules *msg, uint64_t
882
914
  *UPB_PTR_AT(msg, UPB_SIZE(40, 40), uint64_t) = value;
883
915
  }
884
916
  UPB_INLINE uint64_t* validate_UInt64Rules_mutable_in(validate_UInt64Rules *msg, size_t *len) {
885
- return (uint64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(48, 48), len);
917
+ return (uint64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(52, 56), len);
886
918
  }
887
919
  UPB_INLINE uint64_t* validate_UInt64Rules_resize_in(validate_UInt64Rules *msg, size_t len, upb_arena *arena) {
888
- return (uint64_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(48, 48), len, 3, arena);
920
+ return (uint64_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(52, 56), len, 3, arena);
889
921
  }
890
922
  UPB_INLINE bool validate_UInt64Rules_add_in(validate_UInt64Rules *msg, uint64_t val, upb_arena *arena) {
891
- return _upb_array_append_accessor2(msg, UPB_SIZE(48, 48), 3, &val,
923
+ return _upb_array_append_accessor2(msg, UPB_SIZE(52, 56), 3, &val,
892
924
  arena);
893
925
  }
894
926
  UPB_INLINE uint64_t* validate_UInt64Rules_mutable_not_in(validate_UInt64Rules *msg, size_t *len) {
895
- return (uint64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(52, 56), len);
927
+ return (uint64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(56, 64), len);
896
928
  }
897
929
  UPB_INLINE uint64_t* validate_UInt64Rules_resize_not_in(validate_UInt64Rules *msg, size_t len, upb_arena *arena) {
898
- return (uint64_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(52, 56), len, 3, arena);
930
+ return (uint64_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(56, 64), len, 3, arena);
899
931
  }
900
932
  UPB_INLINE bool validate_UInt64Rules_add_not_in(validate_UInt64Rules *msg, uint64_t val, upb_arena *arena) {
901
- return _upb_array_append_accessor2(msg, UPB_SIZE(52, 56), 3, &val,
933
+ return _upb_array_append_accessor2(msg, UPB_SIZE(56, 64), 3, &val,
902
934
  arena);
903
935
  }
936
+ UPB_INLINE void validate_UInt64Rules_set_ignore_empty(validate_UInt64Rules *msg, bool value) {
937
+ _upb_sethas(msg, 6);
938
+ *UPB_PTR_AT(msg, UPB_SIZE(48, 48), bool) = value;
939
+ }
904
940
 
905
941
  /* validate.SInt32Rules */
906
942
 
@@ -932,8 +968,10 @@ UPB_INLINE bool validate_SInt32Rules_has_gt(const validate_SInt32Rules *msg) { r
932
968
  UPB_INLINE int32_t validate_SInt32Rules_gt(const validate_SInt32Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(16, 16), int32_t); }
933
969
  UPB_INLINE bool validate_SInt32Rules_has_gte(const validate_SInt32Rules *msg) { return _upb_hasbit(msg, 5); }
934
970
  UPB_INLINE int32_t validate_SInt32Rules_gte(const validate_SInt32Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(20, 20), int32_t); }
935
- UPB_INLINE int32_t const* validate_SInt32Rules_in(const validate_SInt32Rules *msg, size_t *len) { return (int32_t const*)_upb_array_accessor(msg, UPB_SIZE(24, 24), len); }
936
- UPB_INLINE int32_t const* validate_SInt32Rules_not_in(const validate_SInt32Rules *msg, size_t *len) { return (int32_t const*)_upb_array_accessor(msg, UPB_SIZE(28, 32), len); }
971
+ UPB_INLINE int32_t const* validate_SInt32Rules_in(const validate_SInt32Rules *msg, size_t *len) { return (int32_t const*)_upb_array_accessor(msg, UPB_SIZE(28, 32), len); }
972
+ UPB_INLINE int32_t const* validate_SInt32Rules_not_in(const validate_SInt32Rules *msg, size_t *len) { return (int32_t const*)_upb_array_accessor(msg, UPB_SIZE(32, 40), len); }
973
+ UPB_INLINE bool validate_SInt32Rules_has_ignore_empty(const validate_SInt32Rules *msg) { return _upb_hasbit(msg, 6); }
974
+ UPB_INLINE bool validate_SInt32Rules_ignore_empty(const validate_SInt32Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(24, 24), bool); }
937
975
 
938
976
  UPB_INLINE void validate_SInt32Rules_set_const(validate_SInt32Rules *msg, int32_t value) {
939
977
  _upb_sethas(msg, 1);
@@ -956,25 +994,29 @@ UPB_INLINE void validate_SInt32Rules_set_gte(validate_SInt32Rules *msg, int32_t
956
994
  *UPB_PTR_AT(msg, UPB_SIZE(20, 20), int32_t) = value;
957
995
  }
958
996
  UPB_INLINE int32_t* validate_SInt32Rules_mutable_in(validate_SInt32Rules *msg, size_t *len) {
959
- return (int32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(24, 24), len);
997
+ return (int32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(28, 32), len);
960
998
  }
961
999
  UPB_INLINE int32_t* validate_SInt32Rules_resize_in(validate_SInt32Rules *msg, size_t len, upb_arena *arena) {
962
- return (int32_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(24, 24), len, 2, arena);
1000
+ return (int32_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(28, 32), len, 2, arena);
963
1001
  }
964
1002
  UPB_INLINE bool validate_SInt32Rules_add_in(validate_SInt32Rules *msg, int32_t val, upb_arena *arena) {
965
- return _upb_array_append_accessor2(msg, UPB_SIZE(24, 24), 2, &val,
1003
+ return _upb_array_append_accessor2(msg, UPB_SIZE(28, 32), 2, &val,
966
1004
  arena);
967
1005
  }
968
1006
  UPB_INLINE int32_t* validate_SInt32Rules_mutable_not_in(validate_SInt32Rules *msg, size_t *len) {
969
- return (int32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(28, 32), len);
1007
+ return (int32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(32, 40), len);
970
1008
  }
971
1009
  UPB_INLINE int32_t* validate_SInt32Rules_resize_not_in(validate_SInt32Rules *msg, size_t len, upb_arena *arena) {
972
- return (int32_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(28, 32), len, 2, arena);
1010
+ return (int32_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(32, 40), len, 2, arena);
973
1011
  }
974
1012
  UPB_INLINE bool validate_SInt32Rules_add_not_in(validate_SInt32Rules *msg, int32_t val, upb_arena *arena) {
975
- return _upb_array_append_accessor2(msg, UPB_SIZE(28, 32), 2, &val,
1013
+ return _upb_array_append_accessor2(msg, UPB_SIZE(32, 40), 2, &val,
976
1014
  arena);
977
1015
  }
1016
+ UPB_INLINE void validate_SInt32Rules_set_ignore_empty(validate_SInt32Rules *msg, bool value) {
1017
+ _upb_sethas(msg, 6);
1018
+ *UPB_PTR_AT(msg, UPB_SIZE(24, 24), bool) = value;
1019
+ }
978
1020
 
979
1021
  /* validate.SInt64Rules */
980
1022
 
@@ -1006,8 +1048,10 @@ UPB_INLINE bool validate_SInt64Rules_has_gt(const validate_SInt64Rules *msg) { r
1006
1048
  UPB_INLINE int64_t validate_SInt64Rules_gt(const validate_SInt64Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(32, 32), int64_t); }
1007
1049
  UPB_INLINE bool validate_SInt64Rules_has_gte(const validate_SInt64Rules *msg) { return _upb_hasbit(msg, 5); }
1008
1050
  UPB_INLINE int64_t validate_SInt64Rules_gte(const validate_SInt64Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(40, 40), int64_t); }
1009
- UPB_INLINE int64_t const* validate_SInt64Rules_in(const validate_SInt64Rules *msg, size_t *len) { return (int64_t const*)_upb_array_accessor(msg, UPB_SIZE(48, 48), len); }
1010
- UPB_INLINE int64_t const* validate_SInt64Rules_not_in(const validate_SInt64Rules *msg, size_t *len) { return (int64_t const*)_upb_array_accessor(msg, UPB_SIZE(52, 56), len); }
1051
+ UPB_INLINE int64_t const* validate_SInt64Rules_in(const validate_SInt64Rules *msg, size_t *len) { return (int64_t const*)_upb_array_accessor(msg, UPB_SIZE(52, 56), len); }
1052
+ UPB_INLINE int64_t const* validate_SInt64Rules_not_in(const validate_SInt64Rules *msg, size_t *len) { return (int64_t const*)_upb_array_accessor(msg, UPB_SIZE(56, 64), len); }
1053
+ UPB_INLINE bool validate_SInt64Rules_has_ignore_empty(const validate_SInt64Rules *msg) { return _upb_hasbit(msg, 6); }
1054
+ UPB_INLINE bool validate_SInt64Rules_ignore_empty(const validate_SInt64Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(48, 48), bool); }
1011
1055
 
1012
1056
  UPB_INLINE void validate_SInt64Rules_set_const(validate_SInt64Rules *msg, int64_t value) {
1013
1057
  _upb_sethas(msg, 1);
@@ -1030,25 +1074,29 @@ UPB_INLINE void validate_SInt64Rules_set_gte(validate_SInt64Rules *msg, int64_t
1030
1074
  *UPB_PTR_AT(msg, UPB_SIZE(40, 40), int64_t) = value;
1031
1075
  }
1032
1076
  UPB_INLINE int64_t* validate_SInt64Rules_mutable_in(validate_SInt64Rules *msg, size_t *len) {
1033
- return (int64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(48, 48), len);
1077
+ return (int64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(52, 56), len);
1034
1078
  }
1035
1079
  UPB_INLINE int64_t* validate_SInt64Rules_resize_in(validate_SInt64Rules *msg, size_t len, upb_arena *arena) {
1036
- return (int64_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(48, 48), len, 3, arena);
1080
+ return (int64_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(52, 56), len, 3, arena);
1037
1081
  }
1038
1082
  UPB_INLINE bool validate_SInt64Rules_add_in(validate_SInt64Rules *msg, int64_t val, upb_arena *arena) {
1039
- return _upb_array_append_accessor2(msg, UPB_SIZE(48, 48), 3, &val,
1083
+ return _upb_array_append_accessor2(msg, UPB_SIZE(52, 56), 3, &val,
1040
1084
  arena);
1041
1085
  }
1042
1086
  UPB_INLINE int64_t* validate_SInt64Rules_mutable_not_in(validate_SInt64Rules *msg, size_t *len) {
1043
- return (int64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(52, 56), len);
1087
+ return (int64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(56, 64), len);
1044
1088
  }
1045
1089
  UPB_INLINE int64_t* validate_SInt64Rules_resize_not_in(validate_SInt64Rules *msg, size_t len, upb_arena *arena) {
1046
- return (int64_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(52, 56), len, 3, arena);
1090
+ return (int64_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(56, 64), len, 3, arena);
1047
1091
  }
1048
1092
  UPB_INLINE bool validate_SInt64Rules_add_not_in(validate_SInt64Rules *msg, int64_t val, upb_arena *arena) {
1049
- return _upb_array_append_accessor2(msg, UPB_SIZE(52, 56), 3, &val,
1093
+ return _upb_array_append_accessor2(msg, UPB_SIZE(56, 64), 3, &val,
1050
1094
  arena);
1051
1095
  }
1096
+ UPB_INLINE void validate_SInt64Rules_set_ignore_empty(validate_SInt64Rules *msg, bool value) {
1097
+ _upb_sethas(msg, 6);
1098
+ *UPB_PTR_AT(msg, UPB_SIZE(48, 48), bool) = value;
1099
+ }
1052
1100
 
1053
1101
  /* validate.Fixed32Rules */
1054
1102
 
@@ -1080,8 +1128,10 @@ UPB_INLINE bool validate_Fixed32Rules_has_gt(const validate_Fixed32Rules *msg) {
1080
1128
  UPB_INLINE uint32_t validate_Fixed32Rules_gt(const validate_Fixed32Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(16, 16), uint32_t); }
1081
1129
  UPB_INLINE bool validate_Fixed32Rules_has_gte(const validate_Fixed32Rules *msg) { return _upb_hasbit(msg, 5); }
1082
1130
  UPB_INLINE uint32_t validate_Fixed32Rules_gte(const validate_Fixed32Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(20, 20), uint32_t); }
1083
- UPB_INLINE uint32_t const* validate_Fixed32Rules_in(const validate_Fixed32Rules *msg, size_t *len) { return (uint32_t const*)_upb_array_accessor(msg, UPB_SIZE(24, 24), len); }
1084
- UPB_INLINE uint32_t const* validate_Fixed32Rules_not_in(const validate_Fixed32Rules *msg, size_t *len) { return (uint32_t const*)_upb_array_accessor(msg, UPB_SIZE(28, 32), len); }
1131
+ UPB_INLINE uint32_t const* validate_Fixed32Rules_in(const validate_Fixed32Rules *msg, size_t *len) { return (uint32_t const*)_upb_array_accessor(msg, UPB_SIZE(28, 32), len); }
1132
+ UPB_INLINE uint32_t const* validate_Fixed32Rules_not_in(const validate_Fixed32Rules *msg, size_t *len) { return (uint32_t const*)_upb_array_accessor(msg, UPB_SIZE(32, 40), len); }
1133
+ UPB_INLINE bool validate_Fixed32Rules_has_ignore_empty(const validate_Fixed32Rules *msg) { return _upb_hasbit(msg, 6); }
1134
+ UPB_INLINE bool validate_Fixed32Rules_ignore_empty(const validate_Fixed32Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(24, 24), bool); }
1085
1135
 
1086
1136
  UPB_INLINE void validate_Fixed32Rules_set_const(validate_Fixed32Rules *msg, uint32_t value) {
1087
1137
  _upb_sethas(msg, 1);
@@ -1104,25 +1154,29 @@ UPB_INLINE void validate_Fixed32Rules_set_gte(validate_Fixed32Rules *msg, uint32
1104
1154
  *UPB_PTR_AT(msg, UPB_SIZE(20, 20), uint32_t) = value;
1105
1155
  }
1106
1156
  UPB_INLINE uint32_t* validate_Fixed32Rules_mutable_in(validate_Fixed32Rules *msg, size_t *len) {
1107
- return (uint32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(24, 24), len);
1157
+ return (uint32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(28, 32), len);
1108
1158
  }
1109
1159
  UPB_INLINE uint32_t* validate_Fixed32Rules_resize_in(validate_Fixed32Rules *msg, size_t len, upb_arena *arena) {
1110
- return (uint32_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(24, 24), len, 2, arena);
1160
+ return (uint32_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(28, 32), len, 2, arena);
1111
1161
  }
1112
1162
  UPB_INLINE bool validate_Fixed32Rules_add_in(validate_Fixed32Rules *msg, uint32_t val, upb_arena *arena) {
1113
- return _upb_array_append_accessor2(msg, UPB_SIZE(24, 24), 2, &val,
1163
+ return _upb_array_append_accessor2(msg, UPB_SIZE(28, 32), 2, &val,
1114
1164
  arena);
1115
1165
  }
1116
1166
  UPB_INLINE uint32_t* validate_Fixed32Rules_mutable_not_in(validate_Fixed32Rules *msg, size_t *len) {
1117
- return (uint32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(28, 32), len);
1167
+ return (uint32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(32, 40), len);
1118
1168
  }
1119
1169
  UPB_INLINE uint32_t* validate_Fixed32Rules_resize_not_in(validate_Fixed32Rules *msg, size_t len, upb_arena *arena) {
1120
- return (uint32_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(28, 32), len, 2, arena);
1170
+ return (uint32_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(32, 40), len, 2, arena);
1121
1171
  }
1122
1172
  UPB_INLINE bool validate_Fixed32Rules_add_not_in(validate_Fixed32Rules *msg, uint32_t val, upb_arena *arena) {
1123
- return _upb_array_append_accessor2(msg, UPB_SIZE(28, 32), 2, &val,
1173
+ return _upb_array_append_accessor2(msg, UPB_SIZE(32, 40), 2, &val,
1124
1174
  arena);
1125
1175
  }
1176
+ UPB_INLINE void validate_Fixed32Rules_set_ignore_empty(validate_Fixed32Rules *msg, bool value) {
1177
+ _upb_sethas(msg, 6);
1178
+ *UPB_PTR_AT(msg, UPB_SIZE(24, 24), bool) = value;
1179
+ }
1126
1180
 
1127
1181
  /* validate.Fixed64Rules */
1128
1182
 
@@ -1154,8 +1208,10 @@ UPB_INLINE bool validate_Fixed64Rules_has_gt(const validate_Fixed64Rules *msg) {
1154
1208
  UPB_INLINE uint64_t validate_Fixed64Rules_gt(const validate_Fixed64Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(32, 32), uint64_t); }
1155
1209
  UPB_INLINE bool validate_Fixed64Rules_has_gte(const validate_Fixed64Rules *msg) { return _upb_hasbit(msg, 5); }
1156
1210
  UPB_INLINE uint64_t validate_Fixed64Rules_gte(const validate_Fixed64Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(40, 40), uint64_t); }
1157
- UPB_INLINE uint64_t const* validate_Fixed64Rules_in(const validate_Fixed64Rules *msg, size_t *len) { return (uint64_t const*)_upb_array_accessor(msg, UPB_SIZE(48, 48), len); }
1158
- UPB_INLINE uint64_t const* validate_Fixed64Rules_not_in(const validate_Fixed64Rules *msg, size_t *len) { return (uint64_t const*)_upb_array_accessor(msg, UPB_SIZE(52, 56), len); }
1211
+ UPB_INLINE uint64_t const* validate_Fixed64Rules_in(const validate_Fixed64Rules *msg, size_t *len) { return (uint64_t const*)_upb_array_accessor(msg, UPB_SIZE(52, 56), len); }
1212
+ UPB_INLINE uint64_t const* validate_Fixed64Rules_not_in(const validate_Fixed64Rules *msg, size_t *len) { return (uint64_t const*)_upb_array_accessor(msg, UPB_SIZE(56, 64), len); }
1213
+ UPB_INLINE bool validate_Fixed64Rules_has_ignore_empty(const validate_Fixed64Rules *msg) { return _upb_hasbit(msg, 6); }
1214
+ UPB_INLINE bool validate_Fixed64Rules_ignore_empty(const validate_Fixed64Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(48, 48), bool); }
1159
1215
 
1160
1216
  UPB_INLINE void validate_Fixed64Rules_set_const(validate_Fixed64Rules *msg, uint64_t value) {
1161
1217
  _upb_sethas(msg, 1);
@@ -1178,25 +1234,29 @@ UPB_INLINE void validate_Fixed64Rules_set_gte(validate_Fixed64Rules *msg, uint64
1178
1234
  *UPB_PTR_AT(msg, UPB_SIZE(40, 40), uint64_t) = value;
1179
1235
  }
1180
1236
  UPB_INLINE uint64_t* validate_Fixed64Rules_mutable_in(validate_Fixed64Rules *msg, size_t *len) {
1181
- return (uint64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(48, 48), len);
1237
+ return (uint64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(52, 56), len);
1182
1238
  }
1183
1239
  UPB_INLINE uint64_t* validate_Fixed64Rules_resize_in(validate_Fixed64Rules *msg, size_t len, upb_arena *arena) {
1184
- return (uint64_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(48, 48), len, 3, arena);
1240
+ return (uint64_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(52, 56), len, 3, arena);
1185
1241
  }
1186
1242
  UPB_INLINE bool validate_Fixed64Rules_add_in(validate_Fixed64Rules *msg, uint64_t val, upb_arena *arena) {
1187
- return _upb_array_append_accessor2(msg, UPB_SIZE(48, 48), 3, &val,
1243
+ return _upb_array_append_accessor2(msg, UPB_SIZE(52, 56), 3, &val,
1188
1244
  arena);
1189
1245
  }
1190
1246
  UPB_INLINE uint64_t* validate_Fixed64Rules_mutable_not_in(validate_Fixed64Rules *msg, size_t *len) {
1191
- return (uint64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(52, 56), len);
1247
+ return (uint64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(56, 64), len);
1192
1248
  }
1193
1249
  UPB_INLINE uint64_t* validate_Fixed64Rules_resize_not_in(validate_Fixed64Rules *msg, size_t len, upb_arena *arena) {
1194
- return (uint64_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(52, 56), len, 3, arena);
1250
+ return (uint64_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(56, 64), len, 3, arena);
1195
1251
  }
1196
1252
  UPB_INLINE bool validate_Fixed64Rules_add_not_in(validate_Fixed64Rules *msg, uint64_t val, upb_arena *arena) {
1197
- return _upb_array_append_accessor2(msg, UPB_SIZE(52, 56), 3, &val,
1253
+ return _upb_array_append_accessor2(msg, UPB_SIZE(56, 64), 3, &val,
1198
1254
  arena);
1199
1255
  }
1256
+ UPB_INLINE void validate_Fixed64Rules_set_ignore_empty(validate_Fixed64Rules *msg, bool value) {
1257
+ _upb_sethas(msg, 6);
1258
+ *UPB_PTR_AT(msg, UPB_SIZE(48, 48), bool) = value;
1259
+ }
1200
1260
 
1201
1261
  /* validate.SFixed32Rules */
1202
1262
 
@@ -1228,8 +1288,10 @@ UPB_INLINE bool validate_SFixed32Rules_has_gt(const validate_SFixed32Rules *msg)
1228
1288
  UPB_INLINE int32_t validate_SFixed32Rules_gt(const validate_SFixed32Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(16, 16), int32_t); }
1229
1289
  UPB_INLINE bool validate_SFixed32Rules_has_gte(const validate_SFixed32Rules *msg) { return _upb_hasbit(msg, 5); }
1230
1290
  UPB_INLINE int32_t validate_SFixed32Rules_gte(const validate_SFixed32Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(20, 20), int32_t); }
1231
- UPB_INLINE int32_t const* validate_SFixed32Rules_in(const validate_SFixed32Rules *msg, size_t *len) { return (int32_t const*)_upb_array_accessor(msg, UPB_SIZE(24, 24), len); }
1232
- UPB_INLINE int32_t const* validate_SFixed32Rules_not_in(const validate_SFixed32Rules *msg, size_t *len) { return (int32_t const*)_upb_array_accessor(msg, UPB_SIZE(28, 32), len); }
1291
+ UPB_INLINE int32_t const* validate_SFixed32Rules_in(const validate_SFixed32Rules *msg, size_t *len) { return (int32_t const*)_upb_array_accessor(msg, UPB_SIZE(28, 32), len); }
1292
+ UPB_INLINE int32_t const* validate_SFixed32Rules_not_in(const validate_SFixed32Rules *msg, size_t *len) { return (int32_t const*)_upb_array_accessor(msg, UPB_SIZE(32, 40), len); }
1293
+ UPB_INLINE bool validate_SFixed32Rules_has_ignore_empty(const validate_SFixed32Rules *msg) { return _upb_hasbit(msg, 6); }
1294
+ UPB_INLINE bool validate_SFixed32Rules_ignore_empty(const validate_SFixed32Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(24, 24), bool); }
1233
1295
 
1234
1296
  UPB_INLINE void validate_SFixed32Rules_set_const(validate_SFixed32Rules *msg, int32_t value) {
1235
1297
  _upb_sethas(msg, 1);
@@ -1252,25 +1314,29 @@ UPB_INLINE void validate_SFixed32Rules_set_gte(validate_SFixed32Rules *msg, int3
1252
1314
  *UPB_PTR_AT(msg, UPB_SIZE(20, 20), int32_t) = value;
1253
1315
  }
1254
1316
  UPB_INLINE int32_t* validate_SFixed32Rules_mutable_in(validate_SFixed32Rules *msg, size_t *len) {
1255
- return (int32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(24, 24), len);
1317
+ return (int32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(28, 32), len);
1256
1318
  }
1257
1319
  UPB_INLINE int32_t* validate_SFixed32Rules_resize_in(validate_SFixed32Rules *msg, size_t len, upb_arena *arena) {
1258
- return (int32_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(24, 24), len, 2, arena);
1320
+ return (int32_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(28, 32), len, 2, arena);
1259
1321
  }
1260
1322
  UPB_INLINE bool validate_SFixed32Rules_add_in(validate_SFixed32Rules *msg, int32_t val, upb_arena *arena) {
1261
- return _upb_array_append_accessor2(msg, UPB_SIZE(24, 24), 2, &val,
1323
+ return _upb_array_append_accessor2(msg, UPB_SIZE(28, 32), 2, &val,
1262
1324
  arena);
1263
1325
  }
1264
1326
  UPB_INLINE int32_t* validate_SFixed32Rules_mutable_not_in(validate_SFixed32Rules *msg, size_t *len) {
1265
- return (int32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(28, 32), len);
1327
+ return (int32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(32, 40), len);
1266
1328
  }
1267
1329
  UPB_INLINE int32_t* validate_SFixed32Rules_resize_not_in(validate_SFixed32Rules *msg, size_t len, upb_arena *arena) {
1268
- return (int32_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(28, 32), len, 2, arena);
1330
+ return (int32_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(32, 40), len, 2, arena);
1269
1331
  }
1270
1332
  UPB_INLINE bool validate_SFixed32Rules_add_not_in(validate_SFixed32Rules *msg, int32_t val, upb_arena *arena) {
1271
- return _upb_array_append_accessor2(msg, UPB_SIZE(28, 32), 2, &val,
1333
+ return _upb_array_append_accessor2(msg, UPB_SIZE(32, 40), 2, &val,
1272
1334
  arena);
1273
1335
  }
1336
+ UPB_INLINE void validate_SFixed32Rules_set_ignore_empty(validate_SFixed32Rules *msg, bool value) {
1337
+ _upb_sethas(msg, 6);
1338
+ *UPB_PTR_AT(msg, UPB_SIZE(24, 24), bool) = value;
1339
+ }
1274
1340
 
1275
1341
  /* validate.SFixed64Rules */
1276
1342
 
@@ -1302,8 +1368,10 @@ UPB_INLINE bool validate_SFixed64Rules_has_gt(const validate_SFixed64Rules *msg)
1302
1368
  UPB_INLINE int64_t validate_SFixed64Rules_gt(const validate_SFixed64Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(32, 32), int64_t); }
1303
1369
  UPB_INLINE bool validate_SFixed64Rules_has_gte(const validate_SFixed64Rules *msg) { return _upb_hasbit(msg, 5); }
1304
1370
  UPB_INLINE int64_t validate_SFixed64Rules_gte(const validate_SFixed64Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(40, 40), int64_t); }
1305
- UPB_INLINE int64_t const* validate_SFixed64Rules_in(const validate_SFixed64Rules *msg, size_t *len) { return (int64_t const*)_upb_array_accessor(msg, UPB_SIZE(48, 48), len); }
1306
- UPB_INLINE int64_t const* validate_SFixed64Rules_not_in(const validate_SFixed64Rules *msg, size_t *len) { return (int64_t const*)_upb_array_accessor(msg, UPB_SIZE(52, 56), len); }
1371
+ UPB_INLINE int64_t const* validate_SFixed64Rules_in(const validate_SFixed64Rules *msg, size_t *len) { return (int64_t const*)_upb_array_accessor(msg, UPB_SIZE(52, 56), len); }
1372
+ UPB_INLINE int64_t const* validate_SFixed64Rules_not_in(const validate_SFixed64Rules *msg, size_t *len) { return (int64_t const*)_upb_array_accessor(msg, UPB_SIZE(56, 64), len); }
1373
+ UPB_INLINE bool validate_SFixed64Rules_has_ignore_empty(const validate_SFixed64Rules *msg) { return _upb_hasbit(msg, 6); }
1374
+ UPB_INLINE bool validate_SFixed64Rules_ignore_empty(const validate_SFixed64Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(48, 48), bool); }
1307
1375
 
1308
1376
  UPB_INLINE void validate_SFixed64Rules_set_const(validate_SFixed64Rules *msg, int64_t value) {
1309
1377
  _upb_sethas(msg, 1);
@@ -1326,25 +1394,29 @@ UPB_INLINE void validate_SFixed64Rules_set_gte(validate_SFixed64Rules *msg, int6
1326
1394
  *UPB_PTR_AT(msg, UPB_SIZE(40, 40), int64_t) = value;
1327
1395
  }
1328
1396
  UPB_INLINE int64_t* validate_SFixed64Rules_mutable_in(validate_SFixed64Rules *msg, size_t *len) {
1329
- return (int64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(48, 48), len);
1397
+ return (int64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(52, 56), len);
1330
1398
  }
1331
1399
  UPB_INLINE int64_t* validate_SFixed64Rules_resize_in(validate_SFixed64Rules *msg, size_t len, upb_arena *arena) {
1332
- return (int64_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(48, 48), len, 3, arena);
1400
+ return (int64_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(52, 56), len, 3, arena);
1333
1401
  }
1334
1402
  UPB_INLINE bool validate_SFixed64Rules_add_in(validate_SFixed64Rules *msg, int64_t val, upb_arena *arena) {
1335
- return _upb_array_append_accessor2(msg, UPB_SIZE(48, 48), 3, &val,
1403
+ return _upb_array_append_accessor2(msg, UPB_SIZE(52, 56), 3, &val,
1336
1404
  arena);
1337
1405
  }
1338
1406
  UPB_INLINE int64_t* validate_SFixed64Rules_mutable_not_in(validate_SFixed64Rules *msg, size_t *len) {
1339
- return (int64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(52, 56), len);
1407
+ return (int64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(56, 64), len);
1340
1408
  }
1341
1409
  UPB_INLINE int64_t* validate_SFixed64Rules_resize_not_in(validate_SFixed64Rules *msg, size_t len, upb_arena *arena) {
1342
- return (int64_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(52, 56), len, 3, arena);
1410
+ return (int64_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(56, 64), len, 3, arena);
1343
1411
  }
1344
1412
  UPB_INLINE bool validate_SFixed64Rules_add_not_in(validate_SFixed64Rules *msg, int64_t val, upb_arena *arena) {
1345
- return _upb_array_append_accessor2(msg, UPB_SIZE(52, 56), 3, &val,
1413
+ return _upb_array_append_accessor2(msg, UPB_SIZE(56, 64), 3, &val,
1346
1414
  arena);
1347
1415
  }
1416
+ UPB_INLINE void validate_SFixed64Rules_set_ignore_empty(validate_SFixed64Rules *msg, bool value) {
1417
+ _upb_sethas(msg, 6);
1418
+ *UPB_PTR_AT(msg, UPB_SIZE(48, 48), bool) = value;
1419
+ }
1348
1420
 
1349
1421
  /* validate.BoolRules */
1350
1422
 
@@ -1457,6 +1529,8 @@ UPB_INLINE bool validate_StringRules_has_well_known_regex(const validate_StringR
1457
1529
  UPB_INLINE int32_t validate_StringRules_well_known_regex(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, int32_t, UPB_SIZE(116, 176), UPB_SIZE(120, 180), 24, 0); }
1458
1530
  UPB_INLINE bool validate_StringRules_has_strict(const validate_StringRules *msg) { return _upb_hasbit(msg, 13); }
1459
1531
  UPB_INLINE bool validate_StringRules_strict(const validate_StringRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(56, 56), bool); }
1532
+ UPB_INLINE bool validate_StringRules_has_ignore_empty(const validate_StringRules *msg) { return _upb_hasbit(msg, 14); }
1533
+ UPB_INLINE bool validate_StringRules_ignore_empty(const validate_StringRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(57, 57), bool); }
1460
1534
 
1461
1535
  UPB_INLINE void validate_StringRules_set_const(validate_StringRules *msg, upb_strview value) {
1462
1536
  _upb_sethas(msg, 1);
@@ -1560,6 +1634,10 @@ UPB_INLINE void validate_StringRules_set_strict(validate_StringRules *msg, bool
1560
1634
  _upb_sethas(msg, 13);
1561
1635
  *UPB_PTR_AT(msg, UPB_SIZE(56, 56), bool) = value;
1562
1636
  }
1637
+ UPB_INLINE void validate_StringRules_set_ignore_empty(validate_StringRules *msg, bool value) {
1638
+ _upb_sethas(msg, 14);
1639
+ *UPB_PTR_AT(msg, UPB_SIZE(57, 57), bool) = value;
1640
+ }
1563
1641
 
1564
1642
  /* validate.BytesRules */
1565
1643
 
@@ -1587,36 +1665,38 @@ typedef enum {
1587
1665
  validate_BytesRules_well_known_ipv6 = 12,
1588
1666
  validate_BytesRules_well_known_NOT_SET = 0
1589
1667
  } validate_BytesRules_well_known_oneofcases;
1590
- UPB_INLINE validate_BytesRules_well_known_oneofcases validate_BytesRules_well_known_case(const validate_BytesRules* msg) { return (validate_BytesRules_well_known_oneofcases)*UPB_PTR_AT(msg, UPB_SIZE(84, 132), int32_t); }
1668
+ UPB_INLINE validate_BytesRules_well_known_oneofcases validate_BytesRules_well_known_case(const validate_BytesRules* msg) { return (validate_BytesRules_well_known_oneofcases)*UPB_PTR_AT(msg, UPB_SIZE(88, 140), int32_t); }
1591
1669
 
1592
1670
  UPB_INLINE bool validate_BytesRules_has_const(const validate_BytesRules *msg) { return _upb_hasbit(msg, 1); }
1593
- UPB_INLINE upb_strview validate_BytesRules_const(const validate_BytesRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(32, 32), upb_strview); }
1671
+ UPB_INLINE upb_strview validate_BytesRules_const(const validate_BytesRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(36, 40), upb_strview); }
1594
1672
  UPB_INLINE bool validate_BytesRules_has_min_len(const validate_BytesRules *msg) { return _upb_hasbit(msg, 2); }
1595
1673
  UPB_INLINE uint64_t validate_BytesRules_min_len(const validate_BytesRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(8, 8), uint64_t); }
1596
1674
  UPB_INLINE bool validate_BytesRules_has_max_len(const validate_BytesRules *msg) { return _upb_hasbit(msg, 3); }
1597
1675
  UPB_INLINE uint64_t validate_BytesRules_max_len(const validate_BytesRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(16, 16), uint64_t); }
1598
1676
  UPB_INLINE bool validate_BytesRules_has_pattern(const validate_BytesRules *msg) { return _upb_hasbit(msg, 4); }
1599
- UPB_INLINE upb_strview validate_BytesRules_pattern(const validate_BytesRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(40, 48), upb_strview); }
1677
+ UPB_INLINE upb_strview validate_BytesRules_pattern(const validate_BytesRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(44, 56), upb_strview); }
1600
1678
  UPB_INLINE bool validate_BytesRules_has_prefix(const validate_BytesRules *msg) { return _upb_hasbit(msg, 5); }
1601
- UPB_INLINE upb_strview validate_BytesRules_prefix(const validate_BytesRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(48, 64), upb_strview); }
1679
+ UPB_INLINE upb_strview validate_BytesRules_prefix(const validate_BytesRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(52, 72), upb_strview); }
1602
1680
  UPB_INLINE bool validate_BytesRules_has_suffix(const validate_BytesRules *msg) { return _upb_hasbit(msg, 6); }
1603
- UPB_INLINE upb_strview validate_BytesRules_suffix(const validate_BytesRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(56, 80), upb_strview); }
1681
+ UPB_INLINE upb_strview validate_BytesRules_suffix(const validate_BytesRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(60, 88), upb_strview); }
1604
1682
  UPB_INLINE bool validate_BytesRules_has_contains(const validate_BytesRules *msg) { return _upb_hasbit(msg, 7); }
1605
- UPB_INLINE upb_strview validate_BytesRules_contains(const validate_BytesRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(64, 96), upb_strview); }
1606
- UPB_INLINE upb_strview const* validate_BytesRules_in(const validate_BytesRules *msg, size_t *len) { return (upb_strview const*)_upb_array_accessor(msg, UPB_SIZE(72, 112), len); }
1607
- UPB_INLINE upb_strview const* validate_BytesRules_not_in(const validate_BytesRules *msg, size_t *len) { return (upb_strview const*)_upb_array_accessor(msg, UPB_SIZE(76, 120), len); }
1608
- UPB_INLINE bool validate_BytesRules_has_ip(const validate_BytesRules *msg) { return _upb_getoneofcase(msg, UPB_SIZE(84, 132)) == 10; }
1609
- UPB_INLINE bool validate_BytesRules_ip(const validate_BytesRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(80, 128), UPB_SIZE(84, 132), 10, false); }
1610
- UPB_INLINE bool validate_BytesRules_has_ipv4(const validate_BytesRules *msg) { return _upb_getoneofcase(msg, UPB_SIZE(84, 132)) == 11; }
1611
- UPB_INLINE bool validate_BytesRules_ipv4(const validate_BytesRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(80, 128), UPB_SIZE(84, 132), 11, false); }
1612
- UPB_INLINE bool validate_BytesRules_has_ipv6(const validate_BytesRules *msg) { return _upb_getoneofcase(msg, UPB_SIZE(84, 132)) == 12; }
1613
- UPB_INLINE bool validate_BytesRules_ipv6(const validate_BytesRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(80, 128), UPB_SIZE(84, 132), 12, false); }
1683
+ UPB_INLINE upb_strview validate_BytesRules_contains(const validate_BytesRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(68, 104), upb_strview); }
1684
+ UPB_INLINE upb_strview const* validate_BytesRules_in(const validate_BytesRules *msg, size_t *len) { return (upb_strview const*)_upb_array_accessor(msg, UPB_SIZE(76, 120), len); }
1685
+ UPB_INLINE upb_strview const* validate_BytesRules_not_in(const validate_BytesRules *msg, size_t *len) { return (upb_strview const*)_upb_array_accessor(msg, UPB_SIZE(80, 128), len); }
1686
+ UPB_INLINE bool validate_BytesRules_has_ip(const validate_BytesRules *msg) { return _upb_getoneofcase(msg, UPB_SIZE(88, 140)) == 10; }
1687
+ UPB_INLINE bool validate_BytesRules_ip(const validate_BytesRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(84, 136), UPB_SIZE(88, 140), 10, false); }
1688
+ UPB_INLINE bool validate_BytesRules_has_ipv4(const validate_BytesRules *msg) { return _upb_getoneofcase(msg, UPB_SIZE(88, 140)) == 11; }
1689
+ UPB_INLINE bool validate_BytesRules_ipv4(const validate_BytesRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(84, 136), UPB_SIZE(88, 140), 11, false); }
1690
+ UPB_INLINE bool validate_BytesRules_has_ipv6(const validate_BytesRules *msg) { return _upb_getoneofcase(msg, UPB_SIZE(88, 140)) == 12; }
1691
+ UPB_INLINE bool validate_BytesRules_ipv6(const validate_BytesRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(84, 136), UPB_SIZE(88, 140), 12, false); }
1614
1692
  UPB_INLINE bool validate_BytesRules_has_len(const validate_BytesRules *msg) { return _upb_hasbit(msg, 8); }
1615
1693
  UPB_INLINE uint64_t validate_BytesRules_len(const validate_BytesRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(24, 24), uint64_t); }
1694
+ UPB_INLINE bool validate_BytesRules_has_ignore_empty(const validate_BytesRules *msg) { return _upb_hasbit(msg, 9); }
1695
+ UPB_INLINE bool validate_BytesRules_ignore_empty(const validate_BytesRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(32, 32), bool); }
1616
1696
 
1617
1697
  UPB_INLINE void validate_BytesRules_set_const(validate_BytesRules *msg, upb_strview value) {
1618
1698
  _upb_sethas(msg, 1);
1619
- *UPB_PTR_AT(msg, UPB_SIZE(32, 32), upb_strview) = value;
1699
+ *UPB_PTR_AT(msg, UPB_SIZE(36, 40), upb_strview) = value;
1620
1700
  }
1621
1701
  UPB_INLINE void validate_BytesRules_set_min_len(validate_BytesRules *msg, uint64_t value) {
1622
1702
  _upb_sethas(msg, 2);
@@ -1628,53 +1708,57 @@ UPB_INLINE void validate_BytesRules_set_max_len(validate_BytesRules *msg, uint64
1628
1708
  }
1629
1709
  UPB_INLINE void validate_BytesRules_set_pattern(validate_BytesRules *msg, upb_strview value) {
1630
1710
  _upb_sethas(msg, 4);
1631
- *UPB_PTR_AT(msg, UPB_SIZE(40, 48), upb_strview) = value;
1711
+ *UPB_PTR_AT(msg, UPB_SIZE(44, 56), upb_strview) = value;
1632
1712
  }
1633
1713
  UPB_INLINE void validate_BytesRules_set_prefix(validate_BytesRules *msg, upb_strview value) {
1634
1714
  _upb_sethas(msg, 5);
1635
- *UPB_PTR_AT(msg, UPB_SIZE(48, 64), upb_strview) = value;
1715
+ *UPB_PTR_AT(msg, UPB_SIZE(52, 72), upb_strview) = value;
1636
1716
  }
1637
1717
  UPB_INLINE void validate_BytesRules_set_suffix(validate_BytesRules *msg, upb_strview value) {
1638
1718
  _upb_sethas(msg, 6);
1639
- *UPB_PTR_AT(msg, UPB_SIZE(56, 80), upb_strview) = value;
1719
+ *UPB_PTR_AT(msg, UPB_SIZE(60, 88), upb_strview) = value;
1640
1720
  }
1641
1721
  UPB_INLINE void validate_BytesRules_set_contains(validate_BytesRules *msg, upb_strview value) {
1642
1722
  _upb_sethas(msg, 7);
1643
- *UPB_PTR_AT(msg, UPB_SIZE(64, 96), upb_strview) = value;
1723
+ *UPB_PTR_AT(msg, UPB_SIZE(68, 104), upb_strview) = value;
1644
1724
  }
1645
1725
  UPB_INLINE upb_strview* validate_BytesRules_mutable_in(validate_BytesRules *msg, size_t *len) {
1646
- return (upb_strview*)_upb_array_mutable_accessor(msg, UPB_SIZE(72, 112), len);
1726
+ return (upb_strview*)_upb_array_mutable_accessor(msg, UPB_SIZE(76, 120), len);
1647
1727
  }
1648
1728
  UPB_INLINE upb_strview* validate_BytesRules_resize_in(validate_BytesRules *msg, size_t len, upb_arena *arena) {
1649
- return (upb_strview*)_upb_array_resize_accessor2(msg, UPB_SIZE(72, 112), len, UPB_SIZE(3, 4), arena);
1729
+ return (upb_strview*)_upb_array_resize_accessor2(msg, UPB_SIZE(76, 120), len, UPB_SIZE(3, 4), arena);
1650
1730
  }
1651
1731
  UPB_INLINE bool validate_BytesRules_add_in(validate_BytesRules *msg, upb_strview val, upb_arena *arena) {
1652
- return _upb_array_append_accessor2(msg, UPB_SIZE(72, 112), UPB_SIZE(3, 4), &val,
1732
+ return _upb_array_append_accessor2(msg, UPB_SIZE(76, 120), UPB_SIZE(3, 4), &val,
1653
1733
  arena);
1654
1734
  }
1655
1735
  UPB_INLINE upb_strview* validate_BytesRules_mutable_not_in(validate_BytesRules *msg, size_t *len) {
1656
- return (upb_strview*)_upb_array_mutable_accessor(msg, UPB_SIZE(76, 120), len);
1736
+ return (upb_strview*)_upb_array_mutable_accessor(msg, UPB_SIZE(80, 128), len);
1657
1737
  }
1658
1738
  UPB_INLINE upb_strview* validate_BytesRules_resize_not_in(validate_BytesRules *msg, size_t len, upb_arena *arena) {
1659
- return (upb_strview*)_upb_array_resize_accessor2(msg, UPB_SIZE(76, 120), len, UPB_SIZE(3, 4), arena);
1739
+ return (upb_strview*)_upb_array_resize_accessor2(msg, UPB_SIZE(80, 128), len, UPB_SIZE(3, 4), arena);
1660
1740
  }
1661
1741
  UPB_INLINE bool validate_BytesRules_add_not_in(validate_BytesRules *msg, upb_strview val, upb_arena *arena) {
1662
- return _upb_array_append_accessor2(msg, UPB_SIZE(76, 120), UPB_SIZE(3, 4), &val,
1742
+ return _upb_array_append_accessor2(msg, UPB_SIZE(80, 128), UPB_SIZE(3, 4), &val,
1663
1743
  arena);
1664
1744
  }
1665
1745
  UPB_INLINE void validate_BytesRules_set_ip(validate_BytesRules *msg, bool value) {
1666
- UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(80, 128), value, UPB_SIZE(84, 132), 10);
1746
+ UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(84, 136), value, UPB_SIZE(88, 140), 10);
1667
1747
  }
1668
1748
  UPB_INLINE void validate_BytesRules_set_ipv4(validate_BytesRules *msg, bool value) {
1669
- UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(80, 128), value, UPB_SIZE(84, 132), 11);
1749
+ UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(84, 136), value, UPB_SIZE(88, 140), 11);
1670
1750
  }
1671
1751
  UPB_INLINE void validate_BytesRules_set_ipv6(validate_BytesRules *msg, bool value) {
1672
- UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(80, 128), value, UPB_SIZE(84, 132), 12);
1752
+ UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(84, 136), value, UPB_SIZE(88, 140), 12);
1673
1753
  }
1674
1754
  UPB_INLINE void validate_BytesRules_set_len(validate_BytesRules *msg, uint64_t value) {
1675
1755
  _upb_sethas(msg, 8);
1676
1756
  *UPB_PTR_AT(msg, UPB_SIZE(24, 24), uint64_t) = value;
1677
1757
  }
1758
+ UPB_INLINE void validate_BytesRules_set_ignore_empty(validate_BytesRules *msg, bool value) {
1759
+ _upb_sethas(msg, 9);
1760
+ *UPB_PTR_AT(msg, UPB_SIZE(32, 32), bool) = value;
1761
+ }
1678
1762
 
1679
1763
  /* validate.EnumRules */
1680
1764
 
@@ -1794,6 +1878,8 @@ UPB_INLINE bool validate_RepeatedRules_has_unique(const validate_RepeatedRules *
1794
1878
  UPB_INLINE bool validate_RepeatedRules_unique(const validate_RepeatedRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(24, 24), bool); }
1795
1879
  UPB_INLINE bool validate_RepeatedRules_has_items(const validate_RepeatedRules *msg) { return _upb_hasbit(msg, 4); }
1796
1880
  UPB_INLINE const validate_FieldRules* validate_RepeatedRules_items(const validate_RepeatedRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(28, 32), const validate_FieldRules*); }
1881
+ UPB_INLINE bool validate_RepeatedRules_has_ignore_empty(const validate_RepeatedRules *msg) { return _upb_hasbit(msg, 5); }
1882
+ UPB_INLINE bool validate_RepeatedRules_ignore_empty(const validate_RepeatedRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(25, 25), bool); }
1797
1883
 
1798
1884
  UPB_INLINE void validate_RepeatedRules_set_min_items(validate_RepeatedRules *msg, uint64_t value) {
1799
1885
  _upb_sethas(msg, 1);
@@ -1820,6 +1906,10 @@ UPB_INLINE struct validate_FieldRules* validate_RepeatedRules_mutable_items(vali
1820
1906
  }
1821
1907
  return sub;
1822
1908
  }
1909
+ UPB_INLINE void validate_RepeatedRules_set_ignore_empty(validate_RepeatedRules *msg, bool value) {
1910
+ _upb_sethas(msg, 5);
1911
+ *UPB_PTR_AT(msg, UPB_SIZE(25, 25), bool) = value;
1912
+ }
1823
1913
 
1824
1914
  /* validate.MapRules */
1825
1915
 
@@ -1851,6 +1941,8 @@ UPB_INLINE bool validate_MapRules_has_keys(const validate_MapRules *msg) { retur
1851
1941
  UPB_INLINE const validate_FieldRules* validate_MapRules_keys(const validate_MapRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(28, 32), const validate_FieldRules*); }
1852
1942
  UPB_INLINE bool validate_MapRules_has_values(const validate_MapRules *msg) { return _upb_hasbit(msg, 5); }
1853
1943
  UPB_INLINE const validate_FieldRules* validate_MapRules_values(const validate_MapRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(32, 40), const validate_FieldRules*); }
1944
+ UPB_INLINE bool validate_MapRules_has_ignore_empty(const validate_MapRules *msg) { return _upb_hasbit(msg, 6); }
1945
+ UPB_INLINE bool validate_MapRules_ignore_empty(const validate_MapRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(25, 25), bool); }
1854
1946
 
1855
1947
  UPB_INLINE void validate_MapRules_set_min_pairs(validate_MapRules *msg, uint64_t value) {
1856
1948
  _upb_sethas(msg, 1);
@@ -1890,6 +1982,10 @@ UPB_INLINE struct validate_FieldRules* validate_MapRules_mutable_values(validate
1890
1982
  }
1891
1983
  return sub;
1892
1984
  }
1985
+ UPB_INLINE void validate_MapRules_set_ignore_empty(validate_MapRules *msg, bool value) {
1986
+ _upb_sethas(msg, 6);
1987
+ *UPB_PTR_AT(msg, UPB_SIZE(25, 25), bool) = value;
1988
+ }
1893
1989
 
1894
1990
  /* validate.AnyRules */
1895
1991