grpc 1.54.3 → 1.58.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1696) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +642 -322
  3. data/include/grpc/event_engine/event_engine.h +26 -36
  4. data/include/grpc/event_engine/memory_allocator.h +2 -2
  5. data/include/grpc/grpc_audit_logging.h +96 -0
  6. data/include/grpc/grpc_security.h +19 -0
  7. data/include/grpc/impl/channel_arg_names.h +371 -0
  8. data/include/grpc/impl/grpc_types.h +1 -348
  9. data/include/grpc/module.modulemap +3 -0
  10. data/include/grpc/support/json.h +218 -0
  11. data/include/grpc/support/port_platform.h +29 -23
  12. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +7 -2
  13. data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +2 -1
  14. data/src/core/ext/filters/client_channel/backend_metric.cc +4 -1
  15. data/src/core/ext/filters/client_channel/channel_connectivity.cc +4 -4
  16. data/src/core/ext/filters/client_channel/client_channel.cc +145 -125
  17. data/src/core/ext/filters/client_channel/client_channel.h +24 -16
  18. data/src/core/ext/filters/client_channel/client_channel_channelz.cc +20 -19
  19. data/src/core/ext/filters/client_channel/client_channel_internal.h +22 -59
  20. data/src/core/ext/filters/client_channel/client_channel_service_config.cc +2 -2
  21. data/src/core/ext/filters/client_channel/config_selector.h +9 -36
  22. data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
  23. data/src/core/ext/filters/client_channel/http_proxy.cc +40 -2
  24. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +27 -53
  25. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +23 -9
  26. data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +3 -0
  27. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +25 -35
  28. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +86 -138
  29. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +2 -1
  30. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +5 -4
  31. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +4 -2
  32. data/src/core/ext/filters/client_channel/lb_policy/health_check_client.cc +480 -0
  33. data/src/core/ext/filters/client_channel/lb_policy/health_check_client.h +52 -0
  34. data/src/core/ext/filters/client_channel/lb_policy/health_check_client_internal.h +202 -0
  35. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +6 -9
  36. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric_internal.h +2 -0
  37. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +136 -78
  38. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +9 -2
  39. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +168 -104
  40. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.h +20 -0
  41. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +16 -45
  42. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +22 -14
  43. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +18 -1
  44. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +73 -129
  45. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +7 -5
  46. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +57 -22
  47. data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.cc +76 -6
  48. data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc +54 -45
  49. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +19 -54
  50. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +57 -116
  51. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +8 -0
  52. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +35 -86
  53. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +23 -69
  54. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +70 -141
  55. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +26 -65
  56. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc +28 -96
  57. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +21 -123
  58. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.h +30 -0
  59. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +102 -11
  60. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +44 -37
  61. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +4 -1
  62. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc +66 -0
  63. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.h +27 -0
  64. data/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +586 -0
  65. data/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.h +35 -0
  66. data/src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc +97 -0
  67. data/src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.h +32 -0
  68. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +3 -14
  69. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.h +24 -0
  70. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +30 -28
  71. data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +10 -4
  72. data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +1 -0
  73. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +25 -13
  74. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +420 -275
  75. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +32 -1
  76. data/src/core/ext/filters/client_channel/retry_filter.cc +39 -2530
  77. data/src/core/ext/filters/client_channel/retry_filter.h +92 -1
  78. data/src/core/ext/filters/client_channel/retry_filter_legacy_call_data.cc +2052 -0
  79. data/src/core/ext/filters/client_channel/retry_filter_legacy_call_data.h +442 -0
  80. data/src/core/ext/filters/client_channel/retry_service_config.cc +10 -9
  81. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +40 -90
  82. data/src/core/ext/filters/client_channel/subchannel.cc +17 -199
  83. data/src/core/ext/filters/client_channel/subchannel.h +14 -48
  84. data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +3 -0
  85. data/src/core/ext/filters/deadline/deadline_filter.cc +1 -1
  86. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +1 -1
  87. data/src/core/ext/filters/http/client/http_client_filter.cc +1 -0
  88. data/src/core/ext/filters/http/client_authority_filter.cc +1 -1
  89. data/src/core/ext/filters/http/message_compress/compression_filter.cc +8 -7
  90. data/src/core/ext/filters/http/server/http_server_filter.cc +1 -1
  91. data/src/core/ext/filters/message_size/message_size_filter.cc +1 -0
  92. data/src/core/ext/filters/rbac/rbac_filter.cc +40 -111
  93. data/src/core/ext/filters/rbac/rbac_filter.h +12 -30
  94. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +162 -72
  95. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +6 -8
  96. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +164 -88
  97. data/src/core/ext/filters/stateful_session/stateful_session_filter.h +16 -7
  98. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +1 -0
  99. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +15 -16
  100. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +541 -542
  101. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +21 -0
  102. data/src/core/ext/transport/chttp2/transport/context_list_entry.h +70 -0
  103. data/src/core/ext/transport/chttp2/transport/decode_huff.cc +6569 -174
  104. data/src/core/ext/transport/chttp2/transport/decode_huff.h +2278 -441
  105. data/src/core/ext/transport/chttp2/transport/flow_control.cc +46 -95
  106. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +7 -27
  107. data/src/core/ext/transport/chttp2/transport/frame_ping.h +0 -3
  108. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +1 -0
  109. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.cc +176 -0
  110. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +326 -0
  111. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +631 -547
  112. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +157 -11
  113. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +48 -33
  114. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +19 -5
  115. data/src/core/ext/transport/chttp2/transport/internal.h +42 -80
  116. data/src/core/ext/transport/chttp2/transport/parsing.cc +43 -22
  117. data/src/core/ext/transport/chttp2/transport/ping_abuse_policy.cc +80 -0
  118. data/src/core/ext/transport/chttp2/transport/ping_abuse_policy.h +55 -0
  119. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +98 -0
  120. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +73 -0
  121. data/src/core/ext/transport/chttp2/transport/writing.cc +96 -94
  122. data/src/core/ext/transport/inproc/inproc_transport.cc +1 -0
  123. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +87 -52
  124. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +414 -181
  125. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +121 -60
  126. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +481 -224
  127. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +90 -55
  128. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +415 -188
  129. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.c +357 -210
  130. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.h +1572 -729
  131. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +30 -17
  132. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +144 -47
  133. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +34 -21
  134. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +160 -62
  135. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +27 -14
  136. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +78 -38
  137. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +20 -11
  138. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +48 -26
  139. data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.c +20 -11
  140. data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +48 -26
  141. data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c +109 -62
  142. data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +566 -244
  143. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +21 -12
  144. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +45 -30
  145. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +22 -19
  146. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +82 -29
  147. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +23 -16
  148. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +45 -30
  149. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +255 -147
  150. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +876 -404
  151. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +417 -264
  152. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +1839 -899
  153. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +74 -41
  154. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +286 -148
  155. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +531 -334
  156. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +2017 -1131
  157. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +21 -12
  158. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +45 -30
  159. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +89 -52
  160. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +347 -232
  161. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +264 -165
  162. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +888 -476
  163. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +139 -80
  164. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +527 -274
  165. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +22 -13
  166. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +50 -36
  167. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +380 -221
  168. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +1168 -611
  169. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +157 -92
  170. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +627 -292
  171. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +18 -11
  172. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +37 -26
  173. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +21 -12
  174. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +45 -30
  175. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +30 -17
  176. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +144 -47
  177. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +279 -167
  178. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +818 -440
  179. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +232 -137
  180. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +1164 -500
  181. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +22 -13
  182. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +60 -37
  183. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +369 -211
  184. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +1114 -646
  185. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +33 -18
  186. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +117 -51
  187. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +34 -19
  188. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +118 -56
  189. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +38 -21
  190. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +148 -64
  191. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +31 -18
  192. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +143 -65
  193. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +22 -13
  194. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +51 -37
  195. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +78 -43
  196. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +265 -127
  197. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +145 -88
  198. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +438 -241
  199. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +115 -62
  200. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +559 -227
  201. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +18 -11
  202. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +35 -26
  203. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +175 -118
  204. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +857 -442
  205. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +172 -95
  206. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +864 -374
  207. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +48 -27
  208. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +159 -110
  209. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +39 -18
  210. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +74 -56
  211. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +29 -15
  212. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +92 -45
  213. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +131 -74
  214. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +489 -249
  215. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +163 -84
  216. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +680 -240
  217. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +248 -139
  218. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +933 -433
  219. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +80 -49
  220. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +616 -201
  221. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +1283 -776
  222. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +5422 -2519
  223. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +49 -28
  224. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +164 -84
  225. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +228 -141
  226. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +738 -399
  227. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +20 -11
  228. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +48 -26
  229. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +21 -12
  230. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +45 -30
  231. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +32 -19
  232. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +70 -49
  233. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +27 -14
  234. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +110 -43
  235. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +46 -25
  236. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +259 -100
  237. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +21 -12
  238. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.h +45 -30
  239. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +18 -11
  240. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +35 -26
  241. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +42 -23
  242. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +108 -70
  243. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +7 -4
  244. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +21 -16
  245. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +43 -24
  246. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +110 -75
  247. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +30 -17
  248. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +95 -50
  249. data/src/core/ext/upb-generated/envoy/data/accesslog/v3/accesslog.upb.c +558 -0
  250. data/src/core/ext/upb-generated/envoy/data/accesslog/v3/accesslog.upb.h +2710 -0
  251. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +16 -9
  252. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +73 -23
  253. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +60 -37
  254. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +150 -108
  255. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +93 -43
  256. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +386 -167
  257. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +44 -25
  258. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +114 -80
  259. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +68 -22
  260. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +355 -82
  261. data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.c +32 -19
  262. data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +73 -51
  263. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +504 -300
  264. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +2243 -1075
  265. data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.c +18 -11
  266. data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +35 -26
  267. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.c +35 -21
  268. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +112 -78
  269. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.c +72 -45
  270. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +193 -138
  271. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb.c +47 -0
  272. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb.h +93 -0
  273. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +34 -21
  274. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +119 -78
  275. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c +18 -11
  276. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +35 -26
  277. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +7 -4
  278. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +15 -10
  279. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +184 -96
  280. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +907 -360
  281. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +56 -33
  282. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +150 -101
  283. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +188 -111
  284. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +816 -419
  285. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +32 -19
  286. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +109 -53
  287. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +10 -7
  288. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +18 -14
  289. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +300 -177
  290. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +1284 -522
  291. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +42 -23
  292. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +188 -75
  293. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +130 -83
  294. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +510 -238
  295. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +22 -13
  296. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +55 -34
  297. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +39 -26
  298. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +124 -68
  299. data/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.c +21 -12
  300. data/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.h +47 -30
  301. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +52 -29
  302. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +92 -62
  303. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +37 -20
  304. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +133 -63
  305. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +22 -13
  306. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +91 -40
  307. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +21 -12
  308. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +50 -32
  309. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +18 -11
  310. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +37 -26
  311. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +46 -27
  312. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +101 -70
  313. data/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.c +13 -10
  314. data/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.h +25 -22
  315. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +40 -23
  316. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +161 -75
  317. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +31 -18
  318. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +114 -56
  319. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +46 -29
  320. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +139 -91
  321. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +65 -42
  322. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +200 -121
  323. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +80 -45
  324. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +208 -131
  325. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +34 -21
  326. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +74 -53
  327. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +7 -4
  328. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +13 -8
  329. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +16 -9
  330. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +28 -18
  331. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +28 -15
  332. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +55 -34
  333. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +43 -22
  334. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +91 -53
  335. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.c +35 -20
  336. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.h +92 -57
  337. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.c +7 -4
  338. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.h +13 -8
  339. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +20 -11
  340. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +48 -26
  341. data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.c +23 -14
  342. data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +61 -41
  343. data/src/core/ext/upb-generated/google/api/annotations.upb.c +14 -11
  344. data/src/core/ext/upb-generated/google/api/annotations.upb.h +30 -20
  345. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +255 -154
  346. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +934 -450
  347. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +299 -180
  348. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +946 -483
  349. data/src/core/ext/upb-generated/google/api/http.upb.c +68 -35
  350. data/src/core/ext/upb-generated/google/api/http.upb.h +284 -120
  351. data/src/core/ext/upb-generated/google/api/httpbody.upb.c +22 -13
  352. data/src/core/ext/upb-generated/google/api/httpbody.upb.h +95 -37
  353. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +19 -10
  354. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +38 -22
  355. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +1018 -424
  356. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +3851 -1412
  357. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +19 -10
  358. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +38 -22
  359. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +10 -7
  360. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +18 -14
  361. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +62 -39
  362. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +207 -102
  363. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +19 -10
  364. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +38 -22
  365. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +90 -51
  366. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +157 -107
  367. data/src/core/ext/upb-generated/google/rpc/status.upb.c +22 -13
  368. data/src/core/ext/upb-generated/google/rpc/status.upb.h +95 -37
  369. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +59 -34
  370. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +154 -92
  371. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +43 -24
  372. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +118 -60
  373. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +250 -145
  374. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +919 -415
  375. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +34 -19
  376. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +76 -51
  377. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +25 -14
  378. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +45 -30
  379. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +144 -81
  380. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +405 -217
  381. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +51 -26
  382. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +153 -61
  383. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c +173 -102
  384. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h +855 -298
  385. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +68 -49
  386. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +155 -104
  387. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +26 -17
  388. data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +55 -34
  389. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +12 -9
  390. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +31 -14
  391. data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +26 -17
  392. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +55 -34
  393. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +23 -16
  394. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +45 -30
  395. data/src/core/ext/upb-generated/validate/validate.upb.c +845 -455
  396. data/src/core/ext/upb-generated/validate/validate.upb.h +4347 -1908
  397. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +68 -49
  398. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +155 -104
  399. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +26 -17
  400. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +55 -34
  401. data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.c +12 -9
  402. data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.h +31 -14
  403. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +65 -44
  404. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +137 -91
  405. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +23 -16
  406. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +45 -30
  407. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +16 -9
  408. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +28 -18
  409. data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.c +21 -12
  410. data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.h +45 -30
  411. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +37 -22
  412. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +96 -63
  413. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +26 -17
  414. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +52 -29
  415. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +21 -12
  416. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +45 -30
  417. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +23 -14
  418. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +62 -42
  419. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +44 -25
  420. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +169 -79
  421. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +27 -14
  422. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +65 -38
  423. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +78 -38
  424. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +182 -76
  425. data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +21 -12
  426. data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +89 -34
  427. data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.c +18 -11
  428. data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.h +35 -26
  429. data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.c +32 -19
  430. data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.h +150 -54
  431. data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.c +10 -7
  432. data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.h +18 -14
  433. data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.c +34 -21
  434. data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.h +161 -63
  435. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +162 -101
  436. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +501 -293
  437. data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.c +85 -52
  438. data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.h +430 -164
  439. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +24 -15
  440. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +53 -37
  441. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +40 -23
  442. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +161 -75
  443. data/src/core/ext/upb-generated/xds/type/v3/cel.upb.c +37 -22
  444. data/src/core/ext/upb-generated/xds/type/v3/cel.upb.h +92 -66
  445. data/src/core/ext/upb-generated/xds/type/v3/range.upb.c +43 -22
  446. data/src/core/ext/upb-generated/xds/type/v3/range.upb.h +91 -53
  447. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +21 -12
  448. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +45 -30
  449. data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.c +1 -1
  450. data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.h +6 -5
  451. data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.c +1 -1
  452. data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.h +6 -5
  453. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +1 -1
  454. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +6 -5
  455. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.c +1 -1
  456. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.h +6 -5
  457. data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.c +1 -1
  458. data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.h +6 -5
  459. data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +1 -1
  460. data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.h +6 -5
  461. data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.c +1 -1
  462. data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.h +6 -5
  463. data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.c +1 -1
  464. data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.h +6 -5
  465. data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.c +1 -1
  466. data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.h +6 -5
  467. data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.c +1 -1
  468. data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.h +6 -5
  469. data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.c +1 -1
  470. data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.h +6 -5
  471. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +1 -1
  472. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +6 -5
  473. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +1 -1
  474. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +6 -5
  475. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +89 -77
  476. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +11 -5
  477. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +252 -253
  478. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +6 -5
  479. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +1 -1
  480. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +6 -5
  481. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +1 -1
  482. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +6 -5
  483. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +1 -1
  484. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +6 -5
  485. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +1 -1
  486. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +6 -5
  487. data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.c +1 -1
  488. data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.h +6 -5
  489. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +1 -1
  490. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +6 -5
  491. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +1 -1
  492. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +6 -5
  493. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +1 -1
  494. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +6 -5
  495. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +1 -1
  496. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +6 -5
  497. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +1 -1
  498. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +6 -5
  499. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +1 -1
  500. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +6 -5
  501. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.c +1 -1
  502. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.h +6 -5
  503. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +163 -161
  504. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +6 -5
  505. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +130 -119
  506. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +6 -5
  507. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +1 -1
  508. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +6 -5
  509. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +142 -136
  510. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +6 -5
  511. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +1 -1
  512. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +6 -5
  513. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +1 -1
  514. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +6 -5
  515. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +1 -1
  516. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +6 -5
  517. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +1 -1
  518. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +6 -5
  519. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +1 -1
  520. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +6 -5
  521. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +1 -1
  522. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +6 -5
  523. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +1 -1
  524. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +6 -5
  525. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +1 -1
  526. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +6 -5
  527. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +1 -1
  528. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +6 -5
  529. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +1 -1
  530. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +6 -5
  531. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +1 -1
  532. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +6 -5
  533. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +1 -1
  534. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +6 -5
  535. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +1 -1
  536. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +6 -5
  537. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.c +20 -13
  538. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.h +6 -5
  539. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +1 -1
  540. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +6 -5
  541. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +39 -31
  542. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +11 -5
  543. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +134 -128
  544. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +11 -5
  545. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +1 -1
  546. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +6 -5
  547. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +1 -1
  548. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +6 -5
  549. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +1 -1
  550. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +6 -5
  551. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +1 -1
  552. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +6 -5
  553. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.c +1 -1
  554. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.h +6 -5
  555. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.c +1 -1
  556. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.h +6 -5
  557. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +1 -1
  558. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +6 -5
  559. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.c +1 -1
  560. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.h +6 -5
  561. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.c +1 -1
  562. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.h +6 -5
  563. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +1 -1
  564. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.h +6 -5
  565. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.c +1 -1
  566. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.h +6 -5
  567. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.c +1 -1
  568. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.h +6 -5
  569. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +1 -1
  570. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.h +6 -5
  571. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.c +1 -1
  572. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.h +6 -5
  573. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.c +1 -1
  574. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.h +6 -5
  575. data/src/core/ext/upbdefs-generated/envoy/data/accesslog/v3/accesslog.upbdefs.c +402 -0
  576. data/src/core/ext/upbdefs-generated/envoy/data/accesslog/v3/accesslog.upbdefs.h +111 -0
  577. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +1 -1
  578. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +6 -5
  579. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +1 -1
  580. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +6 -5
  581. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +81 -75
  582. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +6 -5
  583. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +1 -1
  584. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +6 -5
  585. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +64 -48
  586. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +11 -5
  587. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c +1 -1
  588. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.h +6 -5
  589. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +495 -470
  590. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +11 -5
  591. data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c +1 -1
  592. data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.h +6 -5
  593. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +1 -1
  594. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +6 -5
  595. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +138 -136
  596. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +6 -5
  597. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +1 -1
  598. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +6 -5
  599. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +1 -1
  600. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +6 -5
  601. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +1 -1
  602. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +6 -5
  603. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +1 -1
  604. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +6 -5
  605. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +1 -1
  606. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +6 -5
  607. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +1 -1
  608. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +6 -5
  609. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +12 -13
  610. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +6 -5
  611. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.c +1 -1
  612. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.h +6 -5
  613. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +1 -1
  614. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +6 -5
  615. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/filter_state.upbdefs.c +1 -1
  616. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/filter_state.upbdefs.h +6 -5
  617. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c +1 -1
  618. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h +6 -5
  619. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +1 -1
  620. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +6 -5
  621. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +1 -1
  622. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +6 -5
  623. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +1 -1
  624. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +6 -5
  625. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +1 -1
  626. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +6 -5
  627. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +30 -30
  628. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +6 -5
  629. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/status_code_input.upbdefs.c +1 -1
  630. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/status_code_input.upbdefs.h +6 -5
  631. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +1 -1
  632. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +6 -5
  633. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +1 -1
  634. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +6 -5
  635. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +1 -1
  636. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +6 -5
  637. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +1 -1
  638. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +6 -5
  639. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +1 -1
  640. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +6 -5
  641. data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.c +1 -1
  642. data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.h +6 -5
  643. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +1 -1
  644. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.h +6 -5
  645. data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.c +1 -1
  646. data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.h +6 -5
  647. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +1 -1
  648. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +6 -5
  649. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +1 -1
  650. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +6 -5
  651. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.c +1 -1
  652. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.h +6 -5
  653. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.c +1 -1
  654. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.h +6 -5
  655. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +1 -1
  656. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +6 -5
  657. data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.c +1 -1
  658. data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.h +6 -5
  659. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +1 -1
  660. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +6 -5
  661. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.c +1 -1
  662. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.h +6 -5
  663. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.c +1 -1
  664. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.h +6 -5
  665. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +1 -1
  666. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +6 -5
  667. data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.c +1 -1
  668. data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.h +6 -5
  669. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +1 -1
  670. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +6 -5
  671. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +329 -273
  672. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +11 -5
  673. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +1 -1
  674. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +6 -5
  675. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +1 -1
  676. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +6 -5
  677. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +1 -1
  678. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +6 -5
  679. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +1 -1
  680. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +6 -5
  681. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +1 -1
  682. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +6 -5
  683. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +1 -1
  684. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +6 -5
  685. data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.c +1 -1
  686. data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.h +6 -5
  687. data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +1 -1
  688. data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.h +6 -5
  689. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +1 -1
  690. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +6 -5
  691. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +1 -1
  692. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +6 -5
  693. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +1 -1
  694. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +6 -5
  695. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +1 -1
  696. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +6 -5
  697. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +1 -1
  698. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +6 -5
  699. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +1 -1
  700. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +6 -5
  701. data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.c +1 -1
  702. data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.h +6 -5
  703. data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.c +1 -1
  704. data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.h +6 -5
  705. data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.c +1 -1
  706. data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.h +6 -5
  707. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +1 -1
  708. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +6 -5
  709. data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.c +1 -1
  710. data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.h +6 -5
  711. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +1 -1
  712. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +6 -5
  713. data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.c +1 -1
  714. data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.h +6 -5
  715. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +1 -1
  716. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +6 -5
  717. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +1 -1
  718. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +6 -5
  719. data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.c +1 -1
  720. data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.h +6 -5
  721. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +1 -1
  722. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +6 -5
  723. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +1 -1
  724. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +6 -5
  725. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +1 -1
  726. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +6 -5
  727. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.c +1 -1
  728. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.h +6 -5
  729. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.c +1 -1
  730. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.h +6 -5
  731. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.c +1 -1
  732. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.h +6 -5
  733. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.c +1 -1
  734. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.h +6 -5
  735. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.c +1 -1
  736. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.h +6 -5
  737. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.c +1 -1
  738. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.h +6 -5
  739. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.c +1 -1
  740. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.h +6 -5
  741. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.c +1 -1
  742. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.h +6 -5
  743. data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.c +1 -1
  744. data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.h +6 -5
  745. data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.c +1 -1
  746. data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.h +6 -5
  747. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +1 -1
  748. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +6 -5
  749. data/src/core/ext/xds/certificate_provider_store.cc +8 -13
  750. data/src/core/ext/xds/certificate_provider_store.h +1 -1
  751. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +30 -42
  752. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +14 -9
  753. data/src/core/ext/xds/upb_utils.h +1 -1
  754. data/src/core/ext/xds/xds_api.cc +41 -18
  755. data/src/core/ext/xds/xds_api.h +5 -4
  756. data/src/core/ext/xds/xds_audit_logger_registry.cc +122 -0
  757. data/src/core/ext/xds/xds_audit_logger_registry.h +68 -0
  758. data/src/core/ext/xds/xds_bootstrap.cc +3 -3
  759. data/src/core/ext/xds/xds_bootstrap_grpc.cc +65 -50
  760. data/src/core/ext/xds/xds_bootstrap_grpc.h +10 -13
  761. data/src/core/ext/xds/xds_client.cc +29 -7
  762. data/src/core/ext/xds/xds_client.h +1 -1
  763. data/src/core/ext/xds/xds_client_grpc.cc +12 -6
  764. data/src/core/ext/xds/xds_client_grpc.h +16 -2
  765. data/src/core/ext/xds/xds_client_stats.h +11 -1
  766. data/src/core/ext/xds/xds_cluster.cc +70 -67
  767. data/src/core/ext/xds/xds_cluster.h +1 -2
  768. data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +15 -11
  769. data/src/core/ext/xds/xds_cluster_specifier_plugin.h +2 -2
  770. data/src/core/ext/xds/xds_common_types.cc +8 -5
  771. data/src/core/ext/xds/xds_endpoint.cc +9 -9
  772. data/src/core/ext/xds/xds_endpoint.h +1 -1
  773. data/src/core/ext/xds/xds_health_status.cc +0 -17
  774. data/src/core/ext/xds/xds_health_status.h +5 -25
  775. data/src/core/ext/xds/xds_http_fault_filter.cc +16 -14
  776. data/src/core/ext/xds/xds_http_fault_filter.h +1 -1
  777. data/src/core/ext/xds/xds_http_filters.h +3 -2
  778. data/src/core/ext/xds/xds_http_rbac_filter.cc +152 -72
  779. data/src/core/ext/xds/xds_http_rbac_filter.h +1 -1
  780. data/src/core/ext/xds/xds_http_stateful_session_filter.cc +15 -12
  781. data/src/core/ext/xds/xds_http_stateful_session_filter.h +1 -1
  782. data/src/core/ext/xds/xds_lb_policy_registry.cc +60 -36
  783. data/src/core/ext/xds/xds_listener.cc +11 -4
  784. data/src/core/ext/xds/xds_listener.h +1 -1
  785. data/src/core/ext/xds/xds_resource_type.h +2 -2
  786. data/src/core/ext/xds/xds_route_config.cc +52 -8
  787. data/src/core/ext/xds/xds_route_config.h +1 -1
  788. data/src/core/ext/xds/xds_transport_grpc.cc +2 -1
  789. data/src/core/lib/address_utils/parse_address.cc +63 -1
  790. data/src/core/lib/address_utils/parse_address.h +8 -0
  791. data/src/core/lib/address_utils/sockaddr_utils.cc +46 -1
  792. data/src/core/lib/address_utils/sockaddr_utils.h +2 -2
  793. data/src/core/lib/avl/avl.h +15 -173
  794. data/src/core/lib/backoff/random_early_detection.h +5 -0
  795. data/src/core/lib/channel/call_tracer.cc +289 -0
  796. data/src/core/lib/channel/call_tracer.h +35 -0
  797. data/src/core/lib/channel/channel_args.cc +120 -46
  798. data/src/core/lib/channel/channel_args.h +52 -4
  799. data/src/core/lib/channel/channel_trace.cc +16 -12
  800. data/src/core/lib/channel/channelz.cc +163 -135
  801. data/src/core/lib/channel/channelz.h +42 -35
  802. data/src/core/lib/channel/channelz_registry.cc +24 -20
  803. data/src/core/lib/channel/connected_channel.cc +103 -35
  804. data/src/core/lib/channel/promise_based_filter.cc +6 -13
  805. data/src/core/lib/channel/promise_based_filter.h +3 -0
  806. data/src/core/lib/compression/compression_internal.cc +8 -7
  807. data/src/core/lib/config/config_vars.cc +20 -18
  808. data/src/core/lib/config/config_vars.h +4 -4
  809. data/src/core/lib/config/load_config.cc +13 -0
  810. data/src/core/lib/config/load_config.h +6 -0
  811. data/src/core/lib/debug/event_log.h +1 -1
  812. data/src/core/lib/debug/stats_data.cc +93 -21
  813. data/src/core/lib/debug/stats_data.h +42 -1
  814. data/src/core/lib/debug/trace.cc +31 -56
  815. data/src/core/lib/debug/trace.h +14 -4
  816. data/src/core/lib/event_engine/ares_resolver.cc +712 -0
  817. data/src/core/lib/event_engine/ares_resolver.h +150 -0
  818. data/src/core/lib/event_engine/cf_engine/cf_engine.cc +218 -0
  819. data/src/core/lib/event_engine/cf_engine/cf_engine.h +86 -0
  820. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +354 -0
  821. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +146 -0
  822. data/src/core/lib/event_engine/cf_engine/cftype_unique_ref.h +79 -0
  823. data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +229 -0
  824. data/src/core/lib/event_engine/cf_engine/dns_service_resolver.h +117 -0
  825. data/src/core/lib/event_engine/default_event_engine.cc +13 -1
  826. data/src/core/lib/event_engine/default_event_engine_factory.cc +14 -2
  827. data/src/core/lib/event_engine/event_engine.cc +0 -12
  828. data/src/core/lib/event_engine/forkable.cc +62 -43
  829. data/src/core/lib/event_engine/forkable.h +15 -0
  830. data/src/core/lib/event_engine/grpc_polled_fd.h +73 -0
  831. data/src/core/lib/event_engine/handle_containers.h +0 -4
  832. data/src/core/lib/event_engine/poller.h +2 -2
  833. data/src/core/lib/event_engine/posix.h +4 -0
  834. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +5 -7
  835. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +29 -9
  836. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +10 -1
  837. data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +197 -0
  838. data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +7 -18
  839. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +28 -14
  840. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +12 -1
  841. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +90 -47
  842. data/src/core/lib/event_engine/posix_engine/posix_engine.h +21 -14
  843. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +41 -31
  844. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +9 -8
  845. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +4 -2
  846. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +49 -3
  847. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +9 -0
  848. data/src/core/lib/event_engine/posix_engine/timer.h +10 -37
  849. data/src/core/lib/event_engine/posix_engine/timer_manager.h +1 -1
  850. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +2 -0
  851. data/src/core/lib/event_engine/shim.cc +9 -1
  852. data/src/core/lib/event_engine/tcp_socket_utils.cc +67 -7
  853. data/src/core/lib/event_engine/tcp_socket_utils.h +3 -0
  854. data/src/core/lib/event_engine/{thread_pool.cc → thread_pool/original_thread_pool.cc} +28 -25
  855. data/src/core/lib/event_engine/{thread_pool.h → thread_pool/original_thread_pool.h} +11 -15
  856. data/src/core/lib/event_engine/thread_pool/thread_count.cc +58 -0
  857. data/src/core/lib/event_engine/thread_pool/thread_count.h +161 -0
  858. data/src/core/lib/event_engine/{executor/executor.h → thread_pool/thread_pool.h} +21 -9
  859. data/src/core/lib/event_engine/thread_pool/thread_pool_factory.cc +47 -0
  860. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +517 -0
  861. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +223 -0
  862. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +157 -0
  863. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.h +104 -0
  864. data/src/core/lib/event_engine/trace.cc +1 -0
  865. data/src/core/lib/event_engine/trace.h +6 -0
  866. data/src/core/lib/event_engine/windows/iocp.cc +4 -3
  867. data/src/core/lib/event_engine/windows/iocp.h +3 -3
  868. data/src/core/lib/event_engine/windows/win_socket.cc +6 -6
  869. data/src/core/lib/event_engine/windows/win_socket.h +4 -4
  870. data/src/core/lib/event_engine/windows/windows_endpoint.cc +60 -59
  871. data/src/core/lib/event_engine/windows/windows_endpoint.h +17 -13
  872. data/src/core/lib/event_engine/windows/windows_engine.cc +21 -18
  873. data/src/core/lib/event_engine/windows/windows_engine.h +14 -18
  874. data/src/core/lib/event_engine/windows/windows_listener.cc +3 -3
  875. data/src/core/lib/event_engine/windows/windows_listener.h +3 -2
  876. data/src/core/lib/event_engine/work_queue/basic_work_queue.cc +63 -0
  877. data/src/core/lib/event_engine/work_queue/basic_work_queue.h +71 -0
  878. data/src/core/lib/event_engine/work_queue/work_queue.h +62 -0
  879. data/src/core/lib/experiments/config.cc +112 -29
  880. data/src/core/lib/experiments/config.h +33 -5
  881. data/src/core/lib/experiments/experiments.cc +226 -61
  882. data/src/core/lib/experiments/experiments.h +95 -29
  883. data/src/core/lib/gpr/log_internal.h +55 -0
  884. data/src/core/lib/gpr/posix/time.cc +5 -0
  885. data/src/core/lib/gprpp/crash.cc +10 -0
  886. data/src/core/lib/gprpp/crash.h +3 -0
  887. data/src/core/lib/gprpp/dual_ref_counted.h +9 -9
  888. data/src/core/lib/gprpp/fork.cc +8 -9
  889. data/src/core/lib/gprpp/fork.h +6 -5
  890. data/src/core/lib/gprpp/if_list.h +4530 -0
  891. data/src/core/lib/gprpp/orphanable.h +3 -3
  892. data/src/core/lib/gprpp/per_cpu.cc +33 -0
  893. data/src/core/lib/gprpp/per_cpu.h +29 -6
  894. data/src/core/lib/gprpp/ref_counted.h +9 -7
  895. data/src/core/lib/gprpp/ref_counted_string.cc +44 -0
  896. data/src/core/lib/gprpp/ref_counted_string.h +146 -0
  897. data/src/core/lib/gprpp/sorted_pack.h +3 -12
  898. data/src/core/lib/gprpp/status_helper.cc +2 -2
  899. data/src/core/lib/gprpp/status_helper.h +16 -15
  900. data/src/core/lib/gprpp/time.cc +1 -0
  901. data/src/core/lib/gprpp/time.h +13 -1
  902. data/src/core/lib/gprpp/type_list.h +32 -0
  903. data/src/core/lib/gprpp/validation_errors.cc +8 -3
  904. data/src/core/lib/gprpp/validation_errors.h +16 -9
  905. data/src/core/lib/gprpp/work_serializer.cc +36 -0
  906. data/src/core/lib/gprpp/work_serializer.h +5 -0
  907. data/src/core/lib/http/httpcli.h +6 -9
  908. data/src/core/lib/http/httpcli_security_connector.cc +1 -0
  909. data/src/core/lib/iomgr/buffer_list.cc +2 -0
  910. data/src/core/lib/iomgr/buffer_list.h +0 -1
  911. data/src/core/lib/iomgr/cfstream_handle.cc +1 -1
  912. data/src/core/lib/iomgr/endpoint_cfstream.cc +10 -8
  913. data/src/core/lib/iomgr/error.cc +32 -2
  914. data/src/core/lib/iomgr/error.h +9 -10
  915. data/src/core/lib/iomgr/ev_apple.cc +12 -12
  916. data/src/core/lib/iomgr/ev_epoll1_linux.cc +15 -10
  917. data/src/core/lib/iomgr/ev_poll_posix.cc +6 -5
  918. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +22 -23
  919. data/src/core/lib/iomgr/exec_ctx.h +11 -0
  920. data/src/core/lib/iomgr/iocp_windows.cc +24 -3
  921. data/src/core/lib/iomgr/iocp_windows.h +11 -0
  922. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +1 -1
  923. data/src/core/lib/iomgr/pollset.h +4 -5
  924. data/src/core/lib/iomgr/port.h +10 -0
  925. data/src/core/lib/iomgr/resolve_address.cc +13 -1
  926. data/src/core/lib/iomgr/resolve_address.h +17 -3
  927. data/src/core/lib/iomgr/sockaddr_posix.h +7 -0
  928. data/src/core/lib/iomgr/socket_utils_common_posix.cc +33 -2
  929. data/src/core/lib/iomgr/socket_utils_posix.cc +5 -0
  930. data/src/core/lib/iomgr/socket_utils_posix.h +9 -0
  931. data/src/core/lib/iomgr/socket_windows.cc +61 -7
  932. data/src/core/lib/iomgr/socket_windows.h +9 -2
  933. data/src/core/lib/iomgr/tcp_client_cfstream.cc +14 -3
  934. data/src/core/lib/iomgr/tcp_client_posix.cc +8 -1
  935. data/src/core/lib/iomgr/tcp_posix.cc +24 -7
  936. data/src/core/lib/iomgr/tcp_server_posix.cc +145 -106
  937. data/src/core/lib/iomgr/tcp_server_utils_posix.h +1 -1
  938. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +5 -2
  939. data/src/core/lib/iomgr/tcp_server_windows.cc +1 -1
  940. data/src/core/lib/iomgr/tcp_windows.cc +1 -3
  941. data/src/core/lib/iomgr/timer_generic.cc +17 -16
  942. data/src/core/lib/iomgr/vsock.cc +59 -0
  943. data/src/core/lib/iomgr/vsock.h +38 -0
  944. data/src/core/lib/iomgr/wakeup_fd_posix.h +3 -6
  945. data/src/core/lib/json/json.h +2 -218
  946. data/src/core/lib/json/json_object_loader.cc +24 -25
  947. data/src/core/lib/json/json_object_loader.h +30 -18
  948. data/src/core/lib/json/json_reader.cc +69 -42
  949. data/src/core/lib/json/json_reader.h +34 -0
  950. data/src/core/lib/json/json_util.cc +10 -15
  951. data/src/core/lib/json/json_util.h +5 -4
  952. data/src/core/lib/json/json_writer.cc +24 -25
  953. data/src/core/lib/json/json_writer.h +33 -0
  954. data/src/core/lib/load_balancing/delegating_helper.h +115 -0
  955. data/src/core/lib/load_balancing/lb_policy.h +33 -0
  956. data/src/core/lib/load_balancing/lb_policy_registry.cc +9 -8
  957. data/src/core/lib/load_balancing/subchannel_interface.h +6 -0
  958. data/src/core/lib/matchers/matchers.cc +3 -4
  959. data/src/core/lib/matchers/matchers.h +2 -1
  960. data/src/core/lib/promise/activity.cc +5 -0
  961. data/src/core/lib/promise/activity.h +10 -0
  962. data/src/core/lib/promise/detail/basic_seq.h +1 -372
  963. data/src/core/lib/promise/detail/promise_factory.h +1 -1
  964. data/src/core/lib/promise/detail/seq_state.h +2076 -0
  965. data/src/core/lib/promise/party.cc +31 -13
  966. data/src/core/lib/promise/party.h +12 -3
  967. data/src/core/lib/promise/pipe.h +16 -2
  968. data/src/core/lib/promise/prioritized_race.h +95 -0
  969. data/src/core/lib/promise/seq.h +19 -2
  970. data/src/core/lib/promise/sleep.cc +2 -1
  971. data/src/core/lib/promise/sleep.h +5 -10
  972. data/src/core/lib/promise/try_seq.h +34 -2
  973. data/src/core/lib/resolver/resolver_factory.h +3 -2
  974. data/src/core/lib/resolver/server_address.cc +9 -102
  975. data/src/core/lib/resolver/server_address.h +10 -70
  976. data/src/core/lib/resource_quota/api.cc +1 -0
  977. data/src/core/lib/resource_quota/arena.cc +2 -0
  978. data/src/core/lib/resource_quota/arena.h +42 -8
  979. data/src/core/lib/resource_quota/memory_quota.cc +7 -8
  980. data/src/core/lib/resource_quota/memory_quota.h +2 -3
  981. data/src/core/lib/resource_quota/resource_quota.h +1 -0
  982. data/src/core/lib/security/authorization/audit_logging.cc +98 -0
  983. data/src/core/lib/security/authorization/audit_logging.h +73 -0
  984. data/src/core/lib/security/authorization/authorization_policy_provider.h +1 -1
  985. data/src/core/lib/security/authorization/grpc_authorization_engine.cc +47 -2
  986. data/src/core/lib/security/authorization/grpc_authorization_engine.h +18 -1
  987. data/src/core/lib/security/authorization/rbac_policy.cc +36 -4
  988. data/src/core/lib/security/authorization/rbac_policy.h +19 -2
  989. data/src/core/lib/security/authorization/stdout_logger.cc +75 -0
  990. data/src/core/lib/security/authorization/stdout_logger.h +61 -0
  991. data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +8 -4
  992. data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +8 -18
  993. data/src/core/lib/security/certificate_provider/certificate_provider_registry.h +14 -8
  994. data/src/core/lib/security/credentials/channel_creds_registry.h +51 -27
  995. data/src/core/lib/security/credentials/channel_creds_registry_init.cc +169 -9
  996. data/src/core/lib/security/credentials/composite/composite_credentials.cc +1 -1
  997. data/src/core/lib/security/credentials/composite/composite_credentials.h +3 -1
  998. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +54 -49
  999. data/src/core/lib/security/credentials/external/aws_request_signer.cc +8 -0
  1000. data/src/core/lib/security/credentials/external/external_account_credentials.cc +104 -65
  1001. data/src/core/lib/security/credentials/external/external_account_credentials.h +6 -0
  1002. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +23 -21
  1003. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +29 -27
  1004. data/src/core/lib/security/credentials/fake/fake_credentials.cc +30 -38
  1005. data/src/core/lib/security/credentials/fake/fake_credentials.h +28 -0
  1006. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +6 -2
  1007. data/src/core/lib/security/credentials/jwt/json_token.cc +36 -16
  1008. data/src/core/lib/security/credentials/jwt/json_token.h +4 -0
  1009. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +10 -5
  1010. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +82 -38
  1011. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +18 -16
  1012. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +1 -0
  1013. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +4 -0
  1014. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +8 -0
  1015. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +5 -1
  1016. data/src/core/lib/security/credentials/tls/tls_credentials.cc +2 -1
  1017. data/src/core/lib/security/credentials/tls/tls_credentials.h +3 -1
  1018. data/src/core/lib/security/credentials/xds/xds_credentials.cc +1 -0
  1019. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +2 -5
  1020. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +1 -0
  1021. data/src/core/lib/security/security_connector/ssl_utils.cc +3 -1
  1022. data/src/core/lib/security/security_connector/ssl_utils.h +1 -1
  1023. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +1 -1
  1024. data/src/core/lib/security/transport/client_auth_filter.cc +8 -5
  1025. data/src/core/lib/security/transport/security_handshaker.cc +1 -0
  1026. data/src/core/lib/security/transport/server_auth_filter.cc +2 -0
  1027. data/src/core/lib/security/util/json_util.cc +6 -5
  1028. data/src/core/lib/service_config/service_config_call_data.h +54 -20
  1029. data/src/core/lib/service_config/service_config_impl.cc +13 -6
  1030. data/src/core/lib/slice/slice.h +18 -0
  1031. data/src/core/lib/surface/call.cc +159 -73
  1032. data/src/core/lib/surface/call.h +1 -5
  1033. data/src/core/lib/surface/channel.cc +1 -0
  1034. data/src/core/lib/surface/completion_queue.cc +18 -3
  1035. data/src/core/lib/surface/init.cc +1 -0
  1036. data/src/core/lib/surface/server.cc +106 -75
  1037. data/src/core/lib/surface/server.h +1 -15
  1038. data/src/core/lib/surface/validate_metadata.cc +37 -22
  1039. data/src/core/lib/surface/validate_metadata.h +13 -3
  1040. data/src/core/lib/surface/version.cc +2 -2
  1041. data/src/core/lib/transport/batch_builder.cc +15 -12
  1042. data/src/core/lib/transport/batch_builder.h +48 -36
  1043. data/src/core/lib/transport/metadata_batch.cc +7 -7
  1044. data/src/core/lib/transport/metadata_batch.h +88 -107
  1045. data/src/core/lib/transport/metadata_compression_traits.h +67 -0
  1046. data/src/core/lib/transport/parsed_metadata.h +34 -20
  1047. data/src/core/lib/transport/simple_slice_based_metadata.h +55 -0
  1048. data/src/core/lib/transport/transport.h +3 -0
  1049. data/src/core/plugin_registry/grpc_plugin_registry.cc +2 -6
  1050. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +2 -0
  1051. data/src/core/tsi/alts/crypt/aes_gcm.cc +27 -2
  1052. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +4 -6
  1053. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +1 -2
  1054. data/src/core/tsi/ssl_transport_security.cc +44 -9
  1055. data/src/core/tsi/ssl_transport_security.h +13 -1
  1056. data/src/ruby/bin/math_pb.rb +24 -18
  1057. data/src/ruby/ext/grpc/extconf.rb +27 -27
  1058. data/src/ruby/ext/grpc/rb_call.c +62 -39
  1059. data/src/ruby/ext/grpc/rb_call_credentials.c +0 -1
  1060. data/src/ruby/ext/grpc/rb_channel.c +109 -84
  1061. data/src/ruby/ext/grpc/rb_channel.h +1 -0
  1062. data/src/ruby/ext/grpc/rb_channel_args.c +16 -2
  1063. data/src/ruby/ext/grpc/rb_channel_args.h +4 -0
  1064. data/src/ruby/ext/grpc/rb_channel_credentials.c +0 -1
  1065. data/src/ruby/ext/grpc/rb_compression_options.c +0 -1
  1066. data/src/ruby/ext/grpc/rb_event_thread.c +22 -6
  1067. data/src/ruby/ext/grpc/rb_event_thread.h +1 -0
  1068. data/src/ruby/ext/grpc/rb_grpc.c +192 -30
  1069. data/src/ruby/ext/grpc/rb_grpc.h +8 -2
  1070. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
  1071. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +3 -0
  1072. data/src/ruby/ext/grpc/rb_server.c +62 -45
  1073. data/src/ruby/ext/grpc/rb_server_credentials.c +0 -1
  1074. data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +0 -1
  1075. data/src/ruby/ext/grpc/rb_xds_server_credentials.c +0 -1
  1076. data/src/ruby/lib/grpc/generic/active_call.rb +9 -14
  1077. data/src/ruby/lib/grpc/generic/bidi_call.rb +2 -0
  1078. data/src/ruby/lib/grpc/version.rb +1 -1
  1079. data/src/ruby/pb/grpc/health/v1/health_pb.rb +24 -13
  1080. data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +24 -3
  1081. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +25 -111
  1082. data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +25 -2
  1083. data/src/ruby/pb/test/client.rb +16 -0
  1084. data/src/ruby/spec/generic/rpc_server_spec.rb +3 -3
  1085. data/third_party/abseil-cpp/absl/algorithm/container.h +3 -2
  1086. data/third_party/abseil-cpp/absl/base/attributes.h +58 -5
  1087. data/third_party/abseil-cpp/absl/base/call_once.h +1 -1
  1088. data/third_party/abseil-cpp/absl/base/casts.h +8 -8
  1089. data/third_party/abseil-cpp/absl/base/config.h +89 -106
  1090. data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +26 -1
  1091. data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +2 -2
  1092. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +50 -39
  1093. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +2 -1
  1094. data/third_party/abseil-cpp/absl/base/internal/prefetch.h +17 -18
  1095. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +32 -3
  1096. data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +24 -4
  1097. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +31 -73
  1098. data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +9 -8
  1099. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +11 -11
  1100. data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +23 -32
  1101. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +2 -3
  1102. data/third_party/abseil-cpp/absl/base/options.h +1 -1
  1103. data/third_party/abseil-cpp/absl/base/policy_checks.h +3 -3
  1104. data/third_party/abseil-cpp/absl/base/prefetch.h +198 -0
  1105. data/third_party/abseil-cpp/absl/container/fixed_array.h +54 -29
  1106. data/third_party/abseil-cpp/absl/container/flat_hash_map.h +5 -1
  1107. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +6 -2
  1108. data/third_party/abseil-cpp/absl/container/inlined_vector.h +167 -79
  1109. data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -1
  1110. data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +3 -21
  1111. data/third_party/abseil-cpp/absl/container/internal/container_memory.h +1 -1
  1112. data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +46 -0
  1113. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +2 -0
  1114. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +85 -26
  1115. data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +35 -18
  1116. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +70 -29
  1117. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +437 -236
  1118. data/third_party/abseil-cpp/absl/crc/crc32c.h +8 -1
  1119. data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.cc +14 -8
  1120. data/third_party/abseil-cpp/absl/crc/internal/crc.cc +4 -35
  1121. data/third_party/abseil-cpp/absl/crc/internal/crc.h +2 -10
  1122. data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +1 -1
  1123. data/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.cc +1 -1
  1124. data/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.h +4 -4
  1125. data/third_party/abseil-cpp/absl/crc/internal/crc_internal.h +8 -10
  1126. data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_64.cc +17 -19
  1127. data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +8 -8
  1128. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +2 -1
  1129. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +59 -23
  1130. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +1 -1
  1131. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +1 -1
  1132. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +1 -1
  1133. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +43 -19
  1134. data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +3 -0
  1135. data/third_party/abseil-cpp/absl/flags/commandlineflag.h +1 -1
  1136. data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.cc +1 -1
  1137. data/third_party/abseil-cpp/absl/flags/internal/flag.cc +2 -2
  1138. data/third_party/abseil-cpp/absl/flags/internal/flag.h +16 -15
  1139. data/third_party/abseil-cpp/absl/flags/internal/flag_msvc.inc +1 -1
  1140. data/third_party/abseil-cpp/absl/flags/marshalling.cc +43 -2
  1141. data/third_party/abseil-cpp/absl/flags/marshalling.h +5 -0
  1142. data/third_party/abseil-cpp/absl/functional/any_invocable.h +9 -1
  1143. data/third_party/abseil-cpp/absl/functional/bind_front.h +1 -1
  1144. data/third_party/abseil-cpp/absl/functional/function_ref.h +3 -3
  1145. data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +37 -24
  1146. data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +19 -9
  1147. data/third_party/abseil-cpp/absl/hash/hash.h +7 -4
  1148. data/third_party/abseil-cpp/absl/hash/internal/hash.h +38 -15
  1149. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +6 -0
  1150. data/third_party/abseil-cpp/absl/meta/type_traits.h +48 -373
  1151. data/third_party/abseil-cpp/absl/numeric/bits.h +4 -4
  1152. data/third_party/abseil-cpp/absl/numeric/int128.cc +20 -8
  1153. data/third_party/abseil-cpp/absl/numeric/int128.h +36 -39
  1154. data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +0 -3
  1155. data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +47 -30
  1156. data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +4 -3
  1157. data/third_party/abseil-cpp/absl/random/internal/generate_real.h +1 -1
  1158. data/third_party/abseil-cpp/absl/random/internal/platform.h +1 -1
  1159. data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +4 -0
  1160. data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +1 -1
  1161. data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc +1 -1
  1162. data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +1 -1
  1163. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +4 -0
  1164. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +12 -24
  1165. data/third_party/abseil-cpp/absl/status/status.cc +11 -7
  1166. data/third_party/abseil-cpp/absl/status/status.h +11 -2
  1167. data/third_party/abseil-cpp/absl/status/statusor.h +22 -8
  1168. data/third_party/abseil-cpp/absl/strings/ascii.cc +54 -6
  1169. data/third_party/abseil-cpp/absl/strings/charconv.cc +21 -4
  1170. data/third_party/abseil-cpp/absl/strings/charconv.h +2 -2
  1171. data/third_party/abseil-cpp/absl/strings/cord.cc +1 -2
  1172. data/third_party/abseil-cpp/absl/strings/cord.h +32 -5
  1173. data/third_party/abseil-cpp/absl/strings/cord_analysis.cc +23 -1
  1174. data/third_party/abseil-cpp/absl/strings/cord_analysis.h +18 -0
  1175. data/third_party/abseil-cpp/absl/strings/cord_buffer.h +2 -5
  1176. data/third_party/abseil-cpp/absl/strings/escaping.cc +10 -32
  1177. data/third_party/abseil-cpp/absl/strings/escaping.h +1 -1
  1178. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +2 -4
  1179. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +3 -3
  1180. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +0 -1
  1181. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +15 -13
  1182. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +13 -4
  1183. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +8 -0
  1184. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +5 -3
  1185. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.h +4 -7
  1186. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +8 -0
  1187. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +2 -2
  1188. data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +46 -20
  1189. data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.h +1 -34
  1190. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +2 -1
  1191. data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +23 -0
  1192. data/third_party/abseil-cpp/absl/strings/internal/escaping.h +1 -0
  1193. data/third_party/abseil-cpp/absl/strings/internal/memutil.cc +2 -77
  1194. data/third_party/abseil-cpp/absl/strings/internal/memutil.h +4 -112
  1195. data/third_party/abseil-cpp/absl/strings/internal/stl_type_traits.h +1 -1
  1196. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +10 -31
  1197. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +8 -8
  1198. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +5 -20
  1199. data/third_party/abseil-cpp/absl/strings/internal/str_format/constexpr_parser.h +1 -0
  1200. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +1 -1
  1201. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +9 -9
  1202. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +56 -6
  1203. data/third_party/abseil-cpp/absl/strings/match.cc +87 -0
  1204. data/third_party/abseil-cpp/absl/strings/match.h +19 -0
  1205. data/third_party/abseil-cpp/absl/strings/numbers.cc +154 -122
  1206. data/third_party/abseil-cpp/absl/strings/numbers.h +1 -6
  1207. data/third_party/abseil-cpp/absl/strings/str_cat.cc +7 -50
  1208. data/third_party/abseil-cpp/absl/strings/str_cat.h +83 -15
  1209. data/third_party/abseil-cpp/absl/strings/str_format.h +6 -3
  1210. data/third_party/abseil-cpp/absl/strings/str_split.cc +9 -6
  1211. data/third_party/abseil-cpp/absl/strings/string_view.cc +26 -4
  1212. data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +5 -0
  1213. data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +63 -43
  1214. data/third_party/abseil-cpp/absl/synchronization/internal/futex_waiter.cc +111 -0
  1215. data/third_party/abseil-cpp/absl/synchronization/internal/futex_waiter.h +63 -0
  1216. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +11 -7
  1217. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc +225 -0
  1218. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +122 -114
  1219. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +12 -8
  1220. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +10 -1
  1221. data/third_party/abseil-cpp/absl/synchronization/internal/pthread_waiter.cc +167 -0
  1222. data/third_party/abseil-cpp/absl/synchronization/internal/pthread_waiter.h +60 -0
  1223. data/third_party/abseil-cpp/absl/synchronization/internal/sem_waiter.cc +122 -0
  1224. data/third_party/abseil-cpp/absl/synchronization/internal/sem_waiter.h +65 -0
  1225. data/third_party/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc +91 -0
  1226. data/third_party/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.h +56 -0
  1227. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +19 -113
  1228. data/third_party/abseil-cpp/absl/synchronization/internal/waiter_base.cc +42 -0
  1229. data/third_party/abseil-cpp/absl/synchronization/internal/waiter_base.h +90 -0
  1230. data/third_party/abseil-cpp/absl/synchronization/internal/win32_waiter.cc +151 -0
  1231. data/third_party/abseil-cpp/absl/synchronization/internal/win32_waiter.h +70 -0
  1232. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +407 -411
  1233. data/third_party/abseil-cpp/absl/synchronization/mutex.h +152 -118
  1234. data/third_party/abseil-cpp/absl/time/clock.cc +6 -7
  1235. data/third_party/abseil-cpp/absl/time/duration.cc +24 -26
  1236. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +1 -0
  1237. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +1 -1
  1238. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +3 -3
  1239. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc +8 -6
  1240. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +6 -3
  1241. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +4 -2
  1242. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +4 -0
  1243. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +322 -295
  1244. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +8 -17
  1245. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +51 -33
  1246. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h +7 -2
  1247. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +128 -2
  1248. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.h +1 -1
  1249. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +5 -1
  1250. data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +34 -34
  1251. data/third_party/abseil-cpp/absl/time/time.cc +9 -2
  1252. data/third_party/abseil-cpp/absl/time/time.h +115 -15
  1253. data/third_party/abseil-cpp/absl/types/internal/optional.h +0 -52
  1254. data/third_party/abseil-cpp/absl/types/internal/span.h +2 -2
  1255. data/third_party/abseil-cpp/absl/types/internal/variant.h +2 -2
  1256. data/third_party/abseil-cpp/absl/types/optional.h +15 -13
  1257. data/third_party/abseil-cpp/absl/types/span.h +1 -2
  1258. data/third_party/boringssl-with-bazel/err_data.c +554 -553
  1259. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +7 -3
  1260. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +9 -8
  1261. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.c +7 -7
  1262. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +6 -6
  1263. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +34 -1
  1264. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +11 -4
  1265. data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +3 -3
  1266. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +10 -6
  1267. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +7 -4
  1268. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +9 -7
  1269. data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +40 -55
  1270. data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +7 -7
  1271. data/third_party/boringssl-with-bazel/src/crypto/bio/errno.c +92 -0
  1272. data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +14 -54
  1273. data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +23 -22
  1274. data/third_party/boringssl-with-bazel/src/crypto/bio/internal.h +16 -6
  1275. data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +4 -2
  1276. data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +4 -4
  1277. data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +11 -2
  1278. data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +31 -22
  1279. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +1 -1
  1280. data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +19 -1
  1281. data/third_party/boringssl-with-bazel/src/crypto/chacha/internal.h +8 -1
  1282. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +29 -26
  1283. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +8 -0
  1284. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +189 -13
  1285. data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +31 -192
  1286. data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +3 -7
  1287. data/third_party/boringssl-with-bazel/src/crypto/conf/internal.h +8 -0
  1288. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.c +3 -2
  1289. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_fuchsia.c +0 -1
  1290. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_linux.c +0 -2
  1291. data/third_party/boringssl-with-bazel/src/crypto/{cpu_aarch64_freebsd.c → cpu_aarch64_openbsd.c} +23 -24
  1292. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_sysreg.c +93 -0
  1293. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_win.c +1 -1
  1294. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.c +0 -1
  1295. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.c +0 -2
  1296. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +55 -50
  1297. data/third_party/boringssl-with-bazel/src/crypto/{cpu_arm.c → curve25519/curve25519_64_adx.c} +4 -24
  1298. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_tables.h +2834 -7442
  1299. data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +26 -8
  1300. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/dh_asn1.c +4 -0
  1301. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/params.c +5 -0
  1302. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +4 -0
  1303. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +20 -0
  1304. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +110 -72
  1305. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_derive.c +4 -3
  1306. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +42 -34
  1307. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +17 -11
  1308. data/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.c +1 -1
  1309. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +23 -21
  1310. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +35 -12
  1311. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c +2 -4
  1312. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c +3 -7
  1313. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.c +1 -1
  1314. data/third_party/boringssl-with-bazel/src/crypto/evp/pbkdf.c +3 -3
  1315. data/third_party/boringssl-with-bazel/src/crypto/evp/print.c +7 -6
  1316. data/third_party/boringssl-with-bazel/src/crypto/ex_data.c +34 -72
  1317. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +2 -1
  1318. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +12 -5
  1319. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.c +5 -6
  1320. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +12 -6
  1321. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +17 -18
  1322. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c +51 -15
  1323. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.c +7 -7
  1324. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/delocate.h +5 -6
  1325. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.c +37 -8
  1326. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c +41 -19
  1327. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/internal.h +9 -0
  1328. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/builtin_curves.h +277 -0
  1329. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +204 -428
  1330. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +4 -4
  1331. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +31 -64
  1332. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.c +17 -13
  1333. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +105 -143
  1334. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +19 -19
  1335. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +16 -18
  1336. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.c +27 -30
  1337. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +23 -26
  1338. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +1 -1
  1339. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +24 -24
  1340. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +21 -37
  1341. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +31 -31
  1342. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +16 -16
  1343. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +1 -1
  1344. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +11 -5
  1345. data/third_party/boringssl-with-bazel/src/crypto/{hkdf → fipsmodule/hkdf}/hkdf.c +2 -2
  1346. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +2 -10
  1347. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +1 -4
  1348. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +115 -133
  1349. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +12 -14
  1350. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +57 -47
  1351. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +1 -8
  1352. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/polyval.c +27 -28
  1353. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +40 -26
  1354. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +21 -7
  1355. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +38 -19
  1356. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +2 -41
  1357. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +76 -16
  1358. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c +5 -288
  1359. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +143 -83
  1360. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +126 -233
  1361. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +113 -24
  1362. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.c +4 -7
  1363. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/internal.h +8 -0
  1364. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c +33 -0
  1365. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +169 -6
  1366. data/third_party/boringssl-with-bazel/src/crypto/internal.h +216 -87
  1367. data/third_party/boringssl-with-bazel/src/crypto/kyber/internal.h +32 -2
  1368. data/third_party/boringssl-with-bazel/src/crypto/kyber/keccak.c +11 -12
  1369. data/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c +834 -0
  1370. data/third_party/boringssl-with-bazel/src/crypto/mem.c +7 -8
  1371. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +25 -46
  1372. data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +6 -13
  1373. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +18 -14
  1374. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +3 -3
  1375. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/p5_pbev2.c +3 -3
  1376. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +7 -7
  1377. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +8 -5
  1378. data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +1 -0
  1379. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +7 -6
  1380. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/forkunsafe.c +6 -12
  1381. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/getentropy.c +52 -0
  1382. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{fuchsia.c → ios.c} +8 -8
  1383. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/trusty.c +38 -0
  1384. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +41 -19
  1385. data/third_party/boringssl-with-bazel/src/crypto/{refcount_c11.c → refcount.c} +11 -17
  1386. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/internal.h +77 -0
  1387. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_crypt.c +568 -0
  1388. data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +152 -72
  1389. data/third_party/boringssl-with-bazel/src/crypto/thread_none.c +0 -8
  1390. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +6 -35
  1391. data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +5 -26
  1392. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +62 -0
  1393. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +240 -72
  1394. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +35 -0
  1395. data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +588 -130
  1396. data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.c +27 -18
  1397. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +1 -1
  1398. data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +10 -20
  1399. data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +0 -3
  1400. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +3 -2
  1401. data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +17 -39
  1402. data/third_party/boringssl-with-bazel/src/crypto/x509/policy.c +18 -14
  1403. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +39 -48
  1404. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +1 -141
  1405. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.c +1 -3
  1406. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +19 -25
  1407. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +72 -23
  1408. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +8 -4
  1409. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +8 -12
  1410. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +22 -24
  1411. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +1 -72
  1412. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +22 -29
  1413. data/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.c +1 -1
  1414. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +9 -7
  1415. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +1 -1
  1416. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +7 -7
  1417. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +2 -2
  1418. data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +1 -1
  1419. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +2 -3
  1420. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +33 -46
  1421. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +1 -0
  1422. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +3 -5
  1423. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +20 -52
  1424. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +14 -26
  1425. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +11 -9
  1426. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +17 -10
  1427. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +5 -3
  1428. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +5 -7
  1429. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +4 -119
  1430. data/third_party/boringssl-with-bazel/src/include/openssl/asm_base.h +207 -0
  1431. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +11 -4
  1432. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +37 -112
  1433. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +19 -13
  1434. data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +1 -4
  1435. data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +0 -2
  1436. data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +6 -0
  1437. data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +5 -1
  1438. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +4 -1
  1439. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +0 -21
  1440. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +28 -11
  1441. data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +19 -6
  1442. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +14 -10
  1443. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +34 -2
  1444. data/third_party/boringssl-with-bazel/src/include/openssl/kyber.h +128 -0
  1445. data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +2 -11
  1446. data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +8 -1
  1447. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +0 -3
  1448. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +13 -14
  1449. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +91 -62
  1450. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +26 -19
  1451. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +275 -96
  1452. data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +242 -223
  1453. data/third_party/boringssl-with-bazel/src/include/openssl/target.h +201 -0
  1454. data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +1 -25
  1455. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +4 -0
  1456. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +8 -0
  1457. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +760 -614
  1458. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +45 -12
  1459. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +11 -6
  1460. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +10 -68
  1461. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +20 -20
  1462. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +33 -18
  1463. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +1 -1
  1464. data/third_party/boringssl-with-bazel/src/ssl/internal.h +86 -46
  1465. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +37 -18
  1466. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +8 -4
  1467. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +209 -209
  1468. data/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc +6 -6
  1469. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +76 -118
  1470. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +209 -33
  1471. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +17 -4
  1472. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +19 -21
  1473. data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +27 -19
  1474. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +2 -1
  1475. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +2 -3
  1476. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +5 -21
  1477. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +5 -2
  1478. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64_adx.h +691 -0
  1479. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64_msvc.h +1281 -0
  1480. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64_msvc.h +2002 -0
  1481. data/third_party/cares/cares/include/ares.h +23 -1
  1482. data/third_party/cares/cares/{src/lib → include}/ares_nameser.h +9 -7
  1483. data/third_party/cares/cares/include/ares_rules.h +2 -2
  1484. data/third_party/cares/cares/include/ares_version.h +3 -3
  1485. data/third_party/cares/cares/src/lib/ares__addrinfo2hostent.c +266 -0
  1486. data/third_party/cares/cares/src/lib/ares__addrinfo_localhost.c +240 -0
  1487. data/third_party/cares/cares/src/lib/ares__parse_into_addrinfo.c +49 -80
  1488. data/third_party/cares/cares/src/lib/ares__readaddrinfo.c +37 -43
  1489. data/third_party/cares/cares/src/lib/ares__sortaddrinfo.c +12 -4
  1490. data/third_party/cares/cares/src/lib/ares_data.c +16 -0
  1491. data/third_party/cares/cares/src/lib/ares_data.h +7 -0
  1492. data/third_party/cares/cares/src/lib/ares_destroy.c +8 -0
  1493. data/third_party/cares/cares/src/lib/ares_expand_name.c +17 -6
  1494. data/third_party/cares/cares/src/lib/ares_freeaddrinfo.c +1 -0
  1495. data/third_party/cares/cares/src/lib/ares_getaddrinfo.c +156 -78
  1496. data/third_party/cares/cares/src/lib/ares_gethostbyname.c +130 -326
  1497. data/third_party/cares/cares/src/lib/ares_init.c +97 -485
  1498. data/third_party/cares/cares/src/lib/ares_library_init.c +2 -89
  1499. data/third_party/cares/cares/src/lib/ares_parse_a_reply.c +23 -142
  1500. data/third_party/cares/cares/src/lib/ares_parse_aaaa_reply.c +22 -142
  1501. data/third_party/cares/cares/src/lib/ares_parse_uri_reply.c +184 -0
  1502. data/third_party/cares/cares/src/lib/ares_private.h +30 -16
  1503. data/third_party/cares/cares/src/lib/ares_process.c +55 -16
  1504. data/third_party/cares/cares/src/lib/ares_query.c +1 -35
  1505. data/third_party/cares/cares/src/lib/ares_rand.c +279 -0
  1506. data/third_party/cares/cares/src/lib/ares_send.c +5 -7
  1507. data/third_party/cares/cares/src/lib/ares_strdup.c +12 -19
  1508. data/third_party/cares/cares/src/lib/ares_strsplit.c +44 -128
  1509. data/third_party/cares/cares/src/lib/ares_strsplit.h +9 -10
  1510. data/third_party/cares/cares/src/lib/inet_net_pton.c +78 -116
  1511. data/third_party/cares/cares/src/tools/ares_getopt.h +53 -0
  1512. data/third_party/upb/upb/{table_internal.h → alloc.h} +6 -6
  1513. data/third_party/upb/upb/arena.h +4 -193
  1514. data/third_party/upb/upb/array.h +4 -51
  1515. data/third_party/upb/upb/base/descriptor_constants.h +104 -0
  1516. data/third_party/upb/upb/base/log2.h +57 -0
  1517. data/third_party/upb/upb/{status.c → base/status.c} +2 -7
  1518. data/third_party/upb/upb/base/status.h +66 -0
  1519. data/third_party/upb/upb/base/string_view.h +75 -0
  1520. data/third_party/upb/upb/{array.c → collections/array.c} +67 -36
  1521. data/third_party/upb/upb/collections/array.h +85 -0
  1522. data/third_party/upb/upb/collections/array_internal.h +135 -0
  1523. data/third_party/upb/upb/{map.c → collections/map.c} +53 -26
  1524. data/third_party/upb/upb/collections/map.h +135 -0
  1525. data/third_party/upb/upb/collections/map_gencode_util.h +78 -0
  1526. data/third_party/upb/upb/collections/map_internal.h +170 -0
  1527. data/third_party/upb/upb/collections/map_sorter.c +166 -0
  1528. data/third_party/upb/upb/collections/map_sorter_internal.h +109 -0
  1529. data/third_party/upb/upb/{message_value.h → collections/message_value.h} +12 -13
  1530. data/third_party/upb/upb/decode.h +3 -62
  1531. data/third_party/upb/upb/def.h +4 -384
  1532. data/third_party/upb/upb/def.hpp +3 -411
  1533. data/third_party/upb/upb/encode.h +3 -48
  1534. data/third_party/upb/upb/extension_registry.h +3 -52
  1535. data/third_party/upb/upb/{table.c → hash/common.c} +52 -110
  1536. data/third_party/upb/upb/hash/common.h +199 -0
  1537. data/third_party/upb/upb/hash/int_table.h +102 -0
  1538. data/third_party/upb/upb/hash/str_table.h +161 -0
  1539. data/third_party/upb/upb/{json_decode.c → json/decode.c} +63 -98
  1540. data/third_party/upb/upb/json/decode.h +52 -0
  1541. data/third_party/upb/upb/{json_encode.c → json/encode.c} +69 -45
  1542. data/third_party/upb/upb/json/encode.h +70 -0
  1543. data/third_party/upb/upb/json_decode.h +4 -15
  1544. data/third_party/upb/upb/json_encode.h +4 -33
  1545. data/third_party/upb/upb/lex/atoi.c +68 -0
  1546. data/third_party/upb/upb/lex/atoi.h +53 -0
  1547. data/third_party/upb/upb/{upb.c → lex/round_trip.c} +2 -11
  1548. data/third_party/upb/upb/{internal/upb.h → lex/round_trip.h} +17 -30
  1549. data/third_party/upb/upb/lex/strtod.c +97 -0
  1550. data/third_party/upb/upb/lex/strtod.h +46 -0
  1551. data/third_party/upb/upb/lex/unicode.c +57 -0
  1552. data/third_party/upb/upb/lex/unicode.h +77 -0
  1553. data/third_party/upb/upb/map.h +4 -85
  1554. data/third_party/upb/upb/mem/alloc.c +47 -0
  1555. data/third_party/upb/upb/mem/alloc.h +98 -0
  1556. data/third_party/upb/upb/mem/arena.c +367 -0
  1557. data/third_party/upb/upb/mem/arena.h +160 -0
  1558. data/third_party/upb/upb/mem/arena_internal.h +114 -0
  1559. data/third_party/upb/upb/message/accessors.c +68 -0
  1560. data/third_party/upb/upb/message/accessors.h +379 -0
  1561. data/third_party/upb/upb/message/accessors_internal.h +325 -0
  1562. data/third_party/upb/upb/message/extension_internal.h +83 -0
  1563. data/third_party/upb/upb/message/internal.h +135 -0
  1564. data/third_party/upb/upb/message/message.c +180 -0
  1565. data/third_party/upb/upb/message/message.h +69 -0
  1566. data/third_party/upb/upb/mini_table/common.c +128 -0
  1567. data/third_party/upb/upb/mini_table/common.h +170 -0
  1568. data/third_party/upb/upb/mini_table/common_internal.h +111 -0
  1569. data/third_party/upb/upb/{mini_table.c → mini_table/decode.c} +513 -533
  1570. data/third_party/upb/upb/mini_table/decode.h +179 -0
  1571. data/third_party/upb/upb/mini_table/encode.c +300 -0
  1572. data/third_party/upb/upb/mini_table/encode_internal.h +111 -0
  1573. data/third_party/upb/upb/{mini_table.hpp → mini_table/encode_internal.hpp} +32 -8
  1574. data/third_party/upb/upb/mini_table/enum_internal.h +88 -0
  1575. data/third_party/upb/upb/mini_table/extension_internal.h +47 -0
  1576. data/third_party/upb/upb/{extension_registry.c → mini_table/extension_registry.c} +27 -24
  1577. data/third_party/upb/upb/mini_table/extension_registry.h +104 -0
  1578. data/third_party/upb/upb/mini_table/field_internal.h +192 -0
  1579. data/third_party/upb/upb/mini_table/file_internal.h +47 -0
  1580. data/third_party/upb/upb/mini_table/message_internal.h +136 -0
  1581. data/third_party/upb/upb/mini_table/sub_internal.h +38 -0
  1582. data/third_party/upb/upb/mini_table/types.h +40 -0
  1583. data/third_party/upb/upb/msg.h +3 -38
  1584. data/third_party/upb/upb/port/atomic.h +101 -0
  1585. data/third_party/upb/upb/{port_def.inc → port/def.inc} +94 -27
  1586. data/third_party/upb/upb/{port_undef.inc → port/undef.inc} +13 -3
  1587. data/third_party/upb/upb/{internal → port}/vsnprintf_compat.h +5 -7
  1588. data/third_party/upb/upb/reflection/common.h +67 -0
  1589. data/third_party/upb/upb/reflection/def.h +42 -0
  1590. data/third_party/upb/upb/reflection/def.hpp +610 -0
  1591. data/third_party/upb/upb/reflection/def_builder.c +357 -0
  1592. data/third_party/upb/upb/reflection/def_builder_internal.h +157 -0
  1593. data/third_party/upb/upb/reflection/def_pool.c +462 -0
  1594. data/third_party/upb/upb/reflection/def_pool.h +108 -0
  1595. data/third_party/upb/upb/reflection/def_pool_internal.h +77 -0
  1596. data/third_party/upb/upb/reflection/def_type.c +50 -0
  1597. data/third_party/upb/upb/reflection/def_type.h +81 -0
  1598. data/third_party/upb/upb/reflection/desc_state.c +53 -0
  1599. data/third_party/upb/upb/reflection/desc_state_internal.h +64 -0
  1600. data/third_party/upb/upb/reflection/enum_def.c +310 -0
  1601. data/third_party/upb/upb/reflection/enum_def.h +80 -0
  1602. data/third_party/upb/upb/reflection/enum_def_internal.h +56 -0
  1603. data/third_party/upb/upb/reflection/enum_reserved_range.c +84 -0
  1604. data/third_party/upb/upb/reflection/enum_reserved_range.h +51 -0
  1605. data/third_party/upb/upb/reflection/enum_reserved_range_internal.h +55 -0
  1606. data/third_party/upb/upb/reflection/enum_value_def.c +144 -0
  1607. data/third_party/upb/upb/reflection/enum_value_def.h +57 -0
  1608. data/third_party/upb/upb/reflection/enum_value_def_internal.h +57 -0
  1609. data/third_party/upb/upb/reflection/extension_range.c +93 -0
  1610. data/third_party/upb/upb/reflection/extension_range.h +55 -0
  1611. data/third_party/upb/upb/reflection/extension_range_internal.h +54 -0
  1612. data/third_party/upb/upb/reflection/field_def.c +930 -0
  1613. data/third_party/upb/upb/reflection/field_def.h +91 -0
  1614. data/third_party/upb/upb/reflection/field_def_internal.h +76 -0
  1615. data/third_party/upb/upb/reflection/file_def.c +370 -0
  1616. data/third_party/upb/upb/reflection/file_def.h +77 -0
  1617. data/third_party/upb/upb/reflection/file_def_internal.h +57 -0
  1618. data/third_party/upb/upb/reflection/message.c +233 -0
  1619. data/third_party/upb/upb/reflection/message.h +102 -0
  1620. data/third_party/upb/upb/reflection/message.hpp +37 -0
  1621. data/third_party/upb/upb/reflection/message_def.c +718 -0
  1622. data/third_party/upb/upb/reflection/message_def.h +174 -0
  1623. data/third_party/upb/upb/reflection/message_def_internal.h +63 -0
  1624. data/third_party/upb/upb/reflection/message_reserved_range.c +81 -0
  1625. data/third_party/upb/upb/reflection/message_reserved_range.h +51 -0
  1626. data/third_party/upb/upb/reflection/message_reserved_range_internal.h +55 -0
  1627. data/third_party/upb/upb/reflection/method_def.c +124 -0
  1628. data/third_party/upb/upb/reflection/method_def.h +59 -0
  1629. data/third_party/upb/upb/reflection/method_def_internal.h +53 -0
  1630. data/third_party/upb/upb/reflection/oneof_def.c +226 -0
  1631. data/third_party/upb/upb/reflection/oneof_def.h +66 -0
  1632. data/third_party/upb/upb/reflection/oneof_def_internal.h +57 -0
  1633. data/third_party/upb/upb/reflection/service_def.c +128 -0
  1634. data/third_party/upb/upb/reflection/service_def.h +60 -0
  1635. data/third_party/upb/upb/reflection/service_def_internal.h +53 -0
  1636. data/third_party/upb/upb/reflection.h +4 -78
  1637. data/third_party/upb/upb/reflection.hpp +3 -7
  1638. data/third_party/upb/upb/status.h +4 -34
  1639. data/third_party/upb/upb/{collections.h → string_view.h} +7 -7
  1640. data/third_party/upb/upb/{text_encode.c → text/encode.c} +74 -70
  1641. data/third_party/upb/upb/text/encode.h +69 -0
  1642. data/third_party/upb/upb/text_encode.h +4 -32
  1643. data/third_party/upb/upb/upb.h +6 -151
  1644. data/third_party/upb/upb/upb.hpp +10 -18
  1645. data/third_party/upb/upb/wire/common.h +44 -0
  1646. data/third_party/upb/upb/wire/common_internal.h +50 -0
  1647. data/third_party/upb/upb/wire/decode.c +1343 -0
  1648. data/third_party/upb/upb/wire/decode.h +108 -0
  1649. data/third_party/upb/upb/{decode_fast.c → wire/decode_fast.c} +184 -225
  1650. data/third_party/upb/upb/{decode_fast.h → wire/decode_fast.h} +21 -7
  1651. data/third_party/upb/upb/{internal/decode.h → wire/decode_internal.h} +44 -92
  1652. data/third_party/upb/upb/{encode.c → wire/encode.c} +114 -95
  1653. data/third_party/upb/upb/wire/encode.h +92 -0
  1654. data/third_party/upb/upb/wire/eps_copy_input_stream.c +39 -0
  1655. data/third_party/upb/upb/wire/eps_copy_input_stream.h +425 -0
  1656. data/third_party/upb/upb/wire/reader.c +67 -0
  1657. data/third_party/upb/upb/wire/reader.h +227 -0
  1658. data/third_party/upb/upb/wire/swap_internal.h +63 -0
  1659. data/third_party/upb/upb/wire/types.h +41 -0
  1660. data/third_party/{upb/third_party/utf8_range → utf8_range}/range2-neon.c +1 -1
  1661. data/third_party/{upb/third_party/utf8_range → utf8_range}/utf8_range.h +12 -0
  1662. metadata +258 -82
  1663. data/src/core/ext/filters/client_channel/health/health_check_client.cc +0 -175
  1664. data/src/core/ext/filters/client_channel/health/health_check_client.h +0 -43
  1665. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.cc +0 -42
  1666. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.h +0 -64
  1667. data/src/core/ext/transport/chttp2/transport/context_list.cc +0 -71
  1668. data/src/core/ext/transport/chttp2/transport/context_list.h +0 -54
  1669. data/src/core/ext/transport/chttp2/transport/stream_map.cc +0 -177
  1670. data/src/core/ext/transport/chttp2/transport/stream_map.h +0 -68
  1671. data/src/core/lib/promise/detail/basic_join.h +0 -197
  1672. data/src/core/lib/promise/detail/switch.h +0 -1455
  1673. data/src/core/lib/promise/try_join.h +0 -82
  1674. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +0 -403
  1675. data/third_party/boringssl-with-bazel/src/crypto/refcount_lock.c +0 -52
  1676. data/third_party/cares/cares/src/lib/ares_library_init.h +0 -43
  1677. data/third_party/re2/util/benchmark.h +0 -156
  1678. data/third_party/re2/util/flags.h +0 -26
  1679. data/third_party/re2/util/malloc_counter.h +0 -19
  1680. data/third_party/re2/util/pcre.cc +0 -1025
  1681. data/third_party/re2/util/pcre.h +0 -681
  1682. data/third_party/re2/util/test.h +0 -50
  1683. data/third_party/upb/upb/arena.c +0 -277
  1684. data/third_party/upb/upb/decode.c +0 -1221
  1685. data/third_party/upb/upb/def.c +0 -3269
  1686. data/third_party/upb/upb/internal/table.h +0 -385
  1687. data/third_party/upb/upb/mini_table.h +0 -189
  1688. data/third_party/upb/upb/msg.c +0 -368
  1689. data/third_party/upb/upb/msg_internal.h +0 -837
  1690. data/third_party/upb/upb/reflection.c +0 -323
  1691. data/third_party/zlib/gzclose.c +0 -25
  1692. data/third_party/zlib/gzlib.c +0 -639
  1693. data/third_party/zlib/gzread.c +0 -650
  1694. data/third_party/zlib/gzwrite.c +0 -677
  1695. /data/third_party/{upb/third_party/utf8_range → utf8_range}/naive.c +0 -0
  1696. /data/third_party/{upb/third_party/utf8_range → utf8_range}/range2-sse.c +0 -0
@@ -0,0 +1,4530 @@
1
+ // Copyright 2023 gRPC authors.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ //
16
+ // Automatically generated by tools/codegen/core/gen_if_list.py
17
+ //
18
+
19
+ #ifndef GRPC_SRC_CORE_LIB_GPRPP_IF_LIST_H
20
+ #define GRPC_SRC_CORE_LIB_GPRPP_IF_LIST_H
21
+
22
+ #include <grpc/support/port_platform.h>
23
+
24
+ namespace grpc_core {
25
+
26
+ template <typename CheckArg, typename ActionArg, typename ActionFail,
27
+ typename Check0, typename Action0>
28
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
29
+ Check0 check0, Action0 action0) {
30
+ if (check0(input)) return action0(action_arg);
31
+ return action_fail(action_arg);
32
+ }
33
+
34
+ template <typename CheckArg, typename ActionArg, typename ActionFail,
35
+ typename Check0, typename Check1, typename Action0, typename Action1>
36
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
37
+ Check0 check0, Check1 check1, Action0 action0, Action1 action1) {
38
+ if (check0(input)) return action0(action_arg);
39
+ if (check1(input)) return action1(action_arg);
40
+ return action_fail(action_arg);
41
+ }
42
+
43
+ template <typename CheckArg, typename ActionArg, typename ActionFail,
44
+ typename Check0, typename Check1, typename Check2, typename Action0,
45
+ typename Action1, typename Action2>
46
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
47
+ Check0 check0, Check1 check1, Check2 check2, Action0 action0,
48
+ Action1 action1, Action2 action2) {
49
+ if (check0(input)) return action0(action_arg);
50
+ if (check1(input)) return action1(action_arg);
51
+ if (check2(input)) return action2(action_arg);
52
+ return action_fail(action_arg);
53
+ }
54
+
55
+ template <typename CheckArg, typename ActionArg, typename ActionFail,
56
+ typename Check0, typename Check1, typename Check2, typename Check3,
57
+ typename Action0, typename Action1, typename Action2,
58
+ typename Action3>
59
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
60
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
61
+ Action0 action0, Action1 action1, Action2 action2,
62
+ Action3 action3) {
63
+ if (check0(input)) return action0(action_arg);
64
+ if (check1(input)) return action1(action_arg);
65
+ if (check2(input)) return action2(action_arg);
66
+ if (check3(input)) return action3(action_arg);
67
+ return action_fail(action_arg);
68
+ }
69
+
70
+ template <typename CheckArg, typename ActionArg, typename ActionFail,
71
+ typename Check0, typename Check1, typename Check2, typename Check3,
72
+ typename Check4, typename Action0, typename Action1, typename Action2,
73
+ typename Action3, typename Action4>
74
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
75
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
76
+ Check4 check4, Action0 action0, Action1 action1, Action2 action2,
77
+ Action3 action3, Action4 action4) {
78
+ if (check0(input)) return action0(action_arg);
79
+ if (check1(input)) return action1(action_arg);
80
+ if (check2(input)) return action2(action_arg);
81
+ if (check3(input)) return action3(action_arg);
82
+ if (check4(input)) return action4(action_arg);
83
+ return action_fail(action_arg);
84
+ }
85
+
86
+ template <typename CheckArg, typename ActionArg, typename ActionFail,
87
+ typename Check0, typename Check1, typename Check2, typename Check3,
88
+ typename Check4, typename Check5, typename Action0, typename Action1,
89
+ typename Action2, typename Action3, typename Action4,
90
+ typename Action5>
91
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
92
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
93
+ Check4 check4, Check5 check5, Action0 action0, Action1 action1,
94
+ Action2 action2, Action3 action3, Action4 action4,
95
+ Action5 action5) {
96
+ if (check0(input)) return action0(action_arg);
97
+ if (check1(input)) return action1(action_arg);
98
+ if (check2(input)) return action2(action_arg);
99
+ if (check3(input)) return action3(action_arg);
100
+ if (check4(input)) return action4(action_arg);
101
+ if (check5(input)) return action5(action_arg);
102
+ return action_fail(action_arg);
103
+ }
104
+
105
+ template <typename CheckArg, typename ActionArg, typename ActionFail,
106
+ typename Check0, typename Check1, typename Check2, typename Check3,
107
+ typename Check4, typename Check5, typename Check6, typename Action0,
108
+ typename Action1, typename Action2, typename Action3,
109
+ typename Action4, typename Action5, typename Action6>
110
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
111
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
112
+ Check4 check4, Check5 check5, Check6 check6, Action0 action0,
113
+ Action1 action1, Action2 action2, Action3 action3, Action4 action4,
114
+ Action5 action5, Action6 action6) {
115
+ if (check0(input)) return action0(action_arg);
116
+ if (check1(input)) return action1(action_arg);
117
+ if (check2(input)) return action2(action_arg);
118
+ if (check3(input)) return action3(action_arg);
119
+ if (check4(input)) return action4(action_arg);
120
+ if (check5(input)) return action5(action_arg);
121
+ if (check6(input)) return action6(action_arg);
122
+ return action_fail(action_arg);
123
+ }
124
+
125
+ template <typename CheckArg, typename ActionArg, typename ActionFail,
126
+ typename Check0, typename Check1, typename Check2, typename Check3,
127
+ typename Check4, typename Check5, typename Check6, typename Check7,
128
+ typename Action0, typename Action1, typename Action2,
129
+ typename Action3, typename Action4, typename Action5,
130
+ typename Action6, typename Action7>
131
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
132
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
133
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
134
+ Action0 action0, Action1 action1, Action2 action2, Action3 action3,
135
+ Action4 action4, Action5 action5, Action6 action6,
136
+ Action7 action7) {
137
+ if (check0(input)) return action0(action_arg);
138
+ if (check1(input)) return action1(action_arg);
139
+ if (check2(input)) return action2(action_arg);
140
+ if (check3(input)) return action3(action_arg);
141
+ if (check4(input)) return action4(action_arg);
142
+ if (check5(input)) return action5(action_arg);
143
+ if (check6(input)) return action6(action_arg);
144
+ if (check7(input)) return action7(action_arg);
145
+ return action_fail(action_arg);
146
+ }
147
+
148
+ template <typename CheckArg, typename ActionArg, typename ActionFail,
149
+ typename Check0, typename Check1, typename Check2, typename Check3,
150
+ typename Check4, typename Check5, typename Check6, typename Check7,
151
+ typename Check8, typename Action0, typename Action1, typename Action2,
152
+ typename Action3, typename Action4, typename Action5,
153
+ typename Action6, typename Action7, typename Action8>
154
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
155
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
156
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
157
+ Check8 check8, Action0 action0, Action1 action1, Action2 action2,
158
+ Action3 action3, Action4 action4, Action5 action5, Action6 action6,
159
+ Action7 action7, Action8 action8) {
160
+ if (check0(input)) return action0(action_arg);
161
+ if (check1(input)) return action1(action_arg);
162
+ if (check2(input)) return action2(action_arg);
163
+ if (check3(input)) return action3(action_arg);
164
+ if (check4(input)) return action4(action_arg);
165
+ if (check5(input)) return action5(action_arg);
166
+ if (check6(input)) return action6(action_arg);
167
+ if (check7(input)) return action7(action_arg);
168
+ if (check8(input)) return action8(action_arg);
169
+ return action_fail(action_arg);
170
+ }
171
+
172
+ template <typename CheckArg, typename ActionArg, typename ActionFail,
173
+ typename Check0, typename Check1, typename Check2, typename Check3,
174
+ typename Check4, typename Check5, typename Check6, typename Check7,
175
+ typename Check8, typename Check9, typename Action0, typename Action1,
176
+ typename Action2, typename Action3, typename Action4,
177
+ typename Action5, typename Action6, typename Action7,
178
+ typename Action8, typename Action9>
179
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
180
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
181
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
182
+ Check8 check8, Check9 check9, Action0 action0, Action1 action1,
183
+ Action2 action2, Action3 action3, Action4 action4, Action5 action5,
184
+ Action6 action6, Action7 action7, Action8 action8,
185
+ Action9 action9) {
186
+ if (check0(input)) return action0(action_arg);
187
+ if (check1(input)) return action1(action_arg);
188
+ if (check2(input)) return action2(action_arg);
189
+ if (check3(input)) return action3(action_arg);
190
+ if (check4(input)) return action4(action_arg);
191
+ if (check5(input)) return action5(action_arg);
192
+ if (check6(input)) return action6(action_arg);
193
+ if (check7(input)) return action7(action_arg);
194
+ if (check8(input)) return action8(action_arg);
195
+ if (check9(input)) return action9(action_arg);
196
+ return action_fail(action_arg);
197
+ }
198
+
199
+ template <typename CheckArg, typename ActionArg, typename ActionFail,
200
+ typename Check0, typename Check1, typename Check2, typename Check3,
201
+ typename Check4, typename Check5, typename Check6, typename Check7,
202
+ typename Check8, typename Check9, typename Check10, typename Action0,
203
+ typename Action1, typename Action2, typename Action3,
204
+ typename Action4, typename Action5, typename Action6,
205
+ typename Action7, typename Action8, typename Action9,
206
+ typename Action10>
207
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
208
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
209
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
210
+ Check8 check8, Check9 check9, Check10 check10, Action0 action0,
211
+ Action1 action1, Action2 action2, Action3 action3, Action4 action4,
212
+ Action5 action5, Action6 action6, Action7 action7, Action8 action8,
213
+ Action9 action9, Action10 action10) {
214
+ if (check0(input)) return action0(action_arg);
215
+ if (check1(input)) return action1(action_arg);
216
+ if (check2(input)) return action2(action_arg);
217
+ if (check3(input)) return action3(action_arg);
218
+ if (check4(input)) return action4(action_arg);
219
+ if (check5(input)) return action5(action_arg);
220
+ if (check6(input)) return action6(action_arg);
221
+ if (check7(input)) return action7(action_arg);
222
+ if (check8(input)) return action8(action_arg);
223
+ if (check9(input)) return action9(action_arg);
224
+ if (check10(input)) return action10(action_arg);
225
+ return action_fail(action_arg);
226
+ }
227
+
228
+ template <typename CheckArg, typename ActionArg, typename ActionFail,
229
+ typename Check0, typename Check1, typename Check2, typename Check3,
230
+ typename Check4, typename Check5, typename Check6, typename Check7,
231
+ typename Check8, typename Check9, typename Check10, typename Check11,
232
+ typename Action0, typename Action1, typename Action2,
233
+ typename Action3, typename Action4, typename Action5,
234
+ typename Action6, typename Action7, typename Action8,
235
+ typename Action9, typename Action10, typename Action11>
236
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
237
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
238
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
239
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
240
+ Action0 action0, Action1 action1, Action2 action2, Action3 action3,
241
+ Action4 action4, Action5 action5, Action6 action6, Action7 action7,
242
+ Action8 action8, Action9 action9, Action10 action10,
243
+ Action11 action11) {
244
+ if (check0(input)) return action0(action_arg);
245
+ if (check1(input)) return action1(action_arg);
246
+ if (check2(input)) return action2(action_arg);
247
+ if (check3(input)) return action3(action_arg);
248
+ if (check4(input)) return action4(action_arg);
249
+ if (check5(input)) return action5(action_arg);
250
+ if (check6(input)) return action6(action_arg);
251
+ if (check7(input)) return action7(action_arg);
252
+ if (check8(input)) return action8(action_arg);
253
+ if (check9(input)) return action9(action_arg);
254
+ if (check10(input)) return action10(action_arg);
255
+ if (check11(input)) return action11(action_arg);
256
+ return action_fail(action_arg);
257
+ }
258
+
259
+ template <typename CheckArg, typename ActionArg, typename ActionFail,
260
+ typename Check0, typename Check1, typename Check2, typename Check3,
261
+ typename Check4, typename Check5, typename Check6, typename Check7,
262
+ typename Check8, typename Check9, typename Check10, typename Check11,
263
+ typename Check12, typename Action0, typename Action1,
264
+ typename Action2, typename Action3, typename Action4,
265
+ typename Action5, typename Action6, typename Action7,
266
+ typename Action8, typename Action9, typename Action10,
267
+ typename Action11, typename Action12>
268
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
269
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
270
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
271
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
272
+ Check12 check12, Action0 action0, Action1 action1, Action2 action2,
273
+ Action3 action3, Action4 action4, Action5 action5, Action6 action6,
274
+ Action7 action7, Action8 action8, Action9 action9,
275
+ Action10 action10, Action11 action11, Action12 action12) {
276
+ if (check0(input)) return action0(action_arg);
277
+ if (check1(input)) return action1(action_arg);
278
+ if (check2(input)) return action2(action_arg);
279
+ if (check3(input)) return action3(action_arg);
280
+ if (check4(input)) return action4(action_arg);
281
+ if (check5(input)) return action5(action_arg);
282
+ if (check6(input)) return action6(action_arg);
283
+ if (check7(input)) return action7(action_arg);
284
+ if (check8(input)) return action8(action_arg);
285
+ if (check9(input)) return action9(action_arg);
286
+ if (check10(input)) return action10(action_arg);
287
+ if (check11(input)) return action11(action_arg);
288
+ if (check12(input)) return action12(action_arg);
289
+ return action_fail(action_arg);
290
+ }
291
+
292
+ template <
293
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
294
+ typename Check1, typename Check2, typename Check3, typename Check4,
295
+ typename Check5, typename Check6, typename Check7, typename Check8,
296
+ typename Check9, typename Check10, typename Check11, typename Check12,
297
+ typename Check13, typename Action0, typename Action1, typename Action2,
298
+ typename Action3, typename Action4, typename Action5, typename Action6,
299
+ typename Action7, typename Action8, typename Action9, typename Action10,
300
+ typename Action11, typename Action12, typename Action13>
301
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
302
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
303
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
304
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
305
+ Check12 check12, Check13 check13, Action0 action0, Action1 action1,
306
+ Action2 action2, Action3 action3, Action4 action4, Action5 action5,
307
+ Action6 action6, Action7 action7, Action8 action8, Action9 action9,
308
+ Action10 action10, Action11 action11, Action12 action12,
309
+ Action13 action13) {
310
+ if (check0(input)) return action0(action_arg);
311
+ if (check1(input)) return action1(action_arg);
312
+ if (check2(input)) return action2(action_arg);
313
+ if (check3(input)) return action3(action_arg);
314
+ if (check4(input)) return action4(action_arg);
315
+ if (check5(input)) return action5(action_arg);
316
+ if (check6(input)) return action6(action_arg);
317
+ if (check7(input)) return action7(action_arg);
318
+ if (check8(input)) return action8(action_arg);
319
+ if (check9(input)) return action9(action_arg);
320
+ if (check10(input)) return action10(action_arg);
321
+ if (check11(input)) return action11(action_arg);
322
+ if (check12(input)) return action12(action_arg);
323
+ if (check13(input)) return action13(action_arg);
324
+ return action_fail(action_arg);
325
+ }
326
+
327
+ template <typename CheckArg, typename ActionArg, typename ActionFail,
328
+ typename Check0, typename Check1, typename Check2, typename Check3,
329
+ typename Check4, typename Check5, typename Check6, typename Check7,
330
+ typename Check8, typename Check9, typename Check10, typename Check11,
331
+ typename Check12, typename Check13, typename Check14,
332
+ typename Action0, typename Action1, typename Action2,
333
+ typename Action3, typename Action4, typename Action5,
334
+ typename Action6, typename Action7, typename Action8,
335
+ typename Action9, typename Action10, typename Action11,
336
+ typename Action12, typename Action13, typename Action14>
337
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
338
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
339
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
340
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
341
+ Check12 check12, Check13 check13, Check14 check14, Action0 action0,
342
+ Action1 action1, Action2 action2, Action3 action3, Action4 action4,
343
+ Action5 action5, Action6 action6, Action7 action7, Action8 action8,
344
+ Action9 action9, Action10 action10, Action11 action11,
345
+ Action12 action12, Action13 action13, Action14 action14) {
346
+ if (check0(input)) return action0(action_arg);
347
+ if (check1(input)) return action1(action_arg);
348
+ if (check2(input)) return action2(action_arg);
349
+ if (check3(input)) return action3(action_arg);
350
+ if (check4(input)) return action4(action_arg);
351
+ if (check5(input)) return action5(action_arg);
352
+ if (check6(input)) return action6(action_arg);
353
+ if (check7(input)) return action7(action_arg);
354
+ if (check8(input)) return action8(action_arg);
355
+ if (check9(input)) return action9(action_arg);
356
+ if (check10(input)) return action10(action_arg);
357
+ if (check11(input)) return action11(action_arg);
358
+ if (check12(input)) return action12(action_arg);
359
+ if (check13(input)) return action13(action_arg);
360
+ if (check14(input)) return action14(action_arg);
361
+ return action_fail(action_arg);
362
+ }
363
+
364
+ template <
365
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
366
+ typename Check1, typename Check2, typename Check3, typename Check4,
367
+ typename Check5, typename Check6, typename Check7, typename Check8,
368
+ typename Check9, typename Check10, typename Check11, typename Check12,
369
+ typename Check13, typename Check14, typename Check15, typename Action0,
370
+ typename Action1, typename Action2, typename Action3, typename Action4,
371
+ typename Action5, typename Action6, typename Action7, typename Action8,
372
+ typename Action9, typename Action10, typename Action11, typename Action12,
373
+ typename Action13, typename Action14, typename Action15>
374
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
375
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
376
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
377
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
378
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
379
+ Action0 action0, Action1 action1, Action2 action2, Action3 action3,
380
+ Action4 action4, Action5 action5, Action6 action6, Action7 action7,
381
+ Action8 action8, Action9 action9, Action10 action10,
382
+ Action11 action11, Action12 action12, Action13 action13,
383
+ Action14 action14, Action15 action15) {
384
+ if (check0(input)) return action0(action_arg);
385
+ if (check1(input)) return action1(action_arg);
386
+ if (check2(input)) return action2(action_arg);
387
+ if (check3(input)) return action3(action_arg);
388
+ if (check4(input)) return action4(action_arg);
389
+ if (check5(input)) return action5(action_arg);
390
+ if (check6(input)) return action6(action_arg);
391
+ if (check7(input)) return action7(action_arg);
392
+ if (check8(input)) return action8(action_arg);
393
+ if (check9(input)) return action9(action_arg);
394
+ if (check10(input)) return action10(action_arg);
395
+ if (check11(input)) return action11(action_arg);
396
+ if (check12(input)) return action12(action_arg);
397
+ if (check13(input)) return action13(action_arg);
398
+ if (check14(input)) return action14(action_arg);
399
+ if (check15(input)) return action15(action_arg);
400
+ return action_fail(action_arg);
401
+ }
402
+
403
+ template <
404
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
405
+ typename Check1, typename Check2, typename Check3, typename Check4,
406
+ typename Check5, typename Check6, typename Check7, typename Check8,
407
+ typename Check9, typename Check10, typename Check11, typename Check12,
408
+ typename Check13, typename Check14, typename Check15, typename Check16,
409
+ typename Action0, typename Action1, typename Action2, typename Action3,
410
+ typename Action4, typename Action5, typename Action6, typename Action7,
411
+ typename Action8, typename Action9, typename Action10, typename Action11,
412
+ typename Action12, typename Action13, typename Action14, typename Action15,
413
+ typename Action16>
414
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
415
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
416
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
417
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
418
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
419
+ Check16 check16, Action0 action0, Action1 action1, Action2 action2,
420
+ Action3 action3, Action4 action4, Action5 action5, Action6 action6,
421
+ Action7 action7, Action8 action8, Action9 action9,
422
+ Action10 action10, Action11 action11, Action12 action12,
423
+ Action13 action13, Action14 action14, Action15 action15,
424
+ Action16 action16) {
425
+ if (check0(input)) return action0(action_arg);
426
+ if (check1(input)) return action1(action_arg);
427
+ if (check2(input)) return action2(action_arg);
428
+ if (check3(input)) return action3(action_arg);
429
+ if (check4(input)) return action4(action_arg);
430
+ if (check5(input)) return action5(action_arg);
431
+ if (check6(input)) return action6(action_arg);
432
+ if (check7(input)) return action7(action_arg);
433
+ if (check8(input)) return action8(action_arg);
434
+ if (check9(input)) return action9(action_arg);
435
+ if (check10(input)) return action10(action_arg);
436
+ if (check11(input)) return action11(action_arg);
437
+ if (check12(input)) return action12(action_arg);
438
+ if (check13(input)) return action13(action_arg);
439
+ if (check14(input)) return action14(action_arg);
440
+ if (check15(input)) return action15(action_arg);
441
+ if (check16(input)) return action16(action_arg);
442
+ return action_fail(action_arg);
443
+ }
444
+
445
+ template <
446
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
447
+ typename Check1, typename Check2, typename Check3, typename Check4,
448
+ typename Check5, typename Check6, typename Check7, typename Check8,
449
+ typename Check9, typename Check10, typename Check11, typename Check12,
450
+ typename Check13, typename Check14, typename Check15, typename Check16,
451
+ typename Check17, typename Action0, typename Action1, typename Action2,
452
+ typename Action3, typename Action4, typename Action5, typename Action6,
453
+ typename Action7, typename Action8, typename Action9, typename Action10,
454
+ typename Action11, typename Action12, typename Action13, typename Action14,
455
+ typename Action15, typename Action16, typename Action17>
456
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
457
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
458
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
459
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
460
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
461
+ Check16 check16, Check17 check17, Action0 action0, Action1 action1,
462
+ Action2 action2, Action3 action3, Action4 action4, Action5 action5,
463
+ Action6 action6, Action7 action7, Action8 action8, Action9 action9,
464
+ Action10 action10, Action11 action11, Action12 action12,
465
+ Action13 action13, Action14 action14, Action15 action15,
466
+ Action16 action16, Action17 action17) {
467
+ if (check0(input)) return action0(action_arg);
468
+ if (check1(input)) return action1(action_arg);
469
+ if (check2(input)) return action2(action_arg);
470
+ if (check3(input)) return action3(action_arg);
471
+ if (check4(input)) return action4(action_arg);
472
+ if (check5(input)) return action5(action_arg);
473
+ if (check6(input)) return action6(action_arg);
474
+ if (check7(input)) return action7(action_arg);
475
+ if (check8(input)) return action8(action_arg);
476
+ if (check9(input)) return action9(action_arg);
477
+ if (check10(input)) return action10(action_arg);
478
+ if (check11(input)) return action11(action_arg);
479
+ if (check12(input)) return action12(action_arg);
480
+ if (check13(input)) return action13(action_arg);
481
+ if (check14(input)) return action14(action_arg);
482
+ if (check15(input)) return action15(action_arg);
483
+ if (check16(input)) return action16(action_arg);
484
+ if (check17(input)) return action17(action_arg);
485
+ return action_fail(action_arg);
486
+ }
487
+
488
+ template <
489
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
490
+ typename Check1, typename Check2, typename Check3, typename Check4,
491
+ typename Check5, typename Check6, typename Check7, typename Check8,
492
+ typename Check9, typename Check10, typename Check11, typename Check12,
493
+ typename Check13, typename Check14, typename Check15, typename Check16,
494
+ typename Check17, typename Check18, typename Action0, typename Action1,
495
+ typename Action2, typename Action3, typename Action4, typename Action5,
496
+ typename Action6, typename Action7, typename Action8, typename Action9,
497
+ typename Action10, typename Action11, typename Action12, typename Action13,
498
+ typename Action14, typename Action15, typename Action16, typename Action17,
499
+ typename Action18>
500
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
501
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
502
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
503
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
504
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
505
+ Check16 check16, Check17 check17, Check18 check18, Action0 action0,
506
+ Action1 action1, Action2 action2, Action3 action3, Action4 action4,
507
+ Action5 action5, Action6 action6, Action7 action7, Action8 action8,
508
+ Action9 action9, Action10 action10, Action11 action11,
509
+ Action12 action12, Action13 action13, Action14 action14,
510
+ Action15 action15, Action16 action16, Action17 action17,
511
+ Action18 action18) {
512
+ if (check0(input)) return action0(action_arg);
513
+ if (check1(input)) return action1(action_arg);
514
+ if (check2(input)) return action2(action_arg);
515
+ if (check3(input)) return action3(action_arg);
516
+ if (check4(input)) return action4(action_arg);
517
+ if (check5(input)) return action5(action_arg);
518
+ if (check6(input)) return action6(action_arg);
519
+ if (check7(input)) return action7(action_arg);
520
+ if (check8(input)) return action8(action_arg);
521
+ if (check9(input)) return action9(action_arg);
522
+ if (check10(input)) return action10(action_arg);
523
+ if (check11(input)) return action11(action_arg);
524
+ if (check12(input)) return action12(action_arg);
525
+ if (check13(input)) return action13(action_arg);
526
+ if (check14(input)) return action14(action_arg);
527
+ if (check15(input)) return action15(action_arg);
528
+ if (check16(input)) return action16(action_arg);
529
+ if (check17(input)) return action17(action_arg);
530
+ if (check18(input)) return action18(action_arg);
531
+ return action_fail(action_arg);
532
+ }
533
+
534
+ template <
535
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
536
+ typename Check1, typename Check2, typename Check3, typename Check4,
537
+ typename Check5, typename Check6, typename Check7, typename Check8,
538
+ typename Check9, typename Check10, typename Check11, typename Check12,
539
+ typename Check13, typename Check14, typename Check15, typename Check16,
540
+ typename Check17, typename Check18, typename Check19, typename Action0,
541
+ typename Action1, typename Action2, typename Action3, typename Action4,
542
+ typename Action5, typename Action6, typename Action7, typename Action8,
543
+ typename Action9, typename Action10, typename Action11, typename Action12,
544
+ typename Action13, typename Action14, typename Action15, typename Action16,
545
+ typename Action17, typename Action18, typename Action19>
546
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
547
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
548
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
549
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
550
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
551
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
552
+ Action0 action0, Action1 action1, Action2 action2, Action3 action3,
553
+ Action4 action4, Action5 action5, Action6 action6, Action7 action7,
554
+ Action8 action8, Action9 action9, Action10 action10,
555
+ Action11 action11, Action12 action12, Action13 action13,
556
+ Action14 action14, Action15 action15, Action16 action16,
557
+ Action17 action17, Action18 action18, Action19 action19) {
558
+ if (check0(input)) return action0(action_arg);
559
+ if (check1(input)) return action1(action_arg);
560
+ if (check2(input)) return action2(action_arg);
561
+ if (check3(input)) return action3(action_arg);
562
+ if (check4(input)) return action4(action_arg);
563
+ if (check5(input)) return action5(action_arg);
564
+ if (check6(input)) return action6(action_arg);
565
+ if (check7(input)) return action7(action_arg);
566
+ if (check8(input)) return action8(action_arg);
567
+ if (check9(input)) return action9(action_arg);
568
+ if (check10(input)) return action10(action_arg);
569
+ if (check11(input)) return action11(action_arg);
570
+ if (check12(input)) return action12(action_arg);
571
+ if (check13(input)) return action13(action_arg);
572
+ if (check14(input)) return action14(action_arg);
573
+ if (check15(input)) return action15(action_arg);
574
+ if (check16(input)) return action16(action_arg);
575
+ if (check17(input)) return action17(action_arg);
576
+ if (check18(input)) return action18(action_arg);
577
+ if (check19(input)) return action19(action_arg);
578
+ return action_fail(action_arg);
579
+ }
580
+
581
+ template <
582
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
583
+ typename Check1, typename Check2, typename Check3, typename Check4,
584
+ typename Check5, typename Check6, typename Check7, typename Check8,
585
+ typename Check9, typename Check10, typename Check11, typename Check12,
586
+ typename Check13, typename Check14, typename Check15, typename Check16,
587
+ typename Check17, typename Check18, typename Check19, typename Check20,
588
+ typename Action0, typename Action1, typename Action2, typename Action3,
589
+ typename Action4, typename Action5, typename Action6, typename Action7,
590
+ typename Action8, typename Action9, typename Action10, typename Action11,
591
+ typename Action12, typename Action13, typename Action14, typename Action15,
592
+ typename Action16, typename Action17, typename Action18, typename Action19,
593
+ typename Action20>
594
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
595
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
596
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
597
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
598
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
599
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
600
+ Check20 check20, Action0 action0, Action1 action1, Action2 action2,
601
+ Action3 action3, Action4 action4, Action5 action5, Action6 action6,
602
+ Action7 action7, Action8 action8, Action9 action9,
603
+ Action10 action10, Action11 action11, Action12 action12,
604
+ Action13 action13, Action14 action14, Action15 action15,
605
+ Action16 action16, Action17 action17, Action18 action18,
606
+ Action19 action19, Action20 action20) {
607
+ if (check0(input)) return action0(action_arg);
608
+ if (check1(input)) return action1(action_arg);
609
+ if (check2(input)) return action2(action_arg);
610
+ if (check3(input)) return action3(action_arg);
611
+ if (check4(input)) return action4(action_arg);
612
+ if (check5(input)) return action5(action_arg);
613
+ if (check6(input)) return action6(action_arg);
614
+ if (check7(input)) return action7(action_arg);
615
+ if (check8(input)) return action8(action_arg);
616
+ if (check9(input)) return action9(action_arg);
617
+ if (check10(input)) return action10(action_arg);
618
+ if (check11(input)) return action11(action_arg);
619
+ if (check12(input)) return action12(action_arg);
620
+ if (check13(input)) return action13(action_arg);
621
+ if (check14(input)) return action14(action_arg);
622
+ if (check15(input)) return action15(action_arg);
623
+ if (check16(input)) return action16(action_arg);
624
+ if (check17(input)) return action17(action_arg);
625
+ if (check18(input)) return action18(action_arg);
626
+ if (check19(input)) return action19(action_arg);
627
+ if (check20(input)) return action20(action_arg);
628
+ return action_fail(action_arg);
629
+ }
630
+
631
+ template <
632
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
633
+ typename Check1, typename Check2, typename Check3, typename Check4,
634
+ typename Check5, typename Check6, typename Check7, typename Check8,
635
+ typename Check9, typename Check10, typename Check11, typename Check12,
636
+ typename Check13, typename Check14, typename Check15, typename Check16,
637
+ typename Check17, typename Check18, typename Check19, typename Check20,
638
+ typename Check21, typename Action0, typename Action1, typename Action2,
639
+ typename Action3, typename Action4, typename Action5, typename Action6,
640
+ typename Action7, typename Action8, typename Action9, typename Action10,
641
+ typename Action11, typename Action12, typename Action13, typename Action14,
642
+ typename Action15, typename Action16, typename Action17, typename Action18,
643
+ typename Action19, typename Action20, typename Action21>
644
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
645
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
646
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
647
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
648
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
649
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
650
+ Check20 check20, Check21 check21, Action0 action0, Action1 action1,
651
+ Action2 action2, Action3 action3, Action4 action4, Action5 action5,
652
+ Action6 action6, Action7 action7, Action8 action8, Action9 action9,
653
+ Action10 action10, Action11 action11, Action12 action12,
654
+ Action13 action13, Action14 action14, Action15 action15,
655
+ Action16 action16, Action17 action17, Action18 action18,
656
+ Action19 action19, Action20 action20, Action21 action21) {
657
+ if (check0(input)) return action0(action_arg);
658
+ if (check1(input)) return action1(action_arg);
659
+ if (check2(input)) return action2(action_arg);
660
+ if (check3(input)) return action3(action_arg);
661
+ if (check4(input)) return action4(action_arg);
662
+ if (check5(input)) return action5(action_arg);
663
+ if (check6(input)) return action6(action_arg);
664
+ if (check7(input)) return action7(action_arg);
665
+ if (check8(input)) return action8(action_arg);
666
+ if (check9(input)) return action9(action_arg);
667
+ if (check10(input)) return action10(action_arg);
668
+ if (check11(input)) return action11(action_arg);
669
+ if (check12(input)) return action12(action_arg);
670
+ if (check13(input)) return action13(action_arg);
671
+ if (check14(input)) return action14(action_arg);
672
+ if (check15(input)) return action15(action_arg);
673
+ if (check16(input)) return action16(action_arg);
674
+ if (check17(input)) return action17(action_arg);
675
+ if (check18(input)) return action18(action_arg);
676
+ if (check19(input)) return action19(action_arg);
677
+ if (check20(input)) return action20(action_arg);
678
+ if (check21(input)) return action21(action_arg);
679
+ return action_fail(action_arg);
680
+ }
681
+
682
+ template <
683
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
684
+ typename Check1, typename Check2, typename Check3, typename Check4,
685
+ typename Check5, typename Check6, typename Check7, typename Check8,
686
+ typename Check9, typename Check10, typename Check11, typename Check12,
687
+ typename Check13, typename Check14, typename Check15, typename Check16,
688
+ typename Check17, typename Check18, typename Check19, typename Check20,
689
+ typename Check21, typename Check22, typename Action0, typename Action1,
690
+ typename Action2, typename Action3, typename Action4, typename Action5,
691
+ typename Action6, typename Action7, typename Action8, typename Action9,
692
+ typename Action10, typename Action11, typename Action12, typename Action13,
693
+ typename Action14, typename Action15, typename Action16, typename Action17,
694
+ typename Action18, typename Action19, typename Action20, typename Action21,
695
+ typename Action22>
696
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
697
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
698
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
699
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
700
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
701
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
702
+ Check20 check20, Check21 check21, Check22 check22, Action0 action0,
703
+ Action1 action1, Action2 action2, Action3 action3, Action4 action4,
704
+ Action5 action5, Action6 action6, Action7 action7, Action8 action8,
705
+ Action9 action9, Action10 action10, Action11 action11,
706
+ Action12 action12, Action13 action13, Action14 action14,
707
+ Action15 action15, Action16 action16, Action17 action17,
708
+ Action18 action18, Action19 action19, Action20 action20,
709
+ Action21 action21, Action22 action22) {
710
+ if (check0(input)) return action0(action_arg);
711
+ if (check1(input)) return action1(action_arg);
712
+ if (check2(input)) return action2(action_arg);
713
+ if (check3(input)) return action3(action_arg);
714
+ if (check4(input)) return action4(action_arg);
715
+ if (check5(input)) return action5(action_arg);
716
+ if (check6(input)) return action6(action_arg);
717
+ if (check7(input)) return action7(action_arg);
718
+ if (check8(input)) return action8(action_arg);
719
+ if (check9(input)) return action9(action_arg);
720
+ if (check10(input)) return action10(action_arg);
721
+ if (check11(input)) return action11(action_arg);
722
+ if (check12(input)) return action12(action_arg);
723
+ if (check13(input)) return action13(action_arg);
724
+ if (check14(input)) return action14(action_arg);
725
+ if (check15(input)) return action15(action_arg);
726
+ if (check16(input)) return action16(action_arg);
727
+ if (check17(input)) return action17(action_arg);
728
+ if (check18(input)) return action18(action_arg);
729
+ if (check19(input)) return action19(action_arg);
730
+ if (check20(input)) return action20(action_arg);
731
+ if (check21(input)) return action21(action_arg);
732
+ if (check22(input)) return action22(action_arg);
733
+ return action_fail(action_arg);
734
+ }
735
+
736
+ template <
737
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
738
+ typename Check1, typename Check2, typename Check3, typename Check4,
739
+ typename Check5, typename Check6, typename Check7, typename Check8,
740
+ typename Check9, typename Check10, typename Check11, typename Check12,
741
+ typename Check13, typename Check14, typename Check15, typename Check16,
742
+ typename Check17, typename Check18, typename Check19, typename Check20,
743
+ typename Check21, typename Check22, typename Check23, typename Action0,
744
+ typename Action1, typename Action2, typename Action3, typename Action4,
745
+ typename Action5, typename Action6, typename Action7, typename Action8,
746
+ typename Action9, typename Action10, typename Action11, typename Action12,
747
+ typename Action13, typename Action14, typename Action15, typename Action16,
748
+ typename Action17, typename Action18, typename Action19, typename Action20,
749
+ typename Action21, typename Action22, typename Action23>
750
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
751
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
752
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
753
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
754
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
755
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
756
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
757
+ Action0 action0, Action1 action1, Action2 action2, Action3 action3,
758
+ Action4 action4, Action5 action5, Action6 action6, Action7 action7,
759
+ Action8 action8, Action9 action9, Action10 action10,
760
+ Action11 action11, Action12 action12, Action13 action13,
761
+ Action14 action14, Action15 action15, Action16 action16,
762
+ Action17 action17, Action18 action18, Action19 action19,
763
+ Action20 action20, Action21 action21, Action22 action22,
764
+ Action23 action23) {
765
+ if (check0(input)) return action0(action_arg);
766
+ if (check1(input)) return action1(action_arg);
767
+ if (check2(input)) return action2(action_arg);
768
+ if (check3(input)) return action3(action_arg);
769
+ if (check4(input)) return action4(action_arg);
770
+ if (check5(input)) return action5(action_arg);
771
+ if (check6(input)) return action6(action_arg);
772
+ if (check7(input)) return action7(action_arg);
773
+ if (check8(input)) return action8(action_arg);
774
+ if (check9(input)) return action9(action_arg);
775
+ if (check10(input)) return action10(action_arg);
776
+ if (check11(input)) return action11(action_arg);
777
+ if (check12(input)) return action12(action_arg);
778
+ if (check13(input)) return action13(action_arg);
779
+ if (check14(input)) return action14(action_arg);
780
+ if (check15(input)) return action15(action_arg);
781
+ if (check16(input)) return action16(action_arg);
782
+ if (check17(input)) return action17(action_arg);
783
+ if (check18(input)) return action18(action_arg);
784
+ if (check19(input)) return action19(action_arg);
785
+ if (check20(input)) return action20(action_arg);
786
+ if (check21(input)) return action21(action_arg);
787
+ if (check22(input)) return action22(action_arg);
788
+ if (check23(input)) return action23(action_arg);
789
+ return action_fail(action_arg);
790
+ }
791
+
792
+ template <
793
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
794
+ typename Check1, typename Check2, typename Check3, typename Check4,
795
+ typename Check5, typename Check6, typename Check7, typename Check8,
796
+ typename Check9, typename Check10, typename Check11, typename Check12,
797
+ typename Check13, typename Check14, typename Check15, typename Check16,
798
+ typename Check17, typename Check18, typename Check19, typename Check20,
799
+ typename Check21, typename Check22, typename Check23, typename Check24,
800
+ typename Action0, typename Action1, typename Action2, typename Action3,
801
+ typename Action4, typename Action5, typename Action6, typename Action7,
802
+ typename Action8, typename Action9, typename Action10, typename Action11,
803
+ typename Action12, typename Action13, typename Action14, typename Action15,
804
+ typename Action16, typename Action17, typename Action18, typename Action19,
805
+ typename Action20, typename Action21, typename Action22, typename Action23,
806
+ typename Action24>
807
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
808
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
809
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
810
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
811
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
812
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
813
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
814
+ Check24 check24, Action0 action0, Action1 action1, Action2 action2,
815
+ Action3 action3, Action4 action4, Action5 action5, Action6 action6,
816
+ Action7 action7, Action8 action8, Action9 action9,
817
+ Action10 action10, Action11 action11, Action12 action12,
818
+ Action13 action13, Action14 action14, Action15 action15,
819
+ Action16 action16, Action17 action17, Action18 action18,
820
+ Action19 action19, Action20 action20, Action21 action21,
821
+ Action22 action22, Action23 action23, Action24 action24) {
822
+ if (check0(input)) return action0(action_arg);
823
+ if (check1(input)) return action1(action_arg);
824
+ if (check2(input)) return action2(action_arg);
825
+ if (check3(input)) return action3(action_arg);
826
+ if (check4(input)) return action4(action_arg);
827
+ if (check5(input)) return action5(action_arg);
828
+ if (check6(input)) return action6(action_arg);
829
+ if (check7(input)) return action7(action_arg);
830
+ if (check8(input)) return action8(action_arg);
831
+ if (check9(input)) return action9(action_arg);
832
+ if (check10(input)) return action10(action_arg);
833
+ if (check11(input)) return action11(action_arg);
834
+ if (check12(input)) return action12(action_arg);
835
+ if (check13(input)) return action13(action_arg);
836
+ if (check14(input)) return action14(action_arg);
837
+ if (check15(input)) return action15(action_arg);
838
+ if (check16(input)) return action16(action_arg);
839
+ if (check17(input)) return action17(action_arg);
840
+ if (check18(input)) return action18(action_arg);
841
+ if (check19(input)) return action19(action_arg);
842
+ if (check20(input)) return action20(action_arg);
843
+ if (check21(input)) return action21(action_arg);
844
+ if (check22(input)) return action22(action_arg);
845
+ if (check23(input)) return action23(action_arg);
846
+ if (check24(input)) return action24(action_arg);
847
+ return action_fail(action_arg);
848
+ }
849
+
850
+ template <
851
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
852
+ typename Check1, typename Check2, typename Check3, typename Check4,
853
+ typename Check5, typename Check6, typename Check7, typename Check8,
854
+ typename Check9, typename Check10, typename Check11, typename Check12,
855
+ typename Check13, typename Check14, typename Check15, typename Check16,
856
+ typename Check17, typename Check18, typename Check19, typename Check20,
857
+ typename Check21, typename Check22, typename Check23, typename Check24,
858
+ typename Check25, typename Action0, typename Action1, typename Action2,
859
+ typename Action3, typename Action4, typename Action5, typename Action6,
860
+ typename Action7, typename Action8, typename Action9, typename Action10,
861
+ typename Action11, typename Action12, typename Action13, typename Action14,
862
+ typename Action15, typename Action16, typename Action17, typename Action18,
863
+ typename Action19, typename Action20, typename Action21, typename Action22,
864
+ typename Action23, typename Action24, typename Action25>
865
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
866
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
867
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
868
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
869
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
870
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
871
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
872
+ Check24 check24, Check25 check25, Action0 action0, Action1 action1,
873
+ Action2 action2, Action3 action3, Action4 action4, Action5 action5,
874
+ Action6 action6, Action7 action7, Action8 action8, Action9 action9,
875
+ Action10 action10, Action11 action11, Action12 action12,
876
+ Action13 action13, Action14 action14, Action15 action15,
877
+ Action16 action16, Action17 action17, Action18 action18,
878
+ Action19 action19, Action20 action20, Action21 action21,
879
+ Action22 action22, Action23 action23, Action24 action24,
880
+ Action25 action25) {
881
+ if (check0(input)) return action0(action_arg);
882
+ if (check1(input)) return action1(action_arg);
883
+ if (check2(input)) return action2(action_arg);
884
+ if (check3(input)) return action3(action_arg);
885
+ if (check4(input)) return action4(action_arg);
886
+ if (check5(input)) return action5(action_arg);
887
+ if (check6(input)) return action6(action_arg);
888
+ if (check7(input)) return action7(action_arg);
889
+ if (check8(input)) return action8(action_arg);
890
+ if (check9(input)) return action9(action_arg);
891
+ if (check10(input)) return action10(action_arg);
892
+ if (check11(input)) return action11(action_arg);
893
+ if (check12(input)) return action12(action_arg);
894
+ if (check13(input)) return action13(action_arg);
895
+ if (check14(input)) return action14(action_arg);
896
+ if (check15(input)) return action15(action_arg);
897
+ if (check16(input)) return action16(action_arg);
898
+ if (check17(input)) return action17(action_arg);
899
+ if (check18(input)) return action18(action_arg);
900
+ if (check19(input)) return action19(action_arg);
901
+ if (check20(input)) return action20(action_arg);
902
+ if (check21(input)) return action21(action_arg);
903
+ if (check22(input)) return action22(action_arg);
904
+ if (check23(input)) return action23(action_arg);
905
+ if (check24(input)) return action24(action_arg);
906
+ if (check25(input)) return action25(action_arg);
907
+ return action_fail(action_arg);
908
+ }
909
+
910
+ template <
911
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
912
+ typename Check1, typename Check2, typename Check3, typename Check4,
913
+ typename Check5, typename Check6, typename Check7, typename Check8,
914
+ typename Check9, typename Check10, typename Check11, typename Check12,
915
+ typename Check13, typename Check14, typename Check15, typename Check16,
916
+ typename Check17, typename Check18, typename Check19, typename Check20,
917
+ typename Check21, typename Check22, typename Check23, typename Check24,
918
+ typename Check25, typename Check26, typename Action0, typename Action1,
919
+ typename Action2, typename Action3, typename Action4, typename Action5,
920
+ typename Action6, typename Action7, typename Action8, typename Action9,
921
+ typename Action10, typename Action11, typename Action12, typename Action13,
922
+ typename Action14, typename Action15, typename Action16, typename Action17,
923
+ typename Action18, typename Action19, typename Action20, typename Action21,
924
+ typename Action22, typename Action23, typename Action24, typename Action25,
925
+ typename Action26>
926
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
927
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
928
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
929
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
930
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
931
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
932
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
933
+ Check24 check24, Check25 check25, Check26 check26, Action0 action0,
934
+ Action1 action1, Action2 action2, Action3 action3, Action4 action4,
935
+ Action5 action5, Action6 action6, Action7 action7, Action8 action8,
936
+ Action9 action9, Action10 action10, Action11 action11,
937
+ Action12 action12, Action13 action13, Action14 action14,
938
+ Action15 action15, Action16 action16, Action17 action17,
939
+ Action18 action18, Action19 action19, Action20 action20,
940
+ Action21 action21, Action22 action22, Action23 action23,
941
+ Action24 action24, Action25 action25, Action26 action26) {
942
+ if (check0(input)) return action0(action_arg);
943
+ if (check1(input)) return action1(action_arg);
944
+ if (check2(input)) return action2(action_arg);
945
+ if (check3(input)) return action3(action_arg);
946
+ if (check4(input)) return action4(action_arg);
947
+ if (check5(input)) return action5(action_arg);
948
+ if (check6(input)) return action6(action_arg);
949
+ if (check7(input)) return action7(action_arg);
950
+ if (check8(input)) return action8(action_arg);
951
+ if (check9(input)) return action9(action_arg);
952
+ if (check10(input)) return action10(action_arg);
953
+ if (check11(input)) return action11(action_arg);
954
+ if (check12(input)) return action12(action_arg);
955
+ if (check13(input)) return action13(action_arg);
956
+ if (check14(input)) return action14(action_arg);
957
+ if (check15(input)) return action15(action_arg);
958
+ if (check16(input)) return action16(action_arg);
959
+ if (check17(input)) return action17(action_arg);
960
+ if (check18(input)) return action18(action_arg);
961
+ if (check19(input)) return action19(action_arg);
962
+ if (check20(input)) return action20(action_arg);
963
+ if (check21(input)) return action21(action_arg);
964
+ if (check22(input)) return action22(action_arg);
965
+ if (check23(input)) return action23(action_arg);
966
+ if (check24(input)) return action24(action_arg);
967
+ if (check25(input)) return action25(action_arg);
968
+ if (check26(input)) return action26(action_arg);
969
+ return action_fail(action_arg);
970
+ }
971
+
972
+ template <
973
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
974
+ typename Check1, typename Check2, typename Check3, typename Check4,
975
+ typename Check5, typename Check6, typename Check7, typename Check8,
976
+ typename Check9, typename Check10, typename Check11, typename Check12,
977
+ typename Check13, typename Check14, typename Check15, typename Check16,
978
+ typename Check17, typename Check18, typename Check19, typename Check20,
979
+ typename Check21, typename Check22, typename Check23, typename Check24,
980
+ typename Check25, typename Check26, typename Check27, typename Action0,
981
+ typename Action1, typename Action2, typename Action3, typename Action4,
982
+ typename Action5, typename Action6, typename Action7, typename Action8,
983
+ typename Action9, typename Action10, typename Action11, typename Action12,
984
+ typename Action13, typename Action14, typename Action15, typename Action16,
985
+ typename Action17, typename Action18, typename Action19, typename Action20,
986
+ typename Action21, typename Action22, typename Action23, typename Action24,
987
+ typename Action25, typename Action26, typename Action27>
988
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
989
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
990
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
991
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
992
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
993
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
994
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
995
+ Check24 check24, Check25 check25, Check26 check26, Check27 check27,
996
+ Action0 action0, Action1 action1, Action2 action2, Action3 action3,
997
+ Action4 action4, Action5 action5, Action6 action6, Action7 action7,
998
+ Action8 action8, Action9 action9, Action10 action10,
999
+ Action11 action11, Action12 action12, Action13 action13,
1000
+ Action14 action14, Action15 action15, Action16 action16,
1001
+ Action17 action17, Action18 action18, Action19 action19,
1002
+ Action20 action20, Action21 action21, Action22 action22,
1003
+ Action23 action23, Action24 action24, Action25 action25,
1004
+ Action26 action26, Action27 action27) {
1005
+ if (check0(input)) return action0(action_arg);
1006
+ if (check1(input)) return action1(action_arg);
1007
+ if (check2(input)) return action2(action_arg);
1008
+ if (check3(input)) return action3(action_arg);
1009
+ if (check4(input)) return action4(action_arg);
1010
+ if (check5(input)) return action5(action_arg);
1011
+ if (check6(input)) return action6(action_arg);
1012
+ if (check7(input)) return action7(action_arg);
1013
+ if (check8(input)) return action8(action_arg);
1014
+ if (check9(input)) return action9(action_arg);
1015
+ if (check10(input)) return action10(action_arg);
1016
+ if (check11(input)) return action11(action_arg);
1017
+ if (check12(input)) return action12(action_arg);
1018
+ if (check13(input)) return action13(action_arg);
1019
+ if (check14(input)) return action14(action_arg);
1020
+ if (check15(input)) return action15(action_arg);
1021
+ if (check16(input)) return action16(action_arg);
1022
+ if (check17(input)) return action17(action_arg);
1023
+ if (check18(input)) return action18(action_arg);
1024
+ if (check19(input)) return action19(action_arg);
1025
+ if (check20(input)) return action20(action_arg);
1026
+ if (check21(input)) return action21(action_arg);
1027
+ if (check22(input)) return action22(action_arg);
1028
+ if (check23(input)) return action23(action_arg);
1029
+ if (check24(input)) return action24(action_arg);
1030
+ if (check25(input)) return action25(action_arg);
1031
+ if (check26(input)) return action26(action_arg);
1032
+ if (check27(input)) return action27(action_arg);
1033
+ return action_fail(action_arg);
1034
+ }
1035
+
1036
+ template <
1037
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1038
+ typename Check1, typename Check2, typename Check3, typename Check4,
1039
+ typename Check5, typename Check6, typename Check7, typename Check8,
1040
+ typename Check9, typename Check10, typename Check11, typename Check12,
1041
+ typename Check13, typename Check14, typename Check15, typename Check16,
1042
+ typename Check17, typename Check18, typename Check19, typename Check20,
1043
+ typename Check21, typename Check22, typename Check23, typename Check24,
1044
+ typename Check25, typename Check26, typename Check27, typename Check28,
1045
+ typename Action0, typename Action1, typename Action2, typename Action3,
1046
+ typename Action4, typename Action5, typename Action6, typename Action7,
1047
+ typename Action8, typename Action9, typename Action10, typename Action11,
1048
+ typename Action12, typename Action13, typename Action14, typename Action15,
1049
+ typename Action16, typename Action17, typename Action18, typename Action19,
1050
+ typename Action20, typename Action21, typename Action22, typename Action23,
1051
+ typename Action24, typename Action25, typename Action26, typename Action27,
1052
+ typename Action28>
1053
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1054
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1055
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1056
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1057
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1058
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1059
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1060
+ Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1061
+ Check28 check28, Action0 action0, Action1 action1, Action2 action2,
1062
+ Action3 action3, Action4 action4, Action5 action5, Action6 action6,
1063
+ Action7 action7, Action8 action8, Action9 action9,
1064
+ Action10 action10, Action11 action11, Action12 action12,
1065
+ Action13 action13, Action14 action14, Action15 action15,
1066
+ Action16 action16, Action17 action17, Action18 action18,
1067
+ Action19 action19, Action20 action20, Action21 action21,
1068
+ Action22 action22, Action23 action23, Action24 action24,
1069
+ Action25 action25, Action26 action26, Action27 action27,
1070
+ Action28 action28) {
1071
+ if (check0(input)) return action0(action_arg);
1072
+ if (check1(input)) return action1(action_arg);
1073
+ if (check2(input)) return action2(action_arg);
1074
+ if (check3(input)) return action3(action_arg);
1075
+ if (check4(input)) return action4(action_arg);
1076
+ if (check5(input)) return action5(action_arg);
1077
+ if (check6(input)) return action6(action_arg);
1078
+ if (check7(input)) return action7(action_arg);
1079
+ if (check8(input)) return action8(action_arg);
1080
+ if (check9(input)) return action9(action_arg);
1081
+ if (check10(input)) return action10(action_arg);
1082
+ if (check11(input)) return action11(action_arg);
1083
+ if (check12(input)) return action12(action_arg);
1084
+ if (check13(input)) return action13(action_arg);
1085
+ if (check14(input)) return action14(action_arg);
1086
+ if (check15(input)) return action15(action_arg);
1087
+ if (check16(input)) return action16(action_arg);
1088
+ if (check17(input)) return action17(action_arg);
1089
+ if (check18(input)) return action18(action_arg);
1090
+ if (check19(input)) return action19(action_arg);
1091
+ if (check20(input)) return action20(action_arg);
1092
+ if (check21(input)) return action21(action_arg);
1093
+ if (check22(input)) return action22(action_arg);
1094
+ if (check23(input)) return action23(action_arg);
1095
+ if (check24(input)) return action24(action_arg);
1096
+ if (check25(input)) return action25(action_arg);
1097
+ if (check26(input)) return action26(action_arg);
1098
+ if (check27(input)) return action27(action_arg);
1099
+ if (check28(input)) return action28(action_arg);
1100
+ return action_fail(action_arg);
1101
+ }
1102
+
1103
+ template <
1104
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1105
+ typename Check1, typename Check2, typename Check3, typename Check4,
1106
+ typename Check5, typename Check6, typename Check7, typename Check8,
1107
+ typename Check9, typename Check10, typename Check11, typename Check12,
1108
+ typename Check13, typename Check14, typename Check15, typename Check16,
1109
+ typename Check17, typename Check18, typename Check19, typename Check20,
1110
+ typename Check21, typename Check22, typename Check23, typename Check24,
1111
+ typename Check25, typename Check26, typename Check27, typename Check28,
1112
+ typename Check29, typename Action0, typename Action1, typename Action2,
1113
+ typename Action3, typename Action4, typename Action5, typename Action6,
1114
+ typename Action7, typename Action8, typename Action9, typename Action10,
1115
+ typename Action11, typename Action12, typename Action13, typename Action14,
1116
+ typename Action15, typename Action16, typename Action17, typename Action18,
1117
+ typename Action19, typename Action20, typename Action21, typename Action22,
1118
+ typename Action23, typename Action24, typename Action25, typename Action26,
1119
+ typename Action27, typename Action28, typename Action29>
1120
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1121
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1122
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1123
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1124
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1125
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1126
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1127
+ Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1128
+ Check28 check28, Check29 check29, Action0 action0, Action1 action1,
1129
+ Action2 action2, Action3 action3, Action4 action4, Action5 action5,
1130
+ Action6 action6, Action7 action7, Action8 action8, Action9 action9,
1131
+ Action10 action10, Action11 action11, Action12 action12,
1132
+ Action13 action13, Action14 action14, Action15 action15,
1133
+ Action16 action16, Action17 action17, Action18 action18,
1134
+ Action19 action19, Action20 action20, Action21 action21,
1135
+ Action22 action22, Action23 action23, Action24 action24,
1136
+ Action25 action25, Action26 action26, Action27 action27,
1137
+ Action28 action28, Action29 action29) {
1138
+ if (check0(input)) return action0(action_arg);
1139
+ if (check1(input)) return action1(action_arg);
1140
+ if (check2(input)) return action2(action_arg);
1141
+ if (check3(input)) return action3(action_arg);
1142
+ if (check4(input)) return action4(action_arg);
1143
+ if (check5(input)) return action5(action_arg);
1144
+ if (check6(input)) return action6(action_arg);
1145
+ if (check7(input)) return action7(action_arg);
1146
+ if (check8(input)) return action8(action_arg);
1147
+ if (check9(input)) return action9(action_arg);
1148
+ if (check10(input)) return action10(action_arg);
1149
+ if (check11(input)) return action11(action_arg);
1150
+ if (check12(input)) return action12(action_arg);
1151
+ if (check13(input)) return action13(action_arg);
1152
+ if (check14(input)) return action14(action_arg);
1153
+ if (check15(input)) return action15(action_arg);
1154
+ if (check16(input)) return action16(action_arg);
1155
+ if (check17(input)) return action17(action_arg);
1156
+ if (check18(input)) return action18(action_arg);
1157
+ if (check19(input)) return action19(action_arg);
1158
+ if (check20(input)) return action20(action_arg);
1159
+ if (check21(input)) return action21(action_arg);
1160
+ if (check22(input)) return action22(action_arg);
1161
+ if (check23(input)) return action23(action_arg);
1162
+ if (check24(input)) return action24(action_arg);
1163
+ if (check25(input)) return action25(action_arg);
1164
+ if (check26(input)) return action26(action_arg);
1165
+ if (check27(input)) return action27(action_arg);
1166
+ if (check28(input)) return action28(action_arg);
1167
+ if (check29(input)) return action29(action_arg);
1168
+ return action_fail(action_arg);
1169
+ }
1170
+
1171
+ template <
1172
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1173
+ typename Check1, typename Check2, typename Check3, typename Check4,
1174
+ typename Check5, typename Check6, typename Check7, typename Check8,
1175
+ typename Check9, typename Check10, typename Check11, typename Check12,
1176
+ typename Check13, typename Check14, typename Check15, typename Check16,
1177
+ typename Check17, typename Check18, typename Check19, typename Check20,
1178
+ typename Check21, typename Check22, typename Check23, typename Check24,
1179
+ typename Check25, typename Check26, typename Check27, typename Check28,
1180
+ typename Check29, typename Check30, typename Action0, typename Action1,
1181
+ typename Action2, typename Action3, typename Action4, typename Action5,
1182
+ typename Action6, typename Action7, typename Action8, typename Action9,
1183
+ typename Action10, typename Action11, typename Action12, typename Action13,
1184
+ typename Action14, typename Action15, typename Action16, typename Action17,
1185
+ typename Action18, typename Action19, typename Action20, typename Action21,
1186
+ typename Action22, typename Action23, typename Action24, typename Action25,
1187
+ typename Action26, typename Action27, typename Action28, typename Action29,
1188
+ typename Action30>
1189
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1190
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1191
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1192
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1193
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1194
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1195
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1196
+ Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1197
+ Check28 check28, Check29 check29, Check30 check30, Action0 action0,
1198
+ Action1 action1, Action2 action2, Action3 action3, Action4 action4,
1199
+ Action5 action5, Action6 action6, Action7 action7, Action8 action8,
1200
+ Action9 action9, Action10 action10, Action11 action11,
1201
+ Action12 action12, Action13 action13, Action14 action14,
1202
+ Action15 action15, Action16 action16, Action17 action17,
1203
+ Action18 action18, Action19 action19, Action20 action20,
1204
+ Action21 action21, Action22 action22, Action23 action23,
1205
+ Action24 action24, Action25 action25, Action26 action26,
1206
+ Action27 action27, Action28 action28, Action29 action29,
1207
+ Action30 action30) {
1208
+ if (check0(input)) return action0(action_arg);
1209
+ if (check1(input)) return action1(action_arg);
1210
+ if (check2(input)) return action2(action_arg);
1211
+ if (check3(input)) return action3(action_arg);
1212
+ if (check4(input)) return action4(action_arg);
1213
+ if (check5(input)) return action5(action_arg);
1214
+ if (check6(input)) return action6(action_arg);
1215
+ if (check7(input)) return action7(action_arg);
1216
+ if (check8(input)) return action8(action_arg);
1217
+ if (check9(input)) return action9(action_arg);
1218
+ if (check10(input)) return action10(action_arg);
1219
+ if (check11(input)) return action11(action_arg);
1220
+ if (check12(input)) return action12(action_arg);
1221
+ if (check13(input)) return action13(action_arg);
1222
+ if (check14(input)) return action14(action_arg);
1223
+ if (check15(input)) return action15(action_arg);
1224
+ if (check16(input)) return action16(action_arg);
1225
+ if (check17(input)) return action17(action_arg);
1226
+ if (check18(input)) return action18(action_arg);
1227
+ if (check19(input)) return action19(action_arg);
1228
+ if (check20(input)) return action20(action_arg);
1229
+ if (check21(input)) return action21(action_arg);
1230
+ if (check22(input)) return action22(action_arg);
1231
+ if (check23(input)) return action23(action_arg);
1232
+ if (check24(input)) return action24(action_arg);
1233
+ if (check25(input)) return action25(action_arg);
1234
+ if (check26(input)) return action26(action_arg);
1235
+ if (check27(input)) return action27(action_arg);
1236
+ if (check28(input)) return action28(action_arg);
1237
+ if (check29(input)) return action29(action_arg);
1238
+ if (check30(input)) return action30(action_arg);
1239
+ return action_fail(action_arg);
1240
+ }
1241
+
1242
+ template <
1243
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1244
+ typename Check1, typename Check2, typename Check3, typename Check4,
1245
+ typename Check5, typename Check6, typename Check7, typename Check8,
1246
+ typename Check9, typename Check10, typename Check11, typename Check12,
1247
+ typename Check13, typename Check14, typename Check15, typename Check16,
1248
+ typename Check17, typename Check18, typename Check19, typename Check20,
1249
+ typename Check21, typename Check22, typename Check23, typename Check24,
1250
+ typename Check25, typename Check26, typename Check27, typename Check28,
1251
+ typename Check29, typename Check30, typename Check31, typename Action0,
1252
+ typename Action1, typename Action2, typename Action3, typename Action4,
1253
+ typename Action5, typename Action6, typename Action7, typename Action8,
1254
+ typename Action9, typename Action10, typename Action11, typename Action12,
1255
+ typename Action13, typename Action14, typename Action15, typename Action16,
1256
+ typename Action17, typename Action18, typename Action19, typename Action20,
1257
+ typename Action21, typename Action22, typename Action23, typename Action24,
1258
+ typename Action25, typename Action26, typename Action27, typename Action28,
1259
+ typename Action29, typename Action30, typename Action31>
1260
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1261
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1262
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1263
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1264
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1265
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1266
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1267
+ Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1268
+ Check28 check28, Check29 check29, Check30 check30, Check31 check31,
1269
+ Action0 action0, Action1 action1, Action2 action2, Action3 action3,
1270
+ Action4 action4, Action5 action5, Action6 action6, Action7 action7,
1271
+ Action8 action8, Action9 action9, Action10 action10,
1272
+ Action11 action11, Action12 action12, Action13 action13,
1273
+ Action14 action14, Action15 action15, Action16 action16,
1274
+ Action17 action17, Action18 action18, Action19 action19,
1275
+ Action20 action20, Action21 action21, Action22 action22,
1276
+ Action23 action23, Action24 action24, Action25 action25,
1277
+ Action26 action26, Action27 action27, Action28 action28,
1278
+ Action29 action29, Action30 action30, Action31 action31) {
1279
+ if (check0(input)) return action0(action_arg);
1280
+ if (check1(input)) return action1(action_arg);
1281
+ if (check2(input)) return action2(action_arg);
1282
+ if (check3(input)) return action3(action_arg);
1283
+ if (check4(input)) return action4(action_arg);
1284
+ if (check5(input)) return action5(action_arg);
1285
+ if (check6(input)) return action6(action_arg);
1286
+ if (check7(input)) return action7(action_arg);
1287
+ if (check8(input)) return action8(action_arg);
1288
+ if (check9(input)) return action9(action_arg);
1289
+ if (check10(input)) return action10(action_arg);
1290
+ if (check11(input)) return action11(action_arg);
1291
+ if (check12(input)) return action12(action_arg);
1292
+ if (check13(input)) return action13(action_arg);
1293
+ if (check14(input)) return action14(action_arg);
1294
+ if (check15(input)) return action15(action_arg);
1295
+ if (check16(input)) return action16(action_arg);
1296
+ if (check17(input)) return action17(action_arg);
1297
+ if (check18(input)) return action18(action_arg);
1298
+ if (check19(input)) return action19(action_arg);
1299
+ if (check20(input)) return action20(action_arg);
1300
+ if (check21(input)) return action21(action_arg);
1301
+ if (check22(input)) return action22(action_arg);
1302
+ if (check23(input)) return action23(action_arg);
1303
+ if (check24(input)) return action24(action_arg);
1304
+ if (check25(input)) return action25(action_arg);
1305
+ if (check26(input)) return action26(action_arg);
1306
+ if (check27(input)) return action27(action_arg);
1307
+ if (check28(input)) return action28(action_arg);
1308
+ if (check29(input)) return action29(action_arg);
1309
+ if (check30(input)) return action30(action_arg);
1310
+ if (check31(input)) return action31(action_arg);
1311
+ return action_fail(action_arg);
1312
+ }
1313
+
1314
+ template <
1315
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1316
+ typename Check1, typename Check2, typename Check3, typename Check4,
1317
+ typename Check5, typename Check6, typename Check7, typename Check8,
1318
+ typename Check9, typename Check10, typename Check11, typename Check12,
1319
+ typename Check13, typename Check14, typename Check15, typename Check16,
1320
+ typename Check17, typename Check18, typename Check19, typename Check20,
1321
+ typename Check21, typename Check22, typename Check23, typename Check24,
1322
+ typename Check25, typename Check26, typename Check27, typename Check28,
1323
+ typename Check29, typename Check30, typename Check31, typename Check32,
1324
+ typename Action0, typename Action1, typename Action2, typename Action3,
1325
+ typename Action4, typename Action5, typename Action6, typename Action7,
1326
+ typename Action8, typename Action9, typename Action10, typename Action11,
1327
+ typename Action12, typename Action13, typename Action14, typename Action15,
1328
+ typename Action16, typename Action17, typename Action18, typename Action19,
1329
+ typename Action20, typename Action21, typename Action22, typename Action23,
1330
+ typename Action24, typename Action25, typename Action26, typename Action27,
1331
+ typename Action28, typename Action29, typename Action30, typename Action31,
1332
+ typename Action32>
1333
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1334
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1335
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1336
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1337
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1338
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1339
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1340
+ Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1341
+ Check28 check28, Check29 check29, Check30 check30, Check31 check31,
1342
+ Check32 check32, Action0 action0, Action1 action1, Action2 action2,
1343
+ Action3 action3, Action4 action4, Action5 action5, Action6 action6,
1344
+ Action7 action7, Action8 action8, Action9 action9,
1345
+ Action10 action10, Action11 action11, Action12 action12,
1346
+ Action13 action13, Action14 action14, Action15 action15,
1347
+ Action16 action16, Action17 action17, Action18 action18,
1348
+ Action19 action19, Action20 action20, Action21 action21,
1349
+ Action22 action22, Action23 action23, Action24 action24,
1350
+ Action25 action25, Action26 action26, Action27 action27,
1351
+ Action28 action28, Action29 action29, Action30 action30,
1352
+ Action31 action31, Action32 action32) {
1353
+ if (check0(input)) return action0(action_arg);
1354
+ if (check1(input)) return action1(action_arg);
1355
+ if (check2(input)) return action2(action_arg);
1356
+ if (check3(input)) return action3(action_arg);
1357
+ if (check4(input)) return action4(action_arg);
1358
+ if (check5(input)) return action5(action_arg);
1359
+ if (check6(input)) return action6(action_arg);
1360
+ if (check7(input)) return action7(action_arg);
1361
+ if (check8(input)) return action8(action_arg);
1362
+ if (check9(input)) return action9(action_arg);
1363
+ if (check10(input)) return action10(action_arg);
1364
+ if (check11(input)) return action11(action_arg);
1365
+ if (check12(input)) return action12(action_arg);
1366
+ if (check13(input)) return action13(action_arg);
1367
+ if (check14(input)) return action14(action_arg);
1368
+ if (check15(input)) return action15(action_arg);
1369
+ if (check16(input)) return action16(action_arg);
1370
+ if (check17(input)) return action17(action_arg);
1371
+ if (check18(input)) return action18(action_arg);
1372
+ if (check19(input)) return action19(action_arg);
1373
+ if (check20(input)) return action20(action_arg);
1374
+ if (check21(input)) return action21(action_arg);
1375
+ if (check22(input)) return action22(action_arg);
1376
+ if (check23(input)) return action23(action_arg);
1377
+ if (check24(input)) return action24(action_arg);
1378
+ if (check25(input)) return action25(action_arg);
1379
+ if (check26(input)) return action26(action_arg);
1380
+ if (check27(input)) return action27(action_arg);
1381
+ if (check28(input)) return action28(action_arg);
1382
+ if (check29(input)) return action29(action_arg);
1383
+ if (check30(input)) return action30(action_arg);
1384
+ if (check31(input)) return action31(action_arg);
1385
+ if (check32(input)) return action32(action_arg);
1386
+ return action_fail(action_arg);
1387
+ }
1388
+
1389
+ template <
1390
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1391
+ typename Check1, typename Check2, typename Check3, typename Check4,
1392
+ typename Check5, typename Check6, typename Check7, typename Check8,
1393
+ typename Check9, typename Check10, typename Check11, typename Check12,
1394
+ typename Check13, typename Check14, typename Check15, typename Check16,
1395
+ typename Check17, typename Check18, typename Check19, typename Check20,
1396
+ typename Check21, typename Check22, typename Check23, typename Check24,
1397
+ typename Check25, typename Check26, typename Check27, typename Check28,
1398
+ typename Check29, typename Check30, typename Check31, typename Check32,
1399
+ typename Check33, typename Action0, typename Action1, typename Action2,
1400
+ typename Action3, typename Action4, typename Action5, typename Action6,
1401
+ typename Action7, typename Action8, typename Action9, typename Action10,
1402
+ typename Action11, typename Action12, typename Action13, typename Action14,
1403
+ typename Action15, typename Action16, typename Action17, typename Action18,
1404
+ typename Action19, typename Action20, typename Action21, typename Action22,
1405
+ typename Action23, typename Action24, typename Action25, typename Action26,
1406
+ typename Action27, typename Action28, typename Action29, typename Action30,
1407
+ typename Action31, typename Action32, typename Action33>
1408
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1409
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1410
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1411
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1412
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1413
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1414
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1415
+ Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1416
+ Check28 check28, Check29 check29, Check30 check30, Check31 check31,
1417
+ Check32 check32, Check33 check33, Action0 action0, Action1 action1,
1418
+ Action2 action2, Action3 action3, Action4 action4, Action5 action5,
1419
+ Action6 action6, Action7 action7, Action8 action8, Action9 action9,
1420
+ Action10 action10, Action11 action11, Action12 action12,
1421
+ Action13 action13, Action14 action14, Action15 action15,
1422
+ Action16 action16, Action17 action17, Action18 action18,
1423
+ Action19 action19, Action20 action20, Action21 action21,
1424
+ Action22 action22, Action23 action23, Action24 action24,
1425
+ Action25 action25, Action26 action26, Action27 action27,
1426
+ Action28 action28, Action29 action29, Action30 action30,
1427
+ Action31 action31, Action32 action32, Action33 action33) {
1428
+ if (check0(input)) return action0(action_arg);
1429
+ if (check1(input)) return action1(action_arg);
1430
+ if (check2(input)) return action2(action_arg);
1431
+ if (check3(input)) return action3(action_arg);
1432
+ if (check4(input)) return action4(action_arg);
1433
+ if (check5(input)) return action5(action_arg);
1434
+ if (check6(input)) return action6(action_arg);
1435
+ if (check7(input)) return action7(action_arg);
1436
+ if (check8(input)) return action8(action_arg);
1437
+ if (check9(input)) return action9(action_arg);
1438
+ if (check10(input)) return action10(action_arg);
1439
+ if (check11(input)) return action11(action_arg);
1440
+ if (check12(input)) return action12(action_arg);
1441
+ if (check13(input)) return action13(action_arg);
1442
+ if (check14(input)) return action14(action_arg);
1443
+ if (check15(input)) return action15(action_arg);
1444
+ if (check16(input)) return action16(action_arg);
1445
+ if (check17(input)) return action17(action_arg);
1446
+ if (check18(input)) return action18(action_arg);
1447
+ if (check19(input)) return action19(action_arg);
1448
+ if (check20(input)) return action20(action_arg);
1449
+ if (check21(input)) return action21(action_arg);
1450
+ if (check22(input)) return action22(action_arg);
1451
+ if (check23(input)) return action23(action_arg);
1452
+ if (check24(input)) return action24(action_arg);
1453
+ if (check25(input)) return action25(action_arg);
1454
+ if (check26(input)) return action26(action_arg);
1455
+ if (check27(input)) return action27(action_arg);
1456
+ if (check28(input)) return action28(action_arg);
1457
+ if (check29(input)) return action29(action_arg);
1458
+ if (check30(input)) return action30(action_arg);
1459
+ if (check31(input)) return action31(action_arg);
1460
+ if (check32(input)) return action32(action_arg);
1461
+ if (check33(input)) return action33(action_arg);
1462
+ return action_fail(action_arg);
1463
+ }
1464
+
1465
+ template <
1466
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1467
+ typename Check1, typename Check2, typename Check3, typename Check4,
1468
+ typename Check5, typename Check6, typename Check7, typename Check8,
1469
+ typename Check9, typename Check10, typename Check11, typename Check12,
1470
+ typename Check13, typename Check14, typename Check15, typename Check16,
1471
+ typename Check17, typename Check18, typename Check19, typename Check20,
1472
+ typename Check21, typename Check22, typename Check23, typename Check24,
1473
+ typename Check25, typename Check26, typename Check27, typename Check28,
1474
+ typename Check29, typename Check30, typename Check31, typename Check32,
1475
+ typename Check33, typename Check34, typename Action0, typename Action1,
1476
+ typename Action2, typename Action3, typename Action4, typename Action5,
1477
+ typename Action6, typename Action7, typename Action8, typename Action9,
1478
+ typename Action10, typename Action11, typename Action12, typename Action13,
1479
+ typename Action14, typename Action15, typename Action16, typename Action17,
1480
+ typename Action18, typename Action19, typename Action20, typename Action21,
1481
+ typename Action22, typename Action23, typename Action24, typename Action25,
1482
+ typename Action26, typename Action27, typename Action28, typename Action29,
1483
+ typename Action30, typename Action31, typename Action32, typename Action33,
1484
+ typename Action34>
1485
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1486
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1487
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1488
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1489
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1490
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1491
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1492
+ Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1493
+ Check28 check28, Check29 check29, Check30 check30, Check31 check31,
1494
+ Check32 check32, Check33 check33, Check34 check34, Action0 action0,
1495
+ Action1 action1, Action2 action2, Action3 action3, Action4 action4,
1496
+ Action5 action5, Action6 action6, Action7 action7, Action8 action8,
1497
+ Action9 action9, Action10 action10, Action11 action11,
1498
+ Action12 action12, Action13 action13, Action14 action14,
1499
+ Action15 action15, Action16 action16, Action17 action17,
1500
+ Action18 action18, Action19 action19, Action20 action20,
1501
+ Action21 action21, Action22 action22, Action23 action23,
1502
+ Action24 action24, Action25 action25, Action26 action26,
1503
+ Action27 action27, Action28 action28, Action29 action29,
1504
+ Action30 action30, Action31 action31, Action32 action32,
1505
+ Action33 action33, Action34 action34) {
1506
+ if (check0(input)) return action0(action_arg);
1507
+ if (check1(input)) return action1(action_arg);
1508
+ if (check2(input)) return action2(action_arg);
1509
+ if (check3(input)) return action3(action_arg);
1510
+ if (check4(input)) return action4(action_arg);
1511
+ if (check5(input)) return action5(action_arg);
1512
+ if (check6(input)) return action6(action_arg);
1513
+ if (check7(input)) return action7(action_arg);
1514
+ if (check8(input)) return action8(action_arg);
1515
+ if (check9(input)) return action9(action_arg);
1516
+ if (check10(input)) return action10(action_arg);
1517
+ if (check11(input)) return action11(action_arg);
1518
+ if (check12(input)) return action12(action_arg);
1519
+ if (check13(input)) return action13(action_arg);
1520
+ if (check14(input)) return action14(action_arg);
1521
+ if (check15(input)) return action15(action_arg);
1522
+ if (check16(input)) return action16(action_arg);
1523
+ if (check17(input)) return action17(action_arg);
1524
+ if (check18(input)) return action18(action_arg);
1525
+ if (check19(input)) return action19(action_arg);
1526
+ if (check20(input)) return action20(action_arg);
1527
+ if (check21(input)) return action21(action_arg);
1528
+ if (check22(input)) return action22(action_arg);
1529
+ if (check23(input)) return action23(action_arg);
1530
+ if (check24(input)) return action24(action_arg);
1531
+ if (check25(input)) return action25(action_arg);
1532
+ if (check26(input)) return action26(action_arg);
1533
+ if (check27(input)) return action27(action_arg);
1534
+ if (check28(input)) return action28(action_arg);
1535
+ if (check29(input)) return action29(action_arg);
1536
+ if (check30(input)) return action30(action_arg);
1537
+ if (check31(input)) return action31(action_arg);
1538
+ if (check32(input)) return action32(action_arg);
1539
+ if (check33(input)) return action33(action_arg);
1540
+ if (check34(input)) return action34(action_arg);
1541
+ return action_fail(action_arg);
1542
+ }
1543
+
1544
+ template <
1545
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1546
+ typename Check1, typename Check2, typename Check3, typename Check4,
1547
+ typename Check5, typename Check6, typename Check7, typename Check8,
1548
+ typename Check9, typename Check10, typename Check11, typename Check12,
1549
+ typename Check13, typename Check14, typename Check15, typename Check16,
1550
+ typename Check17, typename Check18, typename Check19, typename Check20,
1551
+ typename Check21, typename Check22, typename Check23, typename Check24,
1552
+ typename Check25, typename Check26, typename Check27, typename Check28,
1553
+ typename Check29, typename Check30, typename Check31, typename Check32,
1554
+ typename Check33, typename Check34, typename Check35, typename Action0,
1555
+ typename Action1, typename Action2, typename Action3, typename Action4,
1556
+ typename Action5, typename Action6, typename Action7, typename Action8,
1557
+ typename Action9, typename Action10, typename Action11, typename Action12,
1558
+ typename Action13, typename Action14, typename Action15, typename Action16,
1559
+ typename Action17, typename Action18, typename Action19, typename Action20,
1560
+ typename Action21, typename Action22, typename Action23, typename Action24,
1561
+ typename Action25, typename Action26, typename Action27, typename Action28,
1562
+ typename Action29, typename Action30, typename Action31, typename Action32,
1563
+ typename Action33, typename Action34, typename Action35>
1564
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1565
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1566
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1567
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1568
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1569
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1570
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1571
+ Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1572
+ Check28 check28, Check29 check29, Check30 check30, Check31 check31,
1573
+ Check32 check32, Check33 check33, Check34 check34, Check35 check35,
1574
+ Action0 action0, Action1 action1, Action2 action2, Action3 action3,
1575
+ Action4 action4, Action5 action5, Action6 action6, Action7 action7,
1576
+ Action8 action8, Action9 action9, Action10 action10,
1577
+ Action11 action11, Action12 action12, Action13 action13,
1578
+ Action14 action14, Action15 action15, Action16 action16,
1579
+ Action17 action17, Action18 action18, Action19 action19,
1580
+ Action20 action20, Action21 action21, Action22 action22,
1581
+ Action23 action23, Action24 action24, Action25 action25,
1582
+ Action26 action26, Action27 action27, Action28 action28,
1583
+ Action29 action29, Action30 action30, Action31 action31,
1584
+ Action32 action32, Action33 action33, Action34 action34,
1585
+ Action35 action35) {
1586
+ if (check0(input)) return action0(action_arg);
1587
+ if (check1(input)) return action1(action_arg);
1588
+ if (check2(input)) return action2(action_arg);
1589
+ if (check3(input)) return action3(action_arg);
1590
+ if (check4(input)) return action4(action_arg);
1591
+ if (check5(input)) return action5(action_arg);
1592
+ if (check6(input)) return action6(action_arg);
1593
+ if (check7(input)) return action7(action_arg);
1594
+ if (check8(input)) return action8(action_arg);
1595
+ if (check9(input)) return action9(action_arg);
1596
+ if (check10(input)) return action10(action_arg);
1597
+ if (check11(input)) return action11(action_arg);
1598
+ if (check12(input)) return action12(action_arg);
1599
+ if (check13(input)) return action13(action_arg);
1600
+ if (check14(input)) return action14(action_arg);
1601
+ if (check15(input)) return action15(action_arg);
1602
+ if (check16(input)) return action16(action_arg);
1603
+ if (check17(input)) return action17(action_arg);
1604
+ if (check18(input)) return action18(action_arg);
1605
+ if (check19(input)) return action19(action_arg);
1606
+ if (check20(input)) return action20(action_arg);
1607
+ if (check21(input)) return action21(action_arg);
1608
+ if (check22(input)) return action22(action_arg);
1609
+ if (check23(input)) return action23(action_arg);
1610
+ if (check24(input)) return action24(action_arg);
1611
+ if (check25(input)) return action25(action_arg);
1612
+ if (check26(input)) return action26(action_arg);
1613
+ if (check27(input)) return action27(action_arg);
1614
+ if (check28(input)) return action28(action_arg);
1615
+ if (check29(input)) return action29(action_arg);
1616
+ if (check30(input)) return action30(action_arg);
1617
+ if (check31(input)) return action31(action_arg);
1618
+ if (check32(input)) return action32(action_arg);
1619
+ if (check33(input)) return action33(action_arg);
1620
+ if (check34(input)) return action34(action_arg);
1621
+ if (check35(input)) return action35(action_arg);
1622
+ return action_fail(action_arg);
1623
+ }
1624
+
1625
+ template <
1626
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1627
+ typename Check1, typename Check2, typename Check3, typename Check4,
1628
+ typename Check5, typename Check6, typename Check7, typename Check8,
1629
+ typename Check9, typename Check10, typename Check11, typename Check12,
1630
+ typename Check13, typename Check14, typename Check15, typename Check16,
1631
+ typename Check17, typename Check18, typename Check19, typename Check20,
1632
+ typename Check21, typename Check22, typename Check23, typename Check24,
1633
+ typename Check25, typename Check26, typename Check27, typename Check28,
1634
+ typename Check29, typename Check30, typename Check31, typename Check32,
1635
+ typename Check33, typename Check34, typename Check35, typename Check36,
1636
+ typename Action0, typename Action1, typename Action2, typename Action3,
1637
+ typename Action4, typename Action5, typename Action6, typename Action7,
1638
+ typename Action8, typename Action9, typename Action10, typename Action11,
1639
+ typename Action12, typename Action13, typename Action14, typename Action15,
1640
+ typename Action16, typename Action17, typename Action18, typename Action19,
1641
+ typename Action20, typename Action21, typename Action22, typename Action23,
1642
+ typename Action24, typename Action25, typename Action26, typename Action27,
1643
+ typename Action28, typename Action29, typename Action30, typename Action31,
1644
+ typename Action32, typename Action33, typename Action34, typename Action35,
1645
+ typename Action36>
1646
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1647
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1648
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1649
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1650
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1651
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1652
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1653
+ Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1654
+ Check28 check28, Check29 check29, Check30 check30, Check31 check31,
1655
+ Check32 check32, Check33 check33, Check34 check34, Check35 check35,
1656
+ Check36 check36, Action0 action0, Action1 action1, Action2 action2,
1657
+ Action3 action3, Action4 action4, Action5 action5, Action6 action6,
1658
+ Action7 action7, Action8 action8, Action9 action9,
1659
+ Action10 action10, Action11 action11, Action12 action12,
1660
+ Action13 action13, Action14 action14, Action15 action15,
1661
+ Action16 action16, Action17 action17, Action18 action18,
1662
+ Action19 action19, Action20 action20, Action21 action21,
1663
+ Action22 action22, Action23 action23, Action24 action24,
1664
+ Action25 action25, Action26 action26, Action27 action27,
1665
+ Action28 action28, Action29 action29, Action30 action30,
1666
+ Action31 action31, Action32 action32, Action33 action33,
1667
+ Action34 action34, Action35 action35, Action36 action36) {
1668
+ if (check0(input)) return action0(action_arg);
1669
+ if (check1(input)) return action1(action_arg);
1670
+ if (check2(input)) return action2(action_arg);
1671
+ if (check3(input)) return action3(action_arg);
1672
+ if (check4(input)) return action4(action_arg);
1673
+ if (check5(input)) return action5(action_arg);
1674
+ if (check6(input)) return action6(action_arg);
1675
+ if (check7(input)) return action7(action_arg);
1676
+ if (check8(input)) return action8(action_arg);
1677
+ if (check9(input)) return action9(action_arg);
1678
+ if (check10(input)) return action10(action_arg);
1679
+ if (check11(input)) return action11(action_arg);
1680
+ if (check12(input)) return action12(action_arg);
1681
+ if (check13(input)) return action13(action_arg);
1682
+ if (check14(input)) return action14(action_arg);
1683
+ if (check15(input)) return action15(action_arg);
1684
+ if (check16(input)) return action16(action_arg);
1685
+ if (check17(input)) return action17(action_arg);
1686
+ if (check18(input)) return action18(action_arg);
1687
+ if (check19(input)) return action19(action_arg);
1688
+ if (check20(input)) return action20(action_arg);
1689
+ if (check21(input)) return action21(action_arg);
1690
+ if (check22(input)) return action22(action_arg);
1691
+ if (check23(input)) return action23(action_arg);
1692
+ if (check24(input)) return action24(action_arg);
1693
+ if (check25(input)) return action25(action_arg);
1694
+ if (check26(input)) return action26(action_arg);
1695
+ if (check27(input)) return action27(action_arg);
1696
+ if (check28(input)) return action28(action_arg);
1697
+ if (check29(input)) return action29(action_arg);
1698
+ if (check30(input)) return action30(action_arg);
1699
+ if (check31(input)) return action31(action_arg);
1700
+ if (check32(input)) return action32(action_arg);
1701
+ if (check33(input)) return action33(action_arg);
1702
+ if (check34(input)) return action34(action_arg);
1703
+ if (check35(input)) return action35(action_arg);
1704
+ if (check36(input)) return action36(action_arg);
1705
+ return action_fail(action_arg);
1706
+ }
1707
+
1708
+ template <
1709
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1710
+ typename Check1, typename Check2, typename Check3, typename Check4,
1711
+ typename Check5, typename Check6, typename Check7, typename Check8,
1712
+ typename Check9, typename Check10, typename Check11, typename Check12,
1713
+ typename Check13, typename Check14, typename Check15, typename Check16,
1714
+ typename Check17, typename Check18, typename Check19, typename Check20,
1715
+ typename Check21, typename Check22, typename Check23, typename Check24,
1716
+ typename Check25, typename Check26, typename Check27, typename Check28,
1717
+ typename Check29, typename Check30, typename Check31, typename Check32,
1718
+ typename Check33, typename Check34, typename Check35, typename Check36,
1719
+ typename Check37, typename Action0, typename Action1, typename Action2,
1720
+ typename Action3, typename Action4, typename Action5, typename Action6,
1721
+ typename Action7, typename Action8, typename Action9, typename Action10,
1722
+ typename Action11, typename Action12, typename Action13, typename Action14,
1723
+ typename Action15, typename Action16, typename Action17, typename Action18,
1724
+ typename Action19, typename Action20, typename Action21, typename Action22,
1725
+ typename Action23, typename Action24, typename Action25, typename Action26,
1726
+ typename Action27, typename Action28, typename Action29, typename Action30,
1727
+ typename Action31, typename Action32, typename Action33, typename Action34,
1728
+ typename Action35, typename Action36, typename Action37>
1729
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1730
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1731
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1732
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1733
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1734
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1735
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1736
+ Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1737
+ Check28 check28, Check29 check29, Check30 check30, Check31 check31,
1738
+ Check32 check32, Check33 check33, Check34 check34, Check35 check35,
1739
+ Check36 check36, Check37 check37, Action0 action0, Action1 action1,
1740
+ Action2 action2, Action3 action3, Action4 action4, Action5 action5,
1741
+ Action6 action6, Action7 action7, Action8 action8, Action9 action9,
1742
+ Action10 action10, Action11 action11, Action12 action12,
1743
+ Action13 action13, Action14 action14, Action15 action15,
1744
+ Action16 action16, Action17 action17, Action18 action18,
1745
+ Action19 action19, Action20 action20, Action21 action21,
1746
+ Action22 action22, Action23 action23, Action24 action24,
1747
+ Action25 action25, Action26 action26, Action27 action27,
1748
+ Action28 action28, Action29 action29, Action30 action30,
1749
+ Action31 action31, Action32 action32, Action33 action33,
1750
+ Action34 action34, Action35 action35, Action36 action36,
1751
+ Action37 action37) {
1752
+ if (check0(input)) return action0(action_arg);
1753
+ if (check1(input)) return action1(action_arg);
1754
+ if (check2(input)) return action2(action_arg);
1755
+ if (check3(input)) return action3(action_arg);
1756
+ if (check4(input)) return action4(action_arg);
1757
+ if (check5(input)) return action5(action_arg);
1758
+ if (check6(input)) return action6(action_arg);
1759
+ if (check7(input)) return action7(action_arg);
1760
+ if (check8(input)) return action8(action_arg);
1761
+ if (check9(input)) return action9(action_arg);
1762
+ if (check10(input)) return action10(action_arg);
1763
+ if (check11(input)) return action11(action_arg);
1764
+ if (check12(input)) return action12(action_arg);
1765
+ if (check13(input)) return action13(action_arg);
1766
+ if (check14(input)) return action14(action_arg);
1767
+ if (check15(input)) return action15(action_arg);
1768
+ if (check16(input)) return action16(action_arg);
1769
+ if (check17(input)) return action17(action_arg);
1770
+ if (check18(input)) return action18(action_arg);
1771
+ if (check19(input)) return action19(action_arg);
1772
+ if (check20(input)) return action20(action_arg);
1773
+ if (check21(input)) return action21(action_arg);
1774
+ if (check22(input)) return action22(action_arg);
1775
+ if (check23(input)) return action23(action_arg);
1776
+ if (check24(input)) return action24(action_arg);
1777
+ if (check25(input)) return action25(action_arg);
1778
+ if (check26(input)) return action26(action_arg);
1779
+ if (check27(input)) return action27(action_arg);
1780
+ if (check28(input)) return action28(action_arg);
1781
+ if (check29(input)) return action29(action_arg);
1782
+ if (check30(input)) return action30(action_arg);
1783
+ if (check31(input)) return action31(action_arg);
1784
+ if (check32(input)) return action32(action_arg);
1785
+ if (check33(input)) return action33(action_arg);
1786
+ if (check34(input)) return action34(action_arg);
1787
+ if (check35(input)) return action35(action_arg);
1788
+ if (check36(input)) return action36(action_arg);
1789
+ if (check37(input)) return action37(action_arg);
1790
+ return action_fail(action_arg);
1791
+ }
1792
+
1793
+ template <
1794
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1795
+ typename Check1, typename Check2, typename Check3, typename Check4,
1796
+ typename Check5, typename Check6, typename Check7, typename Check8,
1797
+ typename Check9, typename Check10, typename Check11, typename Check12,
1798
+ typename Check13, typename Check14, typename Check15, typename Check16,
1799
+ typename Check17, typename Check18, typename Check19, typename Check20,
1800
+ typename Check21, typename Check22, typename Check23, typename Check24,
1801
+ typename Check25, typename Check26, typename Check27, typename Check28,
1802
+ typename Check29, typename Check30, typename Check31, typename Check32,
1803
+ typename Check33, typename Check34, typename Check35, typename Check36,
1804
+ typename Check37, typename Check38, typename Action0, typename Action1,
1805
+ typename Action2, typename Action3, typename Action4, typename Action5,
1806
+ typename Action6, typename Action7, typename Action8, typename Action9,
1807
+ typename Action10, typename Action11, typename Action12, typename Action13,
1808
+ typename Action14, typename Action15, typename Action16, typename Action17,
1809
+ typename Action18, typename Action19, typename Action20, typename Action21,
1810
+ typename Action22, typename Action23, typename Action24, typename Action25,
1811
+ typename Action26, typename Action27, typename Action28, typename Action29,
1812
+ typename Action30, typename Action31, typename Action32, typename Action33,
1813
+ typename Action34, typename Action35, typename Action36, typename Action37,
1814
+ typename Action38>
1815
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1816
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1817
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1818
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1819
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1820
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1821
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1822
+ Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1823
+ Check28 check28, Check29 check29, Check30 check30, Check31 check31,
1824
+ Check32 check32, Check33 check33, Check34 check34, Check35 check35,
1825
+ Check36 check36, Check37 check37, Check38 check38, Action0 action0,
1826
+ Action1 action1, Action2 action2, Action3 action3, Action4 action4,
1827
+ Action5 action5, Action6 action6, Action7 action7, Action8 action8,
1828
+ Action9 action9, Action10 action10, Action11 action11,
1829
+ Action12 action12, Action13 action13, Action14 action14,
1830
+ Action15 action15, Action16 action16, Action17 action17,
1831
+ Action18 action18, Action19 action19, Action20 action20,
1832
+ Action21 action21, Action22 action22, Action23 action23,
1833
+ Action24 action24, Action25 action25, Action26 action26,
1834
+ Action27 action27, Action28 action28, Action29 action29,
1835
+ Action30 action30, Action31 action31, Action32 action32,
1836
+ Action33 action33, Action34 action34, Action35 action35,
1837
+ Action36 action36, Action37 action37, Action38 action38) {
1838
+ if (check0(input)) return action0(action_arg);
1839
+ if (check1(input)) return action1(action_arg);
1840
+ if (check2(input)) return action2(action_arg);
1841
+ if (check3(input)) return action3(action_arg);
1842
+ if (check4(input)) return action4(action_arg);
1843
+ if (check5(input)) return action5(action_arg);
1844
+ if (check6(input)) return action6(action_arg);
1845
+ if (check7(input)) return action7(action_arg);
1846
+ if (check8(input)) return action8(action_arg);
1847
+ if (check9(input)) return action9(action_arg);
1848
+ if (check10(input)) return action10(action_arg);
1849
+ if (check11(input)) return action11(action_arg);
1850
+ if (check12(input)) return action12(action_arg);
1851
+ if (check13(input)) return action13(action_arg);
1852
+ if (check14(input)) return action14(action_arg);
1853
+ if (check15(input)) return action15(action_arg);
1854
+ if (check16(input)) return action16(action_arg);
1855
+ if (check17(input)) return action17(action_arg);
1856
+ if (check18(input)) return action18(action_arg);
1857
+ if (check19(input)) return action19(action_arg);
1858
+ if (check20(input)) return action20(action_arg);
1859
+ if (check21(input)) return action21(action_arg);
1860
+ if (check22(input)) return action22(action_arg);
1861
+ if (check23(input)) return action23(action_arg);
1862
+ if (check24(input)) return action24(action_arg);
1863
+ if (check25(input)) return action25(action_arg);
1864
+ if (check26(input)) return action26(action_arg);
1865
+ if (check27(input)) return action27(action_arg);
1866
+ if (check28(input)) return action28(action_arg);
1867
+ if (check29(input)) return action29(action_arg);
1868
+ if (check30(input)) return action30(action_arg);
1869
+ if (check31(input)) return action31(action_arg);
1870
+ if (check32(input)) return action32(action_arg);
1871
+ if (check33(input)) return action33(action_arg);
1872
+ if (check34(input)) return action34(action_arg);
1873
+ if (check35(input)) return action35(action_arg);
1874
+ if (check36(input)) return action36(action_arg);
1875
+ if (check37(input)) return action37(action_arg);
1876
+ if (check38(input)) return action38(action_arg);
1877
+ return action_fail(action_arg);
1878
+ }
1879
+
1880
+ template <
1881
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1882
+ typename Check1, typename Check2, typename Check3, typename Check4,
1883
+ typename Check5, typename Check6, typename Check7, typename Check8,
1884
+ typename Check9, typename Check10, typename Check11, typename Check12,
1885
+ typename Check13, typename Check14, typename Check15, typename Check16,
1886
+ typename Check17, typename Check18, typename Check19, typename Check20,
1887
+ typename Check21, typename Check22, typename Check23, typename Check24,
1888
+ typename Check25, typename Check26, typename Check27, typename Check28,
1889
+ typename Check29, typename Check30, typename Check31, typename Check32,
1890
+ typename Check33, typename Check34, typename Check35, typename Check36,
1891
+ typename Check37, typename Check38, typename Check39, typename Action0,
1892
+ typename Action1, typename Action2, typename Action3, typename Action4,
1893
+ typename Action5, typename Action6, typename Action7, typename Action8,
1894
+ typename Action9, typename Action10, typename Action11, typename Action12,
1895
+ typename Action13, typename Action14, typename Action15, typename Action16,
1896
+ typename Action17, typename Action18, typename Action19, typename Action20,
1897
+ typename Action21, typename Action22, typename Action23, typename Action24,
1898
+ typename Action25, typename Action26, typename Action27, typename Action28,
1899
+ typename Action29, typename Action30, typename Action31, typename Action32,
1900
+ typename Action33, typename Action34, typename Action35, typename Action36,
1901
+ typename Action37, typename Action38, typename Action39>
1902
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1903
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1904
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1905
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1906
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1907
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1908
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1909
+ Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1910
+ Check28 check28, Check29 check29, Check30 check30, Check31 check31,
1911
+ Check32 check32, Check33 check33, Check34 check34, Check35 check35,
1912
+ Check36 check36, Check37 check37, Check38 check38, Check39 check39,
1913
+ Action0 action0, Action1 action1, Action2 action2, Action3 action3,
1914
+ Action4 action4, Action5 action5, Action6 action6, Action7 action7,
1915
+ Action8 action8, Action9 action9, Action10 action10,
1916
+ Action11 action11, Action12 action12, Action13 action13,
1917
+ Action14 action14, Action15 action15, Action16 action16,
1918
+ Action17 action17, Action18 action18, Action19 action19,
1919
+ Action20 action20, Action21 action21, Action22 action22,
1920
+ Action23 action23, Action24 action24, Action25 action25,
1921
+ Action26 action26, Action27 action27, Action28 action28,
1922
+ Action29 action29, Action30 action30, Action31 action31,
1923
+ Action32 action32, Action33 action33, Action34 action34,
1924
+ Action35 action35, Action36 action36, Action37 action37,
1925
+ Action38 action38, Action39 action39) {
1926
+ if (check0(input)) return action0(action_arg);
1927
+ if (check1(input)) return action1(action_arg);
1928
+ if (check2(input)) return action2(action_arg);
1929
+ if (check3(input)) return action3(action_arg);
1930
+ if (check4(input)) return action4(action_arg);
1931
+ if (check5(input)) return action5(action_arg);
1932
+ if (check6(input)) return action6(action_arg);
1933
+ if (check7(input)) return action7(action_arg);
1934
+ if (check8(input)) return action8(action_arg);
1935
+ if (check9(input)) return action9(action_arg);
1936
+ if (check10(input)) return action10(action_arg);
1937
+ if (check11(input)) return action11(action_arg);
1938
+ if (check12(input)) return action12(action_arg);
1939
+ if (check13(input)) return action13(action_arg);
1940
+ if (check14(input)) return action14(action_arg);
1941
+ if (check15(input)) return action15(action_arg);
1942
+ if (check16(input)) return action16(action_arg);
1943
+ if (check17(input)) return action17(action_arg);
1944
+ if (check18(input)) return action18(action_arg);
1945
+ if (check19(input)) return action19(action_arg);
1946
+ if (check20(input)) return action20(action_arg);
1947
+ if (check21(input)) return action21(action_arg);
1948
+ if (check22(input)) return action22(action_arg);
1949
+ if (check23(input)) return action23(action_arg);
1950
+ if (check24(input)) return action24(action_arg);
1951
+ if (check25(input)) return action25(action_arg);
1952
+ if (check26(input)) return action26(action_arg);
1953
+ if (check27(input)) return action27(action_arg);
1954
+ if (check28(input)) return action28(action_arg);
1955
+ if (check29(input)) return action29(action_arg);
1956
+ if (check30(input)) return action30(action_arg);
1957
+ if (check31(input)) return action31(action_arg);
1958
+ if (check32(input)) return action32(action_arg);
1959
+ if (check33(input)) return action33(action_arg);
1960
+ if (check34(input)) return action34(action_arg);
1961
+ if (check35(input)) return action35(action_arg);
1962
+ if (check36(input)) return action36(action_arg);
1963
+ if (check37(input)) return action37(action_arg);
1964
+ if (check38(input)) return action38(action_arg);
1965
+ if (check39(input)) return action39(action_arg);
1966
+ return action_fail(action_arg);
1967
+ }
1968
+
1969
+ template <
1970
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1971
+ typename Check1, typename Check2, typename Check3, typename Check4,
1972
+ typename Check5, typename Check6, typename Check7, typename Check8,
1973
+ typename Check9, typename Check10, typename Check11, typename Check12,
1974
+ typename Check13, typename Check14, typename Check15, typename Check16,
1975
+ typename Check17, typename Check18, typename Check19, typename Check20,
1976
+ typename Check21, typename Check22, typename Check23, typename Check24,
1977
+ typename Check25, typename Check26, typename Check27, typename Check28,
1978
+ typename Check29, typename Check30, typename Check31, typename Check32,
1979
+ typename Check33, typename Check34, typename Check35, typename Check36,
1980
+ typename Check37, typename Check38, typename Check39, typename Check40,
1981
+ typename Action0, typename Action1, typename Action2, typename Action3,
1982
+ typename Action4, typename Action5, typename Action6, typename Action7,
1983
+ typename Action8, typename Action9, typename Action10, typename Action11,
1984
+ typename Action12, typename Action13, typename Action14, typename Action15,
1985
+ typename Action16, typename Action17, typename Action18, typename Action19,
1986
+ typename Action20, typename Action21, typename Action22, typename Action23,
1987
+ typename Action24, typename Action25, typename Action26, typename Action27,
1988
+ typename Action28, typename Action29, typename Action30, typename Action31,
1989
+ typename Action32, typename Action33, typename Action34, typename Action35,
1990
+ typename Action36, typename Action37, typename Action38, typename Action39,
1991
+ typename Action40>
1992
+ auto IfList(
1993
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
1994
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
1995
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
1996
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
1997
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
1998
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
1999
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
2000
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
2001
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
2002
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
2003
+ Check39 check39, Check40 check40, Action0 action0, Action1 action1,
2004
+ Action2 action2, Action3 action3, Action4 action4, Action5 action5,
2005
+ Action6 action6, Action7 action7, Action8 action8, Action9 action9,
2006
+ Action10 action10, Action11 action11, Action12 action12, Action13 action13,
2007
+ Action14 action14, Action15 action15, Action16 action16, Action17 action17,
2008
+ Action18 action18, Action19 action19, Action20 action20, Action21 action21,
2009
+ Action22 action22, Action23 action23, Action24 action24, Action25 action25,
2010
+ Action26 action26, Action27 action27, Action28 action28, Action29 action29,
2011
+ Action30 action30, Action31 action31, Action32 action32, Action33 action33,
2012
+ Action34 action34, Action35 action35, Action36 action36, Action37 action37,
2013
+ Action38 action38, Action39 action39, Action40 action40) {
2014
+ if (check0(input)) return action0(action_arg);
2015
+ if (check1(input)) return action1(action_arg);
2016
+ if (check2(input)) return action2(action_arg);
2017
+ if (check3(input)) return action3(action_arg);
2018
+ if (check4(input)) return action4(action_arg);
2019
+ if (check5(input)) return action5(action_arg);
2020
+ if (check6(input)) return action6(action_arg);
2021
+ if (check7(input)) return action7(action_arg);
2022
+ if (check8(input)) return action8(action_arg);
2023
+ if (check9(input)) return action9(action_arg);
2024
+ if (check10(input)) return action10(action_arg);
2025
+ if (check11(input)) return action11(action_arg);
2026
+ if (check12(input)) return action12(action_arg);
2027
+ if (check13(input)) return action13(action_arg);
2028
+ if (check14(input)) return action14(action_arg);
2029
+ if (check15(input)) return action15(action_arg);
2030
+ if (check16(input)) return action16(action_arg);
2031
+ if (check17(input)) return action17(action_arg);
2032
+ if (check18(input)) return action18(action_arg);
2033
+ if (check19(input)) return action19(action_arg);
2034
+ if (check20(input)) return action20(action_arg);
2035
+ if (check21(input)) return action21(action_arg);
2036
+ if (check22(input)) return action22(action_arg);
2037
+ if (check23(input)) return action23(action_arg);
2038
+ if (check24(input)) return action24(action_arg);
2039
+ if (check25(input)) return action25(action_arg);
2040
+ if (check26(input)) return action26(action_arg);
2041
+ if (check27(input)) return action27(action_arg);
2042
+ if (check28(input)) return action28(action_arg);
2043
+ if (check29(input)) return action29(action_arg);
2044
+ if (check30(input)) return action30(action_arg);
2045
+ if (check31(input)) return action31(action_arg);
2046
+ if (check32(input)) return action32(action_arg);
2047
+ if (check33(input)) return action33(action_arg);
2048
+ if (check34(input)) return action34(action_arg);
2049
+ if (check35(input)) return action35(action_arg);
2050
+ if (check36(input)) return action36(action_arg);
2051
+ if (check37(input)) return action37(action_arg);
2052
+ if (check38(input)) return action38(action_arg);
2053
+ if (check39(input)) return action39(action_arg);
2054
+ if (check40(input)) return action40(action_arg);
2055
+ return action_fail(action_arg);
2056
+ }
2057
+
2058
+ template <
2059
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
2060
+ typename Check1, typename Check2, typename Check3, typename Check4,
2061
+ typename Check5, typename Check6, typename Check7, typename Check8,
2062
+ typename Check9, typename Check10, typename Check11, typename Check12,
2063
+ typename Check13, typename Check14, typename Check15, typename Check16,
2064
+ typename Check17, typename Check18, typename Check19, typename Check20,
2065
+ typename Check21, typename Check22, typename Check23, typename Check24,
2066
+ typename Check25, typename Check26, typename Check27, typename Check28,
2067
+ typename Check29, typename Check30, typename Check31, typename Check32,
2068
+ typename Check33, typename Check34, typename Check35, typename Check36,
2069
+ typename Check37, typename Check38, typename Check39, typename Check40,
2070
+ typename Check41, typename Action0, typename Action1, typename Action2,
2071
+ typename Action3, typename Action4, typename Action5, typename Action6,
2072
+ typename Action7, typename Action8, typename Action9, typename Action10,
2073
+ typename Action11, typename Action12, typename Action13, typename Action14,
2074
+ typename Action15, typename Action16, typename Action17, typename Action18,
2075
+ typename Action19, typename Action20, typename Action21, typename Action22,
2076
+ typename Action23, typename Action24, typename Action25, typename Action26,
2077
+ typename Action27, typename Action28, typename Action29, typename Action30,
2078
+ typename Action31, typename Action32, typename Action33, typename Action34,
2079
+ typename Action35, typename Action36, typename Action37, typename Action38,
2080
+ typename Action39, typename Action40, typename Action41>
2081
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
2082
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
2083
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
2084
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
2085
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
2086
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
2087
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
2088
+ Check24 check24, Check25 check25, Check26 check26, Check27 check27,
2089
+ Check28 check28, Check29 check29, Check30 check30, Check31 check31,
2090
+ Check32 check32, Check33 check33, Check34 check34, Check35 check35,
2091
+ Check36 check36, Check37 check37, Check38 check38, Check39 check39,
2092
+ Check40 check40, Check41 check41, Action0 action0, Action1 action1,
2093
+ Action2 action2, Action3 action3, Action4 action4, Action5 action5,
2094
+ Action6 action6, Action7 action7, Action8 action8, Action9 action9,
2095
+ Action10 action10, Action11 action11, Action12 action12,
2096
+ Action13 action13, Action14 action14, Action15 action15,
2097
+ Action16 action16, Action17 action17, Action18 action18,
2098
+ Action19 action19, Action20 action20, Action21 action21,
2099
+ Action22 action22, Action23 action23, Action24 action24,
2100
+ Action25 action25, Action26 action26, Action27 action27,
2101
+ Action28 action28, Action29 action29, Action30 action30,
2102
+ Action31 action31, Action32 action32, Action33 action33,
2103
+ Action34 action34, Action35 action35, Action36 action36,
2104
+ Action37 action37, Action38 action38, Action39 action39,
2105
+ Action40 action40, Action41 action41) {
2106
+ if (check0(input)) return action0(action_arg);
2107
+ if (check1(input)) return action1(action_arg);
2108
+ if (check2(input)) return action2(action_arg);
2109
+ if (check3(input)) return action3(action_arg);
2110
+ if (check4(input)) return action4(action_arg);
2111
+ if (check5(input)) return action5(action_arg);
2112
+ if (check6(input)) return action6(action_arg);
2113
+ if (check7(input)) return action7(action_arg);
2114
+ if (check8(input)) return action8(action_arg);
2115
+ if (check9(input)) return action9(action_arg);
2116
+ if (check10(input)) return action10(action_arg);
2117
+ if (check11(input)) return action11(action_arg);
2118
+ if (check12(input)) return action12(action_arg);
2119
+ if (check13(input)) return action13(action_arg);
2120
+ if (check14(input)) return action14(action_arg);
2121
+ if (check15(input)) return action15(action_arg);
2122
+ if (check16(input)) return action16(action_arg);
2123
+ if (check17(input)) return action17(action_arg);
2124
+ if (check18(input)) return action18(action_arg);
2125
+ if (check19(input)) return action19(action_arg);
2126
+ if (check20(input)) return action20(action_arg);
2127
+ if (check21(input)) return action21(action_arg);
2128
+ if (check22(input)) return action22(action_arg);
2129
+ if (check23(input)) return action23(action_arg);
2130
+ if (check24(input)) return action24(action_arg);
2131
+ if (check25(input)) return action25(action_arg);
2132
+ if (check26(input)) return action26(action_arg);
2133
+ if (check27(input)) return action27(action_arg);
2134
+ if (check28(input)) return action28(action_arg);
2135
+ if (check29(input)) return action29(action_arg);
2136
+ if (check30(input)) return action30(action_arg);
2137
+ if (check31(input)) return action31(action_arg);
2138
+ if (check32(input)) return action32(action_arg);
2139
+ if (check33(input)) return action33(action_arg);
2140
+ if (check34(input)) return action34(action_arg);
2141
+ if (check35(input)) return action35(action_arg);
2142
+ if (check36(input)) return action36(action_arg);
2143
+ if (check37(input)) return action37(action_arg);
2144
+ if (check38(input)) return action38(action_arg);
2145
+ if (check39(input)) return action39(action_arg);
2146
+ if (check40(input)) return action40(action_arg);
2147
+ if (check41(input)) return action41(action_arg);
2148
+ return action_fail(action_arg);
2149
+ }
2150
+
2151
+ template <
2152
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
2153
+ typename Check1, typename Check2, typename Check3, typename Check4,
2154
+ typename Check5, typename Check6, typename Check7, typename Check8,
2155
+ typename Check9, typename Check10, typename Check11, typename Check12,
2156
+ typename Check13, typename Check14, typename Check15, typename Check16,
2157
+ typename Check17, typename Check18, typename Check19, typename Check20,
2158
+ typename Check21, typename Check22, typename Check23, typename Check24,
2159
+ typename Check25, typename Check26, typename Check27, typename Check28,
2160
+ typename Check29, typename Check30, typename Check31, typename Check32,
2161
+ typename Check33, typename Check34, typename Check35, typename Check36,
2162
+ typename Check37, typename Check38, typename Check39, typename Check40,
2163
+ typename Check41, typename Check42, typename Action0, typename Action1,
2164
+ typename Action2, typename Action3, typename Action4, typename Action5,
2165
+ typename Action6, typename Action7, typename Action8, typename Action9,
2166
+ typename Action10, typename Action11, typename Action12, typename Action13,
2167
+ typename Action14, typename Action15, typename Action16, typename Action17,
2168
+ typename Action18, typename Action19, typename Action20, typename Action21,
2169
+ typename Action22, typename Action23, typename Action24, typename Action25,
2170
+ typename Action26, typename Action27, typename Action28, typename Action29,
2171
+ typename Action30, typename Action31, typename Action32, typename Action33,
2172
+ typename Action34, typename Action35, typename Action36, typename Action37,
2173
+ typename Action38, typename Action39, typename Action40, typename Action41,
2174
+ typename Action42>
2175
+ auto IfList(
2176
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
2177
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
2178
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
2179
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
2180
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
2181
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
2182
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
2183
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
2184
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
2185
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
2186
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
2187
+ Action0 action0, Action1 action1, Action2 action2, Action3 action3,
2188
+ Action4 action4, Action5 action5, Action6 action6, Action7 action7,
2189
+ Action8 action8, Action9 action9, Action10 action10, Action11 action11,
2190
+ Action12 action12, Action13 action13, Action14 action14, Action15 action15,
2191
+ Action16 action16, Action17 action17, Action18 action18, Action19 action19,
2192
+ Action20 action20, Action21 action21, Action22 action22, Action23 action23,
2193
+ Action24 action24, Action25 action25, Action26 action26, Action27 action27,
2194
+ Action28 action28, Action29 action29, Action30 action30, Action31 action31,
2195
+ Action32 action32, Action33 action33, Action34 action34, Action35 action35,
2196
+ Action36 action36, Action37 action37, Action38 action38, Action39 action39,
2197
+ Action40 action40, Action41 action41, Action42 action42) {
2198
+ if (check0(input)) return action0(action_arg);
2199
+ if (check1(input)) return action1(action_arg);
2200
+ if (check2(input)) return action2(action_arg);
2201
+ if (check3(input)) return action3(action_arg);
2202
+ if (check4(input)) return action4(action_arg);
2203
+ if (check5(input)) return action5(action_arg);
2204
+ if (check6(input)) return action6(action_arg);
2205
+ if (check7(input)) return action7(action_arg);
2206
+ if (check8(input)) return action8(action_arg);
2207
+ if (check9(input)) return action9(action_arg);
2208
+ if (check10(input)) return action10(action_arg);
2209
+ if (check11(input)) return action11(action_arg);
2210
+ if (check12(input)) return action12(action_arg);
2211
+ if (check13(input)) return action13(action_arg);
2212
+ if (check14(input)) return action14(action_arg);
2213
+ if (check15(input)) return action15(action_arg);
2214
+ if (check16(input)) return action16(action_arg);
2215
+ if (check17(input)) return action17(action_arg);
2216
+ if (check18(input)) return action18(action_arg);
2217
+ if (check19(input)) return action19(action_arg);
2218
+ if (check20(input)) return action20(action_arg);
2219
+ if (check21(input)) return action21(action_arg);
2220
+ if (check22(input)) return action22(action_arg);
2221
+ if (check23(input)) return action23(action_arg);
2222
+ if (check24(input)) return action24(action_arg);
2223
+ if (check25(input)) return action25(action_arg);
2224
+ if (check26(input)) return action26(action_arg);
2225
+ if (check27(input)) return action27(action_arg);
2226
+ if (check28(input)) return action28(action_arg);
2227
+ if (check29(input)) return action29(action_arg);
2228
+ if (check30(input)) return action30(action_arg);
2229
+ if (check31(input)) return action31(action_arg);
2230
+ if (check32(input)) return action32(action_arg);
2231
+ if (check33(input)) return action33(action_arg);
2232
+ if (check34(input)) return action34(action_arg);
2233
+ if (check35(input)) return action35(action_arg);
2234
+ if (check36(input)) return action36(action_arg);
2235
+ if (check37(input)) return action37(action_arg);
2236
+ if (check38(input)) return action38(action_arg);
2237
+ if (check39(input)) return action39(action_arg);
2238
+ if (check40(input)) return action40(action_arg);
2239
+ if (check41(input)) return action41(action_arg);
2240
+ if (check42(input)) return action42(action_arg);
2241
+ return action_fail(action_arg);
2242
+ }
2243
+
2244
+ template <
2245
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
2246
+ typename Check1, typename Check2, typename Check3, typename Check4,
2247
+ typename Check5, typename Check6, typename Check7, typename Check8,
2248
+ typename Check9, typename Check10, typename Check11, typename Check12,
2249
+ typename Check13, typename Check14, typename Check15, typename Check16,
2250
+ typename Check17, typename Check18, typename Check19, typename Check20,
2251
+ typename Check21, typename Check22, typename Check23, typename Check24,
2252
+ typename Check25, typename Check26, typename Check27, typename Check28,
2253
+ typename Check29, typename Check30, typename Check31, typename Check32,
2254
+ typename Check33, typename Check34, typename Check35, typename Check36,
2255
+ typename Check37, typename Check38, typename Check39, typename Check40,
2256
+ typename Check41, typename Check42, typename Check43, typename Action0,
2257
+ typename Action1, typename Action2, typename Action3, typename Action4,
2258
+ typename Action5, typename Action6, typename Action7, typename Action8,
2259
+ typename Action9, typename Action10, typename Action11, typename Action12,
2260
+ typename Action13, typename Action14, typename Action15, typename Action16,
2261
+ typename Action17, typename Action18, typename Action19, typename Action20,
2262
+ typename Action21, typename Action22, typename Action23, typename Action24,
2263
+ typename Action25, typename Action26, typename Action27, typename Action28,
2264
+ typename Action29, typename Action30, typename Action31, typename Action32,
2265
+ typename Action33, typename Action34, typename Action35, typename Action36,
2266
+ typename Action37, typename Action38, typename Action39, typename Action40,
2267
+ typename Action41, typename Action42, typename Action43>
2268
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
2269
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
2270
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
2271
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
2272
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
2273
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
2274
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
2275
+ Check24 check24, Check25 check25, Check26 check26, Check27 check27,
2276
+ Check28 check28, Check29 check29, Check30 check30, Check31 check31,
2277
+ Check32 check32, Check33 check33, Check34 check34, Check35 check35,
2278
+ Check36 check36, Check37 check37, Check38 check38, Check39 check39,
2279
+ Check40 check40, Check41 check41, Check42 check42, Check43 check43,
2280
+ Action0 action0, Action1 action1, Action2 action2, Action3 action3,
2281
+ Action4 action4, Action5 action5, Action6 action6, Action7 action7,
2282
+ Action8 action8, Action9 action9, Action10 action10,
2283
+ Action11 action11, Action12 action12, Action13 action13,
2284
+ Action14 action14, Action15 action15, Action16 action16,
2285
+ Action17 action17, Action18 action18, Action19 action19,
2286
+ Action20 action20, Action21 action21, Action22 action22,
2287
+ Action23 action23, Action24 action24, Action25 action25,
2288
+ Action26 action26, Action27 action27, Action28 action28,
2289
+ Action29 action29, Action30 action30, Action31 action31,
2290
+ Action32 action32, Action33 action33, Action34 action34,
2291
+ Action35 action35, Action36 action36, Action37 action37,
2292
+ Action38 action38, Action39 action39, Action40 action40,
2293
+ Action41 action41, Action42 action42, Action43 action43) {
2294
+ if (check0(input)) return action0(action_arg);
2295
+ if (check1(input)) return action1(action_arg);
2296
+ if (check2(input)) return action2(action_arg);
2297
+ if (check3(input)) return action3(action_arg);
2298
+ if (check4(input)) return action4(action_arg);
2299
+ if (check5(input)) return action5(action_arg);
2300
+ if (check6(input)) return action6(action_arg);
2301
+ if (check7(input)) return action7(action_arg);
2302
+ if (check8(input)) return action8(action_arg);
2303
+ if (check9(input)) return action9(action_arg);
2304
+ if (check10(input)) return action10(action_arg);
2305
+ if (check11(input)) return action11(action_arg);
2306
+ if (check12(input)) return action12(action_arg);
2307
+ if (check13(input)) return action13(action_arg);
2308
+ if (check14(input)) return action14(action_arg);
2309
+ if (check15(input)) return action15(action_arg);
2310
+ if (check16(input)) return action16(action_arg);
2311
+ if (check17(input)) return action17(action_arg);
2312
+ if (check18(input)) return action18(action_arg);
2313
+ if (check19(input)) return action19(action_arg);
2314
+ if (check20(input)) return action20(action_arg);
2315
+ if (check21(input)) return action21(action_arg);
2316
+ if (check22(input)) return action22(action_arg);
2317
+ if (check23(input)) return action23(action_arg);
2318
+ if (check24(input)) return action24(action_arg);
2319
+ if (check25(input)) return action25(action_arg);
2320
+ if (check26(input)) return action26(action_arg);
2321
+ if (check27(input)) return action27(action_arg);
2322
+ if (check28(input)) return action28(action_arg);
2323
+ if (check29(input)) return action29(action_arg);
2324
+ if (check30(input)) return action30(action_arg);
2325
+ if (check31(input)) return action31(action_arg);
2326
+ if (check32(input)) return action32(action_arg);
2327
+ if (check33(input)) return action33(action_arg);
2328
+ if (check34(input)) return action34(action_arg);
2329
+ if (check35(input)) return action35(action_arg);
2330
+ if (check36(input)) return action36(action_arg);
2331
+ if (check37(input)) return action37(action_arg);
2332
+ if (check38(input)) return action38(action_arg);
2333
+ if (check39(input)) return action39(action_arg);
2334
+ if (check40(input)) return action40(action_arg);
2335
+ if (check41(input)) return action41(action_arg);
2336
+ if (check42(input)) return action42(action_arg);
2337
+ if (check43(input)) return action43(action_arg);
2338
+ return action_fail(action_arg);
2339
+ }
2340
+
2341
+ template <
2342
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
2343
+ typename Check1, typename Check2, typename Check3, typename Check4,
2344
+ typename Check5, typename Check6, typename Check7, typename Check8,
2345
+ typename Check9, typename Check10, typename Check11, typename Check12,
2346
+ typename Check13, typename Check14, typename Check15, typename Check16,
2347
+ typename Check17, typename Check18, typename Check19, typename Check20,
2348
+ typename Check21, typename Check22, typename Check23, typename Check24,
2349
+ typename Check25, typename Check26, typename Check27, typename Check28,
2350
+ typename Check29, typename Check30, typename Check31, typename Check32,
2351
+ typename Check33, typename Check34, typename Check35, typename Check36,
2352
+ typename Check37, typename Check38, typename Check39, typename Check40,
2353
+ typename Check41, typename Check42, typename Check43, typename Check44,
2354
+ typename Action0, typename Action1, typename Action2, typename Action3,
2355
+ typename Action4, typename Action5, typename Action6, typename Action7,
2356
+ typename Action8, typename Action9, typename Action10, typename Action11,
2357
+ typename Action12, typename Action13, typename Action14, typename Action15,
2358
+ typename Action16, typename Action17, typename Action18, typename Action19,
2359
+ typename Action20, typename Action21, typename Action22, typename Action23,
2360
+ typename Action24, typename Action25, typename Action26, typename Action27,
2361
+ typename Action28, typename Action29, typename Action30, typename Action31,
2362
+ typename Action32, typename Action33, typename Action34, typename Action35,
2363
+ typename Action36, typename Action37, typename Action38, typename Action39,
2364
+ typename Action40, typename Action41, typename Action42, typename Action43,
2365
+ typename Action44>
2366
+ auto IfList(
2367
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
2368
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
2369
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
2370
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
2371
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
2372
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
2373
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
2374
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
2375
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
2376
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
2377
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
2378
+ Check43 check43, Check44 check44, Action0 action0, Action1 action1,
2379
+ Action2 action2, Action3 action3, Action4 action4, Action5 action5,
2380
+ Action6 action6, Action7 action7, Action8 action8, Action9 action9,
2381
+ Action10 action10, Action11 action11, Action12 action12, Action13 action13,
2382
+ Action14 action14, Action15 action15, Action16 action16, Action17 action17,
2383
+ Action18 action18, Action19 action19, Action20 action20, Action21 action21,
2384
+ Action22 action22, Action23 action23, Action24 action24, Action25 action25,
2385
+ Action26 action26, Action27 action27, Action28 action28, Action29 action29,
2386
+ Action30 action30, Action31 action31, Action32 action32, Action33 action33,
2387
+ Action34 action34, Action35 action35, Action36 action36, Action37 action37,
2388
+ Action38 action38, Action39 action39, Action40 action40, Action41 action41,
2389
+ Action42 action42, Action43 action43, Action44 action44) {
2390
+ if (check0(input)) return action0(action_arg);
2391
+ if (check1(input)) return action1(action_arg);
2392
+ if (check2(input)) return action2(action_arg);
2393
+ if (check3(input)) return action3(action_arg);
2394
+ if (check4(input)) return action4(action_arg);
2395
+ if (check5(input)) return action5(action_arg);
2396
+ if (check6(input)) return action6(action_arg);
2397
+ if (check7(input)) return action7(action_arg);
2398
+ if (check8(input)) return action8(action_arg);
2399
+ if (check9(input)) return action9(action_arg);
2400
+ if (check10(input)) return action10(action_arg);
2401
+ if (check11(input)) return action11(action_arg);
2402
+ if (check12(input)) return action12(action_arg);
2403
+ if (check13(input)) return action13(action_arg);
2404
+ if (check14(input)) return action14(action_arg);
2405
+ if (check15(input)) return action15(action_arg);
2406
+ if (check16(input)) return action16(action_arg);
2407
+ if (check17(input)) return action17(action_arg);
2408
+ if (check18(input)) return action18(action_arg);
2409
+ if (check19(input)) return action19(action_arg);
2410
+ if (check20(input)) return action20(action_arg);
2411
+ if (check21(input)) return action21(action_arg);
2412
+ if (check22(input)) return action22(action_arg);
2413
+ if (check23(input)) return action23(action_arg);
2414
+ if (check24(input)) return action24(action_arg);
2415
+ if (check25(input)) return action25(action_arg);
2416
+ if (check26(input)) return action26(action_arg);
2417
+ if (check27(input)) return action27(action_arg);
2418
+ if (check28(input)) return action28(action_arg);
2419
+ if (check29(input)) return action29(action_arg);
2420
+ if (check30(input)) return action30(action_arg);
2421
+ if (check31(input)) return action31(action_arg);
2422
+ if (check32(input)) return action32(action_arg);
2423
+ if (check33(input)) return action33(action_arg);
2424
+ if (check34(input)) return action34(action_arg);
2425
+ if (check35(input)) return action35(action_arg);
2426
+ if (check36(input)) return action36(action_arg);
2427
+ if (check37(input)) return action37(action_arg);
2428
+ if (check38(input)) return action38(action_arg);
2429
+ if (check39(input)) return action39(action_arg);
2430
+ if (check40(input)) return action40(action_arg);
2431
+ if (check41(input)) return action41(action_arg);
2432
+ if (check42(input)) return action42(action_arg);
2433
+ if (check43(input)) return action43(action_arg);
2434
+ if (check44(input)) return action44(action_arg);
2435
+ return action_fail(action_arg);
2436
+ }
2437
+
2438
+ template <
2439
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
2440
+ typename Check1, typename Check2, typename Check3, typename Check4,
2441
+ typename Check5, typename Check6, typename Check7, typename Check8,
2442
+ typename Check9, typename Check10, typename Check11, typename Check12,
2443
+ typename Check13, typename Check14, typename Check15, typename Check16,
2444
+ typename Check17, typename Check18, typename Check19, typename Check20,
2445
+ typename Check21, typename Check22, typename Check23, typename Check24,
2446
+ typename Check25, typename Check26, typename Check27, typename Check28,
2447
+ typename Check29, typename Check30, typename Check31, typename Check32,
2448
+ typename Check33, typename Check34, typename Check35, typename Check36,
2449
+ typename Check37, typename Check38, typename Check39, typename Check40,
2450
+ typename Check41, typename Check42, typename Check43, typename Check44,
2451
+ typename Check45, typename Action0, typename Action1, typename Action2,
2452
+ typename Action3, typename Action4, typename Action5, typename Action6,
2453
+ typename Action7, typename Action8, typename Action9, typename Action10,
2454
+ typename Action11, typename Action12, typename Action13, typename Action14,
2455
+ typename Action15, typename Action16, typename Action17, typename Action18,
2456
+ typename Action19, typename Action20, typename Action21, typename Action22,
2457
+ typename Action23, typename Action24, typename Action25, typename Action26,
2458
+ typename Action27, typename Action28, typename Action29, typename Action30,
2459
+ typename Action31, typename Action32, typename Action33, typename Action34,
2460
+ typename Action35, typename Action36, typename Action37, typename Action38,
2461
+ typename Action39, typename Action40, typename Action41, typename Action42,
2462
+ typename Action43, typename Action44, typename Action45>
2463
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
2464
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
2465
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
2466
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
2467
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
2468
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
2469
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
2470
+ Check24 check24, Check25 check25, Check26 check26, Check27 check27,
2471
+ Check28 check28, Check29 check29, Check30 check30, Check31 check31,
2472
+ Check32 check32, Check33 check33, Check34 check34, Check35 check35,
2473
+ Check36 check36, Check37 check37, Check38 check38, Check39 check39,
2474
+ Check40 check40, Check41 check41, Check42 check42, Check43 check43,
2475
+ Check44 check44, Check45 check45, Action0 action0, Action1 action1,
2476
+ Action2 action2, Action3 action3, Action4 action4, Action5 action5,
2477
+ Action6 action6, Action7 action7, Action8 action8, Action9 action9,
2478
+ Action10 action10, Action11 action11, Action12 action12,
2479
+ Action13 action13, Action14 action14, Action15 action15,
2480
+ Action16 action16, Action17 action17, Action18 action18,
2481
+ Action19 action19, Action20 action20, Action21 action21,
2482
+ Action22 action22, Action23 action23, Action24 action24,
2483
+ Action25 action25, Action26 action26, Action27 action27,
2484
+ Action28 action28, Action29 action29, Action30 action30,
2485
+ Action31 action31, Action32 action32, Action33 action33,
2486
+ Action34 action34, Action35 action35, Action36 action36,
2487
+ Action37 action37, Action38 action38, Action39 action39,
2488
+ Action40 action40, Action41 action41, Action42 action42,
2489
+ Action43 action43, Action44 action44, Action45 action45) {
2490
+ if (check0(input)) return action0(action_arg);
2491
+ if (check1(input)) return action1(action_arg);
2492
+ if (check2(input)) return action2(action_arg);
2493
+ if (check3(input)) return action3(action_arg);
2494
+ if (check4(input)) return action4(action_arg);
2495
+ if (check5(input)) return action5(action_arg);
2496
+ if (check6(input)) return action6(action_arg);
2497
+ if (check7(input)) return action7(action_arg);
2498
+ if (check8(input)) return action8(action_arg);
2499
+ if (check9(input)) return action9(action_arg);
2500
+ if (check10(input)) return action10(action_arg);
2501
+ if (check11(input)) return action11(action_arg);
2502
+ if (check12(input)) return action12(action_arg);
2503
+ if (check13(input)) return action13(action_arg);
2504
+ if (check14(input)) return action14(action_arg);
2505
+ if (check15(input)) return action15(action_arg);
2506
+ if (check16(input)) return action16(action_arg);
2507
+ if (check17(input)) return action17(action_arg);
2508
+ if (check18(input)) return action18(action_arg);
2509
+ if (check19(input)) return action19(action_arg);
2510
+ if (check20(input)) return action20(action_arg);
2511
+ if (check21(input)) return action21(action_arg);
2512
+ if (check22(input)) return action22(action_arg);
2513
+ if (check23(input)) return action23(action_arg);
2514
+ if (check24(input)) return action24(action_arg);
2515
+ if (check25(input)) return action25(action_arg);
2516
+ if (check26(input)) return action26(action_arg);
2517
+ if (check27(input)) return action27(action_arg);
2518
+ if (check28(input)) return action28(action_arg);
2519
+ if (check29(input)) return action29(action_arg);
2520
+ if (check30(input)) return action30(action_arg);
2521
+ if (check31(input)) return action31(action_arg);
2522
+ if (check32(input)) return action32(action_arg);
2523
+ if (check33(input)) return action33(action_arg);
2524
+ if (check34(input)) return action34(action_arg);
2525
+ if (check35(input)) return action35(action_arg);
2526
+ if (check36(input)) return action36(action_arg);
2527
+ if (check37(input)) return action37(action_arg);
2528
+ if (check38(input)) return action38(action_arg);
2529
+ if (check39(input)) return action39(action_arg);
2530
+ if (check40(input)) return action40(action_arg);
2531
+ if (check41(input)) return action41(action_arg);
2532
+ if (check42(input)) return action42(action_arg);
2533
+ if (check43(input)) return action43(action_arg);
2534
+ if (check44(input)) return action44(action_arg);
2535
+ if (check45(input)) return action45(action_arg);
2536
+ return action_fail(action_arg);
2537
+ }
2538
+
2539
+ template <
2540
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
2541
+ typename Check1, typename Check2, typename Check3, typename Check4,
2542
+ typename Check5, typename Check6, typename Check7, typename Check8,
2543
+ typename Check9, typename Check10, typename Check11, typename Check12,
2544
+ typename Check13, typename Check14, typename Check15, typename Check16,
2545
+ typename Check17, typename Check18, typename Check19, typename Check20,
2546
+ typename Check21, typename Check22, typename Check23, typename Check24,
2547
+ typename Check25, typename Check26, typename Check27, typename Check28,
2548
+ typename Check29, typename Check30, typename Check31, typename Check32,
2549
+ typename Check33, typename Check34, typename Check35, typename Check36,
2550
+ typename Check37, typename Check38, typename Check39, typename Check40,
2551
+ typename Check41, typename Check42, typename Check43, typename Check44,
2552
+ typename Check45, typename Check46, typename Action0, typename Action1,
2553
+ typename Action2, typename Action3, typename Action4, typename Action5,
2554
+ typename Action6, typename Action7, typename Action8, typename Action9,
2555
+ typename Action10, typename Action11, typename Action12, typename Action13,
2556
+ typename Action14, typename Action15, typename Action16, typename Action17,
2557
+ typename Action18, typename Action19, typename Action20, typename Action21,
2558
+ typename Action22, typename Action23, typename Action24, typename Action25,
2559
+ typename Action26, typename Action27, typename Action28, typename Action29,
2560
+ typename Action30, typename Action31, typename Action32, typename Action33,
2561
+ typename Action34, typename Action35, typename Action36, typename Action37,
2562
+ typename Action38, typename Action39, typename Action40, typename Action41,
2563
+ typename Action42, typename Action43, typename Action44, typename Action45,
2564
+ typename Action46>
2565
+ auto IfList(
2566
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
2567
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
2568
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
2569
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
2570
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
2571
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
2572
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
2573
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
2574
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
2575
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
2576
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
2577
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
2578
+ Action0 action0, Action1 action1, Action2 action2, Action3 action3,
2579
+ Action4 action4, Action5 action5, Action6 action6, Action7 action7,
2580
+ Action8 action8, Action9 action9, Action10 action10, Action11 action11,
2581
+ Action12 action12, Action13 action13, Action14 action14, Action15 action15,
2582
+ Action16 action16, Action17 action17, Action18 action18, Action19 action19,
2583
+ Action20 action20, Action21 action21, Action22 action22, Action23 action23,
2584
+ Action24 action24, Action25 action25, Action26 action26, Action27 action27,
2585
+ Action28 action28, Action29 action29, Action30 action30, Action31 action31,
2586
+ Action32 action32, Action33 action33, Action34 action34, Action35 action35,
2587
+ Action36 action36, Action37 action37, Action38 action38, Action39 action39,
2588
+ Action40 action40, Action41 action41, Action42 action42, Action43 action43,
2589
+ Action44 action44, Action45 action45, Action46 action46) {
2590
+ if (check0(input)) return action0(action_arg);
2591
+ if (check1(input)) return action1(action_arg);
2592
+ if (check2(input)) return action2(action_arg);
2593
+ if (check3(input)) return action3(action_arg);
2594
+ if (check4(input)) return action4(action_arg);
2595
+ if (check5(input)) return action5(action_arg);
2596
+ if (check6(input)) return action6(action_arg);
2597
+ if (check7(input)) return action7(action_arg);
2598
+ if (check8(input)) return action8(action_arg);
2599
+ if (check9(input)) return action9(action_arg);
2600
+ if (check10(input)) return action10(action_arg);
2601
+ if (check11(input)) return action11(action_arg);
2602
+ if (check12(input)) return action12(action_arg);
2603
+ if (check13(input)) return action13(action_arg);
2604
+ if (check14(input)) return action14(action_arg);
2605
+ if (check15(input)) return action15(action_arg);
2606
+ if (check16(input)) return action16(action_arg);
2607
+ if (check17(input)) return action17(action_arg);
2608
+ if (check18(input)) return action18(action_arg);
2609
+ if (check19(input)) return action19(action_arg);
2610
+ if (check20(input)) return action20(action_arg);
2611
+ if (check21(input)) return action21(action_arg);
2612
+ if (check22(input)) return action22(action_arg);
2613
+ if (check23(input)) return action23(action_arg);
2614
+ if (check24(input)) return action24(action_arg);
2615
+ if (check25(input)) return action25(action_arg);
2616
+ if (check26(input)) return action26(action_arg);
2617
+ if (check27(input)) return action27(action_arg);
2618
+ if (check28(input)) return action28(action_arg);
2619
+ if (check29(input)) return action29(action_arg);
2620
+ if (check30(input)) return action30(action_arg);
2621
+ if (check31(input)) return action31(action_arg);
2622
+ if (check32(input)) return action32(action_arg);
2623
+ if (check33(input)) return action33(action_arg);
2624
+ if (check34(input)) return action34(action_arg);
2625
+ if (check35(input)) return action35(action_arg);
2626
+ if (check36(input)) return action36(action_arg);
2627
+ if (check37(input)) return action37(action_arg);
2628
+ if (check38(input)) return action38(action_arg);
2629
+ if (check39(input)) return action39(action_arg);
2630
+ if (check40(input)) return action40(action_arg);
2631
+ if (check41(input)) return action41(action_arg);
2632
+ if (check42(input)) return action42(action_arg);
2633
+ if (check43(input)) return action43(action_arg);
2634
+ if (check44(input)) return action44(action_arg);
2635
+ if (check45(input)) return action45(action_arg);
2636
+ if (check46(input)) return action46(action_arg);
2637
+ return action_fail(action_arg);
2638
+ }
2639
+
2640
+ template <
2641
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
2642
+ typename Check1, typename Check2, typename Check3, typename Check4,
2643
+ typename Check5, typename Check6, typename Check7, typename Check8,
2644
+ typename Check9, typename Check10, typename Check11, typename Check12,
2645
+ typename Check13, typename Check14, typename Check15, typename Check16,
2646
+ typename Check17, typename Check18, typename Check19, typename Check20,
2647
+ typename Check21, typename Check22, typename Check23, typename Check24,
2648
+ typename Check25, typename Check26, typename Check27, typename Check28,
2649
+ typename Check29, typename Check30, typename Check31, typename Check32,
2650
+ typename Check33, typename Check34, typename Check35, typename Check36,
2651
+ typename Check37, typename Check38, typename Check39, typename Check40,
2652
+ typename Check41, typename Check42, typename Check43, typename Check44,
2653
+ typename Check45, typename Check46, typename Check47, typename Action0,
2654
+ typename Action1, typename Action2, typename Action3, typename Action4,
2655
+ typename Action5, typename Action6, typename Action7, typename Action8,
2656
+ typename Action9, typename Action10, typename Action11, typename Action12,
2657
+ typename Action13, typename Action14, typename Action15, typename Action16,
2658
+ typename Action17, typename Action18, typename Action19, typename Action20,
2659
+ typename Action21, typename Action22, typename Action23, typename Action24,
2660
+ typename Action25, typename Action26, typename Action27, typename Action28,
2661
+ typename Action29, typename Action30, typename Action31, typename Action32,
2662
+ typename Action33, typename Action34, typename Action35, typename Action36,
2663
+ typename Action37, typename Action38, typename Action39, typename Action40,
2664
+ typename Action41, typename Action42, typename Action43, typename Action44,
2665
+ typename Action45, typename Action46, typename Action47>
2666
+ auto IfList(
2667
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
2668
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
2669
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
2670
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
2671
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
2672
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
2673
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
2674
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
2675
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
2676
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
2677
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
2678
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
2679
+ Check47 check47, Action0 action0, Action1 action1, Action2 action2,
2680
+ Action3 action3, Action4 action4, Action5 action5, Action6 action6,
2681
+ Action7 action7, Action8 action8, Action9 action9, Action10 action10,
2682
+ Action11 action11, Action12 action12, Action13 action13, Action14 action14,
2683
+ Action15 action15, Action16 action16, Action17 action17, Action18 action18,
2684
+ Action19 action19, Action20 action20, Action21 action21, Action22 action22,
2685
+ Action23 action23, Action24 action24, Action25 action25, Action26 action26,
2686
+ Action27 action27, Action28 action28, Action29 action29, Action30 action30,
2687
+ Action31 action31, Action32 action32, Action33 action33, Action34 action34,
2688
+ Action35 action35, Action36 action36, Action37 action37, Action38 action38,
2689
+ Action39 action39, Action40 action40, Action41 action41, Action42 action42,
2690
+ Action43 action43, Action44 action44, Action45 action45, Action46 action46,
2691
+ Action47 action47) {
2692
+ if (check0(input)) return action0(action_arg);
2693
+ if (check1(input)) return action1(action_arg);
2694
+ if (check2(input)) return action2(action_arg);
2695
+ if (check3(input)) return action3(action_arg);
2696
+ if (check4(input)) return action4(action_arg);
2697
+ if (check5(input)) return action5(action_arg);
2698
+ if (check6(input)) return action6(action_arg);
2699
+ if (check7(input)) return action7(action_arg);
2700
+ if (check8(input)) return action8(action_arg);
2701
+ if (check9(input)) return action9(action_arg);
2702
+ if (check10(input)) return action10(action_arg);
2703
+ if (check11(input)) return action11(action_arg);
2704
+ if (check12(input)) return action12(action_arg);
2705
+ if (check13(input)) return action13(action_arg);
2706
+ if (check14(input)) return action14(action_arg);
2707
+ if (check15(input)) return action15(action_arg);
2708
+ if (check16(input)) return action16(action_arg);
2709
+ if (check17(input)) return action17(action_arg);
2710
+ if (check18(input)) return action18(action_arg);
2711
+ if (check19(input)) return action19(action_arg);
2712
+ if (check20(input)) return action20(action_arg);
2713
+ if (check21(input)) return action21(action_arg);
2714
+ if (check22(input)) return action22(action_arg);
2715
+ if (check23(input)) return action23(action_arg);
2716
+ if (check24(input)) return action24(action_arg);
2717
+ if (check25(input)) return action25(action_arg);
2718
+ if (check26(input)) return action26(action_arg);
2719
+ if (check27(input)) return action27(action_arg);
2720
+ if (check28(input)) return action28(action_arg);
2721
+ if (check29(input)) return action29(action_arg);
2722
+ if (check30(input)) return action30(action_arg);
2723
+ if (check31(input)) return action31(action_arg);
2724
+ if (check32(input)) return action32(action_arg);
2725
+ if (check33(input)) return action33(action_arg);
2726
+ if (check34(input)) return action34(action_arg);
2727
+ if (check35(input)) return action35(action_arg);
2728
+ if (check36(input)) return action36(action_arg);
2729
+ if (check37(input)) return action37(action_arg);
2730
+ if (check38(input)) return action38(action_arg);
2731
+ if (check39(input)) return action39(action_arg);
2732
+ if (check40(input)) return action40(action_arg);
2733
+ if (check41(input)) return action41(action_arg);
2734
+ if (check42(input)) return action42(action_arg);
2735
+ if (check43(input)) return action43(action_arg);
2736
+ if (check44(input)) return action44(action_arg);
2737
+ if (check45(input)) return action45(action_arg);
2738
+ if (check46(input)) return action46(action_arg);
2739
+ if (check47(input)) return action47(action_arg);
2740
+ return action_fail(action_arg);
2741
+ }
2742
+
2743
+ template <
2744
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
2745
+ typename Check1, typename Check2, typename Check3, typename Check4,
2746
+ typename Check5, typename Check6, typename Check7, typename Check8,
2747
+ typename Check9, typename Check10, typename Check11, typename Check12,
2748
+ typename Check13, typename Check14, typename Check15, typename Check16,
2749
+ typename Check17, typename Check18, typename Check19, typename Check20,
2750
+ typename Check21, typename Check22, typename Check23, typename Check24,
2751
+ typename Check25, typename Check26, typename Check27, typename Check28,
2752
+ typename Check29, typename Check30, typename Check31, typename Check32,
2753
+ typename Check33, typename Check34, typename Check35, typename Check36,
2754
+ typename Check37, typename Check38, typename Check39, typename Check40,
2755
+ typename Check41, typename Check42, typename Check43, typename Check44,
2756
+ typename Check45, typename Check46, typename Check47, typename Check48,
2757
+ typename Action0, typename Action1, typename Action2, typename Action3,
2758
+ typename Action4, typename Action5, typename Action6, typename Action7,
2759
+ typename Action8, typename Action9, typename Action10, typename Action11,
2760
+ typename Action12, typename Action13, typename Action14, typename Action15,
2761
+ typename Action16, typename Action17, typename Action18, typename Action19,
2762
+ typename Action20, typename Action21, typename Action22, typename Action23,
2763
+ typename Action24, typename Action25, typename Action26, typename Action27,
2764
+ typename Action28, typename Action29, typename Action30, typename Action31,
2765
+ typename Action32, typename Action33, typename Action34, typename Action35,
2766
+ typename Action36, typename Action37, typename Action38, typename Action39,
2767
+ typename Action40, typename Action41, typename Action42, typename Action43,
2768
+ typename Action44, typename Action45, typename Action46, typename Action47,
2769
+ typename Action48>
2770
+ auto IfList(
2771
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
2772
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
2773
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
2774
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
2775
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
2776
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
2777
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
2778
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
2779
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
2780
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
2781
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
2782
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
2783
+ Check47 check47, Check48 check48, Action0 action0, Action1 action1,
2784
+ Action2 action2, Action3 action3, Action4 action4, Action5 action5,
2785
+ Action6 action6, Action7 action7, Action8 action8, Action9 action9,
2786
+ Action10 action10, Action11 action11, Action12 action12, Action13 action13,
2787
+ Action14 action14, Action15 action15, Action16 action16, Action17 action17,
2788
+ Action18 action18, Action19 action19, Action20 action20, Action21 action21,
2789
+ Action22 action22, Action23 action23, Action24 action24, Action25 action25,
2790
+ Action26 action26, Action27 action27, Action28 action28, Action29 action29,
2791
+ Action30 action30, Action31 action31, Action32 action32, Action33 action33,
2792
+ Action34 action34, Action35 action35, Action36 action36, Action37 action37,
2793
+ Action38 action38, Action39 action39, Action40 action40, Action41 action41,
2794
+ Action42 action42, Action43 action43, Action44 action44, Action45 action45,
2795
+ Action46 action46, Action47 action47, Action48 action48) {
2796
+ if (check0(input)) return action0(action_arg);
2797
+ if (check1(input)) return action1(action_arg);
2798
+ if (check2(input)) return action2(action_arg);
2799
+ if (check3(input)) return action3(action_arg);
2800
+ if (check4(input)) return action4(action_arg);
2801
+ if (check5(input)) return action5(action_arg);
2802
+ if (check6(input)) return action6(action_arg);
2803
+ if (check7(input)) return action7(action_arg);
2804
+ if (check8(input)) return action8(action_arg);
2805
+ if (check9(input)) return action9(action_arg);
2806
+ if (check10(input)) return action10(action_arg);
2807
+ if (check11(input)) return action11(action_arg);
2808
+ if (check12(input)) return action12(action_arg);
2809
+ if (check13(input)) return action13(action_arg);
2810
+ if (check14(input)) return action14(action_arg);
2811
+ if (check15(input)) return action15(action_arg);
2812
+ if (check16(input)) return action16(action_arg);
2813
+ if (check17(input)) return action17(action_arg);
2814
+ if (check18(input)) return action18(action_arg);
2815
+ if (check19(input)) return action19(action_arg);
2816
+ if (check20(input)) return action20(action_arg);
2817
+ if (check21(input)) return action21(action_arg);
2818
+ if (check22(input)) return action22(action_arg);
2819
+ if (check23(input)) return action23(action_arg);
2820
+ if (check24(input)) return action24(action_arg);
2821
+ if (check25(input)) return action25(action_arg);
2822
+ if (check26(input)) return action26(action_arg);
2823
+ if (check27(input)) return action27(action_arg);
2824
+ if (check28(input)) return action28(action_arg);
2825
+ if (check29(input)) return action29(action_arg);
2826
+ if (check30(input)) return action30(action_arg);
2827
+ if (check31(input)) return action31(action_arg);
2828
+ if (check32(input)) return action32(action_arg);
2829
+ if (check33(input)) return action33(action_arg);
2830
+ if (check34(input)) return action34(action_arg);
2831
+ if (check35(input)) return action35(action_arg);
2832
+ if (check36(input)) return action36(action_arg);
2833
+ if (check37(input)) return action37(action_arg);
2834
+ if (check38(input)) return action38(action_arg);
2835
+ if (check39(input)) return action39(action_arg);
2836
+ if (check40(input)) return action40(action_arg);
2837
+ if (check41(input)) return action41(action_arg);
2838
+ if (check42(input)) return action42(action_arg);
2839
+ if (check43(input)) return action43(action_arg);
2840
+ if (check44(input)) return action44(action_arg);
2841
+ if (check45(input)) return action45(action_arg);
2842
+ if (check46(input)) return action46(action_arg);
2843
+ if (check47(input)) return action47(action_arg);
2844
+ if (check48(input)) return action48(action_arg);
2845
+ return action_fail(action_arg);
2846
+ }
2847
+
2848
+ template <
2849
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
2850
+ typename Check1, typename Check2, typename Check3, typename Check4,
2851
+ typename Check5, typename Check6, typename Check7, typename Check8,
2852
+ typename Check9, typename Check10, typename Check11, typename Check12,
2853
+ typename Check13, typename Check14, typename Check15, typename Check16,
2854
+ typename Check17, typename Check18, typename Check19, typename Check20,
2855
+ typename Check21, typename Check22, typename Check23, typename Check24,
2856
+ typename Check25, typename Check26, typename Check27, typename Check28,
2857
+ typename Check29, typename Check30, typename Check31, typename Check32,
2858
+ typename Check33, typename Check34, typename Check35, typename Check36,
2859
+ typename Check37, typename Check38, typename Check39, typename Check40,
2860
+ typename Check41, typename Check42, typename Check43, typename Check44,
2861
+ typename Check45, typename Check46, typename Check47, typename Check48,
2862
+ typename Check49, typename Action0, typename Action1, typename Action2,
2863
+ typename Action3, typename Action4, typename Action5, typename Action6,
2864
+ typename Action7, typename Action8, typename Action9, typename Action10,
2865
+ typename Action11, typename Action12, typename Action13, typename Action14,
2866
+ typename Action15, typename Action16, typename Action17, typename Action18,
2867
+ typename Action19, typename Action20, typename Action21, typename Action22,
2868
+ typename Action23, typename Action24, typename Action25, typename Action26,
2869
+ typename Action27, typename Action28, typename Action29, typename Action30,
2870
+ typename Action31, typename Action32, typename Action33, typename Action34,
2871
+ typename Action35, typename Action36, typename Action37, typename Action38,
2872
+ typename Action39, typename Action40, typename Action41, typename Action42,
2873
+ typename Action43, typename Action44, typename Action45, typename Action46,
2874
+ typename Action47, typename Action48, typename Action49>
2875
+ auto IfList(
2876
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
2877
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
2878
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
2879
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
2880
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
2881
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
2882
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
2883
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
2884
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
2885
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
2886
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
2887
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
2888
+ Check47 check47, Check48 check48, Check49 check49, Action0 action0,
2889
+ Action1 action1, Action2 action2, Action3 action3, Action4 action4,
2890
+ Action5 action5, Action6 action6, Action7 action7, Action8 action8,
2891
+ Action9 action9, Action10 action10, Action11 action11, Action12 action12,
2892
+ Action13 action13, Action14 action14, Action15 action15, Action16 action16,
2893
+ Action17 action17, Action18 action18, Action19 action19, Action20 action20,
2894
+ Action21 action21, Action22 action22, Action23 action23, Action24 action24,
2895
+ Action25 action25, Action26 action26, Action27 action27, Action28 action28,
2896
+ Action29 action29, Action30 action30, Action31 action31, Action32 action32,
2897
+ Action33 action33, Action34 action34, Action35 action35, Action36 action36,
2898
+ Action37 action37, Action38 action38, Action39 action39, Action40 action40,
2899
+ Action41 action41, Action42 action42, Action43 action43, Action44 action44,
2900
+ Action45 action45, Action46 action46, Action47 action47, Action48 action48,
2901
+ Action49 action49) {
2902
+ if (check0(input)) return action0(action_arg);
2903
+ if (check1(input)) return action1(action_arg);
2904
+ if (check2(input)) return action2(action_arg);
2905
+ if (check3(input)) return action3(action_arg);
2906
+ if (check4(input)) return action4(action_arg);
2907
+ if (check5(input)) return action5(action_arg);
2908
+ if (check6(input)) return action6(action_arg);
2909
+ if (check7(input)) return action7(action_arg);
2910
+ if (check8(input)) return action8(action_arg);
2911
+ if (check9(input)) return action9(action_arg);
2912
+ if (check10(input)) return action10(action_arg);
2913
+ if (check11(input)) return action11(action_arg);
2914
+ if (check12(input)) return action12(action_arg);
2915
+ if (check13(input)) return action13(action_arg);
2916
+ if (check14(input)) return action14(action_arg);
2917
+ if (check15(input)) return action15(action_arg);
2918
+ if (check16(input)) return action16(action_arg);
2919
+ if (check17(input)) return action17(action_arg);
2920
+ if (check18(input)) return action18(action_arg);
2921
+ if (check19(input)) return action19(action_arg);
2922
+ if (check20(input)) return action20(action_arg);
2923
+ if (check21(input)) return action21(action_arg);
2924
+ if (check22(input)) return action22(action_arg);
2925
+ if (check23(input)) return action23(action_arg);
2926
+ if (check24(input)) return action24(action_arg);
2927
+ if (check25(input)) return action25(action_arg);
2928
+ if (check26(input)) return action26(action_arg);
2929
+ if (check27(input)) return action27(action_arg);
2930
+ if (check28(input)) return action28(action_arg);
2931
+ if (check29(input)) return action29(action_arg);
2932
+ if (check30(input)) return action30(action_arg);
2933
+ if (check31(input)) return action31(action_arg);
2934
+ if (check32(input)) return action32(action_arg);
2935
+ if (check33(input)) return action33(action_arg);
2936
+ if (check34(input)) return action34(action_arg);
2937
+ if (check35(input)) return action35(action_arg);
2938
+ if (check36(input)) return action36(action_arg);
2939
+ if (check37(input)) return action37(action_arg);
2940
+ if (check38(input)) return action38(action_arg);
2941
+ if (check39(input)) return action39(action_arg);
2942
+ if (check40(input)) return action40(action_arg);
2943
+ if (check41(input)) return action41(action_arg);
2944
+ if (check42(input)) return action42(action_arg);
2945
+ if (check43(input)) return action43(action_arg);
2946
+ if (check44(input)) return action44(action_arg);
2947
+ if (check45(input)) return action45(action_arg);
2948
+ if (check46(input)) return action46(action_arg);
2949
+ if (check47(input)) return action47(action_arg);
2950
+ if (check48(input)) return action48(action_arg);
2951
+ if (check49(input)) return action49(action_arg);
2952
+ return action_fail(action_arg);
2953
+ }
2954
+
2955
+ template <
2956
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
2957
+ typename Check1, typename Check2, typename Check3, typename Check4,
2958
+ typename Check5, typename Check6, typename Check7, typename Check8,
2959
+ typename Check9, typename Check10, typename Check11, typename Check12,
2960
+ typename Check13, typename Check14, typename Check15, typename Check16,
2961
+ typename Check17, typename Check18, typename Check19, typename Check20,
2962
+ typename Check21, typename Check22, typename Check23, typename Check24,
2963
+ typename Check25, typename Check26, typename Check27, typename Check28,
2964
+ typename Check29, typename Check30, typename Check31, typename Check32,
2965
+ typename Check33, typename Check34, typename Check35, typename Check36,
2966
+ typename Check37, typename Check38, typename Check39, typename Check40,
2967
+ typename Check41, typename Check42, typename Check43, typename Check44,
2968
+ typename Check45, typename Check46, typename Check47, typename Check48,
2969
+ typename Check49, typename Check50, typename Action0, typename Action1,
2970
+ typename Action2, typename Action3, typename Action4, typename Action5,
2971
+ typename Action6, typename Action7, typename Action8, typename Action9,
2972
+ typename Action10, typename Action11, typename Action12, typename Action13,
2973
+ typename Action14, typename Action15, typename Action16, typename Action17,
2974
+ typename Action18, typename Action19, typename Action20, typename Action21,
2975
+ typename Action22, typename Action23, typename Action24, typename Action25,
2976
+ typename Action26, typename Action27, typename Action28, typename Action29,
2977
+ typename Action30, typename Action31, typename Action32, typename Action33,
2978
+ typename Action34, typename Action35, typename Action36, typename Action37,
2979
+ typename Action38, typename Action39, typename Action40, typename Action41,
2980
+ typename Action42, typename Action43, typename Action44, typename Action45,
2981
+ typename Action46, typename Action47, typename Action48, typename Action49,
2982
+ typename Action50>
2983
+ auto IfList(
2984
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
2985
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
2986
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
2987
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
2988
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
2989
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
2990
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
2991
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
2992
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
2993
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
2994
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
2995
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
2996
+ Check47 check47, Check48 check48, Check49 check49, Check50 check50,
2997
+ Action0 action0, Action1 action1, Action2 action2, Action3 action3,
2998
+ Action4 action4, Action5 action5, Action6 action6, Action7 action7,
2999
+ Action8 action8, Action9 action9, Action10 action10, Action11 action11,
3000
+ Action12 action12, Action13 action13, Action14 action14, Action15 action15,
3001
+ Action16 action16, Action17 action17, Action18 action18, Action19 action19,
3002
+ Action20 action20, Action21 action21, Action22 action22, Action23 action23,
3003
+ Action24 action24, Action25 action25, Action26 action26, Action27 action27,
3004
+ Action28 action28, Action29 action29, Action30 action30, Action31 action31,
3005
+ Action32 action32, Action33 action33, Action34 action34, Action35 action35,
3006
+ Action36 action36, Action37 action37, Action38 action38, Action39 action39,
3007
+ Action40 action40, Action41 action41, Action42 action42, Action43 action43,
3008
+ Action44 action44, Action45 action45, Action46 action46, Action47 action47,
3009
+ Action48 action48, Action49 action49, Action50 action50) {
3010
+ if (check0(input)) return action0(action_arg);
3011
+ if (check1(input)) return action1(action_arg);
3012
+ if (check2(input)) return action2(action_arg);
3013
+ if (check3(input)) return action3(action_arg);
3014
+ if (check4(input)) return action4(action_arg);
3015
+ if (check5(input)) return action5(action_arg);
3016
+ if (check6(input)) return action6(action_arg);
3017
+ if (check7(input)) return action7(action_arg);
3018
+ if (check8(input)) return action8(action_arg);
3019
+ if (check9(input)) return action9(action_arg);
3020
+ if (check10(input)) return action10(action_arg);
3021
+ if (check11(input)) return action11(action_arg);
3022
+ if (check12(input)) return action12(action_arg);
3023
+ if (check13(input)) return action13(action_arg);
3024
+ if (check14(input)) return action14(action_arg);
3025
+ if (check15(input)) return action15(action_arg);
3026
+ if (check16(input)) return action16(action_arg);
3027
+ if (check17(input)) return action17(action_arg);
3028
+ if (check18(input)) return action18(action_arg);
3029
+ if (check19(input)) return action19(action_arg);
3030
+ if (check20(input)) return action20(action_arg);
3031
+ if (check21(input)) return action21(action_arg);
3032
+ if (check22(input)) return action22(action_arg);
3033
+ if (check23(input)) return action23(action_arg);
3034
+ if (check24(input)) return action24(action_arg);
3035
+ if (check25(input)) return action25(action_arg);
3036
+ if (check26(input)) return action26(action_arg);
3037
+ if (check27(input)) return action27(action_arg);
3038
+ if (check28(input)) return action28(action_arg);
3039
+ if (check29(input)) return action29(action_arg);
3040
+ if (check30(input)) return action30(action_arg);
3041
+ if (check31(input)) return action31(action_arg);
3042
+ if (check32(input)) return action32(action_arg);
3043
+ if (check33(input)) return action33(action_arg);
3044
+ if (check34(input)) return action34(action_arg);
3045
+ if (check35(input)) return action35(action_arg);
3046
+ if (check36(input)) return action36(action_arg);
3047
+ if (check37(input)) return action37(action_arg);
3048
+ if (check38(input)) return action38(action_arg);
3049
+ if (check39(input)) return action39(action_arg);
3050
+ if (check40(input)) return action40(action_arg);
3051
+ if (check41(input)) return action41(action_arg);
3052
+ if (check42(input)) return action42(action_arg);
3053
+ if (check43(input)) return action43(action_arg);
3054
+ if (check44(input)) return action44(action_arg);
3055
+ if (check45(input)) return action45(action_arg);
3056
+ if (check46(input)) return action46(action_arg);
3057
+ if (check47(input)) return action47(action_arg);
3058
+ if (check48(input)) return action48(action_arg);
3059
+ if (check49(input)) return action49(action_arg);
3060
+ if (check50(input)) return action50(action_arg);
3061
+ return action_fail(action_arg);
3062
+ }
3063
+
3064
+ template <
3065
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
3066
+ typename Check1, typename Check2, typename Check3, typename Check4,
3067
+ typename Check5, typename Check6, typename Check7, typename Check8,
3068
+ typename Check9, typename Check10, typename Check11, typename Check12,
3069
+ typename Check13, typename Check14, typename Check15, typename Check16,
3070
+ typename Check17, typename Check18, typename Check19, typename Check20,
3071
+ typename Check21, typename Check22, typename Check23, typename Check24,
3072
+ typename Check25, typename Check26, typename Check27, typename Check28,
3073
+ typename Check29, typename Check30, typename Check31, typename Check32,
3074
+ typename Check33, typename Check34, typename Check35, typename Check36,
3075
+ typename Check37, typename Check38, typename Check39, typename Check40,
3076
+ typename Check41, typename Check42, typename Check43, typename Check44,
3077
+ typename Check45, typename Check46, typename Check47, typename Check48,
3078
+ typename Check49, typename Check50, typename Check51, typename Action0,
3079
+ typename Action1, typename Action2, typename Action3, typename Action4,
3080
+ typename Action5, typename Action6, typename Action7, typename Action8,
3081
+ typename Action9, typename Action10, typename Action11, typename Action12,
3082
+ typename Action13, typename Action14, typename Action15, typename Action16,
3083
+ typename Action17, typename Action18, typename Action19, typename Action20,
3084
+ typename Action21, typename Action22, typename Action23, typename Action24,
3085
+ typename Action25, typename Action26, typename Action27, typename Action28,
3086
+ typename Action29, typename Action30, typename Action31, typename Action32,
3087
+ typename Action33, typename Action34, typename Action35, typename Action36,
3088
+ typename Action37, typename Action38, typename Action39, typename Action40,
3089
+ typename Action41, typename Action42, typename Action43, typename Action44,
3090
+ typename Action45, typename Action46, typename Action47, typename Action48,
3091
+ typename Action49, typename Action50, typename Action51>
3092
+ auto IfList(
3093
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
3094
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
3095
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
3096
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
3097
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
3098
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
3099
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
3100
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
3101
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
3102
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
3103
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
3104
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
3105
+ Check47 check47, Check48 check48, Check49 check49, Check50 check50,
3106
+ Check51 check51, Action0 action0, Action1 action1, Action2 action2,
3107
+ Action3 action3, Action4 action4, Action5 action5, Action6 action6,
3108
+ Action7 action7, Action8 action8, Action9 action9, Action10 action10,
3109
+ Action11 action11, Action12 action12, Action13 action13, Action14 action14,
3110
+ Action15 action15, Action16 action16, Action17 action17, Action18 action18,
3111
+ Action19 action19, Action20 action20, Action21 action21, Action22 action22,
3112
+ Action23 action23, Action24 action24, Action25 action25, Action26 action26,
3113
+ Action27 action27, Action28 action28, Action29 action29, Action30 action30,
3114
+ Action31 action31, Action32 action32, Action33 action33, Action34 action34,
3115
+ Action35 action35, Action36 action36, Action37 action37, Action38 action38,
3116
+ Action39 action39, Action40 action40, Action41 action41, Action42 action42,
3117
+ Action43 action43, Action44 action44, Action45 action45, Action46 action46,
3118
+ Action47 action47, Action48 action48, Action49 action49, Action50 action50,
3119
+ Action51 action51) {
3120
+ if (check0(input)) return action0(action_arg);
3121
+ if (check1(input)) return action1(action_arg);
3122
+ if (check2(input)) return action2(action_arg);
3123
+ if (check3(input)) return action3(action_arg);
3124
+ if (check4(input)) return action4(action_arg);
3125
+ if (check5(input)) return action5(action_arg);
3126
+ if (check6(input)) return action6(action_arg);
3127
+ if (check7(input)) return action7(action_arg);
3128
+ if (check8(input)) return action8(action_arg);
3129
+ if (check9(input)) return action9(action_arg);
3130
+ if (check10(input)) return action10(action_arg);
3131
+ if (check11(input)) return action11(action_arg);
3132
+ if (check12(input)) return action12(action_arg);
3133
+ if (check13(input)) return action13(action_arg);
3134
+ if (check14(input)) return action14(action_arg);
3135
+ if (check15(input)) return action15(action_arg);
3136
+ if (check16(input)) return action16(action_arg);
3137
+ if (check17(input)) return action17(action_arg);
3138
+ if (check18(input)) return action18(action_arg);
3139
+ if (check19(input)) return action19(action_arg);
3140
+ if (check20(input)) return action20(action_arg);
3141
+ if (check21(input)) return action21(action_arg);
3142
+ if (check22(input)) return action22(action_arg);
3143
+ if (check23(input)) return action23(action_arg);
3144
+ if (check24(input)) return action24(action_arg);
3145
+ if (check25(input)) return action25(action_arg);
3146
+ if (check26(input)) return action26(action_arg);
3147
+ if (check27(input)) return action27(action_arg);
3148
+ if (check28(input)) return action28(action_arg);
3149
+ if (check29(input)) return action29(action_arg);
3150
+ if (check30(input)) return action30(action_arg);
3151
+ if (check31(input)) return action31(action_arg);
3152
+ if (check32(input)) return action32(action_arg);
3153
+ if (check33(input)) return action33(action_arg);
3154
+ if (check34(input)) return action34(action_arg);
3155
+ if (check35(input)) return action35(action_arg);
3156
+ if (check36(input)) return action36(action_arg);
3157
+ if (check37(input)) return action37(action_arg);
3158
+ if (check38(input)) return action38(action_arg);
3159
+ if (check39(input)) return action39(action_arg);
3160
+ if (check40(input)) return action40(action_arg);
3161
+ if (check41(input)) return action41(action_arg);
3162
+ if (check42(input)) return action42(action_arg);
3163
+ if (check43(input)) return action43(action_arg);
3164
+ if (check44(input)) return action44(action_arg);
3165
+ if (check45(input)) return action45(action_arg);
3166
+ if (check46(input)) return action46(action_arg);
3167
+ if (check47(input)) return action47(action_arg);
3168
+ if (check48(input)) return action48(action_arg);
3169
+ if (check49(input)) return action49(action_arg);
3170
+ if (check50(input)) return action50(action_arg);
3171
+ if (check51(input)) return action51(action_arg);
3172
+ return action_fail(action_arg);
3173
+ }
3174
+
3175
+ template <
3176
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
3177
+ typename Check1, typename Check2, typename Check3, typename Check4,
3178
+ typename Check5, typename Check6, typename Check7, typename Check8,
3179
+ typename Check9, typename Check10, typename Check11, typename Check12,
3180
+ typename Check13, typename Check14, typename Check15, typename Check16,
3181
+ typename Check17, typename Check18, typename Check19, typename Check20,
3182
+ typename Check21, typename Check22, typename Check23, typename Check24,
3183
+ typename Check25, typename Check26, typename Check27, typename Check28,
3184
+ typename Check29, typename Check30, typename Check31, typename Check32,
3185
+ typename Check33, typename Check34, typename Check35, typename Check36,
3186
+ typename Check37, typename Check38, typename Check39, typename Check40,
3187
+ typename Check41, typename Check42, typename Check43, typename Check44,
3188
+ typename Check45, typename Check46, typename Check47, typename Check48,
3189
+ typename Check49, typename Check50, typename Check51, typename Check52,
3190
+ typename Action0, typename Action1, typename Action2, typename Action3,
3191
+ typename Action4, typename Action5, typename Action6, typename Action7,
3192
+ typename Action8, typename Action9, typename Action10, typename Action11,
3193
+ typename Action12, typename Action13, typename Action14, typename Action15,
3194
+ typename Action16, typename Action17, typename Action18, typename Action19,
3195
+ typename Action20, typename Action21, typename Action22, typename Action23,
3196
+ typename Action24, typename Action25, typename Action26, typename Action27,
3197
+ typename Action28, typename Action29, typename Action30, typename Action31,
3198
+ typename Action32, typename Action33, typename Action34, typename Action35,
3199
+ typename Action36, typename Action37, typename Action38, typename Action39,
3200
+ typename Action40, typename Action41, typename Action42, typename Action43,
3201
+ typename Action44, typename Action45, typename Action46, typename Action47,
3202
+ typename Action48, typename Action49, typename Action50, typename Action51,
3203
+ typename Action52>
3204
+ auto IfList(
3205
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
3206
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
3207
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
3208
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
3209
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
3210
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
3211
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
3212
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
3213
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
3214
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
3215
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
3216
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
3217
+ Check47 check47, Check48 check48, Check49 check49, Check50 check50,
3218
+ Check51 check51, Check52 check52, Action0 action0, Action1 action1,
3219
+ Action2 action2, Action3 action3, Action4 action4, Action5 action5,
3220
+ Action6 action6, Action7 action7, Action8 action8, Action9 action9,
3221
+ Action10 action10, Action11 action11, Action12 action12, Action13 action13,
3222
+ Action14 action14, Action15 action15, Action16 action16, Action17 action17,
3223
+ Action18 action18, Action19 action19, Action20 action20, Action21 action21,
3224
+ Action22 action22, Action23 action23, Action24 action24, Action25 action25,
3225
+ Action26 action26, Action27 action27, Action28 action28, Action29 action29,
3226
+ Action30 action30, Action31 action31, Action32 action32, Action33 action33,
3227
+ Action34 action34, Action35 action35, Action36 action36, Action37 action37,
3228
+ Action38 action38, Action39 action39, Action40 action40, Action41 action41,
3229
+ Action42 action42, Action43 action43, Action44 action44, Action45 action45,
3230
+ Action46 action46, Action47 action47, Action48 action48, Action49 action49,
3231
+ Action50 action50, Action51 action51, Action52 action52) {
3232
+ if (check0(input)) return action0(action_arg);
3233
+ if (check1(input)) return action1(action_arg);
3234
+ if (check2(input)) return action2(action_arg);
3235
+ if (check3(input)) return action3(action_arg);
3236
+ if (check4(input)) return action4(action_arg);
3237
+ if (check5(input)) return action5(action_arg);
3238
+ if (check6(input)) return action6(action_arg);
3239
+ if (check7(input)) return action7(action_arg);
3240
+ if (check8(input)) return action8(action_arg);
3241
+ if (check9(input)) return action9(action_arg);
3242
+ if (check10(input)) return action10(action_arg);
3243
+ if (check11(input)) return action11(action_arg);
3244
+ if (check12(input)) return action12(action_arg);
3245
+ if (check13(input)) return action13(action_arg);
3246
+ if (check14(input)) return action14(action_arg);
3247
+ if (check15(input)) return action15(action_arg);
3248
+ if (check16(input)) return action16(action_arg);
3249
+ if (check17(input)) return action17(action_arg);
3250
+ if (check18(input)) return action18(action_arg);
3251
+ if (check19(input)) return action19(action_arg);
3252
+ if (check20(input)) return action20(action_arg);
3253
+ if (check21(input)) return action21(action_arg);
3254
+ if (check22(input)) return action22(action_arg);
3255
+ if (check23(input)) return action23(action_arg);
3256
+ if (check24(input)) return action24(action_arg);
3257
+ if (check25(input)) return action25(action_arg);
3258
+ if (check26(input)) return action26(action_arg);
3259
+ if (check27(input)) return action27(action_arg);
3260
+ if (check28(input)) return action28(action_arg);
3261
+ if (check29(input)) return action29(action_arg);
3262
+ if (check30(input)) return action30(action_arg);
3263
+ if (check31(input)) return action31(action_arg);
3264
+ if (check32(input)) return action32(action_arg);
3265
+ if (check33(input)) return action33(action_arg);
3266
+ if (check34(input)) return action34(action_arg);
3267
+ if (check35(input)) return action35(action_arg);
3268
+ if (check36(input)) return action36(action_arg);
3269
+ if (check37(input)) return action37(action_arg);
3270
+ if (check38(input)) return action38(action_arg);
3271
+ if (check39(input)) return action39(action_arg);
3272
+ if (check40(input)) return action40(action_arg);
3273
+ if (check41(input)) return action41(action_arg);
3274
+ if (check42(input)) return action42(action_arg);
3275
+ if (check43(input)) return action43(action_arg);
3276
+ if (check44(input)) return action44(action_arg);
3277
+ if (check45(input)) return action45(action_arg);
3278
+ if (check46(input)) return action46(action_arg);
3279
+ if (check47(input)) return action47(action_arg);
3280
+ if (check48(input)) return action48(action_arg);
3281
+ if (check49(input)) return action49(action_arg);
3282
+ if (check50(input)) return action50(action_arg);
3283
+ if (check51(input)) return action51(action_arg);
3284
+ if (check52(input)) return action52(action_arg);
3285
+ return action_fail(action_arg);
3286
+ }
3287
+
3288
+ template <
3289
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
3290
+ typename Check1, typename Check2, typename Check3, typename Check4,
3291
+ typename Check5, typename Check6, typename Check7, typename Check8,
3292
+ typename Check9, typename Check10, typename Check11, typename Check12,
3293
+ typename Check13, typename Check14, typename Check15, typename Check16,
3294
+ typename Check17, typename Check18, typename Check19, typename Check20,
3295
+ typename Check21, typename Check22, typename Check23, typename Check24,
3296
+ typename Check25, typename Check26, typename Check27, typename Check28,
3297
+ typename Check29, typename Check30, typename Check31, typename Check32,
3298
+ typename Check33, typename Check34, typename Check35, typename Check36,
3299
+ typename Check37, typename Check38, typename Check39, typename Check40,
3300
+ typename Check41, typename Check42, typename Check43, typename Check44,
3301
+ typename Check45, typename Check46, typename Check47, typename Check48,
3302
+ typename Check49, typename Check50, typename Check51, typename Check52,
3303
+ typename Check53, typename Action0, typename Action1, typename Action2,
3304
+ typename Action3, typename Action4, typename Action5, typename Action6,
3305
+ typename Action7, typename Action8, typename Action9, typename Action10,
3306
+ typename Action11, typename Action12, typename Action13, typename Action14,
3307
+ typename Action15, typename Action16, typename Action17, typename Action18,
3308
+ typename Action19, typename Action20, typename Action21, typename Action22,
3309
+ typename Action23, typename Action24, typename Action25, typename Action26,
3310
+ typename Action27, typename Action28, typename Action29, typename Action30,
3311
+ typename Action31, typename Action32, typename Action33, typename Action34,
3312
+ typename Action35, typename Action36, typename Action37, typename Action38,
3313
+ typename Action39, typename Action40, typename Action41, typename Action42,
3314
+ typename Action43, typename Action44, typename Action45, typename Action46,
3315
+ typename Action47, typename Action48, typename Action49, typename Action50,
3316
+ typename Action51, typename Action52, typename Action53>
3317
+ auto IfList(
3318
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
3319
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
3320
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
3321
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
3322
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
3323
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
3324
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
3325
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
3326
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
3327
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
3328
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
3329
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
3330
+ Check47 check47, Check48 check48, Check49 check49, Check50 check50,
3331
+ Check51 check51, Check52 check52, Check53 check53, Action0 action0,
3332
+ Action1 action1, Action2 action2, Action3 action3, Action4 action4,
3333
+ Action5 action5, Action6 action6, Action7 action7, Action8 action8,
3334
+ Action9 action9, Action10 action10, Action11 action11, Action12 action12,
3335
+ Action13 action13, Action14 action14, Action15 action15, Action16 action16,
3336
+ Action17 action17, Action18 action18, Action19 action19, Action20 action20,
3337
+ Action21 action21, Action22 action22, Action23 action23, Action24 action24,
3338
+ Action25 action25, Action26 action26, Action27 action27, Action28 action28,
3339
+ Action29 action29, Action30 action30, Action31 action31, Action32 action32,
3340
+ Action33 action33, Action34 action34, Action35 action35, Action36 action36,
3341
+ Action37 action37, Action38 action38, Action39 action39, Action40 action40,
3342
+ Action41 action41, Action42 action42, Action43 action43, Action44 action44,
3343
+ Action45 action45, Action46 action46, Action47 action47, Action48 action48,
3344
+ Action49 action49, Action50 action50, Action51 action51, Action52 action52,
3345
+ Action53 action53) {
3346
+ if (check0(input)) return action0(action_arg);
3347
+ if (check1(input)) return action1(action_arg);
3348
+ if (check2(input)) return action2(action_arg);
3349
+ if (check3(input)) return action3(action_arg);
3350
+ if (check4(input)) return action4(action_arg);
3351
+ if (check5(input)) return action5(action_arg);
3352
+ if (check6(input)) return action6(action_arg);
3353
+ if (check7(input)) return action7(action_arg);
3354
+ if (check8(input)) return action8(action_arg);
3355
+ if (check9(input)) return action9(action_arg);
3356
+ if (check10(input)) return action10(action_arg);
3357
+ if (check11(input)) return action11(action_arg);
3358
+ if (check12(input)) return action12(action_arg);
3359
+ if (check13(input)) return action13(action_arg);
3360
+ if (check14(input)) return action14(action_arg);
3361
+ if (check15(input)) return action15(action_arg);
3362
+ if (check16(input)) return action16(action_arg);
3363
+ if (check17(input)) return action17(action_arg);
3364
+ if (check18(input)) return action18(action_arg);
3365
+ if (check19(input)) return action19(action_arg);
3366
+ if (check20(input)) return action20(action_arg);
3367
+ if (check21(input)) return action21(action_arg);
3368
+ if (check22(input)) return action22(action_arg);
3369
+ if (check23(input)) return action23(action_arg);
3370
+ if (check24(input)) return action24(action_arg);
3371
+ if (check25(input)) return action25(action_arg);
3372
+ if (check26(input)) return action26(action_arg);
3373
+ if (check27(input)) return action27(action_arg);
3374
+ if (check28(input)) return action28(action_arg);
3375
+ if (check29(input)) return action29(action_arg);
3376
+ if (check30(input)) return action30(action_arg);
3377
+ if (check31(input)) return action31(action_arg);
3378
+ if (check32(input)) return action32(action_arg);
3379
+ if (check33(input)) return action33(action_arg);
3380
+ if (check34(input)) return action34(action_arg);
3381
+ if (check35(input)) return action35(action_arg);
3382
+ if (check36(input)) return action36(action_arg);
3383
+ if (check37(input)) return action37(action_arg);
3384
+ if (check38(input)) return action38(action_arg);
3385
+ if (check39(input)) return action39(action_arg);
3386
+ if (check40(input)) return action40(action_arg);
3387
+ if (check41(input)) return action41(action_arg);
3388
+ if (check42(input)) return action42(action_arg);
3389
+ if (check43(input)) return action43(action_arg);
3390
+ if (check44(input)) return action44(action_arg);
3391
+ if (check45(input)) return action45(action_arg);
3392
+ if (check46(input)) return action46(action_arg);
3393
+ if (check47(input)) return action47(action_arg);
3394
+ if (check48(input)) return action48(action_arg);
3395
+ if (check49(input)) return action49(action_arg);
3396
+ if (check50(input)) return action50(action_arg);
3397
+ if (check51(input)) return action51(action_arg);
3398
+ if (check52(input)) return action52(action_arg);
3399
+ if (check53(input)) return action53(action_arg);
3400
+ return action_fail(action_arg);
3401
+ }
3402
+
3403
+ template <
3404
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
3405
+ typename Check1, typename Check2, typename Check3, typename Check4,
3406
+ typename Check5, typename Check6, typename Check7, typename Check8,
3407
+ typename Check9, typename Check10, typename Check11, typename Check12,
3408
+ typename Check13, typename Check14, typename Check15, typename Check16,
3409
+ typename Check17, typename Check18, typename Check19, typename Check20,
3410
+ typename Check21, typename Check22, typename Check23, typename Check24,
3411
+ typename Check25, typename Check26, typename Check27, typename Check28,
3412
+ typename Check29, typename Check30, typename Check31, typename Check32,
3413
+ typename Check33, typename Check34, typename Check35, typename Check36,
3414
+ typename Check37, typename Check38, typename Check39, typename Check40,
3415
+ typename Check41, typename Check42, typename Check43, typename Check44,
3416
+ typename Check45, typename Check46, typename Check47, typename Check48,
3417
+ typename Check49, typename Check50, typename Check51, typename Check52,
3418
+ typename Check53, typename Check54, typename Action0, typename Action1,
3419
+ typename Action2, typename Action3, typename Action4, typename Action5,
3420
+ typename Action6, typename Action7, typename Action8, typename Action9,
3421
+ typename Action10, typename Action11, typename Action12, typename Action13,
3422
+ typename Action14, typename Action15, typename Action16, typename Action17,
3423
+ typename Action18, typename Action19, typename Action20, typename Action21,
3424
+ typename Action22, typename Action23, typename Action24, typename Action25,
3425
+ typename Action26, typename Action27, typename Action28, typename Action29,
3426
+ typename Action30, typename Action31, typename Action32, typename Action33,
3427
+ typename Action34, typename Action35, typename Action36, typename Action37,
3428
+ typename Action38, typename Action39, typename Action40, typename Action41,
3429
+ typename Action42, typename Action43, typename Action44, typename Action45,
3430
+ typename Action46, typename Action47, typename Action48, typename Action49,
3431
+ typename Action50, typename Action51, typename Action52, typename Action53,
3432
+ typename Action54>
3433
+ auto IfList(
3434
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
3435
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
3436
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
3437
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
3438
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
3439
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
3440
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
3441
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
3442
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
3443
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
3444
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
3445
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
3446
+ Check47 check47, Check48 check48, Check49 check49, Check50 check50,
3447
+ Check51 check51, Check52 check52, Check53 check53, Check54 check54,
3448
+ Action0 action0, Action1 action1, Action2 action2, Action3 action3,
3449
+ Action4 action4, Action5 action5, Action6 action6, Action7 action7,
3450
+ Action8 action8, Action9 action9, Action10 action10, Action11 action11,
3451
+ Action12 action12, Action13 action13, Action14 action14, Action15 action15,
3452
+ Action16 action16, Action17 action17, Action18 action18, Action19 action19,
3453
+ Action20 action20, Action21 action21, Action22 action22, Action23 action23,
3454
+ Action24 action24, Action25 action25, Action26 action26, Action27 action27,
3455
+ Action28 action28, Action29 action29, Action30 action30, Action31 action31,
3456
+ Action32 action32, Action33 action33, Action34 action34, Action35 action35,
3457
+ Action36 action36, Action37 action37, Action38 action38, Action39 action39,
3458
+ Action40 action40, Action41 action41, Action42 action42, Action43 action43,
3459
+ Action44 action44, Action45 action45, Action46 action46, Action47 action47,
3460
+ Action48 action48, Action49 action49, Action50 action50, Action51 action51,
3461
+ Action52 action52, Action53 action53, Action54 action54) {
3462
+ if (check0(input)) return action0(action_arg);
3463
+ if (check1(input)) return action1(action_arg);
3464
+ if (check2(input)) return action2(action_arg);
3465
+ if (check3(input)) return action3(action_arg);
3466
+ if (check4(input)) return action4(action_arg);
3467
+ if (check5(input)) return action5(action_arg);
3468
+ if (check6(input)) return action6(action_arg);
3469
+ if (check7(input)) return action7(action_arg);
3470
+ if (check8(input)) return action8(action_arg);
3471
+ if (check9(input)) return action9(action_arg);
3472
+ if (check10(input)) return action10(action_arg);
3473
+ if (check11(input)) return action11(action_arg);
3474
+ if (check12(input)) return action12(action_arg);
3475
+ if (check13(input)) return action13(action_arg);
3476
+ if (check14(input)) return action14(action_arg);
3477
+ if (check15(input)) return action15(action_arg);
3478
+ if (check16(input)) return action16(action_arg);
3479
+ if (check17(input)) return action17(action_arg);
3480
+ if (check18(input)) return action18(action_arg);
3481
+ if (check19(input)) return action19(action_arg);
3482
+ if (check20(input)) return action20(action_arg);
3483
+ if (check21(input)) return action21(action_arg);
3484
+ if (check22(input)) return action22(action_arg);
3485
+ if (check23(input)) return action23(action_arg);
3486
+ if (check24(input)) return action24(action_arg);
3487
+ if (check25(input)) return action25(action_arg);
3488
+ if (check26(input)) return action26(action_arg);
3489
+ if (check27(input)) return action27(action_arg);
3490
+ if (check28(input)) return action28(action_arg);
3491
+ if (check29(input)) return action29(action_arg);
3492
+ if (check30(input)) return action30(action_arg);
3493
+ if (check31(input)) return action31(action_arg);
3494
+ if (check32(input)) return action32(action_arg);
3495
+ if (check33(input)) return action33(action_arg);
3496
+ if (check34(input)) return action34(action_arg);
3497
+ if (check35(input)) return action35(action_arg);
3498
+ if (check36(input)) return action36(action_arg);
3499
+ if (check37(input)) return action37(action_arg);
3500
+ if (check38(input)) return action38(action_arg);
3501
+ if (check39(input)) return action39(action_arg);
3502
+ if (check40(input)) return action40(action_arg);
3503
+ if (check41(input)) return action41(action_arg);
3504
+ if (check42(input)) return action42(action_arg);
3505
+ if (check43(input)) return action43(action_arg);
3506
+ if (check44(input)) return action44(action_arg);
3507
+ if (check45(input)) return action45(action_arg);
3508
+ if (check46(input)) return action46(action_arg);
3509
+ if (check47(input)) return action47(action_arg);
3510
+ if (check48(input)) return action48(action_arg);
3511
+ if (check49(input)) return action49(action_arg);
3512
+ if (check50(input)) return action50(action_arg);
3513
+ if (check51(input)) return action51(action_arg);
3514
+ if (check52(input)) return action52(action_arg);
3515
+ if (check53(input)) return action53(action_arg);
3516
+ if (check54(input)) return action54(action_arg);
3517
+ return action_fail(action_arg);
3518
+ }
3519
+
3520
+ template <
3521
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
3522
+ typename Check1, typename Check2, typename Check3, typename Check4,
3523
+ typename Check5, typename Check6, typename Check7, typename Check8,
3524
+ typename Check9, typename Check10, typename Check11, typename Check12,
3525
+ typename Check13, typename Check14, typename Check15, typename Check16,
3526
+ typename Check17, typename Check18, typename Check19, typename Check20,
3527
+ typename Check21, typename Check22, typename Check23, typename Check24,
3528
+ typename Check25, typename Check26, typename Check27, typename Check28,
3529
+ typename Check29, typename Check30, typename Check31, typename Check32,
3530
+ typename Check33, typename Check34, typename Check35, typename Check36,
3531
+ typename Check37, typename Check38, typename Check39, typename Check40,
3532
+ typename Check41, typename Check42, typename Check43, typename Check44,
3533
+ typename Check45, typename Check46, typename Check47, typename Check48,
3534
+ typename Check49, typename Check50, typename Check51, typename Check52,
3535
+ typename Check53, typename Check54, typename Check55, typename Action0,
3536
+ typename Action1, typename Action2, typename Action3, typename Action4,
3537
+ typename Action5, typename Action6, typename Action7, typename Action8,
3538
+ typename Action9, typename Action10, typename Action11, typename Action12,
3539
+ typename Action13, typename Action14, typename Action15, typename Action16,
3540
+ typename Action17, typename Action18, typename Action19, typename Action20,
3541
+ typename Action21, typename Action22, typename Action23, typename Action24,
3542
+ typename Action25, typename Action26, typename Action27, typename Action28,
3543
+ typename Action29, typename Action30, typename Action31, typename Action32,
3544
+ typename Action33, typename Action34, typename Action35, typename Action36,
3545
+ typename Action37, typename Action38, typename Action39, typename Action40,
3546
+ typename Action41, typename Action42, typename Action43, typename Action44,
3547
+ typename Action45, typename Action46, typename Action47, typename Action48,
3548
+ typename Action49, typename Action50, typename Action51, typename Action52,
3549
+ typename Action53, typename Action54, typename Action55>
3550
+ auto IfList(
3551
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
3552
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
3553
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
3554
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
3555
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
3556
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
3557
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
3558
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
3559
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
3560
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
3561
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
3562
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
3563
+ Check47 check47, Check48 check48, Check49 check49, Check50 check50,
3564
+ Check51 check51, Check52 check52, Check53 check53, Check54 check54,
3565
+ Check55 check55, Action0 action0, Action1 action1, Action2 action2,
3566
+ Action3 action3, Action4 action4, Action5 action5, Action6 action6,
3567
+ Action7 action7, Action8 action8, Action9 action9, Action10 action10,
3568
+ Action11 action11, Action12 action12, Action13 action13, Action14 action14,
3569
+ Action15 action15, Action16 action16, Action17 action17, Action18 action18,
3570
+ Action19 action19, Action20 action20, Action21 action21, Action22 action22,
3571
+ Action23 action23, Action24 action24, Action25 action25, Action26 action26,
3572
+ Action27 action27, Action28 action28, Action29 action29, Action30 action30,
3573
+ Action31 action31, Action32 action32, Action33 action33, Action34 action34,
3574
+ Action35 action35, Action36 action36, Action37 action37, Action38 action38,
3575
+ Action39 action39, Action40 action40, Action41 action41, Action42 action42,
3576
+ Action43 action43, Action44 action44, Action45 action45, Action46 action46,
3577
+ Action47 action47, Action48 action48, Action49 action49, Action50 action50,
3578
+ Action51 action51, Action52 action52, Action53 action53, Action54 action54,
3579
+ Action55 action55) {
3580
+ if (check0(input)) return action0(action_arg);
3581
+ if (check1(input)) return action1(action_arg);
3582
+ if (check2(input)) return action2(action_arg);
3583
+ if (check3(input)) return action3(action_arg);
3584
+ if (check4(input)) return action4(action_arg);
3585
+ if (check5(input)) return action5(action_arg);
3586
+ if (check6(input)) return action6(action_arg);
3587
+ if (check7(input)) return action7(action_arg);
3588
+ if (check8(input)) return action8(action_arg);
3589
+ if (check9(input)) return action9(action_arg);
3590
+ if (check10(input)) return action10(action_arg);
3591
+ if (check11(input)) return action11(action_arg);
3592
+ if (check12(input)) return action12(action_arg);
3593
+ if (check13(input)) return action13(action_arg);
3594
+ if (check14(input)) return action14(action_arg);
3595
+ if (check15(input)) return action15(action_arg);
3596
+ if (check16(input)) return action16(action_arg);
3597
+ if (check17(input)) return action17(action_arg);
3598
+ if (check18(input)) return action18(action_arg);
3599
+ if (check19(input)) return action19(action_arg);
3600
+ if (check20(input)) return action20(action_arg);
3601
+ if (check21(input)) return action21(action_arg);
3602
+ if (check22(input)) return action22(action_arg);
3603
+ if (check23(input)) return action23(action_arg);
3604
+ if (check24(input)) return action24(action_arg);
3605
+ if (check25(input)) return action25(action_arg);
3606
+ if (check26(input)) return action26(action_arg);
3607
+ if (check27(input)) return action27(action_arg);
3608
+ if (check28(input)) return action28(action_arg);
3609
+ if (check29(input)) return action29(action_arg);
3610
+ if (check30(input)) return action30(action_arg);
3611
+ if (check31(input)) return action31(action_arg);
3612
+ if (check32(input)) return action32(action_arg);
3613
+ if (check33(input)) return action33(action_arg);
3614
+ if (check34(input)) return action34(action_arg);
3615
+ if (check35(input)) return action35(action_arg);
3616
+ if (check36(input)) return action36(action_arg);
3617
+ if (check37(input)) return action37(action_arg);
3618
+ if (check38(input)) return action38(action_arg);
3619
+ if (check39(input)) return action39(action_arg);
3620
+ if (check40(input)) return action40(action_arg);
3621
+ if (check41(input)) return action41(action_arg);
3622
+ if (check42(input)) return action42(action_arg);
3623
+ if (check43(input)) return action43(action_arg);
3624
+ if (check44(input)) return action44(action_arg);
3625
+ if (check45(input)) return action45(action_arg);
3626
+ if (check46(input)) return action46(action_arg);
3627
+ if (check47(input)) return action47(action_arg);
3628
+ if (check48(input)) return action48(action_arg);
3629
+ if (check49(input)) return action49(action_arg);
3630
+ if (check50(input)) return action50(action_arg);
3631
+ if (check51(input)) return action51(action_arg);
3632
+ if (check52(input)) return action52(action_arg);
3633
+ if (check53(input)) return action53(action_arg);
3634
+ if (check54(input)) return action54(action_arg);
3635
+ if (check55(input)) return action55(action_arg);
3636
+ return action_fail(action_arg);
3637
+ }
3638
+
3639
+ template <
3640
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
3641
+ typename Check1, typename Check2, typename Check3, typename Check4,
3642
+ typename Check5, typename Check6, typename Check7, typename Check8,
3643
+ typename Check9, typename Check10, typename Check11, typename Check12,
3644
+ typename Check13, typename Check14, typename Check15, typename Check16,
3645
+ typename Check17, typename Check18, typename Check19, typename Check20,
3646
+ typename Check21, typename Check22, typename Check23, typename Check24,
3647
+ typename Check25, typename Check26, typename Check27, typename Check28,
3648
+ typename Check29, typename Check30, typename Check31, typename Check32,
3649
+ typename Check33, typename Check34, typename Check35, typename Check36,
3650
+ typename Check37, typename Check38, typename Check39, typename Check40,
3651
+ typename Check41, typename Check42, typename Check43, typename Check44,
3652
+ typename Check45, typename Check46, typename Check47, typename Check48,
3653
+ typename Check49, typename Check50, typename Check51, typename Check52,
3654
+ typename Check53, typename Check54, typename Check55, typename Check56,
3655
+ typename Action0, typename Action1, typename Action2, typename Action3,
3656
+ typename Action4, typename Action5, typename Action6, typename Action7,
3657
+ typename Action8, typename Action9, typename Action10, typename Action11,
3658
+ typename Action12, typename Action13, typename Action14, typename Action15,
3659
+ typename Action16, typename Action17, typename Action18, typename Action19,
3660
+ typename Action20, typename Action21, typename Action22, typename Action23,
3661
+ typename Action24, typename Action25, typename Action26, typename Action27,
3662
+ typename Action28, typename Action29, typename Action30, typename Action31,
3663
+ typename Action32, typename Action33, typename Action34, typename Action35,
3664
+ typename Action36, typename Action37, typename Action38, typename Action39,
3665
+ typename Action40, typename Action41, typename Action42, typename Action43,
3666
+ typename Action44, typename Action45, typename Action46, typename Action47,
3667
+ typename Action48, typename Action49, typename Action50, typename Action51,
3668
+ typename Action52, typename Action53, typename Action54, typename Action55,
3669
+ typename Action56>
3670
+ auto IfList(
3671
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
3672
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
3673
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
3674
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
3675
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
3676
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
3677
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
3678
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
3679
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
3680
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
3681
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
3682
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
3683
+ Check47 check47, Check48 check48, Check49 check49, Check50 check50,
3684
+ Check51 check51, Check52 check52, Check53 check53, Check54 check54,
3685
+ Check55 check55, Check56 check56, Action0 action0, Action1 action1,
3686
+ Action2 action2, Action3 action3, Action4 action4, Action5 action5,
3687
+ Action6 action6, Action7 action7, Action8 action8, Action9 action9,
3688
+ Action10 action10, Action11 action11, Action12 action12, Action13 action13,
3689
+ Action14 action14, Action15 action15, Action16 action16, Action17 action17,
3690
+ Action18 action18, Action19 action19, Action20 action20, Action21 action21,
3691
+ Action22 action22, Action23 action23, Action24 action24, Action25 action25,
3692
+ Action26 action26, Action27 action27, Action28 action28, Action29 action29,
3693
+ Action30 action30, Action31 action31, Action32 action32, Action33 action33,
3694
+ Action34 action34, Action35 action35, Action36 action36, Action37 action37,
3695
+ Action38 action38, Action39 action39, Action40 action40, Action41 action41,
3696
+ Action42 action42, Action43 action43, Action44 action44, Action45 action45,
3697
+ Action46 action46, Action47 action47, Action48 action48, Action49 action49,
3698
+ Action50 action50, Action51 action51, Action52 action52, Action53 action53,
3699
+ Action54 action54, Action55 action55, Action56 action56) {
3700
+ if (check0(input)) return action0(action_arg);
3701
+ if (check1(input)) return action1(action_arg);
3702
+ if (check2(input)) return action2(action_arg);
3703
+ if (check3(input)) return action3(action_arg);
3704
+ if (check4(input)) return action4(action_arg);
3705
+ if (check5(input)) return action5(action_arg);
3706
+ if (check6(input)) return action6(action_arg);
3707
+ if (check7(input)) return action7(action_arg);
3708
+ if (check8(input)) return action8(action_arg);
3709
+ if (check9(input)) return action9(action_arg);
3710
+ if (check10(input)) return action10(action_arg);
3711
+ if (check11(input)) return action11(action_arg);
3712
+ if (check12(input)) return action12(action_arg);
3713
+ if (check13(input)) return action13(action_arg);
3714
+ if (check14(input)) return action14(action_arg);
3715
+ if (check15(input)) return action15(action_arg);
3716
+ if (check16(input)) return action16(action_arg);
3717
+ if (check17(input)) return action17(action_arg);
3718
+ if (check18(input)) return action18(action_arg);
3719
+ if (check19(input)) return action19(action_arg);
3720
+ if (check20(input)) return action20(action_arg);
3721
+ if (check21(input)) return action21(action_arg);
3722
+ if (check22(input)) return action22(action_arg);
3723
+ if (check23(input)) return action23(action_arg);
3724
+ if (check24(input)) return action24(action_arg);
3725
+ if (check25(input)) return action25(action_arg);
3726
+ if (check26(input)) return action26(action_arg);
3727
+ if (check27(input)) return action27(action_arg);
3728
+ if (check28(input)) return action28(action_arg);
3729
+ if (check29(input)) return action29(action_arg);
3730
+ if (check30(input)) return action30(action_arg);
3731
+ if (check31(input)) return action31(action_arg);
3732
+ if (check32(input)) return action32(action_arg);
3733
+ if (check33(input)) return action33(action_arg);
3734
+ if (check34(input)) return action34(action_arg);
3735
+ if (check35(input)) return action35(action_arg);
3736
+ if (check36(input)) return action36(action_arg);
3737
+ if (check37(input)) return action37(action_arg);
3738
+ if (check38(input)) return action38(action_arg);
3739
+ if (check39(input)) return action39(action_arg);
3740
+ if (check40(input)) return action40(action_arg);
3741
+ if (check41(input)) return action41(action_arg);
3742
+ if (check42(input)) return action42(action_arg);
3743
+ if (check43(input)) return action43(action_arg);
3744
+ if (check44(input)) return action44(action_arg);
3745
+ if (check45(input)) return action45(action_arg);
3746
+ if (check46(input)) return action46(action_arg);
3747
+ if (check47(input)) return action47(action_arg);
3748
+ if (check48(input)) return action48(action_arg);
3749
+ if (check49(input)) return action49(action_arg);
3750
+ if (check50(input)) return action50(action_arg);
3751
+ if (check51(input)) return action51(action_arg);
3752
+ if (check52(input)) return action52(action_arg);
3753
+ if (check53(input)) return action53(action_arg);
3754
+ if (check54(input)) return action54(action_arg);
3755
+ if (check55(input)) return action55(action_arg);
3756
+ if (check56(input)) return action56(action_arg);
3757
+ return action_fail(action_arg);
3758
+ }
3759
+
3760
+ template <
3761
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
3762
+ typename Check1, typename Check2, typename Check3, typename Check4,
3763
+ typename Check5, typename Check6, typename Check7, typename Check8,
3764
+ typename Check9, typename Check10, typename Check11, typename Check12,
3765
+ typename Check13, typename Check14, typename Check15, typename Check16,
3766
+ typename Check17, typename Check18, typename Check19, typename Check20,
3767
+ typename Check21, typename Check22, typename Check23, typename Check24,
3768
+ typename Check25, typename Check26, typename Check27, typename Check28,
3769
+ typename Check29, typename Check30, typename Check31, typename Check32,
3770
+ typename Check33, typename Check34, typename Check35, typename Check36,
3771
+ typename Check37, typename Check38, typename Check39, typename Check40,
3772
+ typename Check41, typename Check42, typename Check43, typename Check44,
3773
+ typename Check45, typename Check46, typename Check47, typename Check48,
3774
+ typename Check49, typename Check50, typename Check51, typename Check52,
3775
+ typename Check53, typename Check54, typename Check55, typename Check56,
3776
+ typename Check57, typename Action0, typename Action1, typename Action2,
3777
+ typename Action3, typename Action4, typename Action5, typename Action6,
3778
+ typename Action7, typename Action8, typename Action9, typename Action10,
3779
+ typename Action11, typename Action12, typename Action13, typename Action14,
3780
+ typename Action15, typename Action16, typename Action17, typename Action18,
3781
+ typename Action19, typename Action20, typename Action21, typename Action22,
3782
+ typename Action23, typename Action24, typename Action25, typename Action26,
3783
+ typename Action27, typename Action28, typename Action29, typename Action30,
3784
+ typename Action31, typename Action32, typename Action33, typename Action34,
3785
+ typename Action35, typename Action36, typename Action37, typename Action38,
3786
+ typename Action39, typename Action40, typename Action41, typename Action42,
3787
+ typename Action43, typename Action44, typename Action45, typename Action46,
3788
+ typename Action47, typename Action48, typename Action49, typename Action50,
3789
+ typename Action51, typename Action52, typename Action53, typename Action54,
3790
+ typename Action55, typename Action56, typename Action57>
3791
+ auto IfList(
3792
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
3793
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
3794
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
3795
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
3796
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
3797
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
3798
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
3799
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
3800
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
3801
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
3802
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
3803
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
3804
+ Check47 check47, Check48 check48, Check49 check49, Check50 check50,
3805
+ Check51 check51, Check52 check52, Check53 check53, Check54 check54,
3806
+ Check55 check55, Check56 check56, Check57 check57, Action0 action0,
3807
+ Action1 action1, Action2 action2, Action3 action3, Action4 action4,
3808
+ Action5 action5, Action6 action6, Action7 action7, Action8 action8,
3809
+ Action9 action9, Action10 action10, Action11 action11, Action12 action12,
3810
+ Action13 action13, Action14 action14, Action15 action15, Action16 action16,
3811
+ Action17 action17, Action18 action18, Action19 action19, Action20 action20,
3812
+ Action21 action21, Action22 action22, Action23 action23, Action24 action24,
3813
+ Action25 action25, Action26 action26, Action27 action27, Action28 action28,
3814
+ Action29 action29, Action30 action30, Action31 action31, Action32 action32,
3815
+ Action33 action33, Action34 action34, Action35 action35, Action36 action36,
3816
+ Action37 action37, Action38 action38, Action39 action39, Action40 action40,
3817
+ Action41 action41, Action42 action42, Action43 action43, Action44 action44,
3818
+ Action45 action45, Action46 action46, Action47 action47, Action48 action48,
3819
+ Action49 action49, Action50 action50, Action51 action51, Action52 action52,
3820
+ Action53 action53, Action54 action54, Action55 action55, Action56 action56,
3821
+ Action57 action57) {
3822
+ if (check0(input)) return action0(action_arg);
3823
+ if (check1(input)) return action1(action_arg);
3824
+ if (check2(input)) return action2(action_arg);
3825
+ if (check3(input)) return action3(action_arg);
3826
+ if (check4(input)) return action4(action_arg);
3827
+ if (check5(input)) return action5(action_arg);
3828
+ if (check6(input)) return action6(action_arg);
3829
+ if (check7(input)) return action7(action_arg);
3830
+ if (check8(input)) return action8(action_arg);
3831
+ if (check9(input)) return action9(action_arg);
3832
+ if (check10(input)) return action10(action_arg);
3833
+ if (check11(input)) return action11(action_arg);
3834
+ if (check12(input)) return action12(action_arg);
3835
+ if (check13(input)) return action13(action_arg);
3836
+ if (check14(input)) return action14(action_arg);
3837
+ if (check15(input)) return action15(action_arg);
3838
+ if (check16(input)) return action16(action_arg);
3839
+ if (check17(input)) return action17(action_arg);
3840
+ if (check18(input)) return action18(action_arg);
3841
+ if (check19(input)) return action19(action_arg);
3842
+ if (check20(input)) return action20(action_arg);
3843
+ if (check21(input)) return action21(action_arg);
3844
+ if (check22(input)) return action22(action_arg);
3845
+ if (check23(input)) return action23(action_arg);
3846
+ if (check24(input)) return action24(action_arg);
3847
+ if (check25(input)) return action25(action_arg);
3848
+ if (check26(input)) return action26(action_arg);
3849
+ if (check27(input)) return action27(action_arg);
3850
+ if (check28(input)) return action28(action_arg);
3851
+ if (check29(input)) return action29(action_arg);
3852
+ if (check30(input)) return action30(action_arg);
3853
+ if (check31(input)) return action31(action_arg);
3854
+ if (check32(input)) return action32(action_arg);
3855
+ if (check33(input)) return action33(action_arg);
3856
+ if (check34(input)) return action34(action_arg);
3857
+ if (check35(input)) return action35(action_arg);
3858
+ if (check36(input)) return action36(action_arg);
3859
+ if (check37(input)) return action37(action_arg);
3860
+ if (check38(input)) return action38(action_arg);
3861
+ if (check39(input)) return action39(action_arg);
3862
+ if (check40(input)) return action40(action_arg);
3863
+ if (check41(input)) return action41(action_arg);
3864
+ if (check42(input)) return action42(action_arg);
3865
+ if (check43(input)) return action43(action_arg);
3866
+ if (check44(input)) return action44(action_arg);
3867
+ if (check45(input)) return action45(action_arg);
3868
+ if (check46(input)) return action46(action_arg);
3869
+ if (check47(input)) return action47(action_arg);
3870
+ if (check48(input)) return action48(action_arg);
3871
+ if (check49(input)) return action49(action_arg);
3872
+ if (check50(input)) return action50(action_arg);
3873
+ if (check51(input)) return action51(action_arg);
3874
+ if (check52(input)) return action52(action_arg);
3875
+ if (check53(input)) return action53(action_arg);
3876
+ if (check54(input)) return action54(action_arg);
3877
+ if (check55(input)) return action55(action_arg);
3878
+ if (check56(input)) return action56(action_arg);
3879
+ if (check57(input)) return action57(action_arg);
3880
+ return action_fail(action_arg);
3881
+ }
3882
+
3883
+ template <
3884
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
3885
+ typename Check1, typename Check2, typename Check3, typename Check4,
3886
+ typename Check5, typename Check6, typename Check7, typename Check8,
3887
+ typename Check9, typename Check10, typename Check11, typename Check12,
3888
+ typename Check13, typename Check14, typename Check15, typename Check16,
3889
+ typename Check17, typename Check18, typename Check19, typename Check20,
3890
+ typename Check21, typename Check22, typename Check23, typename Check24,
3891
+ typename Check25, typename Check26, typename Check27, typename Check28,
3892
+ typename Check29, typename Check30, typename Check31, typename Check32,
3893
+ typename Check33, typename Check34, typename Check35, typename Check36,
3894
+ typename Check37, typename Check38, typename Check39, typename Check40,
3895
+ typename Check41, typename Check42, typename Check43, typename Check44,
3896
+ typename Check45, typename Check46, typename Check47, typename Check48,
3897
+ typename Check49, typename Check50, typename Check51, typename Check52,
3898
+ typename Check53, typename Check54, typename Check55, typename Check56,
3899
+ typename Check57, typename Check58, typename Action0, typename Action1,
3900
+ typename Action2, typename Action3, typename Action4, typename Action5,
3901
+ typename Action6, typename Action7, typename Action8, typename Action9,
3902
+ typename Action10, typename Action11, typename Action12, typename Action13,
3903
+ typename Action14, typename Action15, typename Action16, typename Action17,
3904
+ typename Action18, typename Action19, typename Action20, typename Action21,
3905
+ typename Action22, typename Action23, typename Action24, typename Action25,
3906
+ typename Action26, typename Action27, typename Action28, typename Action29,
3907
+ typename Action30, typename Action31, typename Action32, typename Action33,
3908
+ typename Action34, typename Action35, typename Action36, typename Action37,
3909
+ typename Action38, typename Action39, typename Action40, typename Action41,
3910
+ typename Action42, typename Action43, typename Action44, typename Action45,
3911
+ typename Action46, typename Action47, typename Action48, typename Action49,
3912
+ typename Action50, typename Action51, typename Action52, typename Action53,
3913
+ typename Action54, typename Action55, typename Action56, typename Action57,
3914
+ typename Action58>
3915
+ auto IfList(
3916
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
3917
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
3918
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
3919
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
3920
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
3921
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
3922
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
3923
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
3924
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
3925
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
3926
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
3927
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
3928
+ Check47 check47, Check48 check48, Check49 check49, Check50 check50,
3929
+ Check51 check51, Check52 check52, Check53 check53, Check54 check54,
3930
+ Check55 check55, Check56 check56, Check57 check57, Check58 check58,
3931
+ Action0 action0, Action1 action1, Action2 action2, Action3 action3,
3932
+ Action4 action4, Action5 action5, Action6 action6, Action7 action7,
3933
+ Action8 action8, Action9 action9, Action10 action10, Action11 action11,
3934
+ Action12 action12, Action13 action13, Action14 action14, Action15 action15,
3935
+ Action16 action16, Action17 action17, Action18 action18, Action19 action19,
3936
+ Action20 action20, Action21 action21, Action22 action22, Action23 action23,
3937
+ Action24 action24, Action25 action25, Action26 action26, Action27 action27,
3938
+ Action28 action28, Action29 action29, Action30 action30, Action31 action31,
3939
+ Action32 action32, Action33 action33, Action34 action34, Action35 action35,
3940
+ Action36 action36, Action37 action37, Action38 action38, Action39 action39,
3941
+ Action40 action40, Action41 action41, Action42 action42, Action43 action43,
3942
+ Action44 action44, Action45 action45, Action46 action46, Action47 action47,
3943
+ Action48 action48, Action49 action49, Action50 action50, Action51 action51,
3944
+ Action52 action52, Action53 action53, Action54 action54, Action55 action55,
3945
+ Action56 action56, Action57 action57, Action58 action58) {
3946
+ if (check0(input)) return action0(action_arg);
3947
+ if (check1(input)) return action1(action_arg);
3948
+ if (check2(input)) return action2(action_arg);
3949
+ if (check3(input)) return action3(action_arg);
3950
+ if (check4(input)) return action4(action_arg);
3951
+ if (check5(input)) return action5(action_arg);
3952
+ if (check6(input)) return action6(action_arg);
3953
+ if (check7(input)) return action7(action_arg);
3954
+ if (check8(input)) return action8(action_arg);
3955
+ if (check9(input)) return action9(action_arg);
3956
+ if (check10(input)) return action10(action_arg);
3957
+ if (check11(input)) return action11(action_arg);
3958
+ if (check12(input)) return action12(action_arg);
3959
+ if (check13(input)) return action13(action_arg);
3960
+ if (check14(input)) return action14(action_arg);
3961
+ if (check15(input)) return action15(action_arg);
3962
+ if (check16(input)) return action16(action_arg);
3963
+ if (check17(input)) return action17(action_arg);
3964
+ if (check18(input)) return action18(action_arg);
3965
+ if (check19(input)) return action19(action_arg);
3966
+ if (check20(input)) return action20(action_arg);
3967
+ if (check21(input)) return action21(action_arg);
3968
+ if (check22(input)) return action22(action_arg);
3969
+ if (check23(input)) return action23(action_arg);
3970
+ if (check24(input)) return action24(action_arg);
3971
+ if (check25(input)) return action25(action_arg);
3972
+ if (check26(input)) return action26(action_arg);
3973
+ if (check27(input)) return action27(action_arg);
3974
+ if (check28(input)) return action28(action_arg);
3975
+ if (check29(input)) return action29(action_arg);
3976
+ if (check30(input)) return action30(action_arg);
3977
+ if (check31(input)) return action31(action_arg);
3978
+ if (check32(input)) return action32(action_arg);
3979
+ if (check33(input)) return action33(action_arg);
3980
+ if (check34(input)) return action34(action_arg);
3981
+ if (check35(input)) return action35(action_arg);
3982
+ if (check36(input)) return action36(action_arg);
3983
+ if (check37(input)) return action37(action_arg);
3984
+ if (check38(input)) return action38(action_arg);
3985
+ if (check39(input)) return action39(action_arg);
3986
+ if (check40(input)) return action40(action_arg);
3987
+ if (check41(input)) return action41(action_arg);
3988
+ if (check42(input)) return action42(action_arg);
3989
+ if (check43(input)) return action43(action_arg);
3990
+ if (check44(input)) return action44(action_arg);
3991
+ if (check45(input)) return action45(action_arg);
3992
+ if (check46(input)) return action46(action_arg);
3993
+ if (check47(input)) return action47(action_arg);
3994
+ if (check48(input)) return action48(action_arg);
3995
+ if (check49(input)) return action49(action_arg);
3996
+ if (check50(input)) return action50(action_arg);
3997
+ if (check51(input)) return action51(action_arg);
3998
+ if (check52(input)) return action52(action_arg);
3999
+ if (check53(input)) return action53(action_arg);
4000
+ if (check54(input)) return action54(action_arg);
4001
+ if (check55(input)) return action55(action_arg);
4002
+ if (check56(input)) return action56(action_arg);
4003
+ if (check57(input)) return action57(action_arg);
4004
+ if (check58(input)) return action58(action_arg);
4005
+ return action_fail(action_arg);
4006
+ }
4007
+
4008
+ template <
4009
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
4010
+ typename Check1, typename Check2, typename Check3, typename Check4,
4011
+ typename Check5, typename Check6, typename Check7, typename Check8,
4012
+ typename Check9, typename Check10, typename Check11, typename Check12,
4013
+ typename Check13, typename Check14, typename Check15, typename Check16,
4014
+ typename Check17, typename Check18, typename Check19, typename Check20,
4015
+ typename Check21, typename Check22, typename Check23, typename Check24,
4016
+ typename Check25, typename Check26, typename Check27, typename Check28,
4017
+ typename Check29, typename Check30, typename Check31, typename Check32,
4018
+ typename Check33, typename Check34, typename Check35, typename Check36,
4019
+ typename Check37, typename Check38, typename Check39, typename Check40,
4020
+ typename Check41, typename Check42, typename Check43, typename Check44,
4021
+ typename Check45, typename Check46, typename Check47, typename Check48,
4022
+ typename Check49, typename Check50, typename Check51, typename Check52,
4023
+ typename Check53, typename Check54, typename Check55, typename Check56,
4024
+ typename Check57, typename Check58, typename Check59, typename Action0,
4025
+ typename Action1, typename Action2, typename Action3, typename Action4,
4026
+ typename Action5, typename Action6, typename Action7, typename Action8,
4027
+ typename Action9, typename Action10, typename Action11, typename Action12,
4028
+ typename Action13, typename Action14, typename Action15, typename Action16,
4029
+ typename Action17, typename Action18, typename Action19, typename Action20,
4030
+ typename Action21, typename Action22, typename Action23, typename Action24,
4031
+ typename Action25, typename Action26, typename Action27, typename Action28,
4032
+ typename Action29, typename Action30, typename Action31, typename Action32,
4033
+ typename Action33, typename Action34, typename Action35, typename Action36,
4034
+ typename Action37, typename Action38, typename Action39, typename Action40,
4035
+ typename Action41, typename Action42, typename Action43, typename Action44,
4036
+ typename Action45, typename Action46, typename Action47, typename Action48,
4037
+ typename Action49, typename Action50, typename Action51, typename Action52,
4038
+ typename Action53, typename Action54, typename Action55, typename Action56,
4039
+ typename Action57, typename Action58, typename Action59>
4040
+ auto IfList(
4041
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
4042
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
4043
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
4044
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
4045
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
4046
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
4047
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
4048
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
4049
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
4050
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
4051
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
4052
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
4053
+ Check47 check47, Check48 check48, Check49 check49, Check50 check50,
4054
+ Check51 check51, Check52 check52, Check53 check53, Check54 check54,
4055
+ Check55 check55, Check56 check56, Check57 check57, Check58 check58,
4056
+ Check59 check59, Action0 action0, Action1 action1, Action2 action2,
4057
+ Action3 action3, Action4 action4, Action5 action5, Action6 action6,
4058
+ Action7 action7, Action8 action8, Action9 action9, Action10 action10,
4059
+ Action11 action11, Action12 action12, Action13 action13, Action14 action14,
4060
+ Action15 action15, Action16 action16, Action17 action17, Action18 action18,
4061
+ Action19 action19, Action20 action20, Action21 action21, Action22 action22,
4062
+ Action23 action23, Action24 action24, Action25 action25, Action26 action26,
4063
+ Action27 action27, Action28 action28, Action29 action29, Action30 action30,
4064
+ Action31 action31, Action32 action32, Action33 action33, Action34 action34,
4065
+ Action35 action35, Action36 action36, Action37 action37, Action38 action38,
4066
+ Action39 action39, Action40 action40, Action41 action41, Action42 action42,
4067
+ Action43 action43, Action44 action44, Action45 action45, Action46 action46,
4068
+ Action47 action47, Action48 action48, Action49 action49, Action50 action50,
4069
+ Action51 action51, Action52 action52, Action53 action53, Action54 action54,
4070
+ Action55 action55, Action56 action56, Action57 action57, Action58 action58,
4071
+ Action59 action59) {
4072
+ if (check0(input)) return action0(action_arg);
4073
+ if (check1(input)) return action1(action_arg);
4074
+ if (check2(input)) return action2(action_arg);
4075
+ if (check3(input)) return action3(action_arg);
4076
+ if (check4(input)) return action4(action_arg);
4077
+ if (check5(input)) return action5(action_arg);
4078
+ if (check6(input)) return action6(action_arg);
4079
+ if (check7(input)) return action7(action_arg);
4080
+ if (check8(input)) return action8(action_arg);
4081
+ if (check9(input)) return action9(action_arg);
4082
+ if (check10(input)) return action10(action_arg);
4083
+ if (check11(input)) return action11(action_arg);
4084
+ if (check12(input)) return action12(action_arg);
4085
+ if (check13(input)) return action13(action_arg);
4086
+ if (check14(input)) return action14(action_arg);
4087
+ if (check15(input)) return action15(action_arg);
4088
+ if (check16(input)) return action16(action_arg);
4089
+ if (check17(input)) return action17(action_arg);
4090
+ if (check18(input)) return action18(action_arg);
4091
+ if (check19(input)) return action19(action_arg);
4092
+ if (check20(input)) return action20(action_arg);
4093
+ if (check21(input)) return action21(action_arg);
4094
+ if (check22(input)) return action22(action_arg);
4095
+ if (check23(input)) return action23(action_arg);
4096
+ if (check24(input)) return action24(action_arg);
4097
+ if (check25(input)) return action25(action_arg);
4098
+ if (check26(input)) return action26(action_arg);
4099
+ if (check27(input)) return action27(action_arg);
4100
+ if (check28(input)) return action28(action_arg);
4101
+ if (check29(input)) return action29(action_arg);
4102
+ if (check30(input)) return action30(action_arg);
4103
+ if (check31(input)) return action31(action_arg);
4104
+ if (check32(input)) return action32(action_arg);
4105
+ if (check33(input)) return action33(action_arg);
4106
+ if (check34(input)) return action34(action_arg);
4107
+ if (check35(input)) return action35(action_arg);
4108
+ if (check36(input)) return action36(action_arg);
4109
+ if (check37(input)) return action37(action_arg);
4110
+ if (check38(input)) return action38(action_arg);
4111
+ if (check39(input)) return action39(action_arg);
4112
+ if (check40(input)) return action40(action_arg);
4113
+ if (check41(input)) return action41(action_arg);
4114
+ if (check42(input)) return action42(action_arg);
4115
+ if (check43(input)) return action43(action_arg);
4116
+ if (check44(input)) return action44(action_arg);
4117
+ if (check45(input)) return action45(action_arg);
4118
+ if (check46(input)) return action46(action_arg);
4119
+ if (check47(input)) return action47(action_arg);
4120
+ if (check48(input)) return action48(action_arg);
4121
+ if (check49(input)) return action49(action_arg);
4122
+ if (check50(input)) return action50(action_arg);
4123
+ if (check51(input)) return action51(action_arg);
4124
+ if (check52(input)) return action52(action_arg);
4125
+ if (check53(input)) return action53(action_arg);
4126
+ if (check54(input)) return action54(action_arg);
4127
+ if (check55(input)) return action55(action_arg);
4128
+ if (check56(input)) return action56(action_arg);
4129
+ if (check57(input)) return action57(action_arg);
4130
+ if (check58(input)) return action58(action_arg);
4131
+ if (check59(input)) return action59(action_arg);
4132
+ return action_fail(action_arg);
4133
+ }
4134
+
4135
+ template <
4136
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
4137
+ typename Check1, typename Check2, typename Check3, typename Check4,
4138
+ typename Check5, typename Check6, typename Check7, typename Check8,
4139
+ typename Check9, typename Check10, typename Check11, typename Check12,
4140
+ typename Check13, typename Check14, typename Check15, typename Check16,
4141
+ typename Check17, typename Check18, typename Check19, typename Check20,
4142
+ typename Check21, typename Check22, typename Check23, typename Check24,
4143
+ typename Check25, typename Check26, typename Check27, typename Check28,
4144
+ typename Check29, typename Check30, typename Check31, typename Check32,
4145
+ typename Check33, typename Check34, typename Check35, typename Check36,
4146
+ typename Check37, typename Check38, typename Check39, typename Check40,
4147
+ typename Check41, typename Check42, typename Check43, typename Check44,
4148
+ typename Check45, typename Check46, typename Check47, typename Check48,
4149
+ typename Check49, typename Check50, typename Check51, typename Check52,
4150
+ typename Check53, typename Check54, typename Check55, typename Check56,
4151
+ typename Check57, typename Check58, typename Check59, typename Check60,
4152
+ typename Action0, typename Action1, typename Action2, typename Action3,
4153
+ typename Action4, typename Action5, typename Action6, typename Action7,
4154
+ typename Action8, typename Action9, typename Action10, typename Action11,
4155
+ typename Action12, typename Action13, typename Action14, typename Action15,
4156
+ typename Action16, typename Action17, typename Action18, typename Action19,
4157
+ typename Action20, typename Action21, typename Action22, typename Action23,
4158
+ typename Action24, typename Action25, typename Action26, typename Action27,
4159
+ typename Action28, typename Action29, typename Action30, typename Action31,
4160
+ typename Action32, typename Action33, typename Action34, typename Action35,
4161
+ typename Action36, typename Action37, typename Action38, typename Action39,
4162
+ typename Action40, typename Action41, typename Action42, typename Action43,
4163
+ typename Action44, typename Action45, typename Action46, typename Action47,
4164
+ typename Action48, typename Action49, typename Action50, typename Action51,
4165
+ typename Action52, typename Action53, typename Action54, typename Action55,
4166
+ typename Action56, typename Action57, typename Action58, typename Action59,
4167
+ typename Action60>
4168
+ auto IfList(
4169
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
4170
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
4171
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
4172
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
4173
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
4174
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
4175
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
4176
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
4177
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
4178
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
4179
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
4180
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
4181
+ Check47 check47, Check48 check48, Check49 check49, Check50 check50,
4182
+ Check51 check51, Check52 check52, Check53 check53, Check54 check54,
4183
+ Check55 check55, Check56 check56, Check57 check57, Check58 check58,
4184
+ Check59 check59, Check60 check60, Action0 action0, Action1 action1,
4185
+ Action2 action2, Action3 action3, Action4 action4, Action5 action5,
4186
+ Action6 action6, Action7 action7, Action8 action8, Action9 action9,
4187
+ Action10 action10, Action11 action11, Action12 action12, Action13 action13,
4188
+ Action14 action14, Action15 action15, Action16 action16, Action17 action17,
4189
+ Action18 action18, Action19 action19, Action20 action20, Action21 action21,
4190
+ Action22 action22, Action23 action23, Action24 action24, Action25 action25,
4191
+ Action26 action26, Action27 action27, Action28 action28, Action29 action29,
4192
+ Action30 action30, Action31 action31, Action32 action32, Action33 action33,
4193
+ Action34 action34, Action35 action35, Action36 action36, Action37 action37,
4194
+ Action38 action38, Action39 action39, Action40 action40, Action41 action41,
4195
+ Action42 action42, Action43 action43, Action44 action44, Action45 action45,
4196
+ Action46 action46, Action47 action47, Action48 action48, Action49 action49,
4197
+ Action50 action50, Action51 action51, Action52 action52, Action53 action53,
4198
+ Action54 action54, Action55 action55, Action56 action56, Action57 action57,
4199
+ Action58 action58, Action59 action59, Action60 action60) {
4200
+ if (check0(input)) return action0(action_arg);
4201
+ if (check1(input)) return action1(action_arg);
4202
+ if (check2(input)) return action2(action_arg);
4203
+ if (check3(input)) return action3(action_arg);
4204
+ if (check4(input)) return action4(action_arg);
4205
+ if (check5(input)) return action5(action_arg);
4206
+ if (check6(input)) return action6(action_arg);
4207
+ if (check7(input)) return action7(action_arg);
4208
+ if (check8(input)) return action8(action_arg);
4209
+ if (check9(input)) return action9(action_arg);
4210
+ if (check10(input)) return action10(action_arg);
4211
+ if (check11(input)) return action11(action_arg);
4212
+ if (check12(input)) return action12(action_arg);
4213
+ if (check13(input)) return action13(action_arg);
4214
+ if (check14(input)) return action14(action_arg);
4215
+ if (check15(input)) return action15(action_arg);
4216
+ if (check16(input)) return action16(action_arg);
4217
+ if (check17(input)) return action17(action_arg);
4218
+ if (check18(input)) return action18(action_arg);
4219
+ if (check19(input)) return action19(action_arg);
4220
+ if (check20(input)) return action20(action_arg);
4221
+ if (check21(input)) return action21(action_arg);
4222
+ if (check22(input)) return action22(action_arg);
4223
+ if (check23(input)) return action23(action_arg);
4224
+ if (check24(input)) return action24(action_arg);
4225
+ if (check25(input)) return action25(action_arg);
4226
+ if (check26(input)) return action26(action_arg);
4227
+ if (check27(input)) return action27(action_arg);
4228
+ if (check28(input)) return action28(action_arg);
4229
+ if (check29(input)) return action29(action_arg);
4230
+ if (check30(input)) return action30(action_arg);
4231
+ if (check31(input)) return action31(action_arg);
4232
+ if (check32(input)) return action32(action_arg);
4233
+ if (check33(input)) return action33(action_arg);
4234
+ if (check34(input)) return action34(action_arg);
4235
+ if (check35(input)) return action35(action_arg);
4236
+ if (check36(input)) return action36(action_arg);
4237
+ if (check37(input)) return action37(action_arg);
4238
+ if (check38(input)) return action38(action_arg);
4239
+ if (check39(input)) return action39(action_arg);
4240
+ if (check40(input)) return action40(action_arg);
4241
+ if (check41(input)) return action41(action_arg);
4242
+ if (check42(input)) return action42(action_arg);
4243
+ if (check43(input)) return action43(action_arg);
4244
+ if (check44(input)) return action44(action_arg);
4245
+ if (check45(input)) return action45(action_arg);
4246
+ if (check46(input)) return action46(action_arg);
4247
+ if (check47(input)) return action47(action_arg);
4248
+ if (check48(input)) return action48(action_arg);
4249
+ if (check49(input)) return action49(action_arg);
4250
+ if (check50(input)) return action50(action_arg);
4251
+ if (check51(input)) return action51(action_arg);
4252
+ if (check52(input)) return action52(action_arg);
4253
+ if (check53(input)) return action53(action_arg);
4254
+ if (check54(input)) return action54(action_arg);
4255
+ if (check55(input)) return action55(action_arg);
4256
+ if (check56(input)) return action56(action_arg);
4257
+ if (check57(input)) return action57(action_arg);
4258
+ if (check58(input)) return action58(action_arg);
4259
+ if (check59(input)) return action59(action_arg);
4260
+ if (check60(input)) return action60(action_arg);
4261
+ return action_fail(action_arg);
4262
+ }
4263
+
4264
+ template <
4265
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
4266
+ typename Check1, typename Check2, typename Check3, typename Check4,
4267
+ typename Check5, typename Check6, typename Check7, typename Check8,
4268
+ typename Check9, typename Check10, typename Check11, typename Check12,
4269
+ typename Check13, typename Check14, typename Check15, typename Check16,
4270
+ typename Check17, typename Check18, typename Check19, typename Check20,
4271
+ typename Check21, typename Check22, typename Check23, typename Check24,
4272
+ typename Check25, typename Check26, typename Check27, typename Check28,
4273
+ typename Check29, typename Check30, typename Check31, typename Check32,
4274
+ typename Check33, typename Check34, typename Check35, typename Check36,
4275
+ typename Check37, typename Check38, typename Check39, typename Check40,
4276
+ typename Check41, typename Check42, typename Check43, typename Check44,
4277
+ typename Check45, typename Check46, typename Check47, typename Check48,
4278
+ typename Check49, typename Check50, typename Check51, typename Check52,
4279
+ typename Check53, typename Check54, typename Check55, typename Check56,
4280
+ typename Check57, typename Check58, typename Check59, typename Check60,
4281
+ typename Check61, typename Action0, typename Action1, typename Action2,
4282
+ typename Action3, typename Action4, typename Action5, typename Action6,
4283
+ typename Action7, typename Action8, typename Action9, typename Action10,
4284
+ typename Action11, typename Action12, typename Action13, typename Action14,
4285
+ typename Action15, typename Action16, typename Action17, typename Action18,
4286
+ typename Action19, typename Action20, typename Action21, typename Action22,
4287
+ typename Action23, typename Action24, typename Action25, typename Action26,
4288
+ typename Action27, typename Action28, typename Action29, typename Action30,
4289
+ typename Action31, typename Action32, typename Action33, typename Action34,
4290
+ typename Action35, typename Action36, typename Action37, typename Action38,
4291
+ typename Action39, typename Action40, typename Action41, typename Action42,
4292
+ typename Action43, typename Action44, typename Action45, typename Action46,
4293
+ typename Action47, typename Action48, typename Action49, typename Action50,
4294
+ typename Action51, typename Action52, typename Action53, typename Action54,
4295
+ typename Action55, typename Action56, typename Action57, typename Action58,
4296
+ typename Action59, typename Action60, typename Action61>
4297
+ auto IfList(
4298
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
4299
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
4300
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
4301
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
4302
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
4303
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
4304
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
4305
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
4306
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
4307
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
4308
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
4309
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
4310
+ Check47 check47, Check48 check48, Check49 check49, Check50 check50,
4311
+ Check51 check51, Check52 check52, Check53 check53, Check54 check54,
4312
+ Check55 check55, Check56 check56, Check57 check57, Check58 check58,
4313
+ Check59 check59, Check60 check60, Check61 check61, Action0 action0,
4314
+ Action1 action1, Action2 action2, Action3 action3, Action4 action4,
4315
+ Action5 action5, Action6 action6, Action7 action7, Action8 action8,
4316
+ Action9 action9, Action10 action10, Action11 action11, Action12 action12,
4317
+ Action13 action13, Action14 action14, Action15 action15, Action16 action16,
4318
+ Action17 action17, Action18 action18, Action19 action19, Action20 action20,
4319
+ Action21 action21, Action22 action22, Action23 action23, Action24 action24,
4320
+ Action25 action25, Action26 action26, Action27 action27, Action28 action28,
4321
+ Action29 action29, Action30 action30, Action31 action31, Action32 action32,
4322
+ Action33 action33, Action34 action34, Action35 action35, Action36 action36,
4323
+ Action37 action37, Action38 action38, Action39 action39, Action40 action40,
4324
+ Action41 action41, Action42 action42, Action43 action43, Action44 action44,
4325
+ Action45 action45, Action46 action46, Action47 action47, Action48 action48,
4326
+ Action49 action49, Action50 action50, Action51 action51, Action52 action52,
4327
+ Action53 action53, Action54 action54, Action55 action55, Action56 action56,
4328
+ Action57 action57, Action58 action58, Action59 action59, Action60 action60,
4329
+ Action61 action61) {
4330
+ if (check0(input)) return action0(action_arg);
4331
+ if (check1(input)) return action1(action_arg);
4332
+ if (check2(input)) return action2(action_arg);
4333
+ if (check3(input)) return action3(action_arg);
4334
+ if (check4(input)) return action4(action_arg);
4335
+ if (check5(input)) return action5(action_arg);
4336
+ if (check6(input)) return action6(action_arg);
4337
+ if (check7(input)) return action7(action_arg);
4338
+ if (check8(input)) return action8(action_arg);
4339
+ if (check9(input)) return action9(action_arg);
4340
+ if (check10(input)) return action10(action_arg);
4341
+ if (check11(input)) return action11(action_arg);
4342
+ if (check12(input)) return action12(action_arg);
4343
+ if (check13(input)) return action13(action_arg);
4344
+ if (check14(input)) return action14(action_arg);
4345
+ if (check15(input)) return action15(action_arg);
4346
+ if (check16(input)) return action16(action_arg);
4347
+ if (check17(input)) return action17(action_arg);
4348
+ if (check18(input)) return action18(action_arg);
4349
+ if (check19(input)) return action19(action_arg);
4350
+ if (check20(input)) return action20(action_arg);
4351
+ if (check21(input)) return action21(action_arg);
4352
+ if (check22(input)) return action22(action_arg);
4353
+ if (check23(input)) return action23(action_arg);
4354
+ if (check24(input)) return action24(action_arg);
4355
+ if (check25(input)) return action25(action_arg);
4356
+ if (check26(input)) return action26(action_arg);
4357
+ if (check27(input)) return action27(action_arg);
4358
+ if (check28(input)) return action28(action_arg);
4359
+ if (check29(input)) return action29(action_arg);
4360
+ if (check30(input)) return action30(action_arg);
4361
+ if (check31(input)) return action31(action_arg);
4362
+ if (check32(input)) return action32(action_arg);
4363
+ if (check33(input)) return action33(action_arg);
4364
+ if (check34(input)) return action34(action_arg);
4365
+ if (check35(input)) return action35(action_arg);
4366
+ if (check36(input)) return action36(action_arg);
4367
+ if (check37(input)) return action37(action_arg);
4368
+ if (check38(input)) return action38(action_arg);
4369
+ if (check39(input)) return action39(action_arg);
4370
+ if (check40(input)) return action40(action_arg);
4371
+ if (check41(input)) return action41(action_arg);
4372
+ if (check42(input)) return action42(action_arg);
4373
+ if (check43(input)) return action43(action_arg);
4374
+ if (check44(input)) return action44(action_arg);
4375
+ if (check45(input)) return action45(action_arg);
4376
+ if (check46(input)) return action46(action_arg);
4377
+ if (check47(input)) return action47(action_arg);
4378
+ if (check48(input)) return action48(action_arg);
4379
+ if (check49(input)) return action49(action_arg);
4380
+ if (check50(input)) return action50(action_arg);
4381
+ if (check51(input)) return action51(action_arg);
4382
+ if (check52(input)) return action52(action_arg);
4383
+ if (check53(input)) return action53(action_arg);
4384
+ if (check54(input)) return action54(action_arg);
4385
+ if (check55(input)) return action55(action_arg);
4386
+ if (check56(input)) return action56(action_arg);
4387
+ if (check57(input)) return action57(action_arg);
4388
+ if (check58(input)) return action58(action_arg);
4389
+ if (check59(input)) return action59(action_arg);
4390
+ if (check60(input)) return action60(action_arg);
4391
+ if (check61(input)) return action61(action_arg);
4392
+ return action_fail(action_arg);
4393
+ }
4394
+
4395
+ template <
4396
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
4397
+ typename Check1, typename Check2, typename Check3, typename Check4,
4398
+ typename Check5, typename Check6, typename Check7, typename Check8,
4399
+ typename Check9, typename Check10, typename Check11, typename Check12,
4400
+ typename Check13, typename Check14, typename Check15, typename Check16,
4401
+ typename Check17, typename Check18, typename Check19, typename Check20,
4402
+ typename Check21, typename Check22, typename Check23, typename Check24,
4403
+ typename Check25, typename Check26, typename Check27, typename Check28,
4404
+ typename Check29, typename Check30, typename Check31, typename Check32,
4405
+ typename Check33, typename Check34, typename Check35, typename Check36,
4406
+ typename Check37, typename Check38, typename Check39, typename Check40,
4407
+ typename Check41, typename Check42, typename Check43, typename Check44,
4408
+ typename Check45, typename Check46, typename Check47, typename Check48,
4409
+ typename Check49, typename Check50, typename Check51, typename Check52,
4410
+ typename Check53, typename Check54, typename Check55, typename Check56,
4411
+ typename Check57, typename Check58, typename Check59, typename Check60,
4412
+ typename Check61, typename Check62, typename Action0, typename Action1,
4413
+ typename Action2, typename Action3, typename Action4, typename Action5,
4414
+ typename Action6, typename Action7, typename Action8, typename Action9,
4415
+ typename Action10, typename Action11, typename Action12, typename Action13,
4416
+ typename Action14, typename Action15, typename Action16, typename Action17,
4417
+ typename Action18, typename Action19, typename Action20, typename Action21,
4418
+ typename Action22, typename Action23, typename Action24, typename Action25,
4419
+ typename Action26, typename Action27, typename Action28, typename Action29,
4420
+ typename Action30, typename Action31, typename Action32, typename Action33,
4421
+ typename Action34, typename Action35, typename Action36, typename Action37,
4422
+ typename Action38, typename Action39, typename Action40, typename Action41,
4423
+ typename Action42, typename Action43, typename Action44, typename Action45,
4424
+ typename Action46, typename Action47, typename Action48, typename Action49,
4425
+ typename Action50, typename Action51, typename Action52, typename Action53,
4426
+ typename Action54, typename Action55, typename Action56, typename Action57,
4427
+ typename Action58, typename Action59, typename Action60, typename Action61,
4428
+ typename Action62>
4429
+ auto IfList(
4430
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
4431
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
4432
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
4433
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
4434
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
4435
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
4436
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
4437
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
4438
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
4439
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
4440
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
4441
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
4442
+ Check47 check47, Check48 check48, Check49 check49, Check50 check50,
4443
+ Check51 check51, Check52 check52, Check53 check53, Check54 check54,
4444
+ Check55 check55, Check56 check56, Check57 check57, Check58 check58,
4445
+ Check59 check59, Check60 check60, Check61 check61, Check62 check62,
4446
+ Action0 action0, Action1 action1, Action2 action2, Action3 action3,
4447
+ Action4 action4, Action5 action5, Action6 action6, Action7 action7,
4448
+ Action8 action8, Action9 action9, Action10 action10, Action11 action11,
4449
+ Action12 action12, Action13 action13, Action14 action14, Action15 action15,
4450
+ Action16 action16, Action17 action17, Action18 action18, Action19 action19,
4451
+ Action20 action20, Action21 action21, Action22 action22, Action23 action23,
4452
+ Action24 action24, Action25 action25, Action26 action26, Action27 action27,
4453
+ Action28 action28, Action29 action29, Action30 action30, Action31 action31,
4454
+ Action32 action32, Action33 action33, Action34 action34, Action35 action35,
4455
+ Action36 action36, Action37 action37, Action38 action38, Action39 action39,
4456
+ Action40 action40, Action41 action41, Action42 action42, Action43 action43,
4457
+ Action44 action44, Action45 action45, Action46 action46, Action47 action47,
4458
+ Action48 action48, Action49 action49, Action50 action50, Action51 action51,
4459
+ Action52 action52, Action53 action53, Action54 action54, Action55 action55,
4460
+ Action56 action56, Action57 action57, Action58 action58, Action59 action59,
4461
+ Action60 action60, Action61 action61, Action62 action62) {
4462
+ if (check0(input)) return action0(action_arg);
4463
+ if (check1(input)) return action1(action_arg);
4464
+ if (check2(input)) return action2(action_arg);
4465
+ if (check3(input)) return action3(action_arg);
4466
+ if (check4(input)) return action4(action_arg);
4467
+ if (check5(input)) return action5(action_arg);
4468
+ if (check6(input)) return action6(action_arg);
4469
+ if (check7(input)) return action7(action_arg);
4470
+ if (check8(input)) return action8(action_arg);
4471
+ if (check9(input)) return action9(action_arg);
4472
+ if (check10(input)) return action10(action_arg);
4473
+ if (check11(input)) return action11(action_arg);
4474
+ if (check12(input)) return action12(action_arg);
4475
+ if (check13(input)) return action13(action_arg);
4476
+ if (check14(input)) return action14(action_arg);
4477
+ if (check15(input)) return action15(action_arg);
4478
+ if (check16(input)) return action16(action_arg);
4479
+ if (check17(input)) return action17(action_arg);
4480
+ if (check18(input)) return action18(action_arg);
4481
+ if (check19(input)) return action19(action_arg);
4482
+ if (check20(input)) return action20(action_arg);
4483
+ if (check21(input)) return action21(action_arg);
4484
+ if (check22(input)) return action22(action_arg);
4485
+ if (check23(input)) return action23(action_arg);
4486
+ if (check24(input)) return action24(action_arg);
4487
+ if (check25(input)) return action25(action_arg);
4488
+ if (check26(input)) return action26(action_arg);
4489
+ if (check27(input)) return action27(action_arg);
4490
+ if (check28(input)) return action28(action_arg);
4491
+ if (check29(input)) return action29(action_arg);
4492
+ if (check30(input)) return action30(action_arg);
4493
+ if (check31(input)) return action31(action_arg);
4494
+ if (check32(input)) return action32(action_arg);
4495
+ if (check33(input)) return action33(action_arg);
4496
+ if (check34(input)) return action34(action_arg);
4497
+ if (check35(input)) return action35(action_arg);
4498
+ if (check36(input)) return action36(action_arg);
4499
+ if (check37(input)) return action37(action_arg);
4500
+ if (check38(input)) return action38(action_arg);
4501
+ if (check39(input)) return action39(action_arg);
4502
+ if (check40(input)) return action40(action_arg);
4503
+ if (check41(input)) return action41(action_arg);
4504
+ if (check42(input)) return action42(action_arg);
4505
+ if (check43(input)) return action43(action_arg);
4506
+ if (check44(input)) return action44(action_arg);
4507
+ if (check45(input)) return action45(action_arg);
4508
+ if (check46(input)) return action46(action_arg);
4509
+ if (check47(input)) return action47(action_arg);
4510
+ if (check48(input)) return action48(action_arg);
4511
+ if (check49(input)) return action49(action_arg);
4512
+ if (check50(input)) return action50(action_arg);
4513
+ if (check51(input)) return action51(action_arg);
4514
+ if (check52(input)) return action52(action_arg);
4515
+ if (check53(input)) return action53(action_arg);
4516
+ if (check54(input)) return action54(action_arg);
4517
+ if (check55(input)) return action55(action_arg);
4518
+ if (check56(input)) return action56(action_arg);
4519
+ if (check57(input)) return action57(action_arg);
4520
+ if (check58(input)) return action58(action_arg);
4521
+ if (check59(input)) return action59(action_arg);
4522
+ if (check60(input)) return action60(action_arg);
4523
+ if (check61(input)) return action61(action_arg);
4524
+ if (check62(input)) return action62(action_arg);
4525
+ return action_fail(action_arg);
4526
+ }
4527
+
4528
+ } // namespace grpc_core
4529
+
4530
+ #endif // GRPC_SRC_CORE_LIB_GPRPP_IF_LIST_H