grpc 1.34.0 → 1.42.0

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 (1545) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +978 -2868
  3. data/etc/roots.pem +592 -899
  4. data/include/grpc/byte_buffer.h +1 -1
  5. data/include/grpc/byte_buffer_reader.h +1 -1
  6. data/include/grpc/compression.h +1 -1
  7. data/include/grpc/event_engine/README.md +38 -0
  8. data/include/grpc/event_engine/endpoint_config.h +43 -0
  9. data/include/grpc/event_engine/event_engine.h +375 -0
  10. data/include/grpc/event_engine/internal/memory_allocator_impl.h +98 -0
  11. data/include/grpc/event_engine/memory_allocator.h +210 -0
  12. data/include/grpc/event_engine/port.h +39 -0
  13. data/include/grpc/fork.h +1 -1
  14. data/include/grpc/grpc.h +49 -4
  15. data/include/grpc/grpc_posix.h +5 -2
  16. data/include/grpc/grpc_security.h +127 -14
  17. data/include/grpc/grpc_security_constants.h +16 -0
  18. data/include/grpc/impl/codegen/atm.h +5 -3
  19. data/include/grpc/impl/codegen/atm_gcc_atomic.h +2 -0
  20. data/include/grpc/impl/codegen/atm_gcc_sync.h +2 -0
  21. data/include/grpc/impl/codegen/atm_windows.h +6 -0
  22. data/include/grpc/impl/codegen/byte_buffer.h +3 -1
  23. data/include/grpc/impl/codegen/byte_buffer_reader.h +2 -0
  24. data/include/grpc/impl/codegen/compression_types.h +2 -0
  25. data/include/grpc/impl/codegen/connectivity_state.h +2 -0
  26. data/include/grpc/impl/codegen/fork.h +2 -0
  27. data/include/grpc/impl/codegen/gpr_slice.h +2 -0
  28. data/include/grpc/impl/codegen/gpr_types.h +2 -0
  29. data/include/grpc/impl/codegen/grpc_types.h +49 -25
  30. data/include/grpc/impl/codegen/log.h +2 -2
  31. data/include/grpc/impl/codegen/port_platform.h +81 -22
  32. data/include/grpc/impl/codegen/propagation_bits.h +2 -0
  33. data/include/grpc/impl/codegen/slice.h +2 -0
  34. data/include/grpc/impl/codegen/status.h +2 -0
  35. data/include/grpc/impl/codegen/sync.h +8 -5
  36. data/include/grpc/impl/codegen/sync_abseil.h +2 -0
  37. data/include/grpc/impl/codegen/sync_custom.h +2 -0
  38. data/include/grpc/impl/codegen/sync_generic.h +3 -0
  39. data/include/grpc/impl/codegen/sync_posix.h +4 -2
  40. data/include/grpc/impl/codegen/sync_windows.h +6 -0
  41. data/include/grpc/module.modulemap +14 -14
  42. data/include/grpc/slice.h +1 -1
  43. data/include/grpc/slice_buffer.h +3 -3
  44. data/include/grpc/status.h +1 -1
  45. data/include/grpc/support/atm.h +1 -1
  46. data/include/grpc/support/atm_gcc_atomic.h +1 -1
  47. data/include/grpc/support/atm_gcc_sync.h +1 -1
  48. data/include/grpc/support/atm_windows.h +1 -1
  49. data/include/grpc/support/log.h +1 -1
  50. data/include/grpc/support/port_platform.h +1 -1
  51. data/include/grpc/support/sync.h +4 -4
  52. data/include/grpc/support/sync_abseil.h +1 -1
  53. data/include/grpc/support/sync_custom.h +1 -1
  54. data/include/grpc/support/sync_generic.h +1 -1
  55. data/include/grpc/support/sync_posix.h +1 -1
  56. data/include/grpc/support/sync_windows.h +1 -1
  57. data/include/grpc/support/time.h +9 -9
  58. data/src/core/ext/filters/census/grpc_context.cc +1 -0
  59. data/src/core/ext/filters/client_channel/backend_metric.cc +20 -24
  60. data/src/core/ext/filters/client_channel/backup_poller.cc +5 -4
  61. data/src/core/ext/filters/client_channel/backup_poller.h +1 -0
  62. data/src/core/ext/filters/client_channel/channel_connectivity.cc +158 -202
  63. data/src/core/ext/filters/client_channel/client_channel.cc +2009 -3145
  64. data/src/core/ext/filters/client_channel/client_channel.h +559 -60
  65. data/src/core/ext/filters/client_channel/client_channel_channelz.cc +6 -5
  66. data/src/core/ext/filters/client_channel/client_channel_channelz.h +2 -2
  67. data/src/core/ext/filters/client_channel/client_channel_factory.cc +2 -1
  68. data/src/core/ext/filters/client_channel/client_channel_factory.h +18 -19
  69. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +18 -14
  70. data/src/core/ext/filters/client_channel/config_selector.cc +2 -1
  71. data/src/core/ext/filters/client_channel/config_selector.h +33 -9
  72. data/src/core/ext/filters/client_channel/connector.h +19 -19
  73. data/src/core/ext/filters/client_channel/dynamic_filters.cc +190 -0
  74. data/src/core/ext/filters/client_channel/dynamic_filters.h +99 -0
  75. data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +24 -142
  76. data/src/core/ext/filters/client_channel/global_subchannel_pool.h +15 -11
  77. data/src/core/ext/filters/client_channel/health/health_check_client.cc +53 -50
  78. data/src/core/ext/filters/client_channel/health/health_check_client.h +35 -33
  79. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +37 -34
  80. data/src/core/ext/filters/client_channel/http_connect_handshaker.h +10 -2
  81. data/src/core/ext/filters/client_channel/http_proxy.cc +36 -20
  82. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +6 -2
  83. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +12 -21
  84. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +246 -166
  85. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +4 -0
  86. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +1 -1
  87. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +1 -2
  88. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +3 -5
  89. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +2 -2
  90. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +4 -3
  91. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +5 -6
  92. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +1 -1
  93. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +37 -30
  94. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +53 -55
  95. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +757 -0
  96. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +37 -0
  97. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +2502 -0
  98. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +16 -18
  99. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +3 -3
  100. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +24 -27
  101. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +385 -135
  102. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +0 -8
  103. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +29 -0
  104. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +57 -71
  105. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +43 -64
  106. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +1362 -0
  107. data/src/core/ext/filters/client_channel/lb_policy.cc +6 -17
  108. data/src/core/ext/filters/client_channel/lb_policy.h +93 -93
  109. data/src/core/ext/filters/client_channel/lb_policy_factory.h +2 -1
  110. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +8 -11
  111. data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
  112. data/src/core/ext/filters/client_channel/local_subchannel_pool.cc +27 -67
  113. data/src/core/ext/filters/client_channel/local_subchannel_pool.h +10 -9
  114. data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +139 -0
  115. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +76 -88
  116. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +3 -33
  117. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc +31 -0
  118. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +10 -9
  119. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +26 -23
  120. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +473 -74
  121. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +27 -2
  122. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc +28 -0
  123. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
  124. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +45 -35
  125. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +43 -46
  126. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +7 -5
  127. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +384 -0
  128. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +22 -35
  129. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +466 -254
  130. data/src/core/ext/filters/client_channel/resolver.cc +5 -5
  131. data/src/core/ext/filters/client_channel/resolver.h +4 -15
  132. data/src/core/ext/filters/client_channel/resolver_factory.h +8 -6
  133. data/src/core/ext/filters/client_channel/resolver_registry.cc +43 -44
  134. data/src/core/ext/filters/client_channel/resolver_registry.h +2 -2
  135. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +42 -252
  136. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +25 -54
  137. data/src/core/ext/filters/client_channel/retry_filter.cc +2573 -0
  138. data/src/core/ext/filters/{workarounds/workaround_cronet_compression_filter.h → client_channel/retry_filter.h} +9 -6
  139. data/src/core/ext/filters/client_channel/retry_service_config.cc +316 -0
  140. data/src/core/ext/filters/client_channel/retry_service_config.h +96 -0
  141. data/src/core/ext/filters/client_channel/retry_throttle.cc +20 -49
  142. data/src/core/ext/filters/client_channel/retry_throttle.h +3 -1
  143. data/src/core/ext/filters/client_channel/server_address.cc +10 -1
  144. data/src/core/ext/filters/client_channel/server_address.h +31 -0
  145. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +54 -40
  146. data/src/core/ext/filters/client_channel/subchannel.cc +179 -329
  147. data/src/core/ext/filters/client_channel/subchannel.h +101 -158
  148. data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +38 -9
  149. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +21 -10
  150. data/src/core/ext/filters/client_idle/client_idle_filter.cc +47 -223
  151. data/src/core/ext/filters/client_idle/idle_filter_state.cc +96 -0
  152. data/src/core/ext/filters/client_idle/idle_filter_state.h +66 -0
  153. data/src/core/ext/filters/deadline/deadline_filter.cc +33 -34
  154. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +503 -0
  155. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +39 -0
  156. data/src/core/ext/filters/fault_injection/service_config_parser.cc +181 -0
  157. data/src/core/ext/filters/fault_injection/service_config_parser.h +85 -0
  158. data/src/core/ext/filters/http/client/http_client_filter.cc +77 -69
  159. data/src/core/ext/filters/http/client_authority_filter.cc +19 -19
  160. data/src/core/ext/filters/http/http_filters_plugin.cc +53 -68
  161. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +42 -35
  162. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +29 -30
  163. data/src/core/ext/filters/http/server/http_server_filter.cc +104 -95
  164. data/src/core/ext/filters/max_age/max_age_filter.cc +71 -68
  165. data/src/core/ext/filters/message_size/message_size_filter.cc +43 -41
  166. data/src/core/ext/filters/message_size/message_size_filter.h +2 -2
  167. data/src/core/ext/{filters/client_channel → service_config}/service_config.cc +17 -16
  168. data/src/core/ext/{filters/client_channel → service_config}/service_config.h +11 -10
  169. data/src/core/ext/{filters/client_channel → service_config}/service_config_call_data.h +23 -19
  170. data/src/core/ext/{filters/client_channel → service_config}/service_config_parser.cc +9 -9
  171. data/src/core/ext/{filters/client_channel → service_config}/service_config_parser.h +15 -10
  172. data/src/core/ext/transport/chttp2/alpn/alpn.cc +2 -1
  173. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +37 -23
  174. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +9 -7
  175. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +42 -35
  176. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +32 -16
  177. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +51 -62
  178. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +664 -236
  179. data/src/core/ext/transport/chttp2/server/chttp2_server.h +11 -2
  180. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +13 -5
  181. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +25 -11
  182. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +61 -22
  183. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +4 -2
  184. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +2 -1
  185. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +1 -0
  186. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +264 -223
  187. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +16 -2
  188. data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -5
  189. data/src/core/ext/transport/chttp2/transport/context_list.h +5 -6
  190. data/src/core/ext/transport/chttp2/transport/flow_control.cc +59 -40
  191. data/src/core/ext/transport/chttp2/transport/flow_control.h +23 -17
  192. data/src/core/ext/transport/chttp2/transport/frame_data.cc +28 -24
  193. data/src/core/ext/transport/chttp2/transport/frame_data.h +11 -10
  194. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +21 -20
  195. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +7 -6
  196. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +13 -13
  197. data/src/core/ext/transport/chttp2/transport/frame_ping.h +8 -6
  198. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +12 -15
  199. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +7 -6
  200. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +49 -17
  201. data/src/core/ext/transport/chttp2/transport/frame_settings.h +9 -7
  202. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +22 -19
  203. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +5 -6
  204. data/src/core/ext/transport/chttp2/transport/hpack_constants.h +41 -0
  205. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +311 -665
  206. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +240 -70
  207. data/src/core/ext/transport/chttp2/transport/hpack_encoder_index.h +107 -0
  208. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +86 -0
  209. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +69 -0
  210. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +865 -1172
  211. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +100 -81
  212. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +146 -0
  213. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +137 -0
  214. data/src/core/ext/transport/chttp2/transport/hpack_utils.cc +46 -0
  215. data/src/core/{lib/transport/authority_override.h → ext/transport/chttp2/transport/hpack_utils.h} +8 -12
  216. data/src/core/ext/transport/chttp2/transport/internal.h +40 -33
  217. data/src/core/ext/transport/chttp2/transport/parsing.cc +156 -286
  218. data/src/core/ext/transport/chttp2/transport/popularity_count.h +60 -0
  219. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +2 -2
  220. data/src/core/ext/transport/chttp2/transport/varint.cc +13 -7
  221. data/src/core/ext/transport/chttp2/transport/varint.h +39 -28
  222. data/src/core/ext/transport/chttp2/transport/writing.cc +69 -54
  223. data/src/core/ext/transport/inproc/inproc_transport.cc +204 -160
  224. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +406 -0
  225. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +1591 -0
  226. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +1 -1
  227. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +2 -1
  228. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +3 -3
  229. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +15 -2
  230. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +48 -49
  231. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +245 -56
  232. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +371 -0
  233. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +1554 -0
  234. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +16 -16
  235. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +66 -21
  236. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +178 -142
  237. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +795 -314
  238. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +4 -4
  239. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +21 -7
  240. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +25 -24
  241. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +70 -23
  242. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +29 -29
  243. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +138 -47
  244. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +5 -5
  245. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +23 -8
  246. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +147 -75
  247. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +522 -96
  248. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +27 -27
  249. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +116 -49
  250. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +3 -3
  251. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +15 -2
  252. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +9 -9
  253. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +42 -14
  254. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +63 -63
  255. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +228 -63
  256. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +57 -56
  257. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +244 -98
  258. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +5 -5
  259. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +25 -11
  260. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +125 -57
  261. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +533 -89
  262. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +3 -4
  263. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +15 -2
  264. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +46 -0
  265. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +133 -0
  266. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +8 -8
  267. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +17 -4
  268. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +15 -8
  269. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +56 -9
  270. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +35 -0
  271. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +96 -0
  272. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +16 -17
  273. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +81 -40
  274. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +56 -22
  275. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +223 -34
  276. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +32 -32
  277. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +137 -72
  278. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +3 -3
  279. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +19 -5
  280. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +48 -38
  281. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +276 -103
  282. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +51 -45
  283. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +203 -62
  284. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +48 -0
  285. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +177 -0
  286. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +10 -9
  287. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +55 -22
  288. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +144 -0
  289. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +536 -0
  290. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +153 -0
  291. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +550 -0
  292. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +51 -44
  293. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +165 -43
  294. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +35 -16
  295. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +148 -40
  296. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +339 -279
  297. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +1466 -543
  298. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +10 -10
  299. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +48 -10
  300. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +6 -7
  301. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +32 -6
  302. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +29 -0
  303. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +73 -0
  304. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +79 -0
  305. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +298 -0
  306. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +79 -0
  307. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +303 -0
  308. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +42 -0
  309. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +123 -0
  310. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +151 -112
  311. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +693 -244
  312. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +1 -2
  313. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +2 -1
  314. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +52 -32
  315. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +231 -59
  316. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +15 -18
  317. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +51 -28
  318. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +45 -44
  319. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +178 -74
  320. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +2 -2
  321. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +15 -2
  322. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +2 -2
  323. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +15 -2
  324. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +58 -51
  325. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +221 -135
  326. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +2 -5
  327. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +15 -2
  328. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +2 -5
  329. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +15 -2
  330. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +9 -10
  331. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +46 -19
  332. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +2 -4
  333. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +15 -2
  334. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +2 -2
  335. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +15 -2
  336. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +121 -0
  337. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +468 -0
  338. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +60 -0
  339. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +205 -0
  340. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +9 -8
  341. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +44 -14
  342. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +36 -0
  343. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +96 -0
  344. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +4 -4
  345. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +15 -2
  346. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +3 -3
  347. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +15 -2
  348. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +10 -9
  349. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +51 -12
  350. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +10 -11
  351. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +31 -6
  352. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +46 -0
  353. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +136 -0
  354. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +11 -11
  355. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +41 -4
  356. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +15 -15
  357. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +96 -11
  358. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +19 -19
  359. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +77 -14
  360. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +1 -1
  361. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +2 -1
  362. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +6 -6
  363. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +30 -5
  364. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +10 -10
  365. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +41 -4
  366. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +5 -5
  367. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +15 -2
  368. data/src/core/ext/upb-generated/google/api/annotations.upb.c +1 -1
  369. data/src/core/ext/upb-generated/google/api/annotations.upb.h +2 -1
  370. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +62 -62
  371. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +227 -84
  372. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +86 -69
  373. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +256 -72
  374. data/src/core/ext/upb-generated/google/api/http.upb.c +18 -18
  375. data/src/core/ext/upb-generated/google/api/http.upb.h +47 -10
  376. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +4 -4
  377. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +15 -2
  378. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +154 -154
  379. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +645 -320
  380. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +4 -4
  381. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +15 -2
  382. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +2 -2
  383. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +15 -2
  384. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +15 -15
  385. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +44 -7
  386. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +4 -4
  387. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +15 -2
  388. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +19 -19
  389. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +119 -10
  390. data/src/core/ext/upb-generated/google/rpc/status.upb.c +5 -5
  391. data/src/core/ext/upb-generated/google/rpc/status.upb.h +18 -5
  392. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +12 -12
  393. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +19 -5
  394. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +63 -63
  395. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +220 -87
  396. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +8 -8
  397. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +36 -9
  398. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +5 -5
  399. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +28 -3
  400. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +31 -31
  401. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +146 -35
  402. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +55 -0
  403. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +154 -0
  404. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +8 -8
  405. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +41 -4
  406. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +4 -6
  407. data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +15 -2
  408. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +1 -1
  409. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +2 -1
  410. data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +4 -4
  411. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +17 -4
  412. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +3 -3
  413. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +15 -2
  414. data/src/core/ext/upb-generated/validate/validate.upb.c +243 -227
  415. data/src/core/ext/upb-generated/validate/validate.upb.h +626 -253
  416. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +58 -0
  417. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +182 -0
  418. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +28 -0
  419. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +66 -0
  420. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +52 -0
  421. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +155 -0
  422. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +42 -0
  423. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +90 -0
  424. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +36 -0
  425. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +100 -0
  426. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +54 -0
  427. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +178 -0
  428. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +36 -0
  429. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +91 -0
  430. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +58 -0
  431. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +130 -0
  432. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +33 -0
  433. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +83 -0
  434. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +354 -0
  435. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +140 -0
  436. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +15 -7
  437. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +168 -170
  438. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +424 -0
  439. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +120 -0
  440. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +467 -429
  441. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +12 -2
  442. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +12 -9
  443. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +156 -109
  444. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +25 -0
  445. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +89 -88
  446. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +156 -153
  447. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +240 -168
  448. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +20 -0
  449. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +4 -7
  450. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +59 -0
  451. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +40 -0
  452. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +37 -20
  453. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +52 -0
  454. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +35 -0
  455. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +56 -59
  456. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +90 -63
  457. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +10 -0
  458. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +137 -122
  459. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +5 -0
  460. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +136 -120
  461. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +90 -0
  462. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +35 -0
  463. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +31 -26
  464. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +141 -0
  465. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +70 -0
  466. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +152 -0
  467. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +75 -0
  468. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +69 -51
  469. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +5 -0
  470. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +748 -681
  471. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +15 -0
  472. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +22 -25
  473. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +51 -0
  474. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +35 -0
  475. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +102 -0
  476. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +55 -0
  477. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +123 -0
  478. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +45 -0
  479. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +79 -0
  480. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +35 -0
  481. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +435 -379
  482. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +10 -0
  483. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +12 -16
  484. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +121 -91
  485. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +5 -0
  486. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +45 -53
  487. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +182 -180
  488. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +92 -102
  489. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +5 -0
  490. data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +32 -42
  491. data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +30 -40
  492. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +4 -7
  493. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +38 -44
  494. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +163 -0
  495. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +55 -0
  496. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +64 -0
  497. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +50 -0
  498. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +14 -13
  499. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +56 -0
  500. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +35 -0
  501. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +35 -32
  502. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +30 -33
  503. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +63 -0
  504. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +40 -0
  505. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +8 -7
  506. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +100 -100
  507. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +9 -8
  508. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +8 -8
  509. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +8 -8
  510. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +9 -8
  511. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +8 -8
  512. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +4 -4
  513. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +5 -4
  514. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +19 -23
  515. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +4 -3
  516. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +5 -3
  517. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +5 -4
  518. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +182 -157
  519. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +75 -0
  520. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +50 -0
  521. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +43 -0
  522. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +35 -0
  523. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +63 -0
  524. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +40 -0
  525. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +46 -0
  526. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +40 -0
  527. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +50 -0
  528. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +35 -0
  529. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +68 -0
  530. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +40 -0
  531. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +51 -0
  532. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +35 -0
  533. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +45 -0
  534. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +35 -0
  535. data/src/core/ext/xds/certificate_provider_factory.h +1 -1
  536. data/src/core/ext/xds/certificate_provider_registry.cc +2 -2
  537. data/src/core/ext/xds/certificate_provider_store.cc +10 -7
  538. data/src/core/ext/xds/certificate_provider_store.h +15 -10
  539. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +28 -3
  540. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +3 -6
  541. data/src/core/ext/xds/xds_api.cc +2654 -808
  542. data/src/core/ext/xds/xds_api.h +460 -154
  543. data/src/core/ext/xds/xds_bootstrap.cc +139 -188
  544. data/src/core/ext/xds/xds_bootstrap.h +34 -18
  545. data/src/core/ext/xds/xds_certificate_provider.cc +237 -72
  546. data/src/core/ext/xds/xds_certificate_provider.h +104 -27
  547. data/src/core/ext/xds/xds_channel_args.h +5 -2
  548. data/src/core/ext/xds/xds_channel_stack_modifier.cc +113 -0
  549. data/src/core/ext/xds/xds_channel_stack_modifier.h +52 -0
  550. data/src/core/ext/xds/xds_client.cc +985 -429
  551. data/src/core/ext/xds/xds_client.h +100 -51
  552. data/src/core/ext/xds/xds_client_stats.cc +18 -16
  553. data/src/core/ext/xds/xds_client_stats.h +12 -11
  554. data/src/core/ext/xds/xds_http_fault_filter.cc +227 -0
  555. data/src/core/ext/xds/xds_http_fault_filter.h +64 -0
  556. data/src/core/ext/xds/xds_http_filters.cc +116 -0
  557. data/src/core/ext/xds/xds_http_filters.h +133 -0
  558. data/src/core/ext/xds/xds_server_config_fetcher.cc +544 -0
  559. data/src/core/lib/{iomgr → address_utils}/parse_address.cc +72 -68
  560. data/src/core/lib/{iomgr → address_utils}/parse_address.h +20 -16
  561. data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +131 -15
  562. data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +37 -7
  563. data/src/core/lib/avl/avl.cc +5 -5
  564. data/src/core/lib/backoff/backoff.cc +1 -1
  565. data/src/core/lib/channel/call_tracer.h +85 -0
  566. data/src/core/lib/channel/channel_args.cc +34 -15
  567. data/src/core/lib/channel/channel_args.h +9 -0
  568. data/src/core/lib/channel/channel_stack.cc +27 -12
  569. data/src/core/lib/channel/channel_stack.h +18 -10
  570. data/src/core/lib/channel/channel_stack_builder.cc +6 -16
  571. data/src/core/lib/channel/channel_stack_builder.h +1 -9
  572. data/src/core/lib/channel/channel_trace.cc +5 -4
  573. data/src/core/lib/channel/channel_trace.h +3 -2
  574. data/src/core/lib/channel/channelz.cc +162 -63
  575. data/src/core/lib/channel/channelz.h +62 -31
  576. data/src/core/lib/channel/channelz_registry.cc +22 -7
  577. data/src/core/lib/channel/channelz_registry.h +1 -2
  578. data/src/core/lib/channel/connected_channel.cc +6 -7
  579. data/src/core/lib/channel/connected_channel.h +1 -2
  580. data/src/core/lib/channel/context.h +3 -0
  581. data/src/core/lib/channel/handshaker.cc +13 -53
  582. data/src/core/lib/channel/handshaker.h +7 -25
  583. data/src/core/lib/channel/handshaker_factory.h +10 -2
  584. data/src/core/lib/channel/handshaker_registry.cc +15 -70
  585. data/src/core/lib/channel/handshaker_registry.h +29 -12
  586. data/src/core/lib/channel/status_util.cc +12 -2
  587. data/src/core/lib/channel/status_util.h +11 -2
  588. data/src/core/lib/compression/algorithm_metadata.h +1 -0
  589. data/src/core/lib/compression/compression.cc +2 -2
  590. data/src/core/lib/compression/compression_args.cc +11 -7
  591. data/src/core/lib/compression/compression_internal.cc +4 -6
  592. data/src/core/lib/compression/compression_internal.h +1 -1
  593. data/src/core/lib/compression/message_compress.cc +2 -2
  594. data/src/core/lib/compression/stream_compression.cc +2 -1
  595. data/src/core/lib/compression/stream_compression.h +3 -2
  596. data/src/core/lib/compression/stream_compression_gzip.cc +2 -1
  597. data/src/core/lib/compression/stream_compression_gzip.h +1 -1
  598. data/src/core/lib/compression/stream_compression_identity.cc +2 -1
  599. data/src/core/lib/compression/stream_compression_identity.h +1 -1
  600. data/src/core/lib/config/core_configuration.cc +96 -0
  601. data/src/core/lib/config/core_configuration.h +146 -0
  602. data/src/core/lib/debug/stats.cc +1 -1
  603. data/src/core/lib/debug/stats.h +4 -3
  604. data/src/core/lib/debug/stats_data.cc +15 -14
  605. data/src/core/lib/debug/stats_data.h +14 -13
  606. data/src/core/lib/debug/trace.cc +1 -0
  607. data/src/core/lib/debug/trace.h +2 -1
  608. data/src/core/lib/event_engine/endpoint_config.cc +45 -0
  609. data/src/core/lib/event_engine/endpoint_config_internal.h +42 -0
  610. data/src/core/lib/event_engine/event_engine.cc +50 -0
  611. data/src/core/lib/event_engine/sockaddr.cc +40 -0
  612. data/src/core/lib/event_engine/sockaddr.h +44 -0
  613. data/src/core/lib/gpr/alloc.cc +7 -5
  614. data/src/core/lib/gpr/atm.cc +1 -1
  615. data/src/core/lib/gpr/cpu_posix.cc +1 -1
  616. data/src/core/lib/gpr/env_linux.cc +1 -2
  617. data/src/core/lib/gpr/env_posix.cc +2 -3
  618. data/src/core/lib/gpr/log.cc +61 -19
  619. data/src/core/lib/gpr/log_android.cc +3 -2
  620. data/src/core/lib/gpr/log_linux.cc +10 -5
  621. data/src/core/lib/gpr/log_posix.cc +9 -4
  622. data/src/core/lib/gpr/log_windows.cc +3 -1
  623. data/src/core/lib/gpr/murmur_hash.cc +4 -2
  624. data/src/core/lib/gpr/spinlock.h +10 -2
  625. data/src/core/lib/gpr/string.cc +24 -23
  626. data/src/core/lib/gpr/string.h +7 -8
  627. data/src/core/lib/gpr/sync.cc +6 -6
  628. data/src/core/lib/gpr/sync_abseil.cc +10 -12
  629. data/src/core/lib/gpr/sync_posix.cc +3 -3
  630. data/src/core/lib/gpr/sync_windows.cc +2 -2
  631. data/src/core/lib/gpr/time.cc +15 -14
  632. data/src/core/lib/gpr/time_windows.cc +3 -2
  633. data/src/core/lib/gpr/tls.h +119 -40
  634. data/src/core/lib/gpr/tmpfile_posix.cc +1 -2
  635. data/src/core/lib/gpr/useful.h +79 -32
  636. data/src/core/lib/gpr/wrap_memcpy.cc +2 -1
  637. data/src/core/lib/gprpp/arena.cc +2 -1
  638. data/src/core/lib/gprpp/arena.h +18 -7
  639. data/src/core/lib/gprpp/atomic_utils.h +47 -0
  640. data/src/core/lib/gprpp/bitset.h +188 -0
  641. data/src/core/lib/gprpp/chunked_vector.h +211 -0
  642. data/src/core/lib/gprpp/construct_destruct.h +39 -0
  643. data/src/core/lib/gprpp/dual_ref_counted.h +28 -29
  644. data/src/core/lib/gprpp/fork.cc +14 -12
  645. data/src/core/lib/gprpp/fork.h +4 -4
  646. data/src/core/lib/gprpp/global_config.h +1 -2
  647. data/src/core/lib/gprpp/global_config_env.cc +7 -7
  648. data/src/core/lib/gprpp/global_config_generic.h +2 -2
  649. data/src/core/lib/gprpp/manual_constructor.h +9 -6
  650. data/src/core/lib/gprpp/match.h +73 -0
  651. data/src/core/lib/gprpp/memory.h +9 -3
  652. data/src/core/lib/gprpp/mpscq.cc +9 -9
  653. data/src/core/lib/gprpp/mpscq.h +6 -5
  654. data/src/core/lib/gprpp/orphanable.h +6 -6
  655. data/src/core/lib/gprpp/overload.h +59 -0
  656. data/src/core/lib/gprpp/ref_counted.h +48 -34
  657. data/src/core/lib/gprpp/ref_counted_ptr.h +11 -1
  658. data/src/core/lib/gprpp/status_helper.cc +427 -0
  659. data/src/core/lib/gprpp/status_helper.h +194 -0
  660. data/src/core/lib/gprpp/sync.h +106 -43
  661. data/src/core/lib/gprpp/table.h +411 -0
  662. data/src/core/lib/gprpp/thd.h +1 -1
  663. data/src/core/lib/gprpp/thd_posix.cc +11 -6
  664. data/src/core/lib/gprpp/thd_windows.cc +7 -12
  665. data/src/core/lib/gprpp/time_util.cc +77 -0
  666. data/src/core/lib/gprpp/time_util.h +42 -0
  667. data/src/core/lib/http/format_request.cc +1 -0
  668. data/src/core/lib/http/format_request.h +1 -0
  669. data/src/core/lib/http/httpcli.cc +203 -185
  670. data/src/core/lib/http/httpcli.h +5 -3
  671. data/src/core/lib/http/httpcli_security_connector.cc +19 -18
  672. data/src/core/lib/http/parser.cc +19 -20
  673. data/src/core/lib/http/parser.h +5 -4
  674. data/src/core/lib/iomgr/buffer_list.cc +10 -11
  675. data/src/core/lib/iomgr/buffer_list.h +6 -8
  676. data/src/core/lib/iomgr/call_combiner.cc +46 -21
  677. data/src/core/lib/iomgr/call_combiner.h +12 -14
  678. data/src/core/lib/iomgr/cfstream_handle.cc +6 -6
  679. data/src/core/lib/iomgr/cfstream_handle.h +1 -1
  680. data/src/core/lib/iomgr/closure.h +7 -6
  681. data/src/core/lib/iomgr/combiner.cc +25 -36
  682. data/src/core/lib/iomgr/combiner.h +3 -2
  683. data/src/core/lib/iomgr/dualstack_socket_posix.cc +1 -0
  684. data/src/core/lib/iomgr/endpoint.cc +1 -5
  685. data/src/core/lib/iomgr/endpoint.h +3 -5
  686. data/src/core/lib/iomgr/endpoint_cfstream.cc +27 -39
  687. data/src/core/lib/iomgr/endpoint_cfstream.h +1 -1
  688. data/src/core/lib/iomgr/endpoint_pair.h +1 -0
  689. data/src/core/lib/iomgr/endpoint_pair_event_engine.cc +32 -0
  690. data/src/core/lib/iomgr/endpoint_pair_posix.cc +15 -11
  691. data/src/core/lib/iomgr/endpoint_pair_windows.cc +17 -9
  692. data/src/core/lib/iomgr/error.cc +277 -105
  693. data/src/core/lib/iomgr/error.h +280 -114
  694. data/src/core/lib/iomgr/error_cfstream.cc +10 -4
  695. data/src/core/lib/iomgr/error_cfstream.h +2 -2
  696. data/src/core/lib/iomgr/error_internal.h +7 -2
  697. data/src/core/lib/iomgr/ev_apple.cc +16 -13
  698. data/src/core/lib/iomgr/ev_apple.h +1 -1
  699. data/src/core/lib/iomgr/ev_epoll1_linux.cc +53 -53
  700. data/src/core/lib/iomgr/ev_epollex_linux.cc +81 -81
  701. data/src/core/lib/iomgr/ev_poll_posix.cc +70 -68
  702. data/src/core/lib/iomgr/ev_posix.cc +13 -13
  703. data/src/core/lib/iomgr/ev_posix.h +9 -9
  704. data/src/core/lib/iomgr/event_engine/closure.cc +77 -0
  705. data/src/core/lib/iomgr/event_engine/closure.h +42 -0
  706. data/src/core/lib/iomgr/event_engine/endpoint.cc +173 -0
  707. data/src/core/lib/iomgr/event_engine/endpoint.h +52 -0
  708. data/src/core/lib/iomgr/event_engine/iomgr.cc +104 -0
  709. data/src/core/lib/iomgr/event_engine/iomgr.h +42 -0
  710. data/src/core/lib/iomgr/event_engine/pollset.cc +88 -0
  711. data/src/core/lib/iomgr/event_engine/pollset.h +25 -0
  712. data/src/core/lib/iomgr/event_engine/promise.h +51 -0
  713. data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +41 -0
  714. data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +35 -0
  715. data/src/core/lib/iomgr/event_engine/resolver.cc +114 -0
  716. data/src/core/lib/iomgr/event_engine/tcp.cc +293 -0
  717. data/src/core/lib/iomgr/event_engine/timer.cc +62 -0
  718. data/src/core/lib/iomgr/exec_ctx.cc +14 -11
  719. data/src/core/lib/iomgr/exec_ctx.h +21 -28
  720. data/src/core/lib/iomgr/executor/mpmcqueue.cc +15 -16
  721. data/src/core/lib/iomgr/executor/mpmcqueue.h +7 -11
  722. data/src/core/lib/iomgr/executor/threadpool.cc +4 -5
  723. data/src/core/lib/iomgr/executor/threadpool.h +5 -4
  724. data/src/core/lib/iomgr/executor.cc +19 -33
  725. data/src/core/lib/iomgr/executor.h +3 -3
  726. data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +2 -2
  727. data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +2 -2
  728. data/src/core/lib/iomgr/internal_errqueue.cc +3 -2
  729. data/src/core/lib/iomgr/iocp_windows.cc +1 -0
  730. data/src/core/lib/iomgr/iomgr.cc +6 -4
  731. data/src/core/lib/iomgr/iomgr.h +3 -3
  732. data/src/core/lib/iomgr/iomgr_custom.cc +3 -3
  733. data/src/core/lib/iomgr/iomgr_custom.h +2 -2
  734. data/src/core/lib/iomgr/iomgr_internal.cc +8 -12
  735. data/src/core/lib/iomgr/iomgr_internal.h +6 -5
  736. data/src/core/lib/iomgr/iomgr_posix.cc +3 -2
  737. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +42 -13
  738. data/src/core/lib/iomgr/iomgr_windows.cc +2 -3
  739. data/src/core/lib/iomgr/is_epollexclusive_available.cc +4 -4
  740. data/src/core/lib/iomgr/load_file.cc +6 -6
  741. data/src/core/lib/iomgr/load_file.h +2 -2
  742. data/src/core/lib/iomgr/lockfree_event.cc +38 -15
  743. data/src/core/lib/iomgr/lockfree_event.h +2 -2
  744. data/src/core/lib/iomgr/polling_entity.cc +2 -2
  745. data/src/core/lib/iomgr/pollset.cc +5 -5
  746. data/src/core/lib/iomgr/pollset.h +9 -9
  747. data/src/core/lib/iomgr/pollset_custom.cc +10 -11
  748. data/src/core/lib/iomgr/pollset_custom.h +3 -1
  749. data/src/core/lib/iomgr/pollset_set_custom.cc +2 -3
  750. data/src/core/lib/iomgr/pollset_set_windows.cc +1 -0
  751. data/src/core/lib/iomgr/pollset_windows.cc +5 -5
  752. data/src/core/lib/iomgr/port.h +7 -10
  753. data/src/core/lib/iomgr/python_util.h +4 -3
  754. data/src/core/lib/iomgr/resolve_address.cc +14 -9
  755. data/src/core/lib/iomgr/resolve_address.h +12 -10
  756. data/src/core/lib/iomgr/resolve_address_custom.cc +14 -13
  757. data/src/core/lib/iomgr/resolve_address_custom.h +3 -4
  758. data/src/core/lib/iomgr/resolve_address_posix.cc +10 -14
  759. data/src/core/lib/iomgr/resolve_address_windows.cc +10 -12
  760. data/src/core/lib/iomgr/resource_quota.cc +152 -62
  761. data/src/core/lib/iomgr/resource_quota.h +66 -17
  762. data/src/core/lib/iomgr/sockaddr.h +2 -1
  763. data/src/core/lib/iomgr/socket_factory_posix.cc +8 -7
  764. data/src/core/lib/iomgr/socket_factory_posix.h +1 -0
  765. data/src/core/lib/iomgr/socket_mutator.cc +20 -6
  766. data/src/core/lib/iomgr/socket_mutator.h +27 -3
  767. data/src/core/lib/iomgr/socket_utils_common_posix.cc +29 -27
  768. data/src/core/lib/iomgr/socket_utils_linux.cc +4 -4
  769. data/src/core/lib/iomgr/socket_utils_posix.cc +2 -2
  770. data/src/core/lib/iomgr/socket_utils_posix.h +22 -22
  771. data/src/core/lib/iomgr/socket_utils_windows.cc +2 -2
  772. data/src/core/lib/iomgr/tcp_client.cc +5 -3
  773. data/src/core/lib/iomgr/tcp_client.h +4 -0
  774. data/src/core/lib/iomgr/tcp_client_cfstream.cc +18 -26
  775. data/src/core/lib/iomgr/tcp_client_custom.cc +19 -27
  776. data/src/core/lib/iomgr/tcp_client_posix.cc +56 -47
  777. data/src/core/lib/iomgr/tcp_client_posix.h +8 -6
  778. data/src/core/lib/iomgr/tcp_client_windows.cc +23 -14
  779. data/src/core/lib/iomgr/tcp_custom.cc +46 -55
  780. data/src/core/lib/iomgr/tcp_custom.h +15 -13
  781. data/src/core/lib/iomgr/tcp_posix.cc +119 -145
  782. data/src/core/lib/iomgr/tcp_posix.h +19 -12
  783. data/src/core/lib/iomgr/tcp_server.cc +9 -7
  784. data/src/core/lib/iomgr/tcp_server.h +18 -14
  785. data/src/core/lib/iomgr/tcp_server_custom.cc +63 -73
  786. data/src/core/lib/iomgr/tcp_server_posix.cc +49 -35
  787. data/src/core/lib/iomgr/tcp_server_utils_posix.h +16 -12
  788. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +22 -20
  789. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +11 -12
  790. data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
  791. data/src/core/lib/iomgr/tcp_server_windows.cc +40 -36
  792. data/src/core/lib/iomgr/tcp_windows.cc +21 -40
  793. data/src/core/lib/iomgr/tcp_windows.h +4 -3
  794. data/src/core/lib/iomgr/timer.cc +1 -0
  795. data/src/core/lib/iomgr/timer.h +7 -3
  796. data/src/core/lib/iomgr/timer_custom.cc +7 -6
  797. data/src/core/lib/iomgr/timer_custom.h +1 -1
  798. data/src/core/lib/iomgr/timer_generic.cc +32 -62
  799. data/src/core/lib/iomgr/timer_generic.h +1 -0
  800. data/src/core/lib/iomgr/timer_heap.cc +2 -3
  801. data/src/core/lib/iomgr/timer_manager.cc +4 -4
  802. data/src/core/lib/iomgr/unix_sockets_posix.cc +21 -24
  803. data/src/core/lib/iomgr/unix_sockets_posix.h +4 -5
  804. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +10 -7
  805. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
  806. data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +2 -1
  807. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +6 -7
  808. data/src/core/lib/iomgr/wakeup_fd_posix.cc +4 -3
  809. data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
  810. data/src/core/lib/iomgr/work_serializer.cc +4 -4
  811. data/src/core/lib/iomgr/work_serializer.h +18 -2
  812. data/src/core/lib/json/json.h +11 -1
  813. data/src/core/lib/json/json_reader.cc +14 -23
  814. data/src/core/lib/json/json_util.cc +68 -0
  815. data/src/core/lib/json/json_util.h +65 -115
  816. data/src/core/lib/json/json_writer.cc +0 -3
  817. data/src/core/lib/matchers/matchers.cc +327 -0
  818. data/src/core/lib/matchers/matchers.h +160 -0
  819. data/src/core/lib/profiling/basic_timers.cc +8 -6
  820. data/src/core/lib/profiling/stap_timers.cc +2 -2
  821. data/src/core/lib/security/authorization/authorization_engine.h +13 -53
  822. data/src/core/lib/security/authorization/authorization_policy_provider.h +33 -0
  823. data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +46 -0
  824. data/src/core/lib/security/authorization/evaluate_args.cc +126 -66
  825. data/src/core/lib/security/authorization/evaluate_args.h +47 -15
  826. data/src/core/lib/security/authorization/sdk_server_authz_filter.cc +171 -0
  827. data/src/core/lib/security/authorization/sdk_server_authz_filter.h +67 -0
  828. data/src/core/lib/security/context/security_context.cc +15 -11
  829. data/src/core/lib/security/credentials/alts/alts_credentials.cc +2 -1
  830. data/src/core/lib/security/credentials/alts/alts_credentials.h +1 -1
  831. data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +1 -1
  832. data/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc +2 -2
  833. data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +2 -2
  834. data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +2 -2
  835. data/src/core/lib/security/credentials/composite/composite_credentials.cc +9 -8
  836. data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -2
  837. data/src/core/lib/security/credentials/credentials.cc +16 -14
  838. data/src/core/lib/security/credentials/credentials.h +11 -5
  839. data/src/core/lib/security/credentials/credentials_metadata.cc +2 -3
  840. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +404 -0
  841. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +81 -0
  842. data/src/core/lib/security/credentials/external/aws_request_signer.cc +20 -14
  843. data/src/core/lib/security/credentials/external/aws_request_signer.h +2 -3
  844. data/src/core/lib/security/credentials/external/external_account_credentials.cc +270 -54
  845. data/src/core/lib/security/credentials/external/external_account_credentials.h +16 -12
  846. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +8 -8
  847. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +6 -6
  848. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +26 -26
  849. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +13 -12
  850. data/src/core/lib/security/credentials/fake/fake_credentials.cc +5 -4
  851. data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
  852. data/src/core/lib/security/credentials/google_default/credentials_generic.cc +1 -2
  853. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +92 -31
  854. data/src/core/lib/security/credentials/iam/iam_credentials.cc +4 -3
  855. data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
  856. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +18 -5
  857. data/src/core/lib/security/credentials/jwt/json_token.cc +4 -7
  858. data/src/core/lib/security/credentials/jwt/json_token.h +2 -1
  859. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +34 -17
  860. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +13 -5
  861. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +15 -22
  862. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +3 -3
  863. data/src/core/lib/security/credentials/local/local_credentials.cc +2 -1
  864. data/src/core/lib/security/credentials/local/local_credentials.h +1 -1
  865. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +57 -66
  866. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +11 -9
  867. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +10 -12
  868. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -2
  869. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +11 -10
  870. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +2 -3
  871. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +12 -15
  872. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +20 -21
  873. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +382 -5
  874. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +74 -1
  875. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +5 -1
  876. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +2 -3
  877. data/src/core/lib/security/credentials/tls/tls_credentials.cc +3 -2
  878. data/src/core/lib/security/credentials/tls/tls_credentials.h +1 -1
  879. data/src/core/lib/security/credentials/tls/tls_utils.cc +123 -0
  880. data/src/core/lib/security/credentials/tls/tls_utils.h +51 -0
  881. data/src/core/lib/security/credentials/xds/xds_credentials.cc +209 -10
  882. data/src/core/lib/security/credentials/xds/xds_credentials.h +27 -9
  883. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +14 -4
  884. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +20 -12
  885. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +50 -17
  886. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +35 -8
  887. data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +1 -0
  888. data/src/core/lib/security/security_connector/load_system_roots_linux.cc +4 -4
  889. data/src/core/lib/security/security_connector/local/local_security_connector.cc +23 -10
  890. data/src/core/lib/security/security_connector/security_connector.cc +12 -6
  891. data/src/core/lib/security/security_connector/security_connector.h +10 -5
  892. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +24 -17
  893. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +1 -2
  894. data/src/core/lib/security/security_connector/ssl_utils.cc +41 -14
  895. data/src/core/lib/security/security_connector/ssl_utils.h +16 -23
  896. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +156 -113
  897. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +67 -52
  898. data/src/core/lib/security/transport/auth_filters.h +1 -0
  899. data/src/core/lib/security/transport/client_auth_filter.cc +27 -21
  900. data/src/core/lib/security/transport/secure_endpoint.cc +10 -20
  901. data/src/core/lib/security/transport/secure_endpoint.h +1 -0
  902. data/src/core/lib/security/transport/security_handshaker.cc +158 -90
  903. data/src/core/lib/security/transport/security_handshaker.h +2 -1
  904. data/src/core/lib/security/transport/server_auth_filter.cc +20 -16
  905. data/src/core/lib/security/transport/tsi_error.cc +5 -6
  906. data/src/core/lib/security/transport/tsi_error.h +2 -1
  907. data/src/core/lib/security/util/json_util.cc +8 -10
  908. data/src/core/lib/security/util/json_util.h +1 -1
  909. data/src/core/lib/slice/percent_encoding.cc +73 -30
  910. data/src/core/lib/slice/percent_encoding.h +29 -28
  911. data/src/core/lib/slice/slice.cc +14 -21
  912. data/src/core/lib/{gpr/tls_pthread.cc → slice/slice_api.cc} +15 -6
  913. data/src/core/lib/slice/slice_buffer.cc +6 -7
  914. data/src/core/lib/slice/slice_intern.cc +19 -27
  915. data/src/core/lib/slice/slice_internal.h +4 -246
  916. data/src/core/lib/slice/slice_refcount.cc +17 -0
  917. data/src/core/lib/slice/slice_refcount.h +121 -0
  918. data/src/core/lib/slice/slice_refcount_base.h +173 -0
  919. data/src/core/lib/slice/slice_split.cc +100 -0
  920. data/src/core/lib/slice/slice_split.h +40 -0
  921. data/src/core/lib/slice/slice_string_helpers.cc +0 -83
  922. data/src/core/lib/slice/slice_string_helpers.h +0 -11
  923. data/src/core/lib/slice/static_slice.cc +529 -0
  924. data/src/core/lib/slice/static_slice.h +331 -0
  925. data/src/core/lib/surface/api_trace.cc +2 -1
  926. data/src/core/lib/surface/api_trace.h +1 -0
  927. data/src/core/lib/surface/builtins.cc +49 -0
  928. data/src/core/lib/surface/builtins.h +26 -0
  929. data/src/core/lib/surface/byte_buffer_reader.cc +1 -1
  930. data/src/core/lib/surface/call.cc +198 -186
  931. data/src/core/lib/surface/call.h +10 -5
  932. data/src/core/lib/surface/call_details.cc +10 -10
  933. data/src/core/lib/surface/call_log_batch.cc +2 -2
  934. data/src/core/lib/surface/channel.cc +57 -51
  935. data/src/core/lib/surface/channel.h +19 -14
  936. data/src/core/lib/surface/channel_init.cc +23 -76
  937. data/src/core/lib/surface/channel_init.h +52 -44
  938. data/src/core/lib/surface/channel_ping.cc +2 -3
  939. data/src/core/lib/surface/channel_stack_type.cc +2 -1
  940. data/src/core/lib/surface/completion_queue.cc +140 -145
  941. data/src/core/lib/surface/completion_queue.h +18 -17
  942. data/src/core/lib/surface/completion_queue_factory.cc +3 -3
  943. data/src/core/lib/surface/completion_queue_factory.h +1 -0
  944. data/src/core/lib/surface/event_string.cc +1 -0
  945. data/src/core/lib/surface/init.cc +18 -65
  946. data/src/core/lib/surface/init.h +10 -2
  947. data/src/core/lib/surface/init_secure.cc +36 -14
  948. data/src/core/lib/surface/lame_client.cc +62 -61
  949. data/src/core/lib/surface/lame_client.h +5 -0
  950. data/src/core/lib/surface/metadata_array.cc +2 -2
  951. data/src/core/lib/surface/server.cc +167 -116
  952. data/src/core/lib/surface/server.h +140 -40
  953. data/src/core/lib/surface/validate_metadata.cc +55 -24
  954. data/src/core/lib/surface/validate_metadata.h +3 -2
  955. data/src/core/lib/surface/version.cc +2 -2
  956. data/src/core/lib/transport/bdp_estimator.cc +1 -1
  957. data/src/core/lib/transport/byte_stream.cc +5 -5
  958. data/src/core/lib/transport/byte_stream.h +9 -8
  959. data/src/core/lib/transport/connectivity_state.cc +9 -6
  960. data/src/core/lib/transport/connectivity_state.h +8 -6
  961. data/src/core/lib/transport/error_utils.cc +64 -27
  962. data/src/core/lib/transport/error_utils.h +13 -7
  963. data/src/core/lib/transport/metadata.cc +47 -22
  964. data/src/core/lib/transport/metadata.h +15 -12
  965. data/src/core/lib/transport/metadata_batch.cc +41 -339
  966. data/src/core/lib/transport/metadata_batch.h +932 -68
  967. data/src/core/lib/transport/parsed_metadata.h +263 -0
  968. data/src/core/lib/transport/pid_controller.cc +4 -4
  969. data/src/core/lib/transport/static_metadata.cc +715 -847
  970. data/src/core/lib/transport/static_metadata.h +115 -379
  971. data/src/core/lib/transport/status_metadata.cc +5 -3
  972. data/src/core/lib/transport/transport.cc +8 -8
  973. data/src/core/lib/transport/transport.h +12 -10
  974. data/src/core/lib/transport/transport_op_string.cc +46 -26
  975. data/src/core/lib/uri/uri_parser.cc +131 -249
  976. data/src/core/lib/uri/uri_parser.h +57 -21
  977. data/src/core/plugin_registry/grpc_plugin_registry.cc +101 -44
  978. data/src/core/tsi/alts/crypt/aes_gcm.cc +6 -3
  979. data/src/core/tsi/alts/crypt/gsec.cc +5 -4
  980. data/src/core/tsi/alts/crypt/gsec.h +5 -0
  981. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +13 -12
  982. data/src/core/tsi/alts/frame_protector/frame_handler.cc +18 -17
  983. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +27 -33
  984. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +2 -3
  985. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +57 -51
  986. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +1 -1
  987. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
  988. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +1 -3
  989. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +2 -2
  990. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +1 -1
  991. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +8 -6
  992. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +6 -6
  993. data/src/core/tsi/fake_transport_security.cc +31 -12
  994. data/src/core/tsi/local_transport_security.cc +36 -73
  995. data/src/core/tsi/ssl/session_cache/ssl_session.h +0 -3
  996. data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +1 -1
  997. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +20 -55
  998. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +6 -7
  999. data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +2 -2
  1000. data/src/core/tsi/ssl_transport_security.cc +115 -77
  1001. data/src/core/tsi/ssl_transport_security.h +12 -14
  1002. data/src/core/tsi/transport_security.cc +21 -9
  1003. data/src/core/tsi/transport_security.h +16 -1
  1004. data/src/core/tsi/transport_security_grpc.h +1 -0
  1005. data/src/core/tsi/transport_security_interface.h +27 -1
  1006. data/src/ruby/bin/math_services_pb.rb +1 -1
  1007. data/src/ruby/ext/grpc/extconf.rb +21 -8
  1008. data/src/ruby/ext/grpc/rb_byte_buffer.c +2 -1
  1009. data/src/ruby/ext/grpc/rb_call.c +5 -5
  1010. data/src/ruby/ext/grpc/rb_call_credentials.c +5 -5
  1011. data/src/ruby/ext/grpc/rb_channel.c +19 -8
  1012. data/src/ruby/ext/grpc/rb_channel_args.c +2 -2
  1013. data/src/ruby/ext/grpc/rb_channel_credentials.c +15 -5
  1014. data/src/ruby/ext/grpc/rb_channel_credentials.h +5 -0
  1015. data/src/ruby/ext/grpc/rb_completion_queue.c +3 -2
  1016. data/src/ruby/ext/grpc/rb_compression_options.c +6 -5
  1017. data/src/ruby/ext/grpc/rb_enable_cpp.cc +1 -1
  1018. data/src/ruby/ext/grpc/rb_event_thread.c +4 -2
  1019. data/src/ruby/ext/grpc/rb_grpc.c +9 -4
  1020. data/src/ruby/ext/grpc/rb_grpc.h +1 -0
  1021. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +24 -0
  1022. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +50 -14
  1023. data/src/ruby/ext/grpc/rb_server.c +19 -6
  1024. data/src/ruby/ext/grpc/rb_server_credentials.c +22 -6
  1025. data/src/ruby/ext/grpc/rb_server_credentials.h +5 -0
  1026. data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +218 -0
  1027. data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +37 -0
  1028. data/src/ruby/ext/grpc/rb_xds_server_credentials.c +170 -0
  1029. data/src/ruby/ext/grpc/rb_xds_server_credentials.h +37 -0
  1030. data/src/ruby/lib/grpc/generic/client_stub.rb +4 -2
  1031. data/src/ruby/lib/grpc/version.rb +1 -1
  1032. data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +1 -1
  1033. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +35 -0
  1034. data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +2 -2
  1035. data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +23 -5
  1036. data/src/ruby/spec/call_spec.rb +1 -1
  1037. data/src/ruby/spec/channel_credentials_spec.rb +32 -0
  1038. data/src/ruby/spec/channel_spec.rb +17 -6
  1039. data/src/ruby/spec/client_auth_spec.rb +27 -1
  1040. data/src/ruby/spec/client_server_spec.rb +1 -1
  1041. data/src/ruby/spec/errors_spec.rb +1 -1
  1042. data/src/ruby/spec/generic/active_call_spec.rb +2 -2
  1043. data/src/ruby/spec/generic/client_stub_spec.rb +4 -4
  1044. data/src/ruby/spec/generic/rpc_server_spec.rb +1 -1
  1045. data/src/ruby/spec/pb/codegen/package_option_spec.rb +2 -6
  1046. data/src/ruby/spec/server_credentials_spec.rb +25 -0
  1047. data/src/ruby/spec/server_spec.rb +22 -0
  1048. data/third_party/abseil-cpp/absl/algorithm/container.h +3 -3
  1049. data/third_party/abseil-cpp/absl/base/attributes.h +24 -4
  1050. data/third_party/abseil-cpp/absl/base/call_once.h +2 -9
  1051. data/third_party/abseil-cpp/absl/base/config.h +37 -9
  1052. data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +24 -10
  1053. data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +4 -1
  1054. data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
  1055. data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +2 -3
  1056. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +34 -32
  1057. data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +16 -6
  1058. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +11 -2
  1059. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +14 -5
  1060. data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
  1061. data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +3 -3
  1062. data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
  1063. data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +11 -11
  1064. data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
  1065. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -1
  1066. data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +9 -6
  1067. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +54 -48
  1068. data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
  1069. data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
  1070. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -3
  1071. data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
  1072. data/third_party/abseil-cpp/absl/base/macros.h +11 -0
  1073. data/third_party/abseil-cpp/absl/base/optimization.h +10 -7
  1074. data/third_party/abseil-cpp/absl/base/options.h +1 -1
  1075. data/third_party/abseil-cpp/absl/base/port.h +0 -1
  1076. data/third_party/abseil-cpp/absl/base/thread_annotations.h +1 -1
  1077. data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -2
  1078. data/third_party/abseil-cpp/absl/container/flat_hash_map.h +606 -0
  1079. data/third_party/abseil-cpp/absl/container/inlined_vector.h +5 -3
  1080. data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +1 -1
  1081. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +5 -1
  1082. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +2 -1
  1083. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +2 -1
  1084. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +141 -66
  1085. data/third_party/abseil-cpp/absl/container/internal/layout.h +4 -4
  1086. data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +197 -0
  1087. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -1
  1088. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +136 -136
  1089. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +16 -12
  1090. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +5 -2
  1091. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +3 -12
  1092. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +6 -1
  1093. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +3 -5
  1094. data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +2 -2
  1095. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +2 -2
  1096. data/third_party/abseil-cpp/absl/hash/internal/city.cc +15 -12
  1097. data/third_party/abseil-cpp/absl/hash/internal/city.h +1 -19
  1098. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +25 -10
  1099. data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -37
  1100. data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +111 -0
  1101. data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +48 -0
  1102. data/third_party/abseil-cpp/absl/meta/type_traits.h +16 -2
  1103. data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
  1104. data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -3
  1105. data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
  1106. data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
  1107. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +18 -0
  1108. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +396 -0
  1109. data/third_party/abseil-cpp/absl/status/status.cc +29 -22
  1110. data/third_party/abseil-cpp/absl/status/status.h +81 -20
  1111. data/third_party/abseil-cpp/absl/status/statusor.cc +71 -0
  1112. data/third_party/abseil-cpp/absl/status/statusor.h +760 -0
  1113. data/third_party/abseil-cpp/absl/strings/charconv.cc +5 -5
  1114. data/third_party/abseil-cpp/absl/strings/cord.cc +326 -371
  1115. data/third_party/abseil-cpp/absl/strings/cord.h +182 -64
  1116. data/third_party/abseil-cpp/absl/strings/escaping.cc +4 -4
  1117. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +6 -6
  1118. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +83 -0
  1119. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +387 -17
  1120. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
  1121. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +897 -0
  1122. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +589 -0
  1123. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +114 -0
  1124. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +14 -0
  1125. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -0
  1126. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +15 -1
  1127. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +19 -4
  1128. data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +14 -0
  1129. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +36 -18
  1130. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +14 -0
  1131. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +14 -0
  1132. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +14 -0
  1133. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +15 -40
  1134. data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
  1135. data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
  1136. data/third_party/abseil-cpp/absl/strings/match.h +16 -6
  1137. data/third_party/abseil-cpp/absl/strings/numbers.cc +132 -4
  1138. data/third_party/abseil-cpp/absl/strings/numbers.h +10 -10
  1139. data/third_party/abseil-cpp/absl/strings/str_join.h +1 -1
  1140. data/third_party/abseil-cpp/absl/strings/str_split.h +38 -4
  1141. data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
  1142. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +1 -0
  1143. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -1
  1144. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +2 -2
  1145. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +4 -4
  1146. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -65
  1147. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -6
  1148. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +71 -59
  1149. data/third_party/abseil-cpp/absl/synchronization/mutex.h +79 -62
  1150. data/third_party/abseil-cpp/absl/time/clock.cc +146 -130
  1151. data/third_party/abseil-cpp/absl/time/clock.h +2 -2
  1152. data/third_party/abseil-cpp/absl/time/duration.cc +3 -2
  1153. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +7 -11
  1154. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +7 -1
  1155. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +4 -4
  1156. data/third_party/abseil-cpp/absl/time/time.cc +4 -3
  1157. data/third_party/abseil-cpp/absl/time/time.h +26 -24
  1158. data/third_party/abseil-cpp/absl/types/internal/variant.h +1 -1
  1159. data/third_party/abseil-cpp/absl/types/variant.h +9 -4
  1160. data/third_party/address_sorting/address_sorting_posix.c +1 -0
  1161. data/third_party/boringssl-with-bazel/err_data.c +756 -724
  1162. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +55 -50
  1163. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +22 -23
  1164. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c +0 -2
  1165. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +2 -2
  1166. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +6 -1
  1167. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +5 -5
  1168. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +16 -23
  1169. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +26 -24
  1170. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +3 -3
  1171. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_print.c +19 -29
  1172. data/third_party/boringssl-with-bazel/src/crypto/{x509 → asn1}/a_strex.c +269 -272
  1173. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +106 -153
  1174. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +3 -3
  1175. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +22 -10
  1176. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +3 -42
  1177. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utf8.c +1 -1
  1178. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +16 -16
  1179. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c +1 -1
  1180. data/third_party/boringssl-with-bazel/src/crypto/{x509 → asn1}/charmap.h +0 -0
  1181. data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +196 -0
  1182. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +35 -86
  1183. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +326 -281
  1184. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +15 -26
  1185. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +20 -75
  1186. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +0 -2
  1187. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +3 -2
  1188. data/third_party/boringssl-with-bazel/src/crypto/asn1/time_support.c +1 -1
  1189. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +11 -8
  1190. data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +1 -7
  1191. data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +1 -5
  1192. data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +0 -4
  1193. data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +1 -7
  1194. data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +1 -6
  1195. data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +3 -17
  1196. data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +4 -0
  1197. data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +156 -0
  1198. data/third_party/boringssl-with-bazel/src/crypto/bn_extra/bn_asn1.c +3 -10
  1199. data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +8 -9
  1200. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c +9 -0
  1201. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +68 -45
  1202. data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +38 -47
  1203. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +49 -65
  1204. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +6 -81
  1205. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
  1206. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +101 -3
  1207. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
  1208. data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +14 -3
  1209. data/third_party/boringssl-with-bazel/src/crypto/cpu-aarch64-win.c +41 -0
  1210. data/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.c +11 -2
  1211. data/third_party/boringssl-with-bazel/src/crypto/cpu-arm.c +3 -3
  1212. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +1 -1
  1213. data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -1
  1214. data/third_party/boringssl-with-bazel/src/crypto/{dh → dh_extra}/dh_asn1.c +0 -0
  1215. data/third_party/boringssl-with-bazel/src/crypto/{dh → dh_extra}/params.c +179 -0
  1216. data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +31 -3
  1217. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +2 -17
  1218. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
  1219. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +9 -0
  1220. data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +32 -34
  1221. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +4 -1
  1222. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c +13 -20
  1223. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +28 -12
  1224. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +3 -2
  1225. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +15 -4
  1226. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +0 -4
  1227. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c +5 -9
  1228. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +32 -16
  1229. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +35 -2
  1230. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/des.c +10 -11
  1231. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/internal.h +1 -3
  1232. data/third_party/boringssl-with-bazel/src/crypto/{dh → fipsmodule/dh}/check.c +0 -0
  1233. data/third_party/boringssl-with-bazel/src/crypto/{dh → fipsmodule/dh}/dh.c +136 -213
  1234. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +9 -0
  1235. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
  1236. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +87 -160
  1237. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +16 -0
  1238. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +9 -2
  1239. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
  1240. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +104 -93
  1241. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
  1242. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +56 -72
  1243. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +56 -73
  1244. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
  1245. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
  1246. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
  1247. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
  1248. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +1 -1
  1249. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
  1250. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
  1251. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +30 -9
  1252. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +123 -44
  1253. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +30 -20
  1254. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +50 -33
  1255. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +65 -41
  1256. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
  1257. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +161 -9
  1258. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +93 -107
  1259. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +91 -113
  1260. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +50 -86
  1261. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +400 -325
  1262. data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +219 -121
  1263. data/third_party/boringssl-with-bazel/src/crypto/hrss/internal.h +9 -2
  1264. data/third_party/boringssl-with-bazel/src/crypto/internal.h +125 -0
  1265. data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +253 -0
  1266. data/third_party/boringssl-with-bazel/src/crypto/lhash/lhash.c +28 -23
  1267. data/third_party/boringssl-with-bazel/src/crypto/mem.c +28 -9
  1268. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +10 -6
  1269. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c +0 -9
  1270. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c +0 -2
  1271. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +0 -8
  1272. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +0 -2
  1273. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +0 -4
  1274. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/internal.h +16 -7
  1275. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.c +9 -4
  1276. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +156 -15
  1277. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
  1278. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +11 -8
  1279. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c +13 -11
  1280. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c +4 -0
  1281. data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +1 -0
  1282. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +4 -0
  1283. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/fuchsia.c +4 -0
  1284. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/is_fips.c → rand_extra/passive.c} +16 -11
  1285. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +5 -1
  1286. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +4 -0
  1287. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c +1 -2
  1288. data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +6 -6
  1289. data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +7 -13
  1290. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
  1291. data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +15 -11
  1292. data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +1 -1
  1293. data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +1 -0
  1294. data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +2 -0
  1295. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +345 -13
  1296. data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +246 -0
  1297. data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +20 -5
  1298. data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +10 -5
  1299. data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
  1300. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +0 -179
  1301. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +7 -2
  1302. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +24 -47
  1303. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +4 -31
  1304. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +12 -9
  1305. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +1 -5
  1306. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +1 -0
  1307. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +42 -89
  1308. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +17 -24
  1309. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +2 -0
  1310. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +26 -23
  1311. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +25 -69
  1312. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +54 -74
  1313. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +61 -23
  1314. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +2 -4
  1315. data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +3 -0
  1316. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -19
  1317. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +3 -16
  1318. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +21 -34
  1319. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +15 -13
  1320. data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c +2 -0
  1321. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +23 -21
  1322. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pkey.c +2 -2
  1323. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
  1324. data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +5 -8
  1325. data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +5 -0
  1326. data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
  1327. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +50 -14
  1328. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +5 -2
  1329. data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +23 -0
  1330. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +1 -0
  1331. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +1 -1
  1332. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_int.h +1 -1
  1333. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +1 -0
  1334. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +4 -3
  1335. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +27 -8
  1336. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +28 -18
  1337. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +6 -3
  1338. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +26 -25
  1339. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +10 -12
  1340. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c +4 -2
  1341. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +7 -1
  1342. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +40 -20
  1343. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ia5.c +3 -4
  1344. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +27 -36
  1345. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ncons.c +112 -55
  1346. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pci.c +2 -1
  1347. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +14 -13
  1348. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +2 -2
  1349. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +7 -6
  1350. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +86 -44
  1351. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +1 -4
  1352. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +69 -4
  1353. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +1026 -615
  1354. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +2 -176
  1355. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +63 -13
  1356. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +3 -1
  1357. data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +62 -0
  1358. data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +3 -3
  1359. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +32 -7
  1360. data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
  1361. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +23 -6
  1362. data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +8 -5
  1363. data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +22 -32
  1364. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
  1365. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +56 -26
  1366. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +10 -2
  1367. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +20 -2
  1368. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +33 -0
  1369. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
  1370. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +38 -51
  1371. data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
  1372. data/third_party/boringssl-with-bazel/src/include/openssl/hkdf.h +4 -0
  1373. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +350 -0
  1374. data/third_party/boringssl-with-bazel/src/include/openssl/hrss.h +14 -12
  1375. data/third_party/boringssl-with-bazel/src/include/openssl/lhash.h +4 -205
  1376. data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +12 -3
  1377. data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +26 -6
  1378. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +0 -20
  1379. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +33 -8
  1380. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
  1381. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +5 -2
  1382. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +104 -63
  1383. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +39 -16
  1384. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +406 -108
  1385. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +48 -36
  1386. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +1425 -377
  1387. data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +16 -679
  1388. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +188 -49
  1389. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +16 -18
  1390. data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +1 -1
  1391. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +1084 -0
  1392. data/third_party/boringssl-with-bazel/src/ssl/{t1_lib.cc → extensions.cc} +847 -622
  1393. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +298 -22
  1394. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +92 -44
  1395. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +314 -217
  1396. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +177 -35
  1397. data/third_party/boringssl-with-bazel/src/ssl/internal.h +491 -152
  1398. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +9 -3
  1399. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +0 -2
  1400. data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +14 -19
  1401. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +7 -8
  1402. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
  1403. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +2 -2
  1404. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +34 -31
  1405. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +60 -112
  1406. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +2 -0
  1407. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +136 -104
  1408. data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +3 -0
  1409. data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +12 -17
  1410. data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +7 -3
  1411. data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +28 -23
  1412. data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +5 -7
  1413. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +79 -34
  1414. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +235 -178
  1415. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +160 -91
  1416. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +269 -118
  1417. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
  1418. data/third_party/re2/re2/compile.cc +91 -109
  1419. data/third_party/re2/re2/dfa.cc +27 -39
  1420. data/third_party/re2/re2/filtered_re2.cc +18 -2
  1421. data/third_party/re2/re2/filtered_re2.h +10 -5
  1422. data/third_party/re2/re2/nfa.cc +1 -1
  1423. data/third_party/re2/re2/parse.cc +42 -23
  1424. data/third_party/re2/re2/perl_groups.cc +34 -34
  1425. data/third_party/re2/re2/prefilter.cc +3 -2
  1426. data/third_party/re2/re2/prog.cc +182 -4
  1427. data/third_party/re2/re2/prog.h +28 -9
  1428. data/third_party/re2/re2/re2.cc +87 -118
  1429. data/third_party/re2/re2/re2.h +156 -141
  1430. data/third_party/re2/re2/regexp.cc +12 -5
  1431. data/third_party/re2/re2/regexp.h +8 -2
  1432. data/third_party/re2/re2/set.cc +31 -9
  1433. data/third_party/re2/re2/set.h +9 -4
  1434. data/third_party/re2/re2/simplify.cc +11 -3
  1435. data/third_party/re2/re2/tostring.cc +1 -1
  1436. data/third_party/re2/re2/walker-inl.h +1 -1
  1437. data/third_party/re2/util/mutex.h +2 -2
  1438. data/third_party/re2/util/pcre.h +3 -3
  1439. data/third_party/upb/upb/decode.c +354 -204
  1440. data/third_party/upb/upb/decode.h +50 -3
  1441. data/third_party/upb/upb/decode_fast.c +1053 -0
  1442. data/third_party/upb/upb/decode_fast.h +153 -0
  1443. data/third_party/upb/upb/decode_internal.h +193 -0
  1444. data/third_party/upb/upb/def.c +609 -610
  1445. data/third_party/upb/upb/def.h +57 -50
  1446. data/third_party/upb/upb/def.hpp +66 -123
  1447. data/third_party/upb/upb/encode.c +267 -176
  1448. data/third_party/upb/upb/encode.h +56 -4
  1449. data/third_party/upb/upb/msg.c +304 -84
  1450. data/third_party/upb/upb/msg.h +76 -441
  1451. data/third_party/upb/upb/msg_internal.h +687 -0
  1452. data/third_party/upb/upb/port_def.inc +156 -82
  1453. data/third_party/upb/upb/port_undef.inc +41 -8
  1454. data/third_party/upb/upb/reflection.c +64 -55
  1455. data/third_party/upb/upb/reflection.h +36 -8
  1456. data/third_party/upb/upb/reflection.hpp +37 -0
  1457. data/third_party/upb/upb/table.c +238 -276
  1458. data/third_party/upb/upb/{table.int.h → table_internal.h} +66 -181
  1459. data/third_party/upb/upb/text_encode.c +77 -26
  1460. data/third_party/upb/upb/text_encode.h +30 -1
  1461. data/third_party/upb/upb/upb.c +75 -47
  1462. data/third_party/upb/upb/upb.h +72 -13
  1463. data/third_party/upb/upb/upb.hpp +28 -4
  1464. data/third_party/upb/upb/upb_internal.h +58 -0
  1465. data/third_party/xxhash/xxhash.h +5325 -0
  1466. metadata +287 -137
  1467. data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +0 -909
  1468. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +0 -485
  1469. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +0 -179
  1470. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +0 -68
  1471. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +0 -38
  1472. data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +0 -355
  1473. data/src/core/ext/filters/client_channel/resolving_lb_policy.h +0 -138
  1474. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +0 -210
  1475. data/src/core/ext/filters/workarounds/workaround_utils.cc +0 -53
  1476. data/src/core/ext/filters/workarounds/workaround_utils.h +0 -39
  1477. data/src/core/ext/transport/chttp2/client/authority.cc +0 -42
  1478. data/src/core/ext/transport/chttp2/client/authority.h +0 -36
  1479. data/src/core/ext/transport/chttp2/transport/hpack_table.cc +0 -242
  1480. data/src/core/ext/transport/chttp2/transport/hpack_table.h +0 -148
  1481. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +0 -66
  1482. data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +0 -58
  1483. data/src/core/ext/upb-generated/udpa/core/v1/authority.upb.c +0 -28
  1484. data/src/core/ext/upb-generated/udpa/core/v1/authority.upb.h +0 -53
  1485. data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.c +0 -52
  1486. data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.h +0 -129
  1487. data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.c +0 -42
  1488. data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.h +0 -77
  1489. data/src/core/ext/upb-generated/udpa/core/v1/resource.upb.c +0 -36
  1490. data/src/core/ext/upb-generated/udpa/core/v1/resource.upb.h +0 -85
  1491. data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.c +0 -54
  1492. data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.h +0 -160
  1493. data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.c +0 -36
  1494. data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.h +0 -84
  1495. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +0 -58
  1496. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +0 -117
  1497. data/src/core/ext/upbdefs-generated/udpa/core/v1/authority.upbdefs.c +0 -42
  1498. data/src/core/ext/upbdefs-generated/udpa/core/v1/authority.upbdefs.h +0 -35
  1499. data/src/core/ext/upbdefs-generated/udpa/core/v1/collection_entry.upbdefs.c +0 -62
  1500. data/src/core/ext/upbdefs-generated/udpa/core/v1/collection_entry.upbdefs.h +0 -40
  1501. data/src/core/ext/upbdefs-generated/udpa/core/v1/context_params.upbdefs.c +0 -45
  1502. data/src/core/ext/upbdefs-generated/udpa/core/v1/context_params.upbdefs.h +0 -40
  1503. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource.upbdefs.c +0 -49
  1504. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource.upbdefs.h +0 -35
  1505. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_locator.upbdefs.c +0 -68
  1506. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_locator.upbdefs.h +0 -40
  1507. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_name.upbdefs.c +0 -51
  1508. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_name.upbdefs.h +0 -35
  1509. data/src/core/ext/xds/google_mesh_ca_certificate_provider_factory.cc +0 -265
  1510. data/src/core/ext/xds/google_mesh_ca_certificate_provider_factory.h +0 -104
  1511. data/src/core/lib/gpr/arena.h +0 -47
  1512. data/src/core/lib/gpr/tls_gcc.h +0 -52
  1513. data/src/core/lib/gpr/tls_msvc.h +0 -54
  1514. data/src/core/lib/gpr/tls_pthread.h +0 -56
  1515. data/src/core/lib/gpr/tls_stdcpp.h +0 -48
  1516. data/src/core/lib/gprpp/atomic.h +0 -104
  1517. data/src/core/lib/gprpp/map.h +0 -53
  1518. data/src/core/lib/iomgr/endpoint_pair_uv.cc +0 -40
  1519. data/src/core/lib/iomgr/iomgr_posix.h +0 -26
  1520. data/src/core/lib/iomgr/iomgr_uv.cc +0 -43
  1521. data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
  1522. data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
  1523. data/src/core/lib/iomgr/pollset_uv.cc +0 -93
  1524. data/src/core/lib/iomgr/pollset_uv.h +0 -32
  1525. data/src/core/lib/iomgr/sockaddr_custom.h +0 -54
  1526. data/src/core/lib/iomgr/socket_utils_uv.cc +0 -49
  1527. data/src/core/lib/iomgr/tcp_uv.cc +0 -419
  1528. data/src/core/lib/iomgr/timer_uv.cc +0 -66
  1529. data/src/core/lib/iomgr/udp_server.cc +0 -748
  1530. data/src/core/lib/iomgr/udp_server.h +0 -104
  1531. data/src/core/lib/security/authorization/authorization_engine.cc +0 -177
  1532. data/src/core/lib/security/authorization/mock_cel/activation.h +0 -57
  1533. data/src/core/lib/security/authorization/mock_cel/cel_expr_builder_factory.h +0 -44
  1534. data/src/core/lib/security/authorization/mock_cel/cel_expression.h +0 -69
  1535. data/src/core/lib/security/authorization/mock_cel/cel_value.h +0 -97
  1536. data/src/core/lib/security/authorization/mock_cel/evaluator_core.h +0 -67
  1537. data/src/core/lib/security/authorization/mock_cel/flat_expr_builder.h +0 -57
  1538. data/src/core/lib/transport/authority_override.cc +0 -38
  1539. data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
  1540. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +0 -504
  1541. data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -249
  1542. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +0 -104
  1543. data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +0 -237
  1544. data/third_party/boringssl-with-bazel/src/crypto/x509/vpm_int.h +0 -71
  1545. data/third_party/upb/upb/port.c +0 -26
@@ -9,8 +9,9 @@
9
9
  #ifndef VALIDATE_VALIDATE_PROTO_UPB_H_
10
10
  #define VALIDATE_VALIDATE_PROTO_UPB_H_
11
11
 
12
- #include "upb/msg.h"
12
+ #include "upb/msg_internal.h"
13
13
  #include "upb/decode.h"
14
+ #include "upb/decode_fast.h"
14
15
  #include "upb/encode.h"
15
16
 
16
17
  #include "upb/port_def.inc"
@@ -108,7 +109,19 @@ UPB_INLINE validate_FieldRules *validate_FieldRules_new(upb_arena *arena) {
108
109
  UPB_INLINE validate_FieldRules *validate_FieldRules_parse(const char *buf, size_t size,
109
110
  upb_arena *arena) {
110
111
  validate_FieldRules *ret = validate_FieldRules_new(arena);
111
- return (ret && upb_decode(buf, size, ret, &validate_FieldRules_msginit, arena)) ? ret : NULL;
112
+ if (!ret) return NULL;
113
+ if (!upb_decode(buf, size, ret, &validate_FieldRules_msginit, arena)) return NULL;
114
+ return ret;
115
+ }
116
+ UPB_INLINE validate_FieldRules *validate_FieldRules_parse_ex(const char *buf, size_t size,
117
+ const upb_extreg *extreg, int options,
118
+ upb_arena *arena) {
119
+ validate_FieldRules *ret = validate_FieldRules_new(arena);
120
+ if (!ret) return NULL;
121
+ if (!_upb_decode(buf, size, ret, &validate_FieldRules_msginit, extreg, options, arena)) {
122
+ return NULL;
123
+ }
124
+ return ret;
112
125
  }
113
126
  UPB_INLINE char *validate_FieldRules_serialize(const validate_FieldRules *msg, upb_arena *arena, size_t *len) {
114
127
  return upb_encode(msg, &validate_FieldRules_msginit, arena, len);
@@ -459,7 +472,19 @@ UPB_INLINE validate_FloatRules *validate_FloatRules_new(upb_arena *arena) {
459
472
  UPB_INLINE validate_FloatRules *validate_FloatRules_parse(const char *buf, size_t size,
460
473
  upb_arena *arena) {
461
474
  validate_FloatRules *ret = validate_FloatRules_new(arena);
462
- return (ret && upb_decode(buf, size, ret, &validate_FloatRules_msginit, arena)) ? ret : NULL;
475
+ if (!ret) return NULL;
476
+ if (!upb_decode(buf, size, ret, &validate_FloatRules_msginit, arena)) return NULL;
477
+ return ret;
478
+ }
479
+ UPB_INLINE validate_FloatRules *validate_FloatRules_parse_ex(const char *buf, size_t size,
480
+ const upb_extreg *extreg, int options,
481
+ upb_arena *arena) {
482
+ validate_FloatRules *ret = validate_FloatRules_new(arena);
483
+ if (!ret) return NULL;
484
+ if (!_upb_decode(buf, size, ret, &validate_FloatRules_msginit, extreg, options, arena)) {
485
+ return NULL;
486
+ }
487
+ return ret;
463
488
  }
464
489
  UPB_INLINE char *validate_FloatRules_serialize(const validate_FloatRules *msg, upb_arena *arena, size_t *len) {
465
490
  return upb_encode(msg, &validate_FloatRules_msginit, arena, len);
@@ -475,8 +500,10 @@ UPB_INLINE bool validate_FloatRules_has_gt(const validate_FloatRules *msg) { ret
475
500
  UPB_INLINE float validate_FloatRules_gt(const validate_FloatRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(16, 16), float); }
476
501
  UPB_INLINE bool validate_FloatRules_has_gte(const validate_FloatRules *msg) { return _upb_hasbit(msg, 5); }
477
502
  UPB_INLINE float validate_FloatRules_gte(const validate_FloatRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(20, 20), float); }
478
- 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); }
479
- 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); }
503
+ 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); }
504
+ 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); }
505
+ UPB_INLINE bool validate_FloatRules_has_ignore_empty(const validate_FloatRules *msg) { return _upb_hasbit(msg, 6); }
506
+ UPB_INLINE bool validate_FloatRules_ignore_empty(const validate_FloatRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(24, 24), bool); }
480
507
 
481
508
  UPB_INLINE void validate_FloatRules_set_const(validate_FloatRules *msg, float value) {
482
509
  _upb_sethas(msg, 1);
@@ -499,25 +526,29 @@ UPB_INLINE void validate_FloatRules_set_gte(validate_FloatRules *msg, float valu
499
526
  *UPB_PTR_AT(msg, UPB_SIZE(20, 20), float) = value;
500
527
  }
501
528
  UPB_INLINE float* validate_FloatRules_mutable_in(validate_FloatRules *msg, size_t *len) {
502
- return (float*)_upb_array_mutable_accessor(msg, UPB_SIZE(24, 24), len);
529
+ return (float*)_upb_array_mutable_accessor(msg, UPB_SIZE(28, 32), len);
503
530
  }
504
531
  UPB_INLINE float* validate_FloatRules_resize_in(validate_FloatRules *msg, size_t len, upb_arena *arena) {
505
- return (float*)_upb_array_resize_accessor(msg, UPB_SIZE(24, 24), len, UPB_TYPE_FLOAT, arena);
532
+ return (float*)_upb_array_resize_accessor2(msg, UPB_SIZE(28, 32), len, 2, arena);
506
533
  }
507
534
  UPB_INLINE bool validate_FloatRules_add_in(validate_FloatRules *msg, float val, upb_arena *arena) {
508
- return _upb_array_append_accessor(msg, UPB_SIZE(24, 24), UPB_SIZE(4, 4), UPB_TYPE_FLOAT, &val,
535
+ return _upb_array_append_accessor2(msg, UPB_SIZE(28, 32), 2, &val,
509
536
  arena);
510
537
  }
511
538
  UPB_INLINE float* validate_FloatRules_mutable_not_in(validate_FloatRules *msg, size_t *len) {
512
- return (float*)_upb_array_mutable_accessor(msg, UPB_SIZE(28, 32), len);
539
+ return (float*)_upb_array_mutable_accessor(msg, UPB_SIZE(32, 40), len);
513
540
  }
514
541
  UPB_INLINE float* validate_FloatRules_resize_not_in(validate_FloatRules *msg, size_t len, upb_arena *arena) {
515
- return (float*)_upb_array_resize_accessor(msg, UPB_SIZE(28, 32), len, UPB_TYPE_FLOAT, arena);
542
+ return (float*)_upb_array_resize_accessor2(msg, UPB_SIZE(32, 40), len, 2, arena);
516
543
  }
517
544
  UPB_INLINE bool validate_FloatRules_add_not_in(validate_FloatRules *msg, float val, upb_arena *arena) {
518
- return _upb_array_append_accessor(msg, UPB_SIZE(28, 32), UPB_SIZE(4, 4), UPB_TYPE_FLOAT, &val,
545
+ return _upb_array_append_accessor2(msg, UPB_SIZE(32, 40), 2, &val,
519
546
  arena);
520
547
  }
548
+ UPB_INLINE void validate_FloatRules_set_ignore_empty(validate_FloatRules *msg, bool value) {
549
+ _upb_sethas(msg, 6);
550
+ *UPB_PTR_AT(msg, UPB_SIZE(24, 24), bool) = value;
551
+ }
521
552
 
522
553
  /* validate.DoubleRules */
523
554
 
@@ -527,7 +558,19 @@ UPB_INLINE validate_DoubleRules *validate_DoubleRules_new(upb_arena *arena) {
527
558
  UPB_INLINE validate_DoubleRules *validate_DoubleRules_parse(const char *buf, size_t size,
528
559
  upb_arena *arena) {
529
560
  validate_DoubleRules *ret = validate_DoubleRules_new(arena);
530
- return (ret && upb_decode(buf, size, ret, &validate_DoubleRules_msginit, arena)) ? ret : NULL;
561
+ if (!ret) return NULL;
562
+ if (!upb_decode(buf, size, ret, &validate_DoubleRules_msginit, arena)) return NULL;
563
+ return ret;
564
+ }
565
+ UPB_INLINE validate_DoubleRules *validate_DoubleRules_parse_ex(const char *buf, size_t size,
566
+ const upb_extreg *extreg, int options,
567
+ upb_arena *arena) {
568
+ validate_DoubleRules *ret = validate_DoubleRules_new(arena);
569
+ if (!ret) return NULL;
570
+ if (!_upb_decode(buf, size, ret, &validate_DoubleRules_msginit, extreg, options, arena)) {
571
+ return NULL;
572
+ }
573
+ return ret;
531
574
  }
532
575
  UPB_INLINE char *validate_DoubleRules_serialize(const validate_DoubleRules *msg, upb_arena *arena, size_t *len) {
533
576
  return upb_encode(msg, &validate_DoubleRules_msginit, arena, len);
@@ -543,8 +586,10 @@ UPB_INLINE bool validate_DoubleRules_has_gt(const validate_DoubleRules *msg) { r
543
586
  UPB_INLINE double validate_DoubleRules_gt(const validate_DoubleRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(32, 32), double); }
544
587
  UPB_INLINE bool validate_DoubleRules_has_gte(const validate_DoubleRules *msg) { return _upb_hasbit(msg, 5); }
545
588
  UPB_INLINE double validate_DoubleRules_gte(const validate_DoubleRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(40, 40), double); }
546
- 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); }
547
- 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); }
589
+ 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); }
590
+ 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); }
591
+ UPB_INLINE bool validate_DoubleRules_has_ignore_empty(const validate_DoubleRules *msg) { return _upb_hasbit(msg, 6); }
592
+ UPB_INLINE bool validate_DoubleRules_ignore_empty(const validate_DoubleRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(48, 48), bool); }
548
593
 
549
594
  UPB_INLINE void validate_DoubleRules_set_const(validate_DoubleRules *msg, double value) {
550
595
  _upb_sethas(msg, 1);
@@ -567,25 +612,29 @@ UPB_INLINE void validate_DoubleRules_set_gte(validate_DoubleRules *msg, double v
567
612
  *UPB_PTR_AT(msg, UPB_SIZE(40, 40), double) = value;
568
613
  }
569
614
  UPB_INLINE double* validate_DoubleRules_mutable_in(validate_DoubleRules *msg, size_t *len) {
570
- return (double*)_upb_array_mutable_accessor(msg, UPB_SIZE(48, 48), len);
615
+ return (double*)_upb_array_mutable_accessor(msg, UPB_SIZE(52, 56), len);
571
616
  }
572
617
  UPB_INLINE double* validate_DoubleRules_resize_in(validate_DoubleRules *msg, size_t len, upb_arena *arena) {
573
- return (double*)_upb_array_resize_accessor(msg, UPB_SIZE(48, 48), len, UPB_TYPE_DOUBLE, arena);
618
+ return (double*)_upb_array_resize_accessor2(msg, UPB_SIZE(52, 56), len, 3, arena);
574
619
  }
575
620
  UPB_INLINE bool validate_DoubleRules_add_in(validate_DoubleRules *msg, double val, upb_arena *arena) {
576
- return _upb_array_append_accessor(msg, UPB_SIZE(48, 48), UPB_SIZE(8, 8), UPB_TYPE_DOUBLE, &val,
621
+ return _upb_array_append_accessor2(msg, UPB_SIZE(52, 56), 3, &val,
577
622
  arena);
578
623
  }
579
624
  UPB_INLINE double* validate_DoubleRules_mutable_not_in(validate_DoubleRules *msg, size_t *len) {
580
- return (double*)_upb_array_mutable_accessor(msg, UPB_SIZE(52, 56), len);
625
+ return (double*)_upb_array_mutable_accessor(msg, UPB_SIZE(56, 64), len);
581
626
  }
582
627
  UPB_INLINE double* validate_DoubleRules_resize_not_in(validate_DoubleRules *msg, size_t len, upb_arena *arena) {
583
- return (double*)_upb_array_resize_accessor(msg, UPB_SIZE(52, 56), len, UPB_TYPE_DOUBLE, arena);
628
+ return (double*)_upb_array_resize_accessor2(msg, UPB_SIZE(56, 64), len, 3, arena);
584
629
  }
585
630
  UPB_INLINE bool validate_DoubleRules_add_not_in(validate_DoubleRules *msg, double val, upb_arena *arena) {
586
- return _upb_array_append_accessor(msg, UPB_SIZE(52, 56), UPB_SIZE(8, 8), UPB_TYPE_DOUBLE, &val,
631
+ return _upb_array_append_accessor2(msg, UPB_SIZE(56, 64), 3, &val,
587
632
  arena);
588
633
  }
634
+ UPB_INLINE void validate_DoubleRules_set_ignore_empty(validate_DoubleRules *msg, bool value) {
635
+ _upb_sethas(msg, 6);
636
+ *UPB_PTR_AT(msg, UPB_SIZE(48, 48), bool) = value;
637
+ }
589
638
 
590
639
  /* validate.Int32Rules */
591
640
 
@@ -595,7 +644,19 @@ UPB_INLINE validate_Int32Rules *validate_Int32Rules_new(upb_arena *arena) {
595
644
  UPB_INLINE validate_Int32Rules *validate_Int32Rules_parse(const char *buf, size_t size,
596
645
  upb_arena *arena) {
597
646
  validate_Int32Rules *ret = validate_Int32Rules_new(arena);
598
- return (ret && upb_decode(buf, size, ret, &validate_Int32Rules_msginit, arena)) ? ret : NULL;
647
+ if (!ret) return NULL;
648
+ if (!upb_decode(buf, size, ret, &validate_Int32Rules_msginit, arena)) return NULL;
649
+ return ret;
650
+ }
651
+ UPB_INLINE validate_Int32Rules *validate_Int32Rules_parse_ex(const char *buf, size_t size,
652
+ const upb_extreg *extreg, int options,
653
+ upb_arena *arena) {
654
+ validate_Int32Rules *ret = validate_Int32Rules_new(arena);
655
+ if (!ret) return NULL;
656
+ if (!_upb_decode(buf, size, ret, &validate_Int32Rules_msginit, extreg, options, arena)) {
657
+ return NULL;
658
+ }
659
+ return ret;
599
660
  }
600
661
  UPB_INLINE char *validate_Int32Rules_serialize(const validate_Int32Rules *msg, upb_arena *arena, size_t *len) {
601
662
  return upb_encode(msg, &validate_Int32Rules_msginit, arena, len);
@@ -611,8 +672,10 @@ UPB_INLINE bool validate_Int32Rules_has_gt(const validate_Int32Rules *msg) { ret
611
672
  UPB_INLINE int32_t validate_Int32Rules_gt(const validate_Int32Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(16, 16), int32_t); }
612
673
  UPB_INLINE bool validate_Int32Rules_has_gte(const validate_Int32Rules *msg) { return _upb_hasbit(msg, 5); }
613
674
  UPB_INLINE int32_t validate_Int32Rules_gte(const validate_Int32Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(20, 20), int32_t); }
614
- 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); }
615
- 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); }
675
+ 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); }
676
+ 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); }
677
+ UPB_INLINE bool validate_Int32Rules_has_ignore_empty(const validate_Int32Rules *msg) { return _upb_hasbit(msg, 6); }
678
+ UPB_INLINE bool validate_Int32Rules_ignore_empty(const validate_Int32Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(24, 24), bool); }
616
679
 
617
680
  UPB_INLINE void validate_Int32Rules_set_const(validate_Int32Rules *msg, int32_t value) {
618
681
  _upb_sethas(msg, 1);
@@ -635,25 +698,29 @@ UPB_INLINE void validate_Int32Rules_set_gte(validate_Int32Rules *msg, int32_t va
635
698
  *UPB_PTR_AT(msg, UPB_SIZE(20, 20), int32_t) = value;
636
699
  }
637
700
  UPB_INLINE int32_t* validate_Int32Rules_mutable_in(validate_Int32Rules *msg, size_t *len) {
638
- return (int32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(24, 24), len);
701
+ return (int32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(28, 32), len);
639
702
  }
640
703
  UPB_INLINE int32_t* validate_Int32Rules_resize_in(validate_Int32Rules *msg, size_t len, upb_arena *arena) {
641
- return (int32_t*)_upb_array_resize_accessor(msg, UPB_SIZE(24, 24), len, UPB_TYPE_INT32, arena);
704
+ return (int32_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(28, 32), len, 2, arena);
642
705
  }
643
706
  UPB_INLINE bool validate_Int32Rules_add_in(validate_Int32Rules *msg, int32_t val, upb_arena *arena) {
644
- return _upb_array_append_accessor(msg, UPB_SIZE(24, 24), UPB_SIZE(4, 4), UPB_TYPE_INT32, &val,
707
+ return _upb_array_append_accessor2(msg, UPB_SIZE(28, 32), 2, &val,
645
708
  arena);
646
709
  }
647
710
  UPB_INLINE int32_t* validate_Int32Rules_mutable_not_in(validate_Int32Rules *msg, size_t *len) {
648
- return (int32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(28, 32), len);
711
+ return (int32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(32, 40), len);
649
712
  }
650
713
  UPB_INLINE int32_t* validate_Int32Rules_resize_not_in(validate_Int32Rules *msg, size_t len, upb_arena *arena) {
651
- return (int32_t*)_upb_array_resize_accessor(msg, UPB_SIZE(28, 32), len, UPB_TYPE_INT32, arena);
714
+ return (int32_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(32, 40), len, 2, arena);
652
715
  }
653
716
  UPB_INLINE bool validate_Int32Rules_add_not_in(validate_Int32Rules *msg, int32_t val, upb_arena *arena) {
654
- return _upb_array_append_accessor(msg, UPB_SIZE(28, 32), UPB_SIZE(4, 4), UPB_TYPE_INT32, &val,
717
+ return _upb_array_append_accessor2(msg, UPB_SIZE(32, 40), 2, &val,
655
718
  arena);
656
719
  }
720
+ UPB_INLINE void validate_Int32Rules_set_ignore_empty(validate_Int32Rules *msg, bool value) {
721
+ _upb_sethas(msg, 6);
722
+ *UPB_PTR_AT(msg, UPB_SIZE(24, 24), bool) = value;
723
+ }
657
724
 
658
725
  /* validate.Int64Rules */
659
726
 
@@ -663,7 +730,19 @@ UPB_INLINE validate_Int64Rules *validate_Int64Rules_new(upb_arena *arena) {
663
730
  UPB_INLINE validate_Int64Rules *validate_Int64Rules_parse(const char *buf, size_t size,
664
731
  upb_arena *arena) {
665
732
  validate_Int64Rules *ret = validate_Int64Rules_new(arena);
666
- return (ret && upb_decode(buf, size, ret, &validate_Int64Rules_msginit, arena)) ? ret : NULL;
733
+ if (!ret) return NULL;
734
+ if (!upb_decode(buf, size, ret, &validate_Int64Rules_msginit, arena)) return NULL;
735
+ return ret;
736
+ }
737
+ UPB_INLINE validate_Int64Rules *validate_Int64Rules_parse_ex(const char *buf, size_t size,
738
+ const upb_extreg *extreg, int options,
739
+ upb_arena *arena) {
740
+ validate_Int64Rules *ret = validate_Int64Rules_new(arena);
741
+ if (!ret) return NULL;
742
+ if (!_upb_decode(buf, size, ret, &validate_Int64Rules_msginit, extreg, options, arena)) {
743
+ return NULL;
744
+ }
745
+ return ret;
667
746
  }
668
747
  UPB_INLINE char *validate_Int64Rules_serialize(const validate_Int64Rules *msg, upb_arena *arena, size_t *len) {
669
748
  return upb_encode(msg, &validate_Int64Rules_msginit, arena, len);
@@ -679,8 +758,10 @@ UPB_INLINE bool validate_Int64Rules_has_gt(const validate_Int64Rules *msg) { ret
679
758
  UPB_INLINE int64_t validate_Int64Rules_gt(const validate_Int64Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(32, 32), int64_t); }
680
759
  UPB_INLINE bool validate_Int64Rules_has_gte(const validate_Int64Rules *msg) { return _upb_hasbit(msg, 5); }
681
760
  UPB_INLINE int64_t validate_Int64Rules_gte(const validate_Int64Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(40, 40), int64_t); }
682
- 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); }
683
- 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); }
761
+ 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); }
762
+ 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); }
763
+ UPB_INLINE bool validate_Int64Rules_has_ignore_empty(const validate_Int64Rules *msg) { return _upb_hasbit(msg, 6); }
764
+ UPB_INLINE bool validate_Int64Rules_ignore_empty(const validate_Int64Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(48, 48), bool); }
684
765
 
685
766
  UPB_INLINE void validate_Int64Rules_set_const(validate_Int64Rules *msg, int64_t value) {
686
767
  _upb_sethas(msg, 1);
@@ -703,25 +784,29 @@ UPB_INLINE void validate_Int64Rules_set_gte(validate_Int64Rules *msg, int64_t va
703
784
  *UPB_PTR_AT(msg, UPB_SIZE(40, 40), int64_t) = value;
704
785
  }
705
786
  UPB_INLINE int64_t* validate_Int64Rules_mutable_in(validate_Int64Rules *msg, size_t *len) {
706
- return (int64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(48, 48), len);
787
+ return (int64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(52, 56), len);
707
788
  }
708
789
  UPB_INLINE int64_t* validate_Int64Rules_resize_in(validate_Int64Rules *msg, size_t len, upb_arena *arena) {
709
- return (int64_t*)_upb_array_resize_accessor(msg, UPB_SIZE(48, 48), len, UPB_TYPE_INT64, arena);
790
+ return (int64_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(52, 56), len, 3, arena);
710
791
  }
711
792
  UPB_INLINE bool validate_Int64Rules_add_in(validate_Int64Rules *msg, int64_t val, upb_arena *arena) {
712
- return _upb_array_append_accessor(msg, UPB_SIZE(48, 48), UPB_SIZE(8, 8), UPB_TYPE_INT64, &val,
793
+ return _upb_array_append_accessor2(msg, UPB_SIZE(52, 56), 3, &val,
713
794
  arena);
714
795
  }
715
796
  UPB_INLINE int64_t* validate_Int64Rules_mutable_not_in(validate_Int64Rules *msg, size_t *len) {
716
- return (int64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(52, 56), len);
797
+ return (int64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(56, 64), len);
717
798
  }
718
799
  UPB_INLINE int64_t* validate_Int64Rules_resize_not_in(validate_Int64Rules *msg, size_t len, upb_arena *arena) {
719
- return (int64_t*)_upb_array_resize_accessor(msg, UPB_SIZE(52, 56), len, UPB_TYPE_INT64, arena);
800
+ return (int64_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(56, 64), len, 3, arena);
720
801
  }
721
802
  UPB_INLINE bool validate_Int64Rules_add_not_in(validate_Int64Rules *msg, int64_t val, upb_arena *arena) {
722
- return _upb_array_append_accessor(msg, UPB_SIZE(52, 56), UPB_SIZE(8, 8), UPB_TYPE_INT64, &val,
803
+ return _upb_array_append_accessor2(msg, UPB_SIZE(56, 64), 3, &val,
723
804
  arena);
724
805
  }
806
+ UPB_INLINE void validate_Int64Rules_set_ignore_empty(validate_Int64Rules *msg, bool value) {
807
+ _upb_sethas(msg, 6);
808
+ *UPB_PTR_AT(msg, UPB_SIZE(48, 48), bool) = value;
809
+ }
725
810
 
726
811
  /* validate.UInt32Rules */
727
812
 
@@ -731,7 +816,19 @@ UPB_INLINE validate_UInt32Rules *validate_UInt32Rules_new(upb_arena *arena) {
731
816
  UPB_INLINE validate_UInt32Rules *validate_UInt32Rules_parse(const char *buf, size_t size,
732
817
  upb_arena *arena) {
733
818
  validate_UInt32Rules *ret = validate_UInt32Rules_new(arena);
734
- return (ret && upb_decode(buf, size, ret, &validate_UInt32Rules_msginit, arena)) ? ret : NULL;
819
+ if (!ret) return NULL;
820
+ if (!upb_decode(buf, size, ret, &validate_UInt32Rules_msginit, arena)) return NULL;
821
+ return ret;
822
+ }
823
+ UPB_INLINE validate_UInt32Rules *validate_UInt32Rules_parse_ex(const char *buf, size_t size,
824
+ const upb_extreg *extreg, int options,
825
+ upb_arena *arena) {
826
+ validate_UInt32Rules *ret = validate_UInt32Rules_new(arena);
827
+ if (!ret) return NULL;
828
+ if (!_upb_decode(buf, size, ret, &validate_UInt32Rules_msginit, extreg, options, arena)) {
829
+ return NULL;
830
+ }
831
+ return ret;
735
832
  }
736
833
  UPB_INLINE char *validate_UInt32Rules_serialize(const validate_UInt32Rules *msg, upb_arena *arena, size_t *len) {
737
834
  return upb_encode(msg, &validate_UInt32Rules_msginit, arena, len);
@@ -747,8 +844,10 @@ UPB_INLINE bool validate_UInt32Rules_has_gt(const validate_UInt32Rules *msg) { r
747
844
  UPB_INLINE uint32_t validate_UInt32Rules_gt(const validate_UInt32Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(16, 16), uint32_t); }
748
845
  UPB_INLINE bool validate_UInt32Rules_has_gte(const validate_UInt32Rules *msg) { return _upb_hasbit(msg, 5); }
749
846
  UPB_INLINE uint32_t validate_UInt32Rules_gte(const validate_UInt32Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(20, 20), uint32_t); }
750
- 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); }
751
- 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); }
847
+ 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); }
848
+ 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); }
849
+ UPB_INLINE bool validate_UInt32Rules_has_ignore_empty(const validate_UInt32Rules *msg) { return _upb_hasbit(msg, 6); }
850
+ UPB_INLINE bool validate_UInt32Rules_ignore_empty(const validate_UInt32Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(24, 24), bool); }
752
851
 
753
852
  UPB_INLINE void validate_UInt32Rules_set_const(validate_UInt32Rules *msg, uint32_t value) {
754
853
  _upb_sethas(msg, 1);
@@ -771,25 +870,29 @@ UPB_INLINE void validate_UInt32Rules_set_gte(validate_UInt32Rules *msg, uint32_t
771
870
  *UPB_PTR_AT(msg, UPB_SIZE(20, 20), uint32_t) = value;
772
871
  }
773
872
  UPB_INLINE uint32_t* validate_UInt32Rules_mutable_in(validate_UInt32Rules *msg, size_t *len) {
774
- return (uint32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(24, 24), len);
873
+ return (uint32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(28, 32), len);
775
874
  }
776
875
  UPB_INLINE uint32_t* validate_UInt32Rules_resize_in(validate_UInt32Rules *msg, size_t len, upb_arena *arena) {
777
- return (uint32_t*)_upb_array_resize_accessor(msg, UPB_SIZE(24, 24), len, UPB_TYPE_UINT32, arena);
876
+ return (uint32_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(28, 32), len, 2, arena);
778
877
  }
779
878
  UPB_INLINE bool validate_UInt32Rules_add_in(validate_UInt32Rules *msg, uint32_t val, upb_arena *arena) {
780
- return _upb_array_append_accessor(msg, UPB_SIZE(24, 24), UPB_SIZE(4, 4), UPB_TYPE_UINT32, &val,
879
+ return _upb_array_append_accessor2(msg, UPB_SIZE(28, 32), 2, &val,
781
880
  arena);
782
881
  }
783
882
  UPB_INLINE uint32_t* validate_UInt32Rules_mutable_not_in(validate_UInt32Rules *msg, size_t *len) {
784
- return (uint32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(28, 32), len);
883
+ return (uint32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(32, 40), len);
785
884
  }
786
885
  UPB_INLINE uint32_t* validate_UInt32Rules_resize_not_in(validate_UInt32Rules *msg, size_t len, upb_arena *arena) {
787
- return (uint32_t*)_upb_array_resize_accessor(msg, UPB_SIZE(28, 32), len, UPB_TYPE_UINT32, arena);
886
+ return (uint32_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(32, 40), len, 2, arena);
788
887
  }
789
888
  UPB_INLINE bool validate_UInt32Rules_add_not_in(validate_UInt32Rules *msg, uint32_t val, upb_arena *arena) {
790
- return _upb_array_append_accessor(msg, UPB_SIZE(28, 32), UPB_SIZE(4, 4), UPB_TYPE_UINT32, &val,
889
+ return _upb_array_append_accessor2(msg, UPB_SIZE(32, 40), 2, &val,
791
890
  arena);
792
891
  }
892
+ UPB_INLINE void validate_UInt32Rules_set_ignore_empty(validate_UInt32Rules *msg, bool value) {
893
+ _upb_sethas(msg, 6);
894
+ *UPB_PTR_AT(msg, UPB_SIZE(24, 24), bool) = value;
895
+ }
793
896
 
794
897
  /* validate.UInt64Rules */
795
898
 
@@ -799,7 +902,19 @@ UPB_INLINE validate_UInt64Rules *validate_UInt64Rules_new(upb_arena *arena) {
799
902
  UPB_INLINE validate_UInt64Rules *validate_UInt64Rules_parse(const char *buf, size_t size,
800
903
  upb_arena *arena) {
801
904
  validate_UInt64Rules *ret = validate_UInt64Rules_new(arena);
802
- return (ret && upb_decode(buf, size, ret, &validate_UInt64Rules_msginit, arena)) ? ret : NULL;
905
+ if (!ret) return NULL;
906
+ if (!upb_decode(buf, size, ret, &validate_UInt64Rules_msginit, arena)) return NULL;
907
+ return ret;
908
+ }
909
+ UPB_INLINE validate_UInt64Rules *validate_UInt64Rules_parse_ex(const char *buf, size_t size,
910
+ const upb_extreg *extreg, int options,
911
+ upb_arena *arena) {
912
+ validate_UInt64Rules *ret = validate_UInt64Rules_new(arena);
913
+ if (!ret) return NULL;
914
+ if (!_upb_decode(buf, size, ret, &validate_UInt64Rules_msginit, extreg, options, arena)) {
915
+ return NULL;
916
+ }
917
+ return ret;
803
918
  }
804
919
  UPB_INLINE char *validate_UInt64Rules_serialize(const validate_UInt64Rules *msg, upb_arena *arena, size_t *len) {
805
920
  return upb_encode(msg, &validate_UInt64Rules_msginit, arena, len);
@@ -815,8 +930,10 @@ UPB_INLINE bool validate_UInt64Rules_has_gt(const validate_UInt64Rules *msg) { r
815
930
  UPB_INLINE uint64_t validate_UInt64Rules_gt(const validate_UInt64Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(32, 32), uint64_t); }
816
931
  UPB_INLINE bool validate_UInt64Rules_has_gte(const validate_UInt64Rules *msg) { return _upb_hasbit(msg, 5); }
817
932
  UPB_INLINE uint64_t validate_UInt64Rules_gte(const validate_UInt64Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(40, 40), uint64_t); }
818
- 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); }
819
- 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); }
933
+ 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); }
934
+ 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); }
935
+ UPB_INLINE bool validate_UInt64Rules_has_ignore_empty(const validate_UInt64Rules *msg) { return _upb_hasbit(msg, 6); }
936
+ UPB_INLINE bool validate_UInt64Rules_ignore_empty(const validate_UInt64Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(48, 48), bool); }
820
937
 
821
938
  UPB_INLINE void validate_UInt64Rules_set_const(validate_UInt64Rules *msg, uint64_t value) {
822
939
  _upb_sethas(msg, 1);
@@ -839,25 +956,29 @@ UPB_INLINE void validate_UInt64Rules_set_gte(validate_UInt64Rules *msg, uint64_t
839
956
  *UPB_PTR_AT(msg, UPB_SIZE(40, 40), uint64_t) = value;
840
957
  }
841
958
  UPB_INLINE uint64_t* validate_UInt64Rules_mutable_in(validate_UInt64Rules *msg, size_t *len) {
842
- return (uint64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(48, 48), len);
959
+ return (uint64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(52, 56), len);
843
960
  }
844
961
  UPB_INLINE uint64_t* validate_UInt64Rules_resize_in(validate_UInt64Rules *msg, size_t len, upb_arena *arena) {
845
- return (uint64_t*)_upb_array_resize_accessor(msg, UPB_SIZE(48, 48), len, UPB_TYPE_UINT64, arena);
962
+ return (uint64_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(52, 56), len, 3, arena);
846
963
  }
847
964
  UPB_INLINE bool validate_UInt64Rules_add_in(validate_UInt64Rules *msg, uint64_t val, upb_arena *arena) {
848
- return _upb_array_append_accessor(msg, UPB_SIZE(48, 48), UPB_SIZE(8, 8), UPB_TYPE_UINT64, &val,
965
+ return _upb_array_append_accessor2(msg, UPB_SIZE(52, 56), 3, &val,
849
966
  arena);
850
967
  }
851
968
  UPB_INLINE uint64_t* validate_UInt64Rules_mutable_not_in(validate_UInt64Rules *msg, size_t *len) {
852
- return (uint64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(52, 56), len);
969
+ return (uint64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(56, 64), len);
853
970
  }
854
971
  UPB_INLINE uint64_t* validate_UInt64Rules_resize_not_in(validate_UInt64Rules *msg, size_t len, upb_arena *arena) {
855
- return (uint64_t*)_upb_array_resize_accessor(msg, UPB_SIZE(52, 56), len, UPB_TYPE_UINT64, arena);
972
+ return (uint64_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(56, 64), len, 3, arena);
856
973
  }
857
974
  UPB_INLINE bool validate_UInt64Rules_add_not_in(validate_UInt64Rules *msg, uint64_t val, upb_arena *arena) {
858
- return _upb_array_append_accessor(msg, UPB_SIZE(52, 56), UPB_SIZE(8, 8), UPB_TYPE_UINT64, &val,
975
+ return _upb_array_append_accessor2(msg, UPB_SIZE(56, 64), 3, &val,
859
976
  arena);
860
977
  }
978
+ UPB_INLINE void validate_UInt64Rules_set_ignore_empty(validate_UInt64Rules *msg, bool value) {
979
+ _upb_sethas(msg, 6);
980
+ *UPB_PTR_AT(msg, UPB_SIZE(48, 48), bool) = value;
981
+ }
861
982
 
862
983
  /* validate.SInt32Rules */
863
984
 
@@ -867,7 +988,19 @@ UPB_INLINE validate_SInt32Rules *validate_SInt32Rules_new(upb_arena *arena) {
867
988
  UPB_INLINE validate_SInt32Rules *validate_SInt32Rules_parse(const char *buf, size_t size,
868
989
  upb_arena *arena) {
869
990
  validate_SInt32Rules *ret = validate_SInt32Rules_new(arena);
870
- return (ret && upb_decode(buf, size, ret, &validate_SInt32Rules_msginit, arena)) ? ret : NULL;
991
+ if (!ret) return NULL;
992
+ if (!upb_decode(buf, size, ret, &validate_SInt32Rules_msginit, arena)) return NULL;
993
+ return ret;
994
+ }
995
+ UPB_INLINE validate_SInt32Rules *validate_SInt32Rules_parse_ex(const char *buf, size_t size,
996
+ const upb_extreg *extreg, int options,
997
+ upb_arena *arena) {
998
+ validate_SInt32Rules *ret = validate_SInt32Rules_new(arena);
999
+ if (!ret) return NULL;
1000
+ if (!_upb_decode(buf, size, ret, &validate_SInt32Rules_msginit, extreg, options, arena)) {
1001
+ return NULL;
1002
+ }
1003
+ return ret;
871
1004
  }
872
1005
  UPB_INLINE char *validate_SInt32Rules_serialize(const validate_SInt32Rules *msg, upb_arena *arena, size_t *len) {
873
1006
  return upb_encode(msg, &validate_SInt32Rules_msginit, arena, len);
@@ -883,8 +1016,10 @@ UPB_INLINE bool validate_SInt32Rules_has_gt(const validate_SInt32Rules *msg) { r
883
1016
  UPB_INLINE int32_t validate_SInt32Rules_gt(const validate_SInt32Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(16, 16), int32_t); }
884
1017
  UPB_INLINE bool validate_SInt32Rules_has_gte(const validate_SInt32Rules *msg) { return _upb_hasbit(msg, 5); }
885
1018
  UPB_INLINE int32_t validate_SInt32Rules_gte(const validate_SInt32Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(20, 20), int32_t); }
886
- 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); }
887
- 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); }
1019
+ 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); }
1020
+ 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); }
1021
+ UPB_INLINE bool validate_SInt32Rules_has_ignore_empty(const validate_SInt32Rules *msg) { return _upb_hasbit(msg, 6); }
1022
+ UPB_INLINE bool validate_SInt32Rules_ignore_empty(const validate_SInt32Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(24, 24), bool); }
888
1023
 
889
1024
  UPB_INLINE void validate_SInt32Rules_set_const(validate_SInt32Rules *msg, int32_t value) {
890
1025
  _upb_sethas(msg, 1);
@@ -907,25 +1042,29 @@ UPB_INLINE void validate_SInt32Rules_set_gte(validate_SInt32Rules *msg, int32_t
907
1042
  *UPB_PTR_AT(msg, UPB_SIZE(20, 20), int32_t) = value;
908
1043
  }
909
1044
  UPB_INLINE int32_t* validate_SInt32Rules_mutable_in(validate_SInt32Rules *msg, size_t *len) {
910
- return (int32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(24, 24), len);
1045
+ return (int32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(28, 32), len);
911
1046
  }
912
1047
  UPB_INLINE int32_t* validate_SInt32Rules_resize_in(validate_SInt32Rules *msg, size_t len, upb_arena *arena) {
913
- return (int32_t*)_upb_array_resize_accessor(msg, UPB_SIZE(24, 24), len, UPB_TYPE_INT32, arena);
1048
+ return (int32_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(28, 32), len, 2, arena);
914
1049
  }
915
1050
  UPB_INLINE bool validate_SInt32Rules_add_in(validate_SInt32Rules *msg, int32_t val, upb_arena *arena) {
916
- return _upb_array_append_accessor(msg, UPB_SIZE(24, 24), UPB_SIZE(4, 4), UPB_TYPE_INT32, &val,
1051
+ return _upb_array_append_accessor2(msg, UPB_SIZE(28, 32), 2, &val,
917
1052
  arena);
918
1053
  }
919
1054
  UPB_INLINE int32_t* validate_SInt32Rules_mutable_not_in(validate_SInt32Rules *msg, size_t *len) {
920
- return (int32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(28, 32), len);
1055
+ return (int32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(32, 40), len);
921
1056
  }
922
1057
  UPB_INLINE int32_t* validate_SInt32Rules_resize_not_in(validate_SInt32Rules *msg, size_t len, upb_arena *arena) {
923
- return (int32_t*)_upb_array_resize_accessor(msg, UPB_SIZE(28, 32), len, UPB_TYPE_INT32, arena);
1058
+ return (int32_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(32, 40), len, 2, arena);
924
1059
  }
925
1060
  UPB_INLINE bool validate_SInt32Rules_add_not_in(validate_SInt32Rules *msg, int32_t val, upb_arena *arena) {
926
- return _upb_array_append_accessor(msg, UPB_SIZE(28, 32), UPB_SIZE(4, 4), UPB_TYPE_INT32, &val,
1061
+ return _upb_array_append_accessor2(msg, UPB_SIZE(32, 40), 2, &val,
927
1062
  arena);
928
1063
  }
1064
+ UPB_INLINE void validate_SInt32Rules_set_ignore_empty(validate_SInt32Rules *msg, bool value) {
1065
+ _upb_sethas(msg, 6);
1066
+ *UPB_PTR_AT(msg, UPB_SIZE(24, 24), bool) = value;
1067
+ }
929
1068
 
930
1069
  /* validate.SInt64Rules */
931
1070
 
@@ -935,7 +1074,19 @@ UPB_INLINE validate_SInt64Rules *validate_SInt64Rules_new(upb_arena *arena) {
935
1074
  UPB_INLINE validate_SInt64Rules *validate_SInt64Rules_parse(const char *buf, size_t size,
936
1075
  upb_arena *arena) {
937
1076
  validate_SInt64Rules *ret = validate_SInt64Rules_new(arena);
938
- return (ret && upb_decode(buf, size, ret, &validate_SInt64Rules_msginit, arena)) ? ret : NULL;
1077
+ if (!ret) return NULL;
1078
+ if (!upb_decode(buf, size, ret, &validate_SInt64Rules_msginit, arena)) return NULL;
1079
+ return ret;
1080
+ }
1081
+ UPB_INLINE validate_SInt64Rules *validate_SInt64Rules_parse_ex(const char *buf, size_t size,
1082
+ const upb_extreg *extreg, int options,
1083
+ upb_arena *arena) {
1084
+ validate_SInt64Rules *ret = validate_SInt64Rules_new(arena);
1085
+ if (!ret) return NULL;
1086
+ if (!_upb_decode(buf, size, ret, &validate_SInt64Rules_msginit, extreg, options, arena)) {
1087
+ return NULL;
1088
+ }
1089
+ return ret;
939
1090
  }
940
1091
  UPB_INLINE char *validate_SInt64Rules_serialize(const validate_SInt64Rules *msg, upb_arena *arena, size_t *len) {
941
1092
  return upb_encode(msg, &validate_SInt64Rules_msginit, arena, len);
@@ -951,8 +1102,10 @@ UPB_INLINE bool validate_SInt64Rules_has_gt(const validate_SInt64Rules *msg) { r
951
1102
  UPB_INLINE int64_t validate_SInt64Rules_gt(const validate_SInt64Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(32, 32), int64_t); }
952
1103
  UPB_INLINE bool validate_SInt64Rules_has_gte(const validate_SInt64Rules *msg) { return _upb_hasbit(msg, 5); }
953
1104
  UPB_INLINE int64_t validate_SInt64Rules_gte(const validate_SInt64Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(40, 40), int64_t); }
954
- 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); }
955
- 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); }
1105
+ 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); }
1106
+ 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); }
1107
+ UPB_INLINE bool validate_SInt64Rules_has_ignore_empty(const validate_SInt64Rules *msg) { return _upb_hasbit(msg, 6); }
1108
+ UPB_INLINE bool validate_SInt64Rules_ignore_empty(const validate_SInt64Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(48, 48), bool); }
956
1109
 
957
1110
  UPB_INLINE void validate_SInt64Rules_set_const(validate_SInt64Rules *msg, int64_t value) {
958
1111
  _upb_sethas(msg, 1);
@@ -975,25 +1128,29 @@ UPB_INLINE void validate_SInt64Rules_set_gte(validate_SInt64Rules *msg, int64_t
975
1128
  *UPB_PTR_AT(msg, UPB_SIZE(40, 40), int64_t) = value;
976
1129
  }
977
1130
  UPB_INLINE int64_t* validate_SInt64Rules_mutable_in(validate_SInt64Rules *msg, size_t *len) {
978
- return (int64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(48, 48), len);
1131
+ return (int64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(52, 56), len);
979
1132
  }
980
1133
  UPB_INLINE int64_t* validate_SInt64Rules_resize_in(validate_SInt64Rules *msg, size_t len, upb_arena *arena) {
981
- return (int64_t*)_upb_array_resize_accessor(msg, UPB_SIZE(48, 48), len, UPB_TYPE_INT64, arena);
1134
+ return (int64_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(52, 56), len, 3, arena);
982
1135
  }
983
1136
  UPB_INLINE bool validate_SInt64Rules_add_in(validate_SInt64Rules *msg, int64_t val, upb_arena *arena) {
984
- return _upb_array_append_accessor(msg, UPB_SIZE(48, 48), UPB_SIZE(8, 8), UPB_TYPE_INT64, &val,
1137
+ return _upb_array_append_accessor2(msg, UPB_SIZE(52, 56), 3, &val,
985
1138
  arena);
986
1139
  }
987
1140
  UPB_INLINE int64_t* validate_SInt64Rules_mutable_not_in(validate_SInt64Rules *msg, size_t *len) {
988
- return (int64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(52, 56), len);
1141
+ return (int64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(56, 64), len);
989
1142
  }
990
1143
  UPB_INLINE int64_t* validate_SInt64Rules_resize_not_in(validate_SInt64Rules *msg, size_t len, upb_arena *arena) {
991
- return (int64_t*)_upb_array_resize_accessor(msg, UPB_SIZE(52, 56), len, UPB_TYPE_INT64, arena);
1144
+ return (int64_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(56, 64), len, 3, arena);
992
1145
  }
993
1146
  UPB_INLINE bool validate_SInt64Rules_add_not_in(validate_SInt64Rules *msg, int64_t val, upb_arena *arena) {
994
- return _upb_array_append_accessor(msg, UPB_SIZE(52, 56), UPB_SIZE(8, 8), UPB_TYPE_INT64, &val,
1147
+ return _upb_array_append_accessor2(msg, UPB_SIZE(56, 64), 3, &val,
995
1148
  arena);
996
1149
  }
1150
+ UPB_INLINE void validate_SInt64Rules_set_ignore_empty(validate_SInt64Rules *msg, bool value) {
1151
+ _upb_sethas(msg, 6);
1152
+ *UPB_PTR_AT(msg, UPB_SIZE(48, 48), bool) = value;
1153
+ }
997
1154
 
998
1155
  /* validate.Fixed32Rules */
999
1156
 
@@ -1003,7 +1160,19 @@ UPB_INLINE validate_Fixed32Rules *validate_Fixed32Rules_new(upb_arena *arena) {
1003
1160
  UPB_INLINE validate_Fixed32Rules *validate_Fixed32Rules_parse(const char *buf, size_t size,
1004
1161
  upb_arena *arena) {
1005
1162
  validate_Fixed32Rules *ret = validate_Fixed32Rules_new(arena);
1006
- return (ret && upb_decode(buf, size, ret, &validate_Fixed32Rules_msginit, arena)) ? ret : NULL;
1163
+ if (!ret) return NULL;
1164
+ if (!upb_decode(buf, size, ret, &validate_Fixed32Rules_msginit, arena)) return NULL;
1165
+ return ret;
1166
+ }
1167
+ UPB_INLINE validate_Fixed32Rules *validate_Fixed32Rules_parse_ex(const char *buf, size_t size,
1168
+ const upb_extreg *extreg, int options,
1169
+ upb_arena *arena) {
1170
+ validate_Fixed32Rules *ret = validate_Fixed32Rules_new(arena);
1171
+ if (!ret) return NULL;
1172
+ if (!_upb_decode(buf, size, ret, &validate_Fixed32Rules_msginit, extreg, options, arena)) {
1173
+ return NULL;
1174
+ }
1175
+ return ret;
1007
1176
  }
1008
1177
  UPB_INLINE char *validate_Fixed32Rules_serialize(const validate_Fixed32Rules *msg, upb_arena *arena, size_t *len) {
1009
1178
  return upb_encode(msg, &validate_Fixed32Rules_msginit, arena, len);
@@ -1019,8 +1188,10 @@ UPB_INLINE bool validate_Fixed32Rules_has_gt(const validate_Fixed32Rules *msg) {
1019
1188
  UPB_INLINE uint32_t validate_Fixed32Rules_gt(const validate_Fixed32Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(16, 16), uint32_t); }
1020
1189
  UPB_INLINE bool validate_Fixed32Rules_has_gte(const validate_Fixed32Rules *msg) { return _upb_hasbit(msg, 5); }
1021
1190
  UPB_INLINE uint32_t validate_Fixed32Rules_gte(const validate_Fixed32Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(20, 20), uint32_t); }
1022
- 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); }
1023
- 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); }
1191
+ 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); }
1192
+ 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); }
1193
+ UPB_INLINE bool validate_Fixed32Rules_has_ignore_empty(const validate_Fixed32Rules *msg) { return _upb_hasbit(msg, 6); }
1194
+ UPB_INLINE bool validate_Fixed32Rules_ignore_empty(const validate_Fixed32Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(24, 24), bool); }
1024
1195
 
1025
1196
  UPB_INLINE void validate_Fixed32Rules_set_const(validate_Fixed32Rules *msg, uint32_t value) {
1026
1197
  _upb_sethas(msg, 1);
@@ -1043,25 +1214,29 @@ UPB_INLINE void validate_Fixed32Rules_set_gte(validate_Fixed32Rules *msg, uint32
1043
1214
  *UPB_PTR_AT(msg, UPB_SIZE(20, 20), uint32_t) = value;
1044
1215
  }
1045
1216
  UPB_INLINE uint32_t* validate_Fixed32Rules_mutable_in(validate_Fixed32Rules *msg, size_t *len) {
1046
- return (uint32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(24, 24), len);
1217
+ return (uint32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(28, 32), len);
1047
1218
  }
1048
1219
  UPB_INLINE uint32_t* validate_Fixed32Rules_resize_in(validate_Fixed32Rules *msg, size_t len, upb_arena *arena) {
1049
- return (uint32_t*)_upb_array_resize_accessor(msg, UPB_SIZE(24, 24), len, UPB_TYPE_UINT32, arena);
1220
+ return (uint32_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(28, 32), len, 2, arena);
1050
1221
  }
1051
1222
  UPB_INLINE bool validate_Fixed32Rules_add_in(validate_Fixed32Rules *msg, uint32_t val, upb_arena *arena) {
1052
- return _upb_array_append_accessor(msg, UPB_SIZE(24, 24), UPB_SIZE(4, 4), UPB_TYPE_UINT32, &val,
1223
+ return _upb_array_append_accessor2(msg, UPB_SIZE(28, 32), 2, &val,
1053
1224
  arena);
1054
1225
  }
1055
1226
  UPB_INLINE uint32_t* validate_Fixed32Rules_mutable_not_in(validate_Fixed32Rules *msg, size_t *len) {
1056
- return (uint32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(28, 32), len);
1227
+ return (uint32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(32, 40), len);
1057
1228
  }
1058
1229
  UPB_INLINE uint32_t* validate_Fixed32Rules_resize_not_in(validate_Fixed32Rules *msg, size_t len, upb_arena *arena) {
1059
- return (uint32_t*)_upb_array_resize_accessor(msg, UPB_SIZE(28, 32), len, UPB_TYPE_UINT32, arena);
1230
+ return (uint32_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(32, 40), len, 2, arena);
1060
1231
  }
1061
1232
  UPB_INLINE bool validate_Fixed32Rules_add_not_in(validate_Fixed32Rules *msg, uint32_t val, upb_arena *arena) {
1062
- return _upb_array_append_accessor(msg, UPB_SIZE(28, 32), UPB_SIZE(4, 4), UPB_TYPE_UINT32, &val,
1233
+ return _upb_array_append_accessor2(msg, UPB_SIZE(32, 40), 2, &val,
1063
1234
  arena);
1064
1235
  }
1236
+ UPB_INLINE void validate_Fixed32Rules_set_ignore_empty(validate_Fixed32Rules *msg, bool value) {
1237
+ _upb_sethas(msg, 6);
1238
+ *UPB_PTR_AT(msg, UPB_SIZE(24, 24), bool) = value;
1239
+ }
1065
1240
 
1066
1241
  /* validate.Fixed64Rules */
1067
1242
 
@@ -1071,7 +1246,19 @@ UPB_INLINE validate_Fixed64Rules *validate_Fixed64Rules_new(upb_arena *arena) {
1071
1246
  UPB_INLINE validate_Fixed64Rules *validate_Fixed64Rules_parse(const char *buf, size_t size,
1072
1247
  upb_arena *arena) {
1073
1248
  validate_Fixed64Rules *ret = validate_Fixed64Rules_new(arena);
1074
- return (ret && upb_decode(buf, size, ret, &validate_Fixed64Rules_msginit, arena)) ? ret : NULL;
1249
+ if (!ret) return NULL;
1250
+ if (!upb_decode(buf, size, ret, &validate_Fixed64Rules_msginit, arena)) return NULL;
1251
+ return ret;
1252
+ }
1253
+ UPB_INLINE validate_Fixed64Rules *validate_Fixed64Rules_parse_ex(const char *buf, size_t size,
1254
+ const upb_extreg *extreg, int options,
1255
+ upb_arena *arena) {
1256
+ validate_Fixed64Rules *ret = validate_Fixed64Rules_new(arena);
1257
+ if (!ret) return NULL;
1258
+ if (!_upb_decode(buf, size, ret, &validate_Fixed64Rules_msginit, extreg, options, arena)) {
1259
+ return NULL;
1260
+ }
1261
+ return ret;
1075
1262
  }
1076
1263
  UPB_INLINE char *validate_Fixed64Rules_serialize(const validate_Fixed64Rules *msg, upb_arena *arena, size_t *len) {
1077
1264
  return upb_encode(msg, &validate_Fixed64Rules_msginit, arena, len);
@@ -1087,8 +1274,10 @@ UPB_INLINE bool validate_Fixed64Rules_has_gt(const validate_Fixed64Rules *msg) {
1087
1274
  UPB_INLINE uint64_t validate_Fixed64Rules_gt(const validate_Fixed64Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(32, 32), uint64_t); }
1088
1275
  UPB_INLINE bool validate_Fixed64Rules_has_gte(const validate_Fixed64Rules *msg) { return _upb_hasbit(msg, 5); }
1089
1276
  UPB_INLINE uint64_t validate_Fixed64Rules_gte(const validate_Fixed64Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(40, 40), uint64_t); }
1090
- 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); }
1091
- 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); }
1277
+ 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); }
1278
+ 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); }
1279
+ UPB_INLINE bool validate_Fixed64Rules_has_ignore_empty(const validate_Fixed64Rules *msg) { return _upb_hasbit(msg, 6); }
1280
+ UPB_INLINE bool validate_Fixed64Rules_ignore_empty(const validate_Fixed64Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(48, 48), bool); }
1092
1281
 
1093
1282
  UPB_INLINE void validate_Fixed64Rules_set_const(validate_Fixed64Rules *msg, uint64_t value) {
1094
1283
  _upb_sethas(msg, 1);
@@ -1111,25 +1300,29 @@ UPB_INLINE void validate_Fixed64Rules_set_gte(validate_Fixed64Rules *msg, uint64
1111
1300
  *UPB_PTR_AT(msg, UPB_SIZE(40, 40), uint64_t) = value;
1112
1301
  }
1113
1302
  UPB_INLINE uint64_t* validate_Fixed64Rules_mutable_in(validate_Fixed64Rules *msg, size_t *len) {
1114
- return (uint64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(48, 48), len);
1303
+ return (uint64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(52, 56), len);
1115
1304
  }
1116
1305
  UPB_INLINE uint64_t* validate_Fixed64Rules_resize_in(validate_Fixed64Rules *msg, size_t len, upb_arena *arena) {
1117
- return (uint64_t*)_upb_array_resize_accessor(msg, UPB_SIZE(48, 48), len, UPB_TYPE_UINT64, arena);
1306
+ return (uint64_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(52, 56), len, 3, arena);
1118
1307
  }
1119
1308
  UPB_INLINE bool validate_Fixed64Rules_add_in(validate_Fixed64Rules *msg, uint64_t val, upb_arena *arena) {
1120
- return _upb_array_append_accessor(msg, UPB_SIZE(48, 48), UPB_SIZE(8, 8), UPB_TYPE_UINT64, &val,
1309
+ return _upb_array_append_accessor2(msg, UPB_SIZE(52, 56), 3, &val,
1121
1310
  arena);
1122
1311
  }
1123
1312
  UPB_INLINE uint64_t* validate_Fixed64Rules_mutable_not_in(validate_Fixed64Rules *msg, size_t *len) {
1124
- return (uint64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(52, 56), len);
1313
+ return (uint64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(56, 64), len);
1125
1314
  }
1126
1315
  UPB_INLINE uint64_t* validate_Fixed64Rules_resize_not_in(validate_Fixed64Rules *msg, size_t len, upb_arena *arena) {
1127
- return (uint64_t*)_upb_array_resize_accessor(msg, UPB_SIZE(52, 56), len, UPB_TYPE_UINT64, arena);
1316
+ return (uint64_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(56, 64), len, 3, arena);
1128
1317
  }
1129
1318
  UPB_INLINE bool validate_Fixed64Rules_add_not_in(validate_Fixed64Rules *msg, uint64_t val, upb_arena *arena) {
1130
- return _upb_array_append_accessor(msg, UPB_SIZE(52, 56), UPB_SIZE(8, 8), UPB_TYPE_UINT64, &val,
1319
+ return _upb_array_append_accessor2(msg, UPB_SIZE(56, 64), 3, &val,
1131
1320
  arena);
1132
1321
  }
1322
+ UPB_INLINE void validate_Fixed64Rules_set_ignore_empty(validate_Fixed64Rules *msg, bool value) {
1323
+ _upb_sethas(msg, 6);
1324
+ *UPB_PTR_AT(msg, UPB_SIZE(48, 48), bool) = value;
1325
+ }
1133
1326
 
1134
1327
  /* validate.SFixed32Rules */
1135
1328
 
@@ -1139,7 +1332,19 @@ UPB_INLINE validate_SFixed32Rules *validate_SFixed32Rules_new(upb_arena *arena)
1139
1332
  UPB_INLINE validate_SFixed32Rules *validate_SFixed32Rules_parse(const char *buf, size_t size,
1140
1333
  upb_arena *arena) {
1141
1334
  validate_SFixed32Rules *ret = validate_SFixed32Rules_new(arena);
1142
- return (ret && upb_decode(buf, size, ret, &validate_SFixed32Rules_msginit, arena)) ? ret : NULL;
1335
+ if (!ret) return NULL;
1336
+ if (!upb_decode(buf, size, ret, &validate_SFixed32Rules_msginit, arena)) return NULL;
1337
+ return ret;
1338
+ }
1339
+ UPB_INLINE validate_SFixed32Rules *validate_SFixed32Rules_parse_ex(const char *buf, size_t size,
1340
+ const upb_extreg *extreg, int options,
1341
+ upb_arena *arena) {
1342
+ validate_SFixed32Rules *ret = validate_SFixed32Rules_new(arena);
1343
+ if (!ret) return NULL;
1344
+ if (!_upb_decode(buf, size, ret, &validate_SFixed32Rules_msginit, extreg, options, arena)) {
1345
+ return NULL;
1346
+ }
1347
+ return ret;
1143
1348
  }
1144
1349
  UPB_INLINE char *validate_SFixed32Rules_serialize(const validate_SFixed32Rules *msg, upb_arena *arena, size_t *len) {
1145
1350
  return upb_encode(msg, &validate_SFixed32Rules_msginit, arena, len);
@@ -1155,8 +1360,10 @@ UPB_INLINE bool validate_SFixed32Rules_has_gt(const validate_SFixed32Rules *msg)
1155
1360
  UPB_INLINE int32_t validate_SFixed32Rules_gt(const validate_SFixed32Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(16, 16), int32_t); }
1156
1361
  UPB_INLINE bool validate_SFixed32Rules_has_gte(const validate_SFixed32Rules *msg) { return _upb_hasbit(msg, 5); }
1157
1362
  UPB_INLINE int32_t validate_SFixed32Rules_gte(const validate_SFixed32Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(20, 20), int32_t); }
1158
- 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); }
1159
- 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); }
1363
+ 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); }
1364
+ 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); }
1365
+ UPB_INLINE bool validate_SFixed32Rules_has_ignore_empty(const validate_SFixed32Rules *msg) { return _upb_hasbit(msg, 6); }
1366
+ UPB_INLINE bool validate_SFixed32Rules_ignore_empty(const validate_SFixed32Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(24, 24), bool); }
1160
1367
 
1161
1368
  UPB_INLINE void validate_SFixed32Rules_set_const(validate_SFixed32Rules *msg, int32_t value) {
1162
1369
  _upb_sethas(msg, 1);
@@ -1179,25 +1386,29 @@ UPB_INLINE void validate_SFixed32Rules_set_gte(validate_SFixed32Rules *msg, int3
1179
1386
  *UPB_PTR_AT(msg, UPB_SIZE(20, 20), int32_t) = value;
1180
1387
  }
1181
1388
  UPB_INLINE int32_t* validate_SFixed32Rules_mutable_in(validate_SFixed32Rules *msg, size_t *len) {
1182
- return (int32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(24, 24), len);
1389
+ return (int32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(28, 32), len);
1183
1390
  }
1184
1391
  UPB_INLINE int32_t* validate_SFixed32Rules_resize_in(validate_SFixed32Rules *msg, size_t len, upb_arena *arena) {
1185
- return (int32_t*)_upb_array_resize_accessor(msg, UPB_SIZE(24, 24), len, UPB_TYPE_INT32, arena);
1392
+ return (int32_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(28, 32), len, 2, arena);
1186
1393
  }
1187
1394
  UPB_INLINE bool validate_SFixed32Rules_add_in(validate_SFixed32Rules *msg, int32_t val, upb_arena *arena) {
1188
- return _upb_array_append_accessor(msg, UPB_SIZE(24, 24), UPB_SIZE(4, 4), UPB_TYPE_INT32, &val,
1395
+ return _upb_array_append_accessor2(msg, UPB_SIZE(28, 32), 2, &val,
1189
1396
  arena);
1190
1397
  }
1191
1398
  UPB_INLINE int32_t* validate_SFixed32Rules_mutable_not_in(validate_SFixed32Rules *msg, size_t *len) {
1192
- return (int32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(28, 32), len);
1399
+ return (int32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(32, 40), len);
1193
1400
  }
1194
1401
  UPB_INLINE int32_t* validate_SFixed32Rules_resize_not_in(validate_SFixed32Rules *msg, size_t len, upb_arena *arena) {
1195
- return (int32_t*)_upb_array_resize_accessor(msg, UPB_SIZE(28, 32), len, UPB_TYPE_INT32, arena);
1402
+ return (int32_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(32, 40), len, 2, arena);
1196
1403
  }
1197
1404
  UPB_INLINE bool validate_SFixed32Rules_add_not_in(validate_SFixed32Rules *msg, int32_t val, upb_arena *arena) {
1198
- return _upb_array_append_accessor(msg, UPB_SIZE(28, 32), UPB_SIZE(4, 4), UPB_TYPE_INT32, &val,
1405
+ return _upb_array_append_accessor2(msg, UPB_SIZE(32, 40), 2, &val,
1199
1406
  arena);
1200
1407
  }
1408
+ UPB_INLINE void validate_SFixed32Rules_set_ignore_empty(validate_SFixed32Rules *msg, bool value) {
1409
+ _upb_sethas(msg, 6);
1410
+ *UPB_PTR_AT(msg, UPB_SIZE(24, 24), bool) = value;
1411
+ }
1201
1412
 
1202
1413
  /* validate.SFixed64Rules */
1203
1414
 
@@ -1207,7 +1418,19 @@ UPB_INLINE validate_SFixed64Rules *validate_SFixed64Rules_new(upb_arena *arena)
1207
1418
  UPB_INLINE validate_SFixed64Rules *validate_SFixed64Rules_parse(const char *buf, size_t size,
1208
1419
  upb_arena *arena) {
1209
1420
  validate_SFixed64Rules *ret = validate_SFixed64Rules_new(arena);
1210
- return (ret && upb_decode(buf, size, ret, &validate_SFixed64Rules_msginit, arena)) ? ret : NULL;
1421
+ if (!ret) return NULL;
1422
+ if (!upb_decode(buf, size, ret, &validate_SFixed64Rules_msginit, arena)) return NULL;
1423
+ return ret;
1424
+ }
1425
+ UPB_INLINE validate_SFixed64Rules *validate_SFixed64Rules_parse_ex(const char *buf, size_t size,
1426
+ const upb_extreg *extreg, int options,
1427
+ upb_arena *arena) {
1428
+ validate_SFixed64Rules *ret = validate_SFixed64Rules_new(arena);
1429
+ if (!ret) return NULL;
1430
+ if (!_upb_decode(buf, size, ret, &validate_SFixed64Rules_msginit, extreg, options, arena)) {
1431
+ return NULL;
1432
+ }
1433
+ return ret;
1211
1434
  }
1212
1435
  UPB_INLINE char *validate_SFixed64Rules_serialize(const validate_SFixed64Rules *msg, upb_arena *arena, size_t *len) {
1213
1436
  return upb_encode(msg, &validate_SFixed64Rules_msginit, arena, len);
@@ -1223,8 +1446,10 @@ UPB_INLINE bool validate_SFixed64Rules_has_gt(const validate_SFixed64Rules *msg)
1223
1446
  UPB_INLINE int64_t validate_SFixed64Rules_gt(const validate_SFixed64Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(32, 32), int64_t); }
1224
1447
  UPB_INLINE bool validate_SFixed64Rules_has_gte(const validate_SFixed64Rules *msg) { return _upb_hasbit(msg, 5); }
1225
1448
  UPB_INLINE int64_t validate_SFixed64Rules_gte(const validate_SFixed64Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(40, 40), int64_t); }
1226
- 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); }
1227
- 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); }
1449
+ 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); }
1450
+ 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); }
1451
+ UPB_INLINE bool validate_SFixed64Rules_has_ignore_empty(const validate_SFixed64Rules *msg) { return _upb_hasbit(msg, 6); }
1452
+ UPB_INLINE bool validate_SFixed64Rules_ignore_empty(const validate_SFixed64Rules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(48, 48), bool); }
1228
1453
 
1229
1454
  UPB_INLINE void validate_SFixed64Rules_set_const(validate_SFixed64Rules *msg, int64_t value) {
1230
1455
  _upb_sethas(msg, 1);
@@ -1247,25 +1472,29 @@ UPB_INLINE void validate_SFixed64Rules_set_gte(validate_SFixed64Rules *msg, int6
1247
1472
  *UPB_PTR_AT(msg, UPB_SIZE(40, 40), int64_t) = value;
1248
1473
  }
1249
1474
  UPB_INLINE int64_t* validate_SFixed64Rules_mutable_in(validate_SFixed64Rules *msg, size_t *len) {
1250
- return (int64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(48, 48), len);
1475
+ return (int64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(52, 56), len);
1251
1476
  }
1252
1477
  UPB_INLINE int64_t* validate_SFixed64Rules_resize_in(validate_SFixed64Rules *msg, size_t len, upb_arena *arena) {
1253
- return (int64_t*)_upb_array_resize_accessor(msg, UPB_SIZE(48, 48), len, UPB_TYPE_INT64, arena);
1478
+ return (int64_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(52, 56), len, 3, arena);
1254
1479
  }
1255
1480
  UPB_INLINE bool validate_SFixed64Rules_add_in(validate_SFixed64Rules *msg, int64_t val, upb_arena *arena) {
1256
- return _upb_array_append_accessor(msg, UPB_SIZE(48, 48), UPB_SIZE(8, 8), UPB_TYPE_INT64, &val,
1481
+ return _upb_array_append_accessor2(msg, UPB_SIZE(52, 56), 3, &val,
1257
1482
  arena);
1258
1483
  }
1259
1484
  UPB_INLINE int64_t* validate_SFixed64Rules_mutable_not_in(validate_SFixed64Rules *msg, size_t *len) {
1260
- return (int64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(52, 56), len);
1485
+ return (int64_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(56, 64), len);
1261
1486
  }
1262
1487
  UPB_INLINE int64_t* validate_SFixed64Rules_resize_not_in(validate_SFixed64Rules *msg, size_t len, upb_arena *arena) {
1263
- return (int64_t*)_upb_array_resize_accessor(msg, UPB_SIZE(52, 56), len, UPB_TYPE_INT64, arena);
1488
+ return (int64_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(56, 64), len, 3, arena);
1264
1489
  }
1265
1490
  UPB_INLINE bool validate_SFixed64Rules_add_not_in(validate_SFixed64Rules *msg, int64_t val, upb_arena *arena) {
1266
- return _upb_array_append_accessor(msg, UPB_SIZE(52, 56), UPB_SIZE(8, 8), UPB_TYPE_INT64, &val,
1491
+ return _upb_array_append_accessor2(msg, UPB_SIZE(56, 64), 3, &val,
1267
1492
  arena);
1268
1493
  }
1494
+ UPB_INLINE void validate_SFixed64Rules_set_ignore_empty(validate_SFixed64Rules *msg, bool value) {
1495
+ _upb_sethas(msg, 6);
1496
+ *UPB_PTR_AT(msg, UPB_SIZE(48, 48), bool) = value;
1497
+ }
1269
1498
 
1270
1499
  /* validate.BoolRules */
1271
1500
 
@@ -1275,7 +1504,19 @@ UPB_INLINE validate_BoolRules *validate_BoolRules_new(upb_arena *arena) {
1275
1504
  UPB_INLINE validate_BoolRules *validate_BoolRules_parse(const char *buf, size_t size,
1276
1505
  upb_arena *arena) {
1277
1506
  validate_BoolRules *ret = validate_BoolRules_new(arena);
1278
- return (ret && upb_decode(buf, size, ret, &validate_BoolRules_msginit, arena)) ? ret : NULL;
1507
+ if (!ret) return NULL;
1508
+ if (!upb_decode(buf, size, ret, &validate_BoolRules_msginit, arena)) return NULL;
1509
+ return ret;
1510
+ }
1511
+ UPB_INLINE validate_BoolRules *validate_BoolRules_parse_ex(const char *buf, size_t size,
1512
+ const upb_extreg *extreg, int options,
1513
+ upb_arena *arena) {
1514
+ validate_BoolRules *ret = validate_BoolRules_new(arena);
1515
+ if (!ret) return NULL;
1516
+ if (!_upb_decode(buf, size, ret, &validate_BoolRules_msginit, extreg, options, arena)) {
1517
+ return NULL;
1518
+ }
1519
+ return ret;
1279
1520
  }
1280
1521
  UPB_INLINE char *validate_BoolRules_serialize(const validate_BoolRules *msg, upb_arena *arena, size_t *len) {
1281
1522
  return upb_encode(msg, &validate_BoolRules_msginit, arena, len);
@@ -1297,7 +1538,19 @@ UPB_INLINE validate_StringRules *validate_StringRules_new(upb_arena *arena) {
1297
1538
  UPB_INLINE validate_StringRules *validate_StringRules_parse(const char *buf, size_t size,
1298
1539
  upb_arena *arena) {
1299
1540
  validate_StringRules *ret = validate_StringRules_new(arena);
1300
- return (ret && upb_decode(buf, size, ret, &validate_StringRules_msginit, arena)) ? ret : NULL;
1541
+ if (!ret) return NULL;
1542
+ if (!upb_decode(buf, size, ret, &validate_StringRules_msginit, arena)) return NULL;
1543
+ return ret;
1544
+ }
1545
+ UPB_INLINE validate_StringRules *validate_StringRules_parse_ex(const char *buf, size_t size,
1546
+ const upb_extreg *extreg, int options,
1547
+ upb_arena *arena) {
1548
+ validate_StringRules *ret = validate_StringRules_new(arena);
1549
+ if (!ret) return NULL;
1550
+ if (!_upb_decode(buf, size, ret, &validate_StringRules_msginit, extreg, options, arena)) {
1551
+ return NULL;
1552
+ }
1553
+ return ret;
1301
1554
  }
1302
1555
  UPB_INLINE char *validate_StringRules_serialize(const validate_StringRules *msg, upb_arena *arena, size_t *len) {
1303
1556
  return upb_encode(msg, &validate_StringRules_msginit, arena, len);
@@ -1316,159 +1569,165 @@ typedef enum {
1316
1569
  validate_StringRules_well_known_well_known_regex = 24,
1317
1570
  validate_StringRules_well_known_NOT_SET = 0
1318
1571
  } validate_StringRules_well_known_oneofcases;
1319
- UPB_INLINE validate_StringRules_well_known_oneofcases validate_StringRules_well_known_case(const validate_StringRules* msg) { return (validate_StringRules_well_known_oneofcases)*UPB_PTR_AT(msg, UPB_SIZE(128, 184), int32_t); }
1572
+ UPB_INLINE validate_StringRules_well_known_oneofcases validate_StringRules_well_known_case(const validate_StringRules* msg) { return (validate_StringRules_well_known_oneofcases)*UPB_PTR_AT(msg, UPB_SIZE(120, 180), int32_t); }
1320
1573
 
1321
- UPB_INLINE bool validate_StringRules_has_const(const validate_StringRules *msg) { return _upb_hasbit(msg, 8); }
1574
+ UPB_INLINE bool validate_StringRules_has_const(const validate_StringRules *msg) { return _upb_hasbit(msg, 1); }
1322
1575
  UPB_INLINE upb_strview validate_StringRules_const(const validate_StringRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(60, 64), upb_strview); }
1323
- UPB_INLINE bool validate_StringRules_has_min_len(const validate_StringRules *msg) { return _upb_hasbit(msg, 1); }
1576
+ UPB_INLINE bool validate_StringRules_has_min_len(const validate_StringRules *msg) { return _upb_hasbit(msg, 2); }
1324
1577
  UPB_INLINE uint64_t validate_StringRules_min_len(const validate_StringRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(8, 8), uint64_t); }
1325
- UPB_INLINE bool validate_StringRules_has_max_len(const validate_StringRules *msg) { return _upb_hasbit(msg, 2); }
1578
+ UPB_INLINE bool validate_StringRules_has_max_len(const validate_StringRules *msg) { return _upb_hasbit(msg, 3); }
1326
1579
  UPB_INLINE uint64_t validate_StringRules_max_len(const validate_StringRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(16, 16), uint64_t); }
1327
- UPB_INLINE bool validate_StringRules_has_min_bytes(const validate_StringRules *msg) { return _upb_hasbit(msg, 3); }
1580
+ UPB_INLINE bool validate_StringRules_has_min_bytes(const validate_StringRules *msg) { return _upb_hasbit(msg, 4); }
1328
1581
  UPB_INLINE uint64_t validate_StringRules_min_bytes(const validate_StringRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(24, 24), uint64_t); }
1329
- UPB_INLINE bool validate_StringRules_has_max_bytes(const validate_StringRules *msg) { return _upb_hasbit(msg, 4); }
1582
+ UPB_INLINE bool validate_StringRules_has_max_bytes(const validate_StringRules *msg) { return _upb_hasbit(msg, 5); }
1330
1583
  UPB_INLINE uint64_t validate_StringRules_max_bytes(const validate_StringRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(32, 32), uint64_t); }
1331
- UPB_INLINE bool validate_StringRules_has_pattern(const validate_StringRules *msg) { return _upb_hasbit(msg, 9); }
1584
+ UPB_INLINE bool validate_StringRules_has_pattern(const validate_StringRules *msg) { return _upb_hasbit(msg, 6); }
1332
1585
  UPB_INLINE upb_strview validate_StringRules_pattern(const validate_StringRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(68, 80), upb_strview); }
1333
- UPB_INLINE bool validate_StringRules_has_prefix(const validate_StringRules *msg) { return _upb_hasbit(msg, 10); }
1586
+ UPB_INLINE bool validate_StringRules_has_prefix(const validate_StringRules *msg) { return _upb_hasbit(msg, 7); }
1334
1587
  UPB_INLINE upb_strview validate_StringRules_prefix(const validate_StringRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(76, 96), upb_strview); }
1335
- UPB_INLINE bool validate_StringRules_has_suffix(const validate_StringRules *msg) { return _upb_hasbit(msg, 11); }
1588
+ UPB_INLINE bool validate_StringRules_has_suffix(const validate_StringRules *msg) { return _upb_hasbit(msg, 8); }
1336
1589
  UPB_INLINE upb_strview validate_StringRules_suffix(const validate_StringRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(84, 112), upb_strview); }
1337
- UPB_INLINE bool validate_StringRules_has_contains(const validate_StringRules *msg) { return _upb_hasbit(msg, 12); }
1590
+ UPB_INLINE bool validate_StringRules_has_contains(const validate_StringRules *msg) { return _upb_hasbit(msg, 9); }
1338
1591
  UPB_INLINE upb_strview validate_StringRules_contains(const validate_StringRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(92, 128), upb_strview); }
1339
1592
  UPB_INLINE upb_strview const* validate_StringRules_in(const validate_StringRules *msg, size_t *len) { return (upb_strview const*)_upb_array_accessor(msg, UPB_SIZE(108, 160), len); }
1340
1593
  UPB_INLINE upb_strview const* validate_StringRules_not_in(const validate_StringRules *msg, size_t *len) { return (upb_strview const*)_upb_array_accessor(msg, UPB_SIZE(112, 168), len); }
1341
- UPB_INLINE bool validate_StringRules_has_email(const validate_StringRules *msg) { return _upb_getoneofcase(msg, UPB_SIZE(128, 184)) == 12; }
1342
- UPB_INLINE bool validate_StringRules_email(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(120, 176), UPB_SIZE(128, 184), 12, false); }
1343
- UPB_INLINE bool validate_StringRules_has_hostname(const validate_StringRules *msg) { return _upb_getoneofcase(msg, UPB_SIZE(128, 184)) == 13; }
1344
- UPB_INLINE bool validate_StringRules_hostname(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(120, 176), UPB_SIZE(128, 184), 13, false); }
1345
- UPB_INLINE bool validate_StringRules_has_ip(const validate_StringRules *msg) { return _upb_getoneofcase(msg, UPB_SIZE(128, 184)) == 14; }
1346
- UPB_INLINE bool validate_StringRules_ip(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(120, 176), UPB_SIZE(128, 184), 14, false); }
1347
- UPB_INLINE bool validate_StringRules_has_ipv4(const validate_StringRules *msg) { return _upb_getoneofcase(msg, UPB_SIZE(128, 184)) == 15; }
1348
- UPB_INLINE bool validate_StringRules_ipv4(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(120, 176), UPB_SIZE(128, 184), 15, false); }
1349
- UPB_INLINE bool validate_StringRules_has_ipv6(const validate_StringRules *msg) { return _upb_getoneofcase(msg, UPB_SIZE(128, 184)) == 16; }
1350
- UPB_INLINE bool validate_StringRules_ipv6(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(120, 176), UPB_SIZE(128, 184), 16, false); }
1351
- UPB_INLINE bool validate_StringRules_has_uri(const validate_StringRules *msg) { return _upb_getoneofcase(msg, UPB_SIZE(128, 184)) == 17; }
1352
- UPB_INLINE bool validate_StringRules_uri(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(120, 176), UPB_SIZE(128, 184), 17, false); }
1353
- UPB_INLINE bool validate_StringRules_has_uri_ref(const validate_StringRules *msg) { return _upb_getoneofcase(msg, UPB_SIZE(128, 184)) == 18; }
1354
- UPB_INLINE bool validate_StringRules_uri_ref(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(120, 176), UPB_SIZE(128, 184), 18, false); }
1355
- UPB_INLINE bool validate_StringRules_has_len(const validate_StringRules *msg) { return _upb_hasbit(msg, 5); }
1594
+ UPB_INLINE bool validate_StringRules_has_email(const validate_StringRules *msg) { return _upb_getoneofcase(msg, UPB_SIZE(120, 180)) == 12; }
1595
+ UPB_INLINE bool validate_StringRules_email(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(116, 176), UPB_SIZE(120, 180), 12, false); }
1596
+ UPB_INLINE bool validate_StringRules_has_hostname(const validate_StringRules *msg) { return _upb_getoneofcase(msg, UPB_SIZE(120, 180)) == 13; }
1597
+ UPB_INLINE bool validate_StringRules_hostname(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(116, 176), UPB_SIZE(120, 180), 13, false); }
1598
+ UPB_INLINE bool validate_StringRules_has_ip(const validate_StringRules *msg) { return _upb_getoneofcase(msg, UPB_SIZE(120, 180)) == 14; }
1599
+ UPB_INLINE bool validate_StringRules_ip(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(116, 176), UPB_SIZE(120, 180), 14, false); }
1600
+ UPB_INLINE bool validate_StringRules_has_ipv4(const validate_StringRules *msg) { return _upb_getoneofcase(msg, UPB_SIZE(120, 180)) == 15; }
1601
+ UPB_INLINE bool validate_StringRules_ipv4(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(116, 176), UPB_SIZE(120, 180), 15, false); }
1602
+ UPB_INLINE bool validate_StringRules_has_ipv6(const validate_StringRules *msg) { return _upb_getoneofcase(msg, UPB_SIZE(120, 180)) == 16; }
1603
+ UPB_INLINE bool validate_StringRules_ipv6(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(116, 176), UPB_SIZE(120, 180), 16, false); }
1604
+ UPB_INLINE bool validate_StringRules_has_uri(const validate_StringRules *msg) { return _upb_getoneofcase(msg, UPB_SIZE(120, 180)) == 17; }
1605
+ UPB_INLINE bool validate_StringRules_uri(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(116, 176), UPB_SIZE(120, 180), 17, false); }
1606
+ UPB_INLINE bool validate_StringRules_has_uri_ref(const validate_StringRules *msg) { return _upb_getoneofcase(msg, UPB_SIZE(120, 180)) == 18; }
1607
+ UPB_INLINE bool validate_StringRules_uri_ref(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(116, 176), UPB_SIZE(120, 180), 18, false); }
1608
+ UPB_INLINE bool validate_StringRules_has_len(const validate_StringRules *msg) { return _upb_hasbit(msg, 10); }
1356
1609
  UPB_INLINE uint64_t validate_StringRules_len(const validate_StringRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(40, 40), uint64_t); }
1357
- UPB_INLINE bool validate_StringRules_has_len_bytes(const validate_StringRules *msg) { return _upb_hasbit(msg, 6); }
1610
+ UPB_INLINE bool validate_StringRules_has_len_bytes(const validate_StringRules *msg) { return _upb_hasbit(msg, 11); }
1358
1611
  UPB_INLINE uint64_t validate_StringRules_len_bytes(const validate_StringRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(48, 48), uint64_t); }
1359
- UPB_INLINE bool validate_StringRules_has_address(const validate_StringRules *msg) { return _upb_getoneofcase(msg, UPB_SIZE(128, 184)) == 21; }
1360
- UPB_INLINE bool validate_StringRules_address(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(120, 176), UPB_SIZE(128, 184), 21, false); }
1361
- UPB_INLINE bool validate_StringRules_has_uuid(const validate_StringRules *msg) { return _upb_getoneofcase(msg, UPB_SIZE(128, 184)) == 22; }
1362
- UPB_INLINE bool validate_StringRules_uuid(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(120, 176), UPB_SIZE(128, 184), 22, false); }
1363
- UPB_INLINE bool validate_StringRules_has_not_contains(const validate_StringRules *msg) { return _upb_hasbit(msg, 13); }
1612
+ UPB_INLINE bool validate_StringRules_has_address(const validate_StringRules *msg) { return _upb_getoneofcase(msg, UPB_SIZE(120, 180)) == 21; }
1613
+ UPB_INLINE bool validate_StringRules_address(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(116, 176), UPB_SIZE(120, 180), 21, false); }
1614
+ UPB_INLINE bool validate_StringRules_has_uuid(const validate_StringRules *msg) { return _upb_getoneofcase(msg, UPB_SIZE(120, 180)) == 22; }
1615
+ UPB_INLINE bool validate_StringRules_uuid(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(116, 176), UPB_SIZE(120, 180), 22, false); }
1616
+ UPB_INLINE bool validate_StringRules_has_not_contains(const validate_StringRules *msg) { return _upb_hasbit(msg, 12); }
1364
1617
  UPB_INLINE upb_strview validate_StringRules_not_contains(const validate_StringRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(100, 144), upb_strview); }
1365
- UPB_INLINE bool validate_StringRules_has_well_known_regex(const validate_StringRules *msg) { return _upb_getoneofcase(msg, UPB_SIZE(128, 184)) == 24; }
1366
- UPB_INLINE int32_t validate_StringRules_well_known_regex(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, int32_t, UPB_SIZE(120, 176), UPB_SIZE(128, 184), 24, 0); }
1367
- UPB_INLINE bool validate_StringRules_has_strict(const validate_StringRules *msg) { return _upb_hasbit(msg, 7); }
1618
+ UPB_INLINE bool validate_StringRules_has_well_known_regex(const validate_StringRules *msg) { return _upb_getoneofcase(msg, UPB_SIZE(120, 180)) == 24; }
1619
+ 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); }
1620
+ UPB_INLINE bool validate_StringRules_has_strict(const validate_StringRules *msg) { return _upb_hasbit(msg, 13); }
1368
1621
  UPB_INLINE bool validate_StringRules_strict(const validate_StringRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(56, 56), bool); }
1622
+ UPB_INLINE bool validate_StringRules_has_ignore_empty(const validate_StringRules *msg) { return _upb_hasbit(msg, 14); }
1623
+ UPB_INLINE bool validate_StringRules_ignore_empty(const validate_StringRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(57, 57), bool); }
1369
1624
 
1370
1625
  UPB_INLINE void validate_StringRules_set_const(validate_StringRules *msg, upb_strview value) {
1371
- _upb_sethas(msg, 8);
1626
+ _upb_sethas(msg, 1);
1372
1627
  *UPB_PTR_AT(msg, UPB_SIZE(60, 64), upb_strview) = value;
1373
1628
  }
1374
1629
  UPB_INLINE void validate_StringRules_set_min_len(validate_StringRules *msg, uint64_t value) {
1375
- _upb_sethas(msg, 1);
1630
+ _upb_sethas(msg, 2);
1376
1631
  *UPB_PTR_AT(msg, UPB_SIZE(8, 8), uint64_t) = value;
1377
1632
  }
1378
1633
  UPB_INLINE void validate_StringRules_set_max_len(validate_StringRules *msg, uint64_t value) {
1379
- _upb_sethas(msg, 2);
1634
+ _upb_sethas(msg, 3);
1380
1635
  *UPB_PTR_AT(msg, UPB_SIZE(16, 16), uint64_t) = value;
1381
1636
  }
1382
1637
  UPB_INLINE void validate_StringRules_set_min_bytes(validate_StringRules *msg, uint64_t value) {
1383
- _upb_sethas(msg, 3);
1638
+ _upb_sethas(msg, 4);
1384
1639
  *UPB_PTR_AT(msg, UPB_SIZE(24, 24), uint64_t) = value;
1385
1640
  }
1386
1641
  UPB_INLINE void validate_StringRules_set_max_bytes(validate_StringRules *msg, uint64_t value) {
1387
- _upb_sethas(msg, 4);
1642
+ _upb_sethas(msg, 5);
1388
1643
  *UPB_PTR_AT(msg, UPB_SIZE(32, 32), uint64_t) = value;
1389
1644
  }
1390
1645
  UPB_INLINE void validate_StringRules_set_pattern(validate_StringRules *msg, upb_strview value) {
1391
- _upb_sethas(msg, 9);
1646
+ _upb_sethas(msg, 6);
1392
1647
  *UPB_PTR_AT(msg, UPB_SIZE(68, 80), upb_strview) = value;
1393
1648
  }
1394
1649
  UPB_INLINE void validate_StringRules_set_prefix(validate_StringRules *msg, upb_strview value) {
1395
- _upb_sethas(msg, 10);
1650
+ _upb_sethas(msg, 7);
1396
1651
  *UPB_PTR_AT(msg, UPB_SIZE(76, 96), upb_strview) = value;
1397
1652
  }
1398
1653
  UPB_INLINE void validate_StringRules_set_suffix(validate_StringRules *msg, upb_strview value) {
1399
- _upb_sethas(msg, 11);
1654
+ _upb_sethas(msg, 8);
1400
1655
  *UPB_PTR_AT(msg, UPB_SIZE(84, 112), upb_strview) = value;
1401
1656
  }
1402
1657
  UPB_INLINE void validate_StringRules_set_contains(validate_StringRules *msg, upb_strview value) {
1403
- _upb_sethas(msg, 12);
1658
+ _upb_sethas(msg, 9);
1404
1659
  *UPB_PTR_AT(msg, UPB_SIZE(92, 128), upb_strview) = value;
1405
1660
  }
1406
1661
  UPB_INLINE upb_strview* validate_StringRules_mutable_in(validate_StringRules *msg, size_t *len) {
1407
1662
  return (upb_strview*)_upb_array_mutable_accessor(msg, UPB_SIZE(108, 160), len);
1408
1663
  }
1409
1664
  UPB_INLINE upb_strview* validate_StringRules_resize_in(validate_StringRules *msg, size_t len, upb_arena *arena) {
1410
- return (upb_strview*)_upb_array_resize_accessor(msg, UPB_SIZE(108, 160), len, UPB_TYPE_STRING, arena);
1665
+ return (upb_strview*)_upb_array_resize_accessor2(msg, UPB_SIZE(108, 160), len, UPB_SIZE(3, 4), arena);
1411
1666
  }
1412
1667
  UPB_INLINE bool validate_StringRules_add_in(validate_StringRules *msg, upb_strview val, upb_arena *arena) {
1413
- return _upb_array_append_accessor(msg, UPB_SIZE(108, 160), UPB_SIZE(8, 16), UPB_TYPE_STRING, &val,
1668
+ return _upb_array_append_accessor2(msg, UPB_SIZE(108, 160), UPB_SIZE(3, 4), &val,
1414
1669
  arena);
1415
1670
  }
1416
1671
  UPB_INLINE upb_strview* validate_StringRules_mutable_not_in(validate_StringRules *msg, size_t *len) {
1417
1672
  return (upb_strview*)_upb_array_mutable_accessor(msg, UPB_SIZE(112, 168), len);
1418
1673
  }
1419
1674
  UPB_INLINE upb_strview* validate_StringRules_resize_not_in(validate_StringRules *msg, size_t len, upb_arena *arena) {
1420
- return (upb_strview*)_upb_array_resize_accessor(msg, UPB_SIZE(112, 168), len, UPB_TYPE_STRING, arena);
1675
+ return (upb_strview*)_upb_array_resize_accessor2(msg, UPB_SIZE(112, 168), len, UPB_SIZE(3, 4), arena);
1421
1676
  }
1422
1677
  UPB_INLINE bool validate_StringRules_add_not_in(validate_StringRules *msg, upb_strview val, upb_arena *arena) {
1423
- return _upb_array_append_accessor(msg, UPB_SIZE(112, 168), UPB_SIZE(8, 16), UPB_TYPE_STRING, &val,
1678
+ return _upb_array_append_accessor2(msg, UPB_SIZE(112, 168), UPB_SIZE(3, 4), &val,
1424
1679
  arena);
1425
1680
  }
1426
1681
  UPB_INLINE void validate_StringRules_set_email(validate_StringRules *msg, bool value) {
1427
- UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(120, 176), value, UPB_SIZE(128, 184), 12);
1682
+ UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(116, 176), value, UPB_SIZE(120, 180), 12);
1428
1683
  }
1429
1684
  UPB_INLINE void validate_StringRules_set_hostname(validate_StringRules *msg, bool value) {
1430
- UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(120, 176), value, UPB_SIZE(128, 184), 13);
1685
+ UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(116, 176), value, UPB_SIZE(120, 180), 13);
1431
1686
  }
1432
1687
  UPB_INLINE void validate_StringRules_set_ip(validate_StringRules *msg, bool value) {
1433
- UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(120, 176), value, UPB_SIZE(128, 184), 14);
1688
+ UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(116, 176), value, UPB_SIZE(120, 180), 14);
1434
1689
  }
1435
1690
  UPB_INLINE void validate_StringRules_set_ipv4(validate_StringRules *msg, bool value) {
1436
- UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(120, 176), value, UPB_SIZE(128, 184), 15);
1691
+ UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(116, 176), value, UPB_SIZE(120, 180), 15);
1437
1692
  }
1438
1693
  UPB_INLINE void validate_StringRules_set_ipv6(validate_StringRules *msg, bool value) {
1439
- UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(120, 176), value, UPB_SIZE(128, 184), 16);
1694
+ UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(116, 176), value, UPB_SIZE(120, 180), 16);
1440
1695
  }
1441
1696
  UPB_INLINE void validate_StringRules_set_uri(validate_StringRules *msg, bool value) {
1442
- UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(120, 176), value, UPB_SIZE(128, 184), 17);
1697
+ UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(116, 176), value, UPB_SIZE(120, 180), 17);
1443
1698
  }
1444
1699
  UPB_INLINE void validate_StringRules_set_uri_ref(validate_StringRules *msg, bool value) {
1445
- UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(120, 176), value, UPB_SIZE(128, 184), 18);
1700
+ UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(116, 176), value, UPB_SIZE(120, 180), 18);
1446
1701
  }
1447
1702
  UPB_INLINE void validate_StringRules_set_len(validate_StringRules *msg, uint64_t value) {
1448
- _upb_sethas(msg, 5);
1703
+ _upb_sethas(msg, 10);
1449
1704
  *UPB_PTR_AT(msg, UPB_SIZE(40, 40), uint64_t) = value;
1450
1705
  }
1451
1706
  UPB_INLINE void validate_StringRules_set_len_bytes(validate_StringRules *msg, uint64_t value) {
1452
- _upb_sethas(msg, 6);
1707
+ _upb_sethas(msg, 11);
1453
1708
  *UPB_PTR_AT(msg, UPB_SIZE(48, 48), uint64_t) = value;
1454
1709
  }
1455
1710
  UPB_INLINE void validate_StringRules_set_address(validate_StringRules *msg, bool value) {
1456
- UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(120, 176), value, UPB_SIZE(128, 184), 21);
1711
+ UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(116, 176), value, UPB_SIZE(120, 180), 21);
1457
1712
  }
1458
1713
  UPB_INLINE void validate_StringRules_set_uuid(validate_StringRules *msg, bool value) {
1459
- UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(120, 176), value, UPB_SIZE(128, 184), 22);
1714
+ UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(116, 176), value, UPB_SIZE(120, 180), 22);
1460
1715
  }
1461
1716
  UPB_INLINE void validate_StringRules_set_not_contains(validate_StringRules *msg, upb_strview value) {
1462
- _upb_sethas(msg, 13);
1717
+ _upb_sethas(msg, 12);
1463
1718
  *UPB_PTR_AT(msg, UPB_SIZE(100, 144), upb_strview) = value;
1464
1719
  }
1465
1720
  UPB_INLINE void validate_StringRules_set_well_known_regex(validate_StringRules *msg, int32_t value) {
1466
- UPB_WRITE_ONEOF(msg, int32_t, UPB_SIZE(120, 176), value, UPB_SIZE(128, 184), 24);
1721
+ UPB_WRITE_ONEOF(msg, int32_t, UPB_SIZE(116, 176), value, UPB_SIZE(120, 180), 24);
1467
1722
  }
1468
1723
  UPB_INLINE void validate_StringRules_set_strict(validate_StringRules *msg, bool value) {
1469
- _upb_sethas(msg, 7);
1724
+ _upb_sethas(msg, 13);
1470
1725
  *UPB_PTR_AT(msg, UPB_SIZE(56, 56), bool) = value;
1471
1726
  }
1727
+ UPB_INLINE void validate_StringRules_set_ignore_empty(validate_StringRules *msg, bool value) {
1728
+ _upb_sethas(msg, 14);
1729
+ *UPB_PTR_AT(msg, UPB_SIZE(57, 57), bool) = value;
1730
+ }
1472
1731
 
1473
1732
  /* validate.BytesRules */
1474
1733
 
@@ -1478,7 +1737,19 @@ UPB_INLINE validate_BytesRules *validate_BytesRules_new(upb_arena *arena) {
1478
1737
  UPB_INLINE validate_BytesRules *validate_BytesRules_parse(const char *buf, size_t size,
1479
1738
  upb_arena *arena) {
1480
1739
  validate_BytesRules *ret = validate_BytesRules_new(arena);
1481
- return (ret && upb_decode(buf, size, ret, &validate_BytesRules_msginit, arena)) ? ret : NULL;
1740
+ if (!ret) return NULL;
1741
+ if (!upb_decode(buf, size, ret, &validate_BytesRules_msginit, arena)) return NULL;
1742
+ return ret;
1743
+ }
1744
+ UPB_INLINE validate_BytesRules *validate_BytesRules_parse_ex(const char *buf, size_t size,
1745
+ const upb_extreg *extreg, int options,
1746
+ upb_arena *arena) {
1747
+ validate_BytesRules *ret = validate_BytesRules_new(arena);
1748
+ if (!ret) return NULL;
1749
+ if (!_upb_decode(buf, size, ret, &validate_BytesRules_msginit, extreg, options, arena)) {
1750
+ return NULL;
1751
+ }
1752
+ return ret;
1482
1753
  }
1483
1754
  UPB_INLINE char *validate_BytesRules_serialize(const validate_BytesRules *msg, upb_arena *arena, size_t *len) {
1484
1755
  return upb_encode(msg, &validate_BytesRules_msginit, arena, len);
@@ -1490,94 +1761,100 @@ typedef enum {
1490
1761
  validate_BytesRules_well_known_ipv6 = 12,
1491
1762
  validate_BytesRules_well_known_NOT_SET = 0
1492
1763
  } validate_BytesRules_well_known_oneofcases;
1493
- 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); }
1764
+ 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); }
1494
1765
 
1495
- UPB_INLINE bool validate_BytesRules_has_const(const validate_BytesRules *msg) { return _upb_hasbit(msg, 4); }
1496
- UPB_INLINE upb_strview validate_BytesRules_const(const validate_BytesRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(32, 32), upb_strview); }
1497
- UPB_INLINE bool validate_BytesRules_has_min_len(const validate_BytesRules *msg) { return _upb_hasbit(msg, 1); }
1766
+ UPB_INLINE bool validate_BytesRules_has_const(const validate_BytesRules *msg) { return _upb_hasbit(msg, 1); }
1767
+ UPB_INLINE upb_strview validate_BytesRules_const(const validate_BytesRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(36, 40), upb_strview); }
1768
+ UPB_INLINE bool validate_BytesRules_has_min_len(const validate_BytesRules *msg) { return _upb_hasbit(msg, 2); }
1498
1769
  UPB_INLINE uint64_t validate_BytesRules_min_len(const validate_BytesRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(8, 8), uint64_t); }
1499
- UPB_INLINE bool validate_BytesRules_has_max_len(const validate_BytesRules *msg) { return _upb_hasbit(msg, 2); }
1770
+ UPB_INLINE bool validate_BytesRules_has_max_len(const validate_BytesRules *msg) { return _upb_hasbit(msg, 3); }
1500
1771
  UPB_INLINE uint64_t validate_BytesRules_max_len(const validate_BytesRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(16, 16), uint64_t); }
1501
- UPB_INLINE bool validate_BytesRules_has_pattern(const validate_BytesRules *msg) { return _upb_hasbit(msg, 5); }
1502
- UPB_INLINE upb_strview validate_BytesRules_pattern(const validate_BytesRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(40, 48), upb_strview); }
1503
- UPB_INLINE bool validate_BytesRules_has_prefix(const validate_BytesRules *msg) { return _upb_hasbit(msg, 6); }
1504
- UPB_INLINE upb_strview validate_BytesRules_prefix(const validate_BytesRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(48, 64), upb_strview); }
1505
- UPB_INLINE bool validate_BytesRules_has_suffix(const validate_BytesRules *msg) { return _upb_hasbit(msg, 7); }
1506
- UPB_INLINE upb_strview validate_BytesRules_suffix(const validate_BytesRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(56, 80), upb_strview); }
1507
- UPB_INLINE bool validate_BytesRules_has_contains(const validate_BytesRules *msg) { return _upb_hasbit(msg, 8); }
1508
- UPB_INLINE upb_strview validate_BytesRules_contains(const validate_BytesRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(64, 96), upb_strview); }
1509
- 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); }
1510
- 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); }
1511
- UPB_INLINE bool validate_BytesRules_has_ip(const validate_BytesRules *msg) { return _upb_getoneofcase(msg, UPB_SIZE(84, 132)) == 10; }
1512
- 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); }
1513
- UPB_INLINE bool validate_BytesRules_has_ipv4(const validate_BytesRules *msg) { return _upb_getoneofcase(msg, UPB_SIZE(84, 132)) == 11; }
1514
- 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); }
1515
- UPB_INLINE bool validate_BytesRules_has_ipv6(const validate_BytesRules *msg) { return _upb_getoneofcase(msg, UPB_SIZE(84, 132)) == 12; }
1516
- 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); }
1517
- UPB_INLINE bool validate_BytesRules_has_len(const validate_BytesRules *msg) { return _upb_hasbit(msg, 3); }
1772
+ UPB_INLINE bool validate_BytesRules_has_pattern(const validate_BytesRules *msg) { return _upb_hasbit(msg, 4); }
1773
+ UPB_INLINE upb_strview validate_BytesRules_pattern(const validate_BytesRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(44, 56), upb_strview); }
1774
+ UPB_INLINE bool validate_BytesRules_has_prefix(const validate_BytesRules *msg) { return _upb_hasbit(msg, 5); }
1775
+ UPB_INLINE upb_strview validate_BytesRules_prefix(const validate_BytesRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(52, 72), upb_strview); }
1776
+ UPB_INLINE bool validate_BytesRules_has_suffix(const validate_BytesRules *msg) { return _upb_hasbit(msg, 6); }
1777
+ UPB_INLINE upb_strview validate_BytesRules_suffix(const validate_BytesRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(60, 88), upb_strview); }
1778
+ UPB_INLINE bool validate_BytesRules_has_contains(const validate_BytesRules *msg) { return _upb_hasbit(msg, 7); }
1779
+ UPB_INLINE upb_strview validate_BytesRules_contains(const validate_BytesRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(68, 104), upb_strview); }
1780
+ 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); }
1781
+ 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); }
1782
+ UPB_INLINE bool validate_BytesRules_has_ip(const validate_BytesRules *msg) { return _upb_getoneofcase(msg, UPB_SIZE(88, 140)) == 10; }
1783
+ 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); }
1784
+ UPB_INLINE bool validate_BytesRules_has_ipv4(const validate_BytesRules *msg) { return _upb_getoneofcase(msg, UPB_SIZE(88, 140)) == 11; }
1785
+ 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); }
1786
+ UPB_INLINE bool validate_BytesRules_has_ipv6(const validate_BytesRules *msg) { return _upb_getoneofcase(msg, UPB_SIZE(88, 140)) == 12; }
1787
+ 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); }
1788
+ UPB_INLINE bool validate_BytesRules_has_len(const validate_BytesRules *msg) { return _upb_hasbit(msg, 8); }
1518
1789
  UPB_INLINE uint64_t validate_BytesRules_len(const validate_BytesRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(24, 24), uint64_t); }
1790
+ UPB_INLINE bool validate_BytesRules_has_ignore_empty(const validate_BytesRules *msg) { return _upb_hasbit(msg, 9); }
1791
+ UPB_INLINE bool validate_BytesRules_ignore_empty(const validate_BytesRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(32, 32), bool); }
1519
1792
 
1520
1793
  UPB_INLINE void validate_BytesRules_set_const(validate_BytesRules *msg, upb_strview value) {
1521
- _upb_sethas(msg, 4);
1522
- *UPB_PTR_AT(msg, UPB_SIZE(32, 32), upb_strview) = value;
1794
+ _upb_sethas(msg, 1);
1795
+ *UPB_PTR_AT(msg, UPB_SIZE(36, 40), upb_strview) = value;
1523
1796
  }
1524
1797
  UPB_INLINE void validate_BytesRules_set_min_len(validate_BytesRules *msg, uint64_t value) {
1525
- _upb_sethas(msg, 1);
1798
+ _upb_sethas(msg, 2);
1526
1799
  *UPB_PTR_AT(msg, UPB_SIZE(8, 8), uint64_t) = value;
1527
1800
  }
1528
1801
  UPB_INLINE void validate_BytesRules_set_max_len(validate_BytesRules *msg, uint64_t value) {
1529
- _upb_sethas(msg, 2);
1802
+ _upb_sethas(msg, 3);
1530
1803
  *UPB_PTR_AT(msg, UPB_SIZE(16, 16), uint64_t) = value;
1531
1804
  }
1532
1805
  UPB_INLINE void validate_BytesRules_set_pattern(validate_BytesRules *msg, upb_strview value) {
1533
- _upb_sethas(msg, 5);
1534
- *UPB_PTR_AT(msg, UPB_SIZE(40, 48), upb_strview) = value;
1806
+ _upb_sethas(msg, 4);
1807
+ *UPB_PTR_AT(msg, UPB_SIZE(44, 56), upb_strview) = value;
1535
1808
  }
1536
1809
  UPB_INLINE void validate_BytesRules_set_prefix(validate_BytesRules *msg, upb_strview value) {
1537
- _upb_sethas(msg, 6);
1538
- *UPB_PTR_AT(msg, UPB_SIZE(48, 64), upb_strview) = value;
1810
+ _upb_sethas(msg, 5);
1811
+ *UPB_PTR_AT(msg, UPB_SIZE(52, 72), upb_strview) = value;
1539
1812
  }
1540
1813
  UPB_INLINE void validate_BytesRules_set_suffix(validate_BytesRules *msg, upb_strview value) {
1541
- _upb_sethas(msg, 7);
1542
- *UPB_PTR_AT(msg, UPB_SIZE(56, 80), upb_strview) = value;
1814
+ _upb_sethas(msg, 6);
1815
+ *UPB_PTR_AT(msg, UPB_SIZE(60, 88), upb_strview) = value;
1543
1816
  }
1544
1817
  UPB_INLINE void validate_BytesRules_set_contains(validate_BytesRules *msg, upb_strview value) {
1545
- _upb_sethas(msg, 8);
1546
- *UPB_PTR_AT(msg, UPB_SIZE(64, 96), upb_strview) = value;
1818
+ _upb_sethas(msg, 7);
1819
+ *UPB_PTR_AT(msg, UPB_SIZE(68, 104), upb_strview) = value;
1547
1820
  }
1548
1821
  UPB_INLINE upb_strview* validate_BytesRules_mutable_in(validate_BytesRules *msg, size_t *len) {
1549
- return (upb_strview*)_upb_array_mutable_accessor(msg, UPB_SIZE(72, 112), len);
1822
+ return (upb_strview*)_upb_array_mutable_accessor(msg, UPB_SIZE(76, 120), len);
1550
1823
  }
1551
1824
  UPB_INLINE upb_strview* validate_BytesRules_resize_in(validate_BytesRules *msg, size_t len, upb_arena *arena) {
1552
- return (upb_strview*)_upb_array_resize_accessor(msg, UPB_SIZE(72, 112), len, UPB_TYPE_STRING, arena);
1825
+ return (upb_strview*)_upb_array_resize_accessor2(msg, UPB_SIZE(76, 120), len, UPB_SIZE(3, 4), arena);
1553
1826
  }
1554
1827
  UPB_INLINE bool validate_BytesRules_add_in(validate_BytesRules *msg, upb_strview val, upb_arena *arena) {
1555
- return _upb_array_append_accessor(msg, UPB_SIZE(72, 112), UPB_SIZE(8, 16), UPB_TYPE_STRING, &val,
1828
+ return _upb_array_append_accessor2(msg, UPB_SIZE(76, 120), UPB_SIZE(3, 4), &val,
1556
1829
  arena);
1557
1830
  }
1558
1831
  UPB_INLINE upb_strview* validate_BytesRules_mutable_not_in(validate_BytesRules *msg, size_t *len) {
1559
- return (upb_strview*)_upb_array_mutable_accessor(msg, UPB_SIZE(76, 120), len);
1832
+ return (upb_strview*)_upb_array_mutable_accessor(msg, UPB_SIZE(80, 128), len);
1560
1833
  }
1561
1834
  UPB_INLINE upb_strview* validate_BytesRules_resize_not_in(validate_BytesRules *msg, size_t len, upb_arena *arena) {
1562
- return (upb_strview*)_upb_array_resize_accessor(msg, UPB_SIZE(76, 120), len, UPB_TYPE_STRING, arena);
1835
+ return (upb_strview*)_upb_array_resize_accessor2(msg, UPB_SIZE(80, 128), len, UPB_SIZE(3, 4), arena);
1563
1836
  }
1564
1837
  UPB_INLINE bool validate_BytesRules_add_not_in(validate_BytesRules *msg, upb_strview val, upb_arena *arena) {
1565
- return _upb_array_append_accessor(msg, UPB_SIZE(76, 120), UPB_SIZE(8, 16), UPB_TYPE_STRING, &val,
1838
+ return _upb_array_append_accessor2(msg, UPB_SIZE(80, 128), UPB_SIZE(3, 4), &val,
1566
1839
  arena);
1567
1840
  }
1568
1841
  UPB_INLINE void validate_BytesRules_set_ip(validate_BytesRules *msg, bool value) {
1569
- UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(80, 128), value, UPB_SIZE(84, 132), 10);
1842
+ UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(84, 136), value, UPB_SIZE(88, 140), 10);
1570
1843
  }
1571
1844
  UPB_INLINE void validate_BytesRules_set_ipv4(validate_BytesRules *msg, bool value) {
1572
- UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(80, 128), value, UPB_SIZE(84, 132), 11);
1845
+ UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(84, 136), value, UPB_SIZE(88, 140), 11);
1573
1846
  }
1574
1847
  UPB_INLINE void validate_BytesRules_set_ipv6(validate_BytesRules *msg, bool value) {
1575
- UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(80, 128), value, UPB_SIZE(84, 132), 12);
1848
+ UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(84, 136), value, UPB_SIZE(88, 140), 12);
1576
1849
  }
1577
1850
  UPB_INLINE void validate_BytesRules_set_len(validate_BytesRules *msg, uint64_t value) {
1578
- _upb_sethas(msg, 3);
1851
+ _upb_sethas(msg, 8);
1579
1852
  *UPB_PTR_AT(msg, UPB_SIZE(24, 24), uint64_t) = value;
1580
1853
  }
1854
+ UPB_INLINE void validate_BytesRules_set_ignore_empty(validate_BytesRules *msg, bool value) {
1855
+ _upb_sethas(msg, 9);
1856
+ *UPB_PTR_AT(msg, UPB_SIZE(32, 32), bool) = value;
1857
+ }
1581
1858
 
1582
1859
  /* validate.EnumRules */
1583
1860
 
@@ -1587,7 +1864,19 @@ UPB_INLINE validate_EnumRules *validate_EnumRules_new(upb_arena *arena) {
1587
1864
  UPB_INLINE validate_EnumRules *validate_EnumRules_parse(const char *buf, size_t size,
1588
1865
  upb_arena *arena) {
1589
1866
  validate_EnumRules *ret = validate_EnumRules_new(arena);
1590
- return (ret && upb_decode(buf, size, ret, &validate_EnumRules_msginit, arena)) ? ret : NULL;
1867
+ if (!ret) return NULL;
1868
+ if (!upb_decode(buf, size, ret, &validate_EnumRules_msginit, arena)) return NULL;
1869
+ return ret;
1870
+ }
1871
+ UPB_INLINE validate_EnumRules *validate_EnumRules_parse_ex(const char *buf, size_t size,
1872
+ const upb_extreg *extreg, int options,
1873
+ upb_arena *arena) {
1874
+ validate_EnumRules *ret = validate_EnumRules_new(arena);
1875
+ if (!ret) return NULL;
1876
+ if (!_upb_decode(buf, size, ret, &validate_EnumRules_msginit, extreg, options, arena)) {
1877
+ return NULL;
1878
+ }
1879
+ return ret;
1591
1880
  }
1592
1881
  UPB_INLINE char *validate_EnumRules_serialize(const validate_EnumRules *msg, upb_arena *arena, size_t *len) {
1593
1882
  return upb_encode(msg, &validate_EnumRules_msginit, arena, len);
@@ -1612,20 +1901,20 @@ UPB_INLINE int32_t* validate_EnumRules_mutable_in(validate_EnumRules *msg, size_
1612
1901
  return (int32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(12, 16), len);
1613
1902
  }
1614
1903
  UPB_INLINE int32_t* validate_EnumRules_resize_in(validate_EnumRules *msg, size_t len, upb_arena *arena) {
1615
- return (int32_t*)_upb_array_resize_accessor(msg, UPB_SIZE(12, 16), len, UPB_TYPE_INT32, arena);
1904
+ return (int32_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(12, 16), len, 2, arena);
1616
1905
  }
1617
1906
  UPB_INLINE bool validate_EnumRules_add_in(validate_EnumRules *msg, int32_t val, upb_arena *arena) {
1618
- return _upb_array_append_accessor(msg, UPB_SIZE(12, 16), UPB_SIZE(4, 4), UPB_TYPE_INT32, &val,
1907
+ return _upb_array_append_accessor2(msg, UPB_SIZE(12, 16), 2, &val,
1619
1908
  arena);
1620
1909
  }
1621
1910
  UPB_INLINE int32_t* validate_EnumRules_mutable_not_in(validate_EnumRules *msg, size_t *len) {
1622
1911
  return (int32_t*)_upb_array_mutable_accessor(msg, UPB_SIZE(16, 24), len);
1623
1912
  }
1624
1913
  UPB_INLINE int32_t* validate_EnumRules_resize_not_in(validate_EnumRules *msg, size_t len, upb_arena *arena) {
1625
- return (int32_t*)_upb_array_resize_accessor(msg, UPB_SIZE(16, 24), len, UPB_TYPE_INT32, arena);
1914
+ return (int32_t*)_upb_array_resize_accessor2(msg, UPB_SIZE(16, 24), len, 2, arena);
1626
1915
  }
1627
1916
  UPB_INLINE bool validate_EnumRules_add_not_in(validate_EnumRules *msg, int32_t val, upb_arena *arena) {
1628
- return _upb_array_append_accessor(msg, UPB_SIZE(16, 24), UPB_SIZE(4, 4), UPB_TYPE_INT32, &val,
1917
+ return _upb_array_append_accessor2(msg, UPB_SIZE(16, 24), 2, &val,
1629
1918
  arena);
1630
1919
  }
1631
1920
 
@@ -1637,7 +1926,19 @@ UPB_INLINE validate_MessageRules *validate_MessageRules_new(upb_arena *arena) {
1637
1926
  UPB_INLINE validate_MessageRules *validate_MessageRules_parse(const char *buf, size_t size,
1638
1927
  upb_arena *arena) {
1639
1928
  validate_MessageRules *ret = validate_MessageRules_new(arena);
1640
- return (ret && upb_decode(buf, size, ret, &validate_MessageRules_msginit, arena)) ? ret : NULL;
1929
+ if (!ret) return NULL;
1930
+ if (!upb_decode(buf, size, ret, &validate_MessageRules_msginit, arena)) return NULL;
1931
+ return ret;
1932
+ }
1933
+ UPB_INLINE validate_MessageRules *validate_MessageRules_parse_ex(const char *buf, size_t size,
1934
+ const upb_extreg *extreg, int options,
1935
+ upb_arena *arena) {
1936
+ validate_MessageRules *ret = validate_MessageRules_new(arena);
1937
+ if (!ret) return NULL;
1938
+ if (!_upb_decode(buf, size, ret, &validate_MessageRules_msginit, extreg, options, arena)) {
1939
+ return NULL;
1940
+ }
1941
+ return ret;
1641
1942
  }
1642
1943
  UPB_INLINE char *validate_MessageRules_serialize(const validate_MessageRules *msg, upb_arena *arena, size_t *len) {
1643
1944
  return upb_encode(msg, &validate_MessageRules_msginit, arena, len);
@@ -1665,7 +1966,19 @@ UPB_INLINE validate_RepeatedRules *validate_RepeatedRules_new(upb_arena *arena)
1665
1966
  UPB_INLINE validate_RepeatedRules *validate_RepeatedRules_parse(const char *buf, size_t size,
1666
1967
  upb_arena *arena) {
1667
1968
  validate_RepeatedRules *ret = validate_RepeatedRules_new(arena);
1668
- return (ret && upb_decode(buf, size, ret, &validate_RepeatedRules_msginit, arena)) ? ret : NULL;
1969
+ if (!ret) return NULL;
1970
+ if (!upb_decode(buf, size, ret, &validate_RepeatedRules_msginit, arena)) return NULL;
1971
+ return ret;
1972
+ }
1973
+ UPB_INLINE validate_RepeatedRules *validate_RepeatedRules_parse_ex(const char *buf, size_t size,
1974
+ const upb_extreg *extreg, int options,
1975
+ upb_arena *arena) {
1976
+ validate_RepeatedRules *ret = validate_RepeatedRules_new(arena);
1977
+ if (!ret) return NULL;
1978
+ if (!_upb_decode(buf, size, ret, &validate_RepeatedRules_msginit, extreg, options, arena)) {
1979
+ return NULL;
1980
+ }
1981
+ return ret;
1669
1982
  }
1670
1983
  UPB_INLINE char *validate_RepeatedRules_serialize(const validate_RepeatedRules *msg, upb_arena *arena, size_t *len) {
1671
1984
  return upb_encode(msg, &validate_RepeatedRules_msginit, arena, len);
@@ -1679,6 +1992,8 @@ UPB_INLINE bool validate_RepeatedRules_has_unique(const validate_RepeatedRules *
1679
1992
  UPB_INLINE bool validate_RepeatedRules_unique(const validate_RepeatedRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(24, 24), bool); }
1680
1993
  UPB_INLINE bool validate_RepeatedRules_has_items(const validate_RepeatedRules *msg) { return _upb_hasbit(msg, 4); }
1681
1994
  UPB_INLINE const validate_FieldRules* validate_RepeatedRules_items(const validate_RepeatedRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(28, 32), const validate_FieldRules*); }
1995
+ UPB_INLINE bool validate_RepeatedRules_has_ignore_empty(const validate_RepeatedRules *msg) { return _upb_hasbit(msg, 5); }
1996
+ UPB_INLINE bool validate_RepeatedRules_ignore_empty(const validate_RepeatedRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(25, 25), bool); }
1682
1997
 
1683
1998
  UPB_INLINE void validate_RepeatedRules_set_min_items(validate_RepeatedRules *msg, uint64_t value) {
1684
1999
  _upb_sethas(msg, 1);
@@ -1705,6 +2020,10 @@ UPB_INLINE struct validate_FieldRules* validate_RepeatedRules_mutable_items(vali
1705
2020
  }
1706
2021
  return sub;
1707
2022
  }
2023
+ UPB_INLINE void validate_RepeatedRules_set_ignore_empty(validate_RepeatedRules *msg, bool value) {
2024
+ _upb_sethas(msg, 5);
2025
+ *UPB_PTR_AT(msg, UPB_SIZE(25, 25), bool) = value;
2026
+ }
1708
2027
 
1709
2028
  /* validate.MapRules */
1710
2029
 
@@ -1714,7 +2033,19 @@ UPB_INLINE validate_MapRules *validate_MapRules_new(upb_arena *arena) {
1714
2033
  UPB_INLINE validate_MapRules *validate_MapRules_parse(const char *buf, size_t size,
1715
2034
  upb_arena *arena) {
1716
2035
  validate_MapRules *ret = validate_MapRules_new(arena);
1717
- return (ret && upb_decode(buf, size, ret, &validate_MapRules_msginit, arena)) ? ret : NULL;
2036
+ if (!ret) return NULL;
2037
+ if (!upb_decode(buf, size, ret, &validate_MapRules_msginit, arena)) return NULL;
2038
+ return ret;
2039
+ }
2040
+ UPB_INLINE validate_MapRules *validate_MapRules_parse_ex(const char *buf, size_t size,
2041
+ const upb_extreg *extreg, int options,
2042
+ upb_arena *arena) {
2043
+ validate_MapRules *ret = validate_MapRules_new(arena);
2044
+ if (!ret) return NULL;
2045
+ if (!_upb_decode(buf, size, ret, &validate_MapRules_msginit, extreg, options, arena)) {
2046
+ return NULL;
2047
+ }
2048
+ return ret;
1718
2049
  }
1719
2050
  UPB_INLINE char *validate_MapRules_serialize(const validate_MapRules *msg, upb_arena *arena, size_t *len) {
1720
2051
  return upb_encode(msg, &validate_MapRules_msginit, arena, len);
@@ -1730,6 +2061,8 @@ UPB_INLINE bool validate_MapRules_has_keys(const validate_MapRules *msg) { retur
1730
2061
  UPB_INLINE const validate_FieldRules* validate_MapRules_keys(const validate_MapRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(28, 32), const validate_FieldRules*); }
1731
2062
  UPB_INLINE bool validate_MapRules_has_values(const validate_MapRules *msg) { return _upb_hasbit(msg, 5); }
1732
2063
  UPB_INLINE const validate_FieldRules* validate_MapRules_values(const validate_MapRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(32, 40), const validate_FieldRules*); }
2064
+ UPB_INLINE bool validate_MapRules_has_ignore_empty(const validate_MapRules *msg) { return _upb_hasbit(msg, 6); }
2065
+ UPB_INLINE bool validate_MapRules_ignore_empty(const validate_MapRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(25, 25), bool); }
1733
2066
 
1734
2067
  UPB_INLINE void validate_MapRules_set_min_pairs(validate_MapRules *msg, uint64_t value) {
1735
2068
  _upb_sethas(msg, 1);
@@ -1769,6 +2102,10 @@ UPB_INLINE struct validate_FieldRules* validate_MapRules_mutable_values(validate
1769
2102
  }
1770
2103
  return sub;
1771
2104
  }
2105
+ UPB_INLINE void validate_MapRules_set_ignore_empty(validate_MapRules *msg, bool value) {
2106
+ _upb_sethas(msg, 6);
2107
+ *UPB_PTR_AT(msg, UPB_SIZE(25, 25), bool) = value;
2108
+ }
1772
2109
 
1773
2110
  /* validate.AnyRules */
1774
2111
 
@@ -1778,7 +2115,19 @@ UPB_INLINE validate_AnyRules *validate_AnyRules_new(upb_arena *arena) {
1778
2115
  UPB_INLINE validate_AnyRules *validate_AnyRules_parse(const char *buf, size_t size,
1779
2116
  upb_arena *arena) {
1780
2117
  validate_AnyRules *ret = validate_AnyRules_new(arena);
1781
- return (ret && upb_decode(buf, size, ret, &validate_AnyRules_msginit, arena)) ? ret : NULL;
2118
+ if (!ret) return NULL;
2119
+ if (!upb_decode(buf, size, ret, &validate_AnyRules_msginit, arena)) return NULL;
2120
+ return ret;
2121
+ }
2122
+ UPB_INLINE validate_AnyRules *validate_AnyRules_parse_ex(const char *buf, size_t size,
2123
+ const upb_extreg *extreg, int options,
2124
+ upb_arena *arena) {
2125
+ validate_AnyRules *ret = validate_AnyRules_new(arena);
2126
+ if (!ret) return NULL;
2127
+ if (!_upb_decode(buf, size, ret, &validate_AnyRules_msginit, extreg, options, arena)) {
2128
+ return NULL;
2129
+ }
2130
+ return ret;
1782
2131
  }
1783
2132
  UPB_INLINE char *validate_AnyRules_serialize(const validate_AnyRules *msg, upb_arena *arena, size_t *len) {
1784
2133
  return upb_encode(msg, &validate_AnyRules_msginit, arena, len);
@@ -1797,20 +2146,20 @@ UPB_INLINE upb_strview* validate_AnyRules_mutable_in(validate_AnyRules *msg, siz
1797
2146
  return (upb_strview*)_upb_array_mutable_accessor(msg, UPB_SIZE(4, 8), len);
1798
2147
  }
1799
2148
  UPB_INLINE upb_strview* validate_AnyRules_resize_in(validate_AnyRules *msg, size_t len, upb_arena *arena) {
1800
- return (upb_strview*)_upb_array_resize_accessor(msg, UPB_SIZE(4, 8), len, UPB_TYPE_STRING, arena);
2149
+ return (upb_strview*)_upb_array_resize_accessor2(msg, UPB_SIZE(4, 8), len, UPB_SIZE(3, 4), arena);
1801
2150
  }
1802
2151
  UPB_INLINE bool validate_AnyRules_add_in(validate_AnyRules *msg, upb_strview val, upb_arena *arena) {
1803
- return _upb_array_append_accessor(msg, UPB_SIZE(4, 8), UPB_SIZE(8, 16), UPB_TYPE_STRING, &val,
2152
+ return _upb_array_append_accessor2(msg, UPB_SIZE(4, 8), UPB_SIZE(3, 4), &val,
1804
2153
  arena);
1805
2154
  }
1806
2155
  UPB_INLINE upb_strview* validate_AnyRules_mutable_not_in(validate_AnyRules *msg, size_t *len) {
1807
2156
  return (upb_strview*)_upb_array_mutable_accessor(msg, UPB_SIZE(8, 16), len);
1808
2157
  }
1809
2158
  UPB_INLINE upb_strview* validate_AnyRules_resize_not_in(validate_AnyRules *msg, size_t len, upb_arena *arena) {
1810
- return (upb_strview*)_upb_array_resize_accessor(msg, UPB_SIZE(8, 16), len, UPB_TYPE_STRING, arena);
2159
+ return (upb_strview*)_upb_array_resize_accessor2(msg, UPB_SIZE(8, 16), len, UPB_SIZE(3, 4), arena);
1811
2160
  }
1812
2161
  UPB_INLINE bool validate_AnyRules_add_not_in(validate_AnyRules *msg, upb_strview val, upb_arena *arena) {
1813
- return _upb_array_append_accessor(msg, UPB_SIZE(8, 16), UPB_SIZE(8, 16), UPB_TYPE_STRING, &val,
2162
+ return _upb_array_append_accessor2(msg, UPB_SIZE(8, 16), UPB_SIZE(3, 4), &val,
1814
2163
  arena);
1815
2164
  }
1816
2165
 
@@ -1822,7 +2171,19 @@ UPB_INLINE validate_DurationRules *validate_DurationRules_new(upb_arena *arena)
1822
2171
  UPB_INLINE validate_DurationRules *validate_DurationRules_parse(const char *buf, size_t size,
1823
2172
  upb_arena *arena) {
1824
2173
  validate_DurationRules *ret = validate_DurationRules_new(arena);
1825
- return (ret && upb_decode(buf, size, ret, &validate_DurationRules_msginit, arena)) ? ret : NULL;
2174
+ if (!ret) return NULL;
2175
+ if (!upb_decode(buf, size, ret, &validate_DurationRules_msginit, arena)) return NULL;
2176
+ return ret;
2177
+ }
2178
+ UPB_INLINE validate_DurationRules *validate_DurationRules_parse_ex(const char *buf, size_t size,
2179
+ const upb_extreg *extreg, int options,
2180
+ upb_arena *arena) {
2181
+ validate_DurationRules *ret = validate_DurationRules_new(arena);
2182
+ if (!ret) return NULL;
2183
+ if (!_upb_decode(buf, size, ret, &validate_DurationRules_msginit, extreg, options, arena)) {
2184
+ return NULL;
2185
+ }
2186
+ return ret;
1826
2187
  }
1827
2188
  UPB_INLINE char *validate_DurationRules_serialize(const validate_DurationRules *msg, upb_arena *arena, size_t *len) {
1828
2189
  return upb_encode(msg, &validate_DurationRules_msginit, arena, len);
@@ -1918,12 +2279,12 @@ UPB_INLINE struct google_protobuf_Duration** validate_DurationRules_mutable_in(v
1918
2279
  return (struct google_protobuf_Duration**)_upb_array_mutable_accessor(msg, UPB_SIZE(24, 48), len);
1919
2280
  }
1920
2281
  UPB_INLINE struct google_protobuf_Duration** validate_DurationRules_resize_in(validate_DurationRules *msg, size_t len, upb_arena *arena) {
1921
- return (struct google_protobuf_Duration**)_upb_array_resize_accessor(msg, UPB_SIZE(24, 48), len, UPB_TYPE_MESSAGE, arena);
2282
+ return (struct google_protobuf_Duration**)_upb_array_resize_accessor2(msg, UPB_SIZE(24, 48), len, UPB_SIZE(2, 3), arena);
1922
2283
  }
1923
2284
  UPB_INLINE struct google_protobuf_Duration* validate_DurationRules_add_in(validate_DurationRules *msg, upb_arena *arena) {
1924
2285
  struct google_protobuf_Duration* sub = (struct google_protobuf_Duration*)_upb_msg_new(&google_protobuf_Duration_msginit, arena);
1925
- bool ok = _upb_array_append_accessor(
1926
- msg, UPB_SIZE(24, 48), UPB_SIZE(4, 8), UPB_TYPE_MESSAGE, &sub, arena);
2286
+ bool ok = _upb_array_append_accessor2(
2287
+ msg, UPB_SIZE(24, 48), UPB_SIZE(2, 3), &sub, arena);
1927
2288
  if (!ok) return NULL;
1928
2289
  return sub;
1929
2290
  }
@@ -1931,12 +2292,12 @@ UPB_INLINE struct google_protobuf_Duration** validate_DurationRules_mutable_not_
1931
2292
  return (struct google_protobuf_Duration**)_upb_array_mutable_accessor(msg, UPB_SIZE(28, 56), len);
1932
2293
  }
1933
2294
  UPB_INLINE struct google_protobuf_Duration** validate_DurationRules_resize_not_in(validate_DurationRules *msg, size_t len, upb_arena *arena) {
1934
- return (struct google_protobuf_Duration**)_upb_array_resize_accessor(msg, UPB_SIZE(28, 56), len, UPB_TYPE_MESSAGE, arena);
2295
+ return (struct google_protobuf_Duration**)_upb_array_resize_accessor2(msg, UPB_SIZE(28, 56), len, UPB_SIZE(2, 3), arena);
1935
2296
  }
1936
2297
  UPB_INLINE struct google_protobuf_Duration* validate_DurationRules_add_not_in(validate_DurationRules *msg, upb_arena *arena) {
1937
2298
  struct google_protobuf_Duration* sub = (struct google_protobuf_Duration*)_upb_msg_new(&google_protobuf_Duration_msginit, arena);
1938
- bool ok = _upb_array_append_accessor(
1939
- msg, UPB_SIZE(28, 56), UPB_SIZE(4, 8), UPB_TYPE_MESSAGE, &sub, arena);
2299
+ bool ok = _upb_array_append_accessor2(
2300
+ msg, UPB_SIZE(28, 56), UPB_SIZE(2, 3), &sub, arena);
1940
2301
  if (!ok) return NULL;
1941
2302
  return sub;
1942
2303
  }
@@ -1949,7 +2310,19 @@ UPB_INLINE validate_TimestampRules *validate_TimestampRules_new(upb_arena *arena
1949
2310
  UPB_INLINE validate_TimestampRules *validate_TimestampRules_parse(const char *buf, size_t size,
1950
2311
  upb_arena *arena) {
1951
2312
  validate_TimestampRules *ret = validate_TimestampRules_new(arena);
1952
- return (ret && upb_decode(buf, size, ret, &validate_TimestampRules_msginit, arena)) ? ret : NULL;
2313
+ if (!ret) return NULL;
2314
+ if (!upb_decode(buf, size, ret, &validate_TimestampRules_msginit, arena)) return NULL;
2315
+ return ret;
2316
+ }
2317
+ UPB_INLINE validate_TimestampRules *validate_TimestampRules_parse_ex(const char *buf, size_t size,
2318
+ const upb_extreg *extreg, int options,
2319
+ upb_arena *arena) {
2320
+ validate_TimestampRules *ret = validate_TimestampRules_new(arena);
2321
+ if (!ret) return NULL;
2322
+ if (!_upb_decode(buf, size, ret, &validate_TimestampRules_msginit, extreg, options, arena)) {
2323
+ return NULL;
2324
+ }
2325
+ return ret;
1953
2326
  }
1954
2327
  UPB_INLINE char *validate_TimestampRules_serialize(const validate_TimestampRules *msg, upb_arena *arena, size_t *len) {
1955
2328
  return upb_encode(msg, &validate_TimestampRules_msginit, arena, len);
@@ -1957,19 +2330,19 @@ UPB_INLINE char *validate_TimestampRules_serialize(const validate_TimestampRules
1957
2330
 
1958
2331
  UPB_INLINE bool validate_TimestampRules_has_required(const validate_TimestampRules *msg) { return _upb_hasbit(msg, 1); }
1959
2332
  UPB_INLINE bool validate_TimestampRules_required(const validate_TimestampRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(2, 2), bool); }
1960
- UPB_INLINE bool validate_TimestampRules_has_const(const validate_TimestampRules *msg) { return _upb_hasbit(msg, 4); }
2333
+ UPB_INLINE bool validate_TimestampRules_has_const(const validate_TimestampRules *msg) { return _upb_hasbit(msg, 2); }
1961
2334
  UPB_INLINE const struct google_protobuf_Timestamp* validate_TimestampRules_const(const validate_TimestampRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(8, 8), const struct google_protobuf_Timestamp*); }
1962
- UPB_INLINE bool validate_TimestampRules_has_lt(const validate_TimestampRules *msg) { return _upb_hasbit(msg, 5); }
2335
+ UPB_INLINE bool validate_TimestampRules_has_lt(const validate_TimestampRules *msg) { return _upb_hasbit(msg, 3); }
1963
2336
  UPB_INLINE const struct google_protobuf_Timestamp* validate_TimestampRules_lt(const validate_TimestampRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(12, 16), const struct google_protobuf_Timestamp*); }
1964
- UPB_INLINE bool validate_TimestampRules_has_lte(const validate_TimestampRules *msg) { return _upb_hasbit(msg, 6); }
2337
+ UPB_INLINE bool validate_TimestampRules_has_lte(const validate_TimestampRules *msg) { return _upb_hasbit(msg, 4); }
1965
2338
  UPB_INLINE const struct google_protobuf_Timestamp* validate_TimestampRules_lte(const validate_TimestampRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(16, 24), const struct google_protobuf_Timestamp*); }
1966
- UPB_INLINE bool validate_TimestampRules_has_gt(const validate_TimestampRules *msg) { return _upb_hasbit(msg, 7); }
2339
+ UPB_INLINE bool validate_TimestampRules_has_gt(const validate_TimestampRules *msg) { return _upb_hasbit(msg, 5); }
1967
2340
  UPB_INLINE const struct google_protobuf_Timestamp* validate_TimestampRules_gt(const validate_TimestampRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(20, 32), const struct google_protobuf_Timestamp*); }
1968
- UPB_INLINE bool validate_TimestampRules_has_gte(const validate_TimestampRules *msg) { return _upb_hasbit(msg, 8); }
2341
+ UPB_INLINE bool validate_TimestampRules_has_gte(const validate_TimestampRules *msg) { return _upb_hasbit(msg, 6); }
1969
2342
  UPB_INLINE const struct google_protobuf_Timestamp* validate_TimestampRules_gte(const validate_TimestampRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(24, 40), const struct google_protobuf_Timestamp*); }
1970
- UPB_INLINE bool validate_TimestampRules_has_lt_now(const validate_TimestampRules *msg) { return _upb_hasbit(msg, 2); }
2343
+ UPB_INLINE bool validate_TimestampRules_has_lt_now(const validate_TimestampRules *msg) { return _upb_hasbit(msg, 7); }
1971
2344
  UPB_INLINE bool validate_TimestampRules_lt_now(const validate_TimestampRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(3, 3), bool); }
1972
- UPB_INLINE bool validate_TimestampRules_has_gt_now(const validate_TimestampRules *msg) { return _upb_hasbit(msg, 3); }
2345
+ UPB_INLINE bool validate_TimestampRules_has_gt_now(const validate_TimestampRules *msg) { return _upb_hasbit(msg, 8); }
1973
2346
  UPB_INLINE bool validate_TimestampRules_gt_now(const validate_TimestampRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 4), bool); }
1974
2347
  UPB_INLINE bool validate_TimestampRules_has_within(const validate_TimestampRules *msg) { return _upb_hasbit(msg, 9); }
1975
2348
  UPB_INLINE const struct google_protobuf_Duration* validate_TimestampRules_within(const validate_TimestampRules *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(28, 48), const struct google_protobuf_Duration*); }
@@ -1979,7 +2352,7 @@ UPB_INLINE void validate_TimestampRules_set_required(validate_TimestampRules *ms
1979
2352
  *UPB_PTR_AT(msg, UPB_SIZE(2, 2), bool) = value;
1980
2353
  }
1981
2354
  UPB_INLINE void validate_TimestampRules_set_const(validate_TimestampRules *msg, struct google_protobuf_Timestamp* value) {
1982
- _upb_sethas(msg, 4);
2355
+ _upb_sethas(msg, 2);
1983
2356
  *UPB_PTR_AT(msg, UPB_SIZE(8, 8), struct google_protobuf_Timestamp*) = value;
1984
2357
  }
1985
2358
  UPB_INLINE struct google_protobuf_Timestamp* validate_TimestampRules_mutable_const(validate_TimestampRules *msg, upb_arena *arena) {
@@ -1992,7 +2365,7 @@ UPB_INLINE struct google_protobuf_Timestamp* validate_TimestampRules_mutable_con
1992
2365
  return sub;
1993
2366
  }
1994
2367
  UPB_INLINE void validate_TimestampRules_set_lt(validate_TimestampRules *msg, struct google_protobuf_Timestamp* value) {
1995
- _upb_sethas(msg, 5);
2368
+ _upb_sethas(msg, 3);
1996
2369
  *UPB_PTR_AT(msg, UPB_SIZE(12, 16), struct google_protobuf_Timestamp*) = value;
1997
2370
  }
1998
2371
  UPB_INLINE struct google_protobuf_Timestamp* validate_TimestampRules_mutable_lt(validate_TimestampRules *msg, upb_arena *arena) {
@@ -2005,7 +2378,7 @@ UPB_INLINE struct google_protobuf_Timestamp* validate_TimestampRules_mutable_lt(
2005
2378
  return sub;
2006
2379
  }
2007
2380
  UPB_INLINE void validate_TimestampRules_set_lte(validate_TimestampRules *msg, struct google_protobuf_Timestamp* value) {
2008
- _upb_sethas(msg, 6);
2381
+ _upb_sethas(msg, 4);
2009
2382
  *UPB_PTR_AT(msg, UPB_SIZE(16, 24), struct google_protobuf_Timestamp*) = value;
2010
2383
  }
2011
2384
  UPB_INLINE struct google_protobuf_Timestamp* validate_TimestampRules_mutable_lte(validate_TimestampRules *msg, upb_arena *arena) {
@@ -2018,7 +2391,7 @@ UPB_INLINE struct google_protobuf_Timestamp* validate_TimestampRules_mutable_lte
2018
2391
  return sub;
2019
2392
  }
2020
2393
  UPB_INLINE void validate_TimestampRules_set_gt(validate_TimestampRules *msg, struct google_protobuf_Timestamp* value) {
2021
- _upb_sethas(msg, 7);
2394
+ _upb_sethas(msg, 5);
2022
2395
  *UPB_PTR_AT(msg, UPB_SIZE(20, 32), struct google_protobuf_Timestamp*) = value;
2023
2396
  }
2024
2397
  UPB_INLINE struct google_protobuf_Timestamp* validate_TimestampRules_mutable_gt(validate_TimestampRules *msg, upb_arena *arena) {
@@ -2031,7 +2404,7 @@ UPB_INLINE struct google_protobuf_Timestamp* validate_TimestampRules_mutable_gt(
2031
2404
  return sub;
2032
2405
  }
2033
2406
  UPB_INLINE void validate_TimestampRules_set_gte(validate_TimestampRules *msg, struct google_protobuf_Timestamp* value) {
2034
- _upb_sethas(msg, 8);
2407
+ _upb_sethas(msg, 6);
2035
2408
  *UPB_PTR_AT(msg, UPB_SIZE(24, 40), struct google_protobuf_Timestamp*) = value;
2036
2409
  }
2037
2410
  UPB_INLINE struct google_protobuf_Timestamp* validate_TimestampRules_mutable_gte(validate_TimestampRules *msg, upb_arena *arena) {
@@ -2044,11 +2417,11 @@ UPB_INLINE struct google_protobuf_Timestamp* validate_TimestampRules_mutable_gte
2044
2417
  return sub;
2045
2418
  }
2046
2419
  UPB_INLINE void validate_TimestampRules_set_lt_now(validate_TimestampRules *msg, bool value) {
2047
- _upb_sethas(msg, 2);
2420
+ _upb_sethas(msg, 7);
2048
2421
  *UPB_PTR_AT(msg, UPB_SIZE(3, 3), bool) = value;
2049
2422
  }
2050
2423
  UPB_INLINE void validate_TimestampRules_set_gt_now(validate_TimestampRules *msg, bool value) {
2051
- _upb_sethas(msg, 3);
2424
+ _upb_sethas(msg, 8);
2052
2425
  *UPB_PTR_AT(msg, UPB_SIZE(4, 4), bool) = value;
2053
2426
  }
2054
2427
  UPB_INLINE void validate_TimestampRules_set_within(validate_TimestampRules *msg, struct google_protobuf_Duration* value) {