grpc 1.73.0 → 1.74.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Makefile +38 -17
- data/include/grpc/create_channel_from_endpoint.h +54 -0
- data/include/grpc/credentials.h +11 -5
- data/include/grpc/event_engine/event_engine.h +74 -17
- data/include/grpc/grpc_posix.h +20 -1
- data/include/grpc/impl/channel_arg_names.h +2 -4
- data/include/grpc/module.modulemap +1 -0
- data/include/grpc/support/json.h +24 -0
- data/src/core/call/interception_chain.h +7 -11
- data/src/core/channelz/channel_trace.cc +213 -115
- data/src/core/channelz/channel_trace.h +380 -86
- data/src/core/channelz/channelz.cc +270 -181
- data/src/core/channelz/channelz.h +168 -55
- data/src/core/channelz/channelz_registry.cc +2 -1
- data/src/core/channelz/channelz_registry.h +24 -0
- data/src/core/channelz/property_list.cc +357 -0
- data/src/core/channelz/property_list.h +202 -0
- data/src/core/channelz/ztrace_collector.h +3 -2
- data/src/core/client_channel/backup_poller.cc +17 -2
- data/src/core/client_channel/client_channel.cc +17 -28
- data/src/core/client_channel/client_channel_filter.cc +19 -29
- data/src/core/client_channel/config_selector.h +8 -2
- data/src/core/client_channel/dynamic_filters.cc +5 -6
- data/src/core/client_channel/dynamic_filters.h +1 -1
- data/src/core/client_channel/global_subchannel_pool.cc +4 -1
- data/src/core/client_channel/retry_filter.cc +21 -27
- data/src/core/client_channel/retry_filter.h +10 -7
- data/src/core/client_channel/retry_filter_legacy_call_data.cc +5 -5
- data/src/core/client_channel/retry_filter_legacy_call_data.h +1 -1
- data/src/core/client_channel/retry_interceptor.cc +30 -44
- data/src/core/client_channel/retry_interceptor.h +18 -17
- data/src/core/client_channel/retry_throttle.cc +46 -61
- data/src/core/client_channel/retry_throttle.h +17 -39
- data/src/core/client_channel/subchannel.cc +43 -19
- data/src/core/client_channel/subchannel.h +8 -0
- data/src/core/config/config_vars.cc +2 -0
- data/src/core/config/core_configuration.cc +1 -0
- data/src/core/config/core_configuration.h +11 -0
- data/src/core/credentials/call/call_creds_registry.h +125 -0
- data/src/core/credentials/call/call_creds_registry_init.cc +91 -0
- data/src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +6 -48
- data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.cc +86 -0
- data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.h +74 -0
- data/src/core/credentials/call/jwt_util.cc +70 -0
- data/src/core/credentials/call/jwt_util.h +32 -0
- data/src/core/credentials/transport/channel_creds_registry_init.cc +1 -1
- data/src/core/credentials/transport/google_default/google_default_credentials.cc +72 -4
- data/src/core/credentials/transport/ssl/ssl_credentials.cc +0 -1
- data/src/core/credentials/transport/tls/load_system_roots_supported.cc +1 -0
- data/src/core/credentials/transport/xds/xds_credentials.cc +0 -3
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +8 -8
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +16 -16
- data/src/core/ext/filters/http/client_authority_filter.cc +2 -4
- data/src/core/ext/filters/http/message_compress/compression_filter.h +25 -22
- data/src/core/ext/filters/http/server/http_server_filter.h +12 -11
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +120 -35
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +6 -5
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +162 -115
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +0 -3
- data/src/core/ext/transport/chttp2/transport/decode_huff.cc +1239 -3514
- data/src/core/ext/transport/chttp2/transport/decode_huff.h +1008 -1486
- data/src/core/ext/transport/chttp2/transport/flow_control.h +22 -17
- data/src/core/ext/transport/chttp2/transport/frame.cc +10 -0
- data/src/core/ext/transport/chttp2/transport/frame.h +2 -2
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/header_assembler.h +299 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +11 -5
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +12 -1
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +1017 -0
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +593 -0
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +19 -22
- data/{third_party/abseil-cpp/absl/strings/cord_buffer.cc → src/core/ext/transport/chttp2/transport/http2_stats_collector.cc} +14 -14
- data/src/core/ext/transport/chttp2/transport/http2_stats_collector.h +33 -0
- data/src/core/ext/transport/chttp2/transport/http2_status.h +6 -1
- data/src/core/ext/transport/chttp2/transport/http2_transport.cc +43 -0
- data/src/core/ext/transport/chttp2/transport/http2_transport.h +65 -0
- data/src/core/ext/transport/chttp2/transport/http2_ztrace_collector.h +0 -29
- data/src/core/ext/transport/chttp2/transport/internal.h +18 -8
- data/src/core/ext/transport/chttp2/transport/keepalive.cc +105 -0
- data/src/core/ext/transport/chttp2/transport/keepalive.h +138 -0
- data/src/core/ext/transport/chttp2/transport/message_assembler.h +185 -0
- data/src/core/ext/transport/chttp2/transport/parsing.cc +2 -4
- data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +19 -0
- data/src/core/ext/transport/chttp2/transport/ping_promise.cc +151 -0
- data/src/core/ext/transport/chttp2/transport/ping_promise.h +180 -0
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +5 -9
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +11 -0
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +39 -1
- data/src/core/ext/transport/chttp2/transport/transport_common.cc +19 -0
- data/src/core/ext/transport/chttp2/transport/transport_common.h +27 -0
- data/src/core/ext/transport/chttp2/transport/writing.cc +37 -11
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb.h +571 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.c +120 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.h +36 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb.h +1272 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.c +312 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.h +50 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb.h +984 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.c +226 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.h +44 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.c +175 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.h +82 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.c +135 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.h +67 -0
- data/src/core/filter/auth/auth_filters.h +0 -25
- data/src/core/filter/auth/client_auth_filter.cc +0 -118
- data/src/core/filter/filter_args.h +9 -23
- data/src/core/handshaker/handshaker.cc +23 -14
- data/src/core/handshaker/handshaker.h +3 -0
- data/src/core/handshaker/http_connect/http_connect_handshaker.cc +3 -1
- data/src/core/handshaker/security/legacy_secure_endpoint.cc +6 -5
- data/src/core/handshaker/security/secure_endpoint.cc +70 -25
- data/src/core/handshaker/security/security_handshaker.cc +4 -1
- data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +7 -1
- data/src/core/lib/channel/channel_args.cc +15 -0
- data/src/core/lib/channel/channel_args.h +3 -0
- data/src/core/lib/channel/channel_stack.cc +22 -23
- data/src/core/lib/channel/channel_stack.h +9 -7
- data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -1
- data/src/core/lib/channel/channel_stack_builder_impl.h +2 -7
- data/src/core/lib/channel/promise_based_filter.h +5 -5
- data/src/core/lib/debug/trace_impl.h +0 -1
- data/src/core/lib/event_engine/ares_resolver.cc +165 -46
- data/src/core/lib/event_engine/ares_resolver.h +48 -2
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +3 -1
- data/src/core/lib/event_engine/cf_engine/cf_engine.h +1 -4
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +2 -6
- data/src/core/lib/event_engine/endpoint_channel_arg_wrapper.cc +40 -0
- data/src/core/lib/event_engine/endpoint_channel_arg_wrapper.h +60 -0
- data/src/core/lib/event_engine/event_engine.cc +7 -0
- data/src/core/lib/event_engine/extensions/channelz.h +10 -6
- data/src/core/lib/event_engine/grpc_polled_fd.h +5 -0
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +130 -162
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +11 -15
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +75 -117
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +7 -9
- data/src/core/lib/event_engine/posix_engine/event_poller.h +18 -15
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +0 -18
- data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.cc +124 -0
- data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.h +243 -0
- data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +29 -19
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +6 -2
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +6 -1
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +145 -92
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +9 -19
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +333 -116
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +61 -18
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +45 -37
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +6 -4
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +32 -142
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +6 -5
- data/src/core/lib/event_engine/posix_engine/posix_interface.h +211 -0
- data/src/core/lib/event_engine/posix_engine/posix_interface_posix.cc +1083 -0
- data/src/core/lib/event_engine/posix_engine/posix_interface_windows.cc +281 -0
- data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.cc +154 -0
- data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.h +174 -0
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +3 -719
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +10 -170
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +33 -22
- data/src/core/lib/event_engine/posix_engine/timer_manager.h +13 -11
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +117 -151
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +26 -94
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +26 -25
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +6 -2
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +36 -62
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +6 -2
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +7 -6
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +12 -6
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +3 -1
- data/src/core/lib/event_engine/shim.cc +9 -0
- data/src/core/lib/event_engine/shim.h +3 -0
- data/src/core/lib/event_engine/thread_pool/thread_pool.h +7 -3
- data/src/core/lib/event_engine/thread_pool/thread_pool_factory.cc +0 -17
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +4 -2
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +3 -2
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +4 -0
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.h +4 -0
- data/src/core/lib/event_engine/windows/windows_endpoint.h +2 -6
- data/src/core/lib/event_engine/windows/windows_engine.cc +0 -1
- data/src/core/lib/event_engine/windows/windows_engine.h +1 -3
- data/src/core/lib/event_engine/windows/windows_listener.cc +14 -2
- data/src/core/lib/experiments/experiments.cc +45 -93
- data/src/core/lib/experiments/experiments.h +21 -51
- data/src/core/lib/iomgr/endpoint.cc +4 -3
- data/src/core/lib/iomgr/endpoint.h +7 -4
- data/src/core/lib/iomgr/endpoint_cfstream.cc +3 -2
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +7 -2
- data/src/core/lib/iomgr/ev_poll_posix.cc +7 -2
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +4 -6
- data/src/core/lib/iomgr/tcp_posix.cc +12 -6
- data/src/core/lib/iomgr/tcp_windows.cc +3 -2
- data/src/core/lib/promise/activity.h +1 -0
- data/src/core/lib/promise/arena_promise.h +23 -7
- data/src/core/lib/promise/detail/promise_factory.h +10 -0
- data/src/core/lib/promise/detail/promise_like.h +118 -11
- data/src/core/lib/promise/detail/promise_variant.h +50 -0
- data/src/core/lib/promise/detail/seq_state.h +687 -548
- data/src/core/lib/promise/if.h +20 -0
- data/src/core/lib/promise/inter_activity_latch.h +147 -0
- data/src/core/lib/promise/inter_activity_mutex.h +547 -0
- data/src/core/lib/promise/loop.h +65 -3
- data/src/core/lib/promise/map.h +24 -0
- data/src/core/lib/promise/match_promise.h +103 -0
- data/src/core/lib/promise/mpsc.cc +425 -0
- data/src/core/lib/promise/mpsc.h +490 -0
- data/src/core/lib/promise/party.cc +50 -1
- data/src/core/lib/promise/party.h +66 -1
- data/src/core/lib/promise/race.h +31 -0
- data/src/core/lib/promise/seq.h +4 -1
- data/src/core/lib/promise/status_flag.h +7 -0
- data/src/core/lib/promise/try_seq.h +4 -1
- data/src/core/lib/promise/wait_set.cc +28 -0
- data/src/core/lib/promise/wait_set.h +86 -0
- data/src/core/lib/resource_quota/arena.h +19 -0
- data/src/core/lib/slice/slice.h +5 -0
- data/src/core/lib/surface/channel_create.cc +88 -13
- data/src/core/lib/surface/channel_create.h +4 -0
- data/src/core/lib/surface/channel_init.cc +164 -47
- data/src/core/lib/surface/channel_init.h +64 -1
- data/src/core/lib/surface/filter_stack_call.cc +18 -9
- data/src/core/lib/surface/init.cc +6 -15
- data/src/core/lib/surface/legacy_channel.cc +3 -5
- data/src/core/lib/surface/legacy_channel.h +3 -1
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/promise_endpoint.cc +110 -0
- data/src/core/lib/transport/promise_endpoint.h +307 -0
- data/src/core/load_balancing/child_policy_handler.cc +2 -4
- data/src/core/load_balancing/delegating_helper.h +2 -3
- data/src/core/load_balancing/health_check_client.cc +1 -5
- data/src/core/load_balancing/lb_policy.h +1 -3
- data/src/core/load_balancing/oob_backend_metric.cc +1 -5
- data/src/core/load_balancing/pick_first/pick_first.cc +3 -0
- data/src/core/load_balancing/xds/cds.cc +10 -1
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +2 -0
- data/src/core/resolver/xds/xds_config.cc +6 -3
- data/src/core/resolver/xds/xds_config.h +9 -4
- data/src/core/resolver/xds/xds_dependency_manager.cc +21 -6
- data/src/core/resolver/xds/xds_dependency_manager.h +2 -1
- data/src/core/resolver/xds/xds_resolver.cc +31 -11
- data/src/core/server/server.cc +83 -12
- data/src/core/server/server.h +21 -2
- data/src/core/server/xds_server_config_fetcher.cc +63 -25
- data/src/core/service_config/service_config.h +1 -1
- data/src/core/service_config/service_config_impl.h +1 -1
- data/src/core/telemetry/context_list_entry.cc +38 -0
- data/src/core/telemetry/context_list_entry.h +42 -12
- data/src/core/telemetry/stats_data.cc +233 -207
- data/src/core/telemetry/stats_data.h +250 -153
- data/src/core/telemetry/tcp_tracer.h +1 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +11 -3
- data/src/core/tsi/fake_transport_security.cc +17 -0
- data/src/core/tsi/ssl_transport_security.cc +2 -0
- data/src/core/tsi/transport_security_grpc.cc +8 -0
- data/src/core/tsi/transport_security_grpc.h +15 -0
- data/src/core/util/backoff.cc +1 -5
- data/src/core/util/backoff.h +1 -0
- data/src/core/util/down_cast.h +1 -1
- data/src/core/util/function_signature.h +15 -1
- data/src/core/util/http_client/httpcli.cc +12 -5
- data/src/core/util/http_client/httpcli.h +4 -1
- data/src/core/util/latent_see.h +8 -5
- data/src/core/util/log.cc +4 -0
- data/src/core/util/memory_usage.h +268 -0
- data/src/core/util/per_cpu.cc +2 -0
- data/src/core/util/per_cpu.h +7 -0
- data/src/core/util/shared_bit_gen.h +20 -0
- data/src/core/util/single_set_ptr.h +2 -2
- data/src/core/util/upb_utils.h +42 -0
- data/src/core/util/uri.cc +3 -2
- data/src/core/util/useful.h +53 -2
- data/src/core/util/wait_for_single_owner.cc +31 -0
- data/src/core/util/wait_for_single_owner.h +24 -0
- data/src/core/xds/grpc/xds_bootstrap_grpc.cc +2 -0
- data/src/core/xds/grpc/xds_bootstrap_grpc.h +5 -0
- data/src/core/xds/grpc/xds_client_grpc.cc +6 -2
- data/src/core/xds/grpc/xds_common_types_parser.cc +138 -50
- data/src/core/xds/grpc/xds_common_types_parser.h +12 -0
- data/src/core/xds/grpc/xds_http_filter.h +7 -0
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +22 -0
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +3 -0
- data/src/core/xds/grpc/xds_route_config_parser.cc +15 -38
- data/src/core/xds/grpc/xds_server_grpc.cc +63 -13
- data/src/core/xds/grpc/xds_server_grpc.h +10 -2
- data/src/core/xds/grpc/xds_server_grpc_interface.h +4 -0
- data/src/core/xds/grpc/xds_transport_grpc.cc +18 -0
- data/src/core/xds/xds_client/xds_bootstrap.h +2 -0
- data/src/core/xds/xds_client/xds_client.cc +26 -5
- data/src/ruby/ext/grpc/extconf.rb +2 -0
- data/src/ruby/ext/grpc/rb_call.c +1 -8
- data/src/ruby/ext/grpc/rb_channel.c +72 -568
- data/src/ruby/ext/grpc/rb_channel.h +0 -3
- data/src/ruby/ext/grpc/rb_completion_queue.c +26 -14
- data/src/ruby/ext/grpc/rb_completion_queue.h +1 -7
- data/src/ruby/ext/grpc/rb_grpc.c +9 -5
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +1 -1
- data/src/ruby/ext/grpc/rb_loader.c +0 -4
- data/src/ruby/ext/grpc/rb_server.c +31 -50
- data/src/ruby/lib/grpc/generic/client_stub.rb +4 -4
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/spec/core_spec.rb +22 -0
- data/src/ruby/spec/generic/active_call_spec.rb +1 -1
- data/third_party/abseil-cpp/absl/algorithm/container.h +2 -19
- data/third_party/abseil-cpp/absl/base/attributes.h +76 -7
- data/third_party/abseil-cpp/absl/base/call_once.h +11 -12
- data/third_party/abseil-cpp/absl/base/config.h +20 -129
- data/third_party/abseil-cpp/absl/base/{internal/fast_type_id.h → fast_type_id.h} +11 -16
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.cc +0 -5
- data/third_party/abseil-cpp/absl/base/internal/cycleclock_config.h +7 -7
- data/third_party/abseil-cpp/absl/base/internal/endian.h +34 -38
- data/third_party/abseil-cpp/absl/base/internal/iterator_traits.h +71 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +6 -5
- data/third_party/abseil-cpp/absl/base/internal/{nullability_impl.h → nullability_deprecated.h} +45 -8
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +0 -9
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +3 -13
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +6 -6
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +8 -3
- data/third_party/abseil-cpp/absl/base/no_destructor.h +11 -32
- data/third_party/abseil-cpp/absl/base/nullability.h +84 -72
- data/third_party/abseil-cpp/absl/base/options.h +3 -80
- data/third_party/abseil-cpp/absl/base/policy_checks.h +7 -7
- data/third_party/abseil-cpp/absl/cleanup/cleanup.h +1 -3
- data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -4
- data/third_party/abseil-cpp/absl/container/btree_map.h +4 -2
- data/third_party/abseil-cpp/absl/container/btree_set.h +4 -2
- data/third_party/abseil-cpp/absl/container/fixed_array.h +7 -14
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +5 -0
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +6 -1
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +8 -5
- data/third_party/abseil-cpp/absl/container/internal/btree.h +132 -29
- data/third_party/abseil-cpp/absl/container/internal/btree_container.h +175 -71
- data/third_party/abseil-cpp/absl/container/internal/common.h +43 -0
- data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -2
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +9 -10
- data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +1 -8
- data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +0 -4
- data/third_party/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +527 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +20 -4
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +31 -12
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +2 -7
- data/third_party/abseil-cpp/absl/container/internal/layout.h +26 -42
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +199 -68
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +1354 -183
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +881 -1424
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl.h +80 -0
- data/third_party/abseil-cpp/absl/crc/crc32c.cc +0 -4
- data/third_party/abseil-cpp/absl/crc/crc32c.h +7 -5
- data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +0 -22
- data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +45 -74
- data/third_party/abseil-cpp/absl/debugging/internal/addresses.h +57 -0
- data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc +1 -1
- data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.h +5 -5
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +8 -35
- data/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.cc +16 -16
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +40 -37
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +16 -7
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +14 -5
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +10 -4
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +27 -16
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +13 -4
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +4 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +15 -28
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +19 -9
- data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +144 -27
- data/third_party/abseil-cpp/absl/debugging/stacktrace.h +73 -5
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +19 -9
- data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +3 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +25 -6
- data/third_party/abseil-cpp/absl/flags/commandlineflag.h +2 -2
- data/third_party/abseil-cpp/absl/flags/flag.h +4 -3
- data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +2 -2
- data/third_party/abseil-cpp/absl/flags/internal/flag.cc +2 -1
- data/third_party/abseil-cpp/absl/flags/internal/flag.h +7 -6
- data/third_party/abseil-cpp/absl/flags/internal/registry.h +4 -3
- data/third_party/abseil-cpp/absl/flags/reflection.cc +2 -3
- data/third_party/abseil-cpp/absl/functional/any_invocable.h +8 -10
- data/third_party/abseil-cpp/absl/functional/function_ref.h +2 -9
- data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +110 -226
- data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +10 -12
- data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +2 -5
- data/third_party/abseil-cpp/absl/hash/hash.h +18 -0
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +1 -5
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -61
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +25 -68
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h +2 -6
- data/third_party/abseil-cpp/absl/hash/internal/weakly_mixed_integer.h +38 -0
- data/third_party/abseil-cpp/absl/log/check.h +2 -1
- data/third_party/abseil-cpp/absl/log/globals.h +4 -5
- data/third_party/abseil-cpp/absl/log/internal/append_truncated.h +28 -0
- data/third_party/abseil-cpp/absl/log/internal/check_op.cc +22 -22
- data/third_party/abseil-cpp/absl/log/internal/check_op.h +65 -62
- data/third_party/abseil-cpp/absl/log/internal/conditions.cc +5 -3
- data/third_party/abseil-cpp/absl/log/internal/conditions.h +7 -2
- data/third_party/abseil-cpp/absl/log/internal/log_message.cc +85 -43
- data/third_party/abseil-cpp/absl/log/internal/log_message.h +84 -59
- data/third_party/abseil-cpp/absl/log/internal/nullstream.h +1 -0
- data/third_party/abseil-cpp/absl/log/internal/proto.cc +3 -2
- data/third_party/abseil-cpp/absl/log/internal/proto.h +3 -3
- data/third_party/abseil-cpp/absl/log/internal/strip.h +4 -12
- data/third_party/abseil-cpp/absl/log/internal/vlog_config.h +8 -6
- data/third_party/abseil-cpp/absl/log/internal/voidify.h +10 -4
- data/third_party/abseil-cpp/absl/log/log.h +48 -35
- data/third_party/abseil-cpp/absl/log/log_sink_registry.h +2 -2
- data/third_party/abseil-cpp/absl/meta/type_traits.h +46 -175
- data/third_party/abseil-cpp/absl/numeric/bits.h +68 -2
- data/third_party/abseil-cpp/absl/numeric/int128.cc +0 -52
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +7 -3
- data/third_party/abseil-cpp/absl/profiling/internal/exponential_biased.cc +1 -1
- data/third_party/abseil-cpp/absl/random/bit_gen_ref.h +10 -11
- data/third_party/abseil-cpp/absl/random/distributions.h +6 -8
- data/third_party/abseil-cpp/absl/random/gaussian_distribution.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +5 -6
- data/third_party/abseil-cpp/absl/random/internal/{pool_urbg.cc → entropy_pool.cc} +22 -90
- data/third_party/abseil-cpp/absl/random/internal/entropy_pool.h +35 -0
- data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +5 -6
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +1 -1
- data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +20 -12
- data/third_party/abseil-cpp/absl/random/internal/seed_material.h +5 -5
- data/third_party/abseil-cpp/absl/random/random.h +88 -53
- data/third_party/abseil-cpp/absl/random/seed_sequences.cc +6 -2
- data/third_party/abseil-cpp/absl/status/internal/status_internal.cc +3 -4
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +3 -4
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -3
- data/third_party/abseil-cpp/absl/status/status.cc +4 -8
- data/third_party/abseil-cpp/absl/status/status.h +8 -8
- data/third_party/abseil-cpp/absl/status/status_payload_printer.h +2 -2
- data/third_party/abseil-cpp/absl/status/statusor.cc +2 -2
- data/third_party/abseil-cpp/absl/status/statusor.h +6 -6
- data/third_party/abseil-cpp/absl/strings/ascii.cc +9 -9
- data/third_party/abseil-cpp/absl/strings/ascii.h +18 -18
- data/third_party/abseil-cpp/absl/strings/charconv.cc +21 -22
- data/third_party/abseil-cpp/absl/strings/charconv.h +5 -5
- data/third_party/abseil-cpp/absl/strings/cord.cc +54 -58
- data/third_party/abseil-cpp/absl/strings/cord.h +94 -83
- data/third_party/abseil-cpp/absl/strings/cord_analysis.cc +11 -11
- data/third_party/abseil-cpp/absl/strings/cord_analysis.h +3 -3
- data/third_party/abseil-cpp/absl/strings/escaping.cc +130 -149
- data/third_party/abseil-cpp/absl/strings/escaping.h +9 -10
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +6 -8
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +0 -4
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +0 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +7 -63
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +1 -11
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +0 -22
- data/third_party/abseil-cpp/absl/strings/internal/str_format/output.cc +5 -3
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +4 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +3 -3
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +0 -5
- data/third_party/abseil-cpp/absl/strings/internal/utf8.cc +96 -1
- data/third_party/abseil-cpp/absl/strings/internal/utf8.h +15 -1
- data/third_party/abseil-cpp/absl/strings/numbers.cc +53 -32
- data/third_party/abseil-cpp/absl/strings/numbers.h +87 -58
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +6 -7
- data/third_party/abseil-cpp/absl/strings/str_cat.h +32 -32
- data/third_party/abseil-cpp/absl/strings/str_format.h +18 -18
- data/third_party/abseil-cpp/absl/strings/str_replace.cc +3 -3
- data/third_party/abseil-cpp/absl/strings/str_replace.h +6 -6
- data/third_party/abseil-cpp/absl/strings/string_view.cc +4 -9
- data/third_party/abseil-cpp/absl/strings/string_view.h +27 -32
- data/third_party/abseil-cpp/absl/strings/strip.h +4 -4
- data/third_party/abseil-cpp/absl/strings/substitute.cc +5 -4
- data/third_party/abseil-cpp/absl/strings/substitute.h +66 -64
- data/third_party/abseil-cpp/absl/synchronization/internal/futex_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc +0 -5
- data/third_party/abseil-cpp/absl/synchronization/internal/pthread_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/sem_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter_base.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/win32_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +1 -1
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +97 -69
- data/third_party/abseil-cpp/absl/synchronization/notification.h +1 -1
- data/third_party/abseil-cpp/absl/time/civil_time.cc +1 -0
- data/third_party/abseil-cpp/absl/time/duration.cc +12 -7
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +90 -111
- data/third_party/abseil-cpp/absl/time/time.h +20 -15
- data/third_party/abseil-cpp/absl/types/optional.h +7 -747
- data/third_party/abseil-cpp/absl/types/span.h +13 -11
- data/third_party/abseil-cpp/absl/types/variant.h +5 -784
- data/third_party/abseil-cpp/absl/utility/utility.h +10 -185
- metadata +72 -20
- data/src/core/lib/event_engine/forkable.cc +0 -105
- data/src/core/lib/event_engine/forkable.h +0 -67
- data/src/core/lib/iomgr/python_util.h +0 -46
- data/third_party/abseil-cpp/absl/base/internal/inline_variable.h +0 -108
- data/third_party/abseil-cpp/absl/base/internal/invoke.h +0 -241
- data/third_party/abseil-cpp/absl/log/log_entry.cc +0 -41
- data/third_party/abseil-cpp/absl/random/internal/pool_urbg.h +0 -131
- data/third_party/abseil-cpp/absl/types/bad_optional_access.cc +0 -66
- data/third_party/abseil-cpp/absl/types/bad_optional_access.h +0 -78
- data/third_party/abseil-cpp/absl/types/bad_variant_access.cc +0 -82
- data/third_party/abseil-cpp/absl/types/bad_variant_access.h +0 -82
- data/third_party/abseil-cpp/absl/types/internal/optional.h +0 -352
- data/third_party/abseil-cpp/absl/types/internal/variant.h +0 -1622
@@ -66,7 +66,7 @@ ABSL_NAMESPACE_BEGIN
|
|
66
66
|
// {"$who", "Bob"},
|
67
67
|
// {"#Noun", "Apples"}});
|
68
68
|
// EXPECT_EQ("Bob bought 5 Apples. Thanks Bob!", s);
|
69
|
-
|
69
|
+
[[nodiscard]] std::string StrReplaceAll(
|
70
70
|
absl::string_view s,
|
71
71
|
std::initializer_list<std::pair<absl::string_view, absl::string_view>>
|
72
72
|
replacements);
|
@@ -114,7 +114,7 @@ std::string StrReplaceAll(absl::string_view s,
|
|
114
114
|
int StrReplaceAll(
|
115
115
|
std::initializer_list<std::pair<absl::string_view, absl::string_view>>
|
116
116
|
replacements,
|
117
|
-
|
117
|
+
std::string* absl_nonnull target);
|
118
118
|
|
119
119
|
// Overload of `StrReplaceAll()` to replace patterns within a given output
|
120
120
|
// string *in place* with replacements provided within a container of key/value
|
@@ -130,7 +130,7 @@ int StrReplaceAll(
|
|
130
130
|
// EXPECT_EQ("if (ptr < &foo)", s);
|
131
131
|
template <typename StrToStrMapping>
|
132
132
|
int StrReplaceAll(const StrToStrMapping& replacements,
|
133
|
-
|
133
|
+
std::string* absl_nonnull target);
|
134
134
|
|
135
135
|
// Implementation details only, past this point.
|
136
136
|
namespace strings_internal {
|
@@ -187,8 +187,8 @@ std::vector<ViableSubstitution> FindSubstitutions(
|
|
187
187
|
}
|
188
188
|
|
189
189
|
int ApplySubstitutions(absl::string_view s,
|
190
|
-
|
191
|
-
|
190
|
+
std::vector<ViableSubstitution>* absl_nonnull subs_ptr,
|
191
|
+
std::string* absl_nonnull result_ptr);
|
192
192
|
|
193
193
|
} // namespace strings_internal
|
194
194
|
|
@@ -204,7 +204,7 @@ std::string StrReplaceAll(absl::string_view s,
|
|
204
204
|
|
205
205
|
template <typename StrToStrMapping>
|
206
206
|
int StrReplaceAll(const StrToStrMapping& replacements,
|
207
|
-
|
207
|
+
std::string* absl_nonnull target) {
|
208
208
|
auto subs = strings_internal::FindSubstitutions(*target, replacements);
|
209
209
|
if (subs.empty()) return 0;
|
210
210
|
|
@@ -30,10 +30,10 @@ namespace {
|
|
30
30
|
|
31
31
|
// This is significantly faster for case-sensitive matches with very
|
32
32
|
// few possible matches.
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
33
|
+
const char* absl_nullable memmatch(const char* absl_nullable phaystack,
|
34
|
+
size_t haylen,
|
35
|
+
const char* absl_nullable pneedle,
|
36
|
+
size_t neelen) {
|
37
37
|
if (0 == neelen) {
|
38
38
|
return phaystack; // even if haylen is 0
|
39
39
|
}
|
@@ -233,11 +233,6 @@ string_view::size_type string_view::find_last_not_of(
|
|
233
233
|
return npos;
|
234
234
|
}
|
235
235
|
|
236
|
-
#ifdef ABSL_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL
|
237
|
-
constexpr string_view::size_type string_view::npos;
|
238
|
-
constexpr string_view::size_type string_view::kMaxSize;
|
239
|
-
#endif
|
240
|
-
|
241
236
|
ABSL_NAMESPACE_END
|
242
237
|
} // namespace absl
|
243
238
|
|
@@ -163,11 +163,11 @@ class ABSL_ATTRIBUTE_VIEW string_view {
|
|
163
163
|
public:
|
164
164
|
using traits_type = std::char_traits<char>;
|
165
165
|
using value_type = char;
|
166
|
-
using pointer =
|
167
|
-
using const_pointer =
|
166
|
+
using pointer = char* absl_nullable;
|
167
|
+
using const_pointer = const char* absl_nullable;
|
168
168
|
using reference = char&;
|
169
169
|
using const_reference = const char&;
|
170
|
-
using const_iterator =
|
170
|
+
using const_iterator = const char* absl_nullable;
|
171
171
|
using iterator = const_iterator;
|
172
172
|
using const_reverse_iterator = std::reverse_iterator<const_iterator>;
|
173
173
|
using reverse_iterator = const_reverse_iterator;
|
@@ -197,11 +197,11 @@ class ABSL_ATTRIBUTE_VIEW string_view {
|
|
197
197
|
// instead (see below).
|
198
198
|
// The length check is skipped since it is unnecessary and causes code bloat.
|
199
199
|
constexpr string_view( // NOLINT(runtime/explicit)
|
200
|
-
|
200
|
+
const char* absl_nonnull str)
|
201
201
|
: ptr_(str), length_(str ? StrlenInternal(str) : 0) {}
|
202
202
|
|
203
203
|
// Constructor of a `string_view` from a `const char*` and length.
|
204
|
-
constexpr string_view(
|
204
|
+
constexpr string_view(const char* absl_nullable data, size_type len)
|
205
205
|
: ptr_(data), length_(CheckLengthInternal(len)) {}
|
206
206
|
|
207
207
|
constexpr string_view(const string_view&) noexcept = default;
|
@@ -398,7 +398,7 @@ class ABSL_ATTRIBUTE_VIEW string_view {
|
|
398
398
|
if (ABSL_PREDICT_FALSE(pos > length_)) {
|
399
399
|
base_internal::ThrowStdOutOfRange("absl::string_view::substr");
|
400
400
|
}
|
401
|
-
return string_view(ptr_ + pos,
|
401
|
+
return string_view(ptr_ + pos, (std::min)(n, length_ - pos));
|
402
402
|
}
|
403
403
|
|
404
404
|
// string_view::compare()
|
@@ -409,10 +409,10 @@ class ABSL_ATTRIBUTE_VIEW string_view {
|
|
409
409
|
// is greater than `x`.
|
410
410
|
constexpr int compare(string_view x) const noexcept {
|
411
411
|
return CompareImpl(length_, x.length_,
|
412
|
-
|
412
|
+
(std::min)(length_, x.length_) == 0
|
413
413
|
? 0
|
414
414
|
: ABSL_INTERNAL_STRING_VIEW_MEMCMP(
|
415
|
-
ptr_, x.ptr_,
|
415
|
+
ptr_, x.ptr_, (std::min)(length_, x.length_)));
|
416
416
|
}
|
417
417
|
|
418
418
|
// Overload of `string_view::compare()` for comparing a substring of the
|
@@ -430,21 +430,21 @@ class ABSL_ATTRIBUTE_VIEW string_view {
|
|
430
430
|
|
431
431
|
// Overload of `string_view::compare()` for comparing a `string_view` and a
|
432
432
|
// a different C-style string `s`.
|
433
|
-
constexpr int compare(
|
433
|
+
constexpr int compare(const char* absl_nonnull s) const {
|
434
434
|
return compare(string_view(s));
|
435
435
|
}
|
436
436
|
|
437
437
|
// Overload of `string_view::compare()` for comparing a substring of the
|
438
438
|
// `string_view` and a different string C-style string `s`.
|
439
439
|
constexpr int compare(size_type pos1, size_type count1,
|
440
|
-
|
440
|
+
const char* absl_nonnull s) const {
|
441
441
|
return substr(pos1, count1).compare(string_view(s));
|
442
442
|
}
|
443
443
|
|
444
444
|
// Overload of `string_view::compare()` for comparing a substring of the
|
445
445
|
// `string_view` and a substring of a different C-style string `s`.
|
446
446
|
constexpr int compare(size_type pos1, size_type count1,
|
447
|
-
|
447
|
+
const char* absl_nonnull s, size_type count2) const {
|
448
448
|
return substr(pos1, count1).compare(string_view(s, count2));
|
449
449
|
}
|
450
450
|
|
@@ -463,14 +463,14 @@ class ABSL_ATTRIBUTE_VIEW string_view {
|
|
463
463
|
|
464
464
|
// Overload of `string_view::find()` for finding a substring of a different
|
465
465
|
// C-style string `s` within the `string_view`.
|
466
|
-
size_type find(
|
466
|
+
size_type find(const char* absl_nonnull s, size_type pos,
|
467
467
|
size_type count) const {
|
468
468
|
return find(string_view(s, count), pos);
|
469
469
|
}
|
470
470
|
|
471
471
|
// Overload of `string_view::find()` for finding a different C-style string
|
472
472
|
// `s` within the `string_view`.
|
473
|
-
size_type find(
|
473
|
+
size_type find(const char* absl_nonnull s, size_type pos = 0) const {
|
474
474
|
return find(string_view(s), pos);
|
475
475
|
}
|
476
476
|
|
@@ -487,14 +487,14 @@ class ABSL_ATTRIBUTE_VIEW string_view {
|
|
487
487
|
|
488
488
|
// Overload of `string_view::rfind()` for finding a substring of a different
|
489
489
|
// C-style string `s` within the `string_view`.
|
490
|
-
size_type rfind(
|
490
|
+
size_type rfind(const char* absl_nonnull s, size_type pos,
|
491
491
|
size_type count) const {
|
492
492
|
return rfind(string_view(s, count), pos);
|
493
493
|
}
|
494
494
|
|
495
495
|
// Overload of `string_view::rfind()` for finding a different C-style string
|
496
496
|
// `s` within the `string_view`.
|
497
|
-
size_type rfind(
|
497
|
+
size_type rfind(const char* absl_nonnull s, size_type pos = npos) const {
|
498
498
|
return rfind(string_view(s), pos);
|
499
499
|
}
|
500
500
|
|
@@ -513,15 +513,14 @@ class ABSL_ATTRIBUTE_VIEW string_view {
|
|
513
513
|
|
514
514
|
// Overload of `string_view::find_first_of()` for finding a substring of a
|
515
515
|
// different C-style string `s` within the `string_view`.
|
516
|
-
size_type find_first_of(
|
516
|
+
size_type find_first_of(const char* absl_nonnull s, size_type pos,
|
517
517
|
size_type count) const {
|
518
518
|
return find_first_of(string_view(s, count), pos);
|
519
519
|
}
|
520
520
|
|
521
521
|
// Overload of `string_view::find_first_of()` for finding a different C-style
|
522
522
|
// string `s` within the `string_view`.
|
523
|
-
size_type find_first_of(
|
524
|
-
size_type pos = 0) const {
|
523
|
+
size_type find_first_of(const char* absl_nonnull s, size_type pos = 0) const {
|
525
524
|
return find_first_of(string_view(s), pos);
|
526
525
|
}
|
527
526
|
|
@@ -540,14 +539,14 @@ class ABSL_ATTRIBUTE_VIEW string_view {
|
|
540
539
|
|
541
540
|
// Overload of `string_view::find_last_of()` for finding a substring of a
|
542
541
|
// different C-style string `s` within the `string_view`.
|
543
|
-
size_type find_last_of(
|
542
|
+
size_type find_last_of(const char* absl_nonnull s, size_type pos,
|
544
543
|
size_type count) const {
|
545
544
|
return find_last_of(string_view(s, count), pos);
|
546
545
|
}
|
547
546
|
|
548
547
|
// Overload of `string_view::find_last_of()` for finding a different C-style
|
549
548
|
// string `s` within the `string_view`.
|
550
|
-
size_type find_last_of(
|
549
|
+
size_type find_last_of(const char* absl_nonnull s,
|
551
550
|
size_type pos = npos) const {
|
552
551
|
return find_last_of(string_view(s), pos);
|
553
552
|
}
|
@@ -565,14 +564,14 @@ class ABSL_ATTRIBUTE_VIEW string_view {
|
|
565
564
|
|
566
565
|
// Overload of `string_view::find_first_not_of()` for finding a substring of a
|
567
566
|
// different C-style string `s` within the `string_view`.
|
568
|
-
size_type find_first_not_of(
|
567
|
+
size_type find_first_not_of(const char* absl_nonnull s, size_type pos,
|
569
568
|
size_type count) const {
|
570
569
|
return find_first_not_of(string_view(s, count), pos);
|
571
570
|
}
|
572
571
|
|
573
572
|
// Overload of `string_view::find_first_not_of()` for finding a different
|
574
573
|
// C-style string `s` within the `string_view`.
|
575
|
-
size_type find_first_not_of(
|
574
|
+
size_type find_first_not_of(const char* absl_nonnull s,
|
576
575
|
size_type pos = 0) const {
|
577
576
|
return find_first_not_of(string_view(s), pos);
|
578
577
|
}
|
@@ -591,14 +590,14 @@ class ABSL_ATTRIBUTE_VIEW string_view {
|
|
591
590
|
|
592
591
|
// Overload of `string_view::find_last_not_of()` for finding a substring of a
|
593
592
|
// different C-style string `s` within the `string_view`.
|
594
|
-
size_type find_last_not_of(
|
593
|
+
size_type find_last_not_of(const char* absl_nonnull s, size_type pos,
|
595
594
|
size_type count) const {
|
596
595
|
return find_last_not_of(string_view(s, count), pos);
|
597
596
|
}
|
598
597
|
|
599
598
|
// Overload of `string_view::find_last_not_of()` for finding a different
|
600
599
|
// C-style string `s` within the `string_view`.
|
601
|
-
size_type find_last_not_of(
|
600
|
+
size_type find_last_not_of(const char* absl_nonnull s,
|
602
601
|
size_type pos = npos) const {
|
603
602
|
return find_last_not_of(string_view(s), pos);
|
604
603
|
}
|
@@ -659,7 +658,7 @@ class ABSL_ATTRIBUTE_VIEW string_view {
|
|
659
658
|
// The constructor from std::string delegates to this constructor.
|
660
659
|
// See the comment on that constructor for the rationale.
|
661
660
|
struct SkipCheckLengthTag {};
|
662
|
-
string_view(
|
661
|
+
string_view(const char* absl_nullable data, size_type len,
|
663
662
|
SkipCheckLengthTag) noexcept
|
664
663
|
: ptr_(data), length_(len) {}
|
665
664
|
|
@@ -671,7 +670,7 @@ class ABSL_ATTRIBUTE_VIEW string_view {
|
|
671
670
|
return len;
|
672
671
|
}
|
673
672
|
|
674
|
-
static constexpr size_type StrlenInternal(
|
673
|
+
static constexpr size_type StrlenInternal(const char* absl_nonnull str) {
|
675
674
|
#if defined(_MSC_VER) && !defined(__clang__)
|
676
675
|
// MSVC 2017+ can evaluate this at compile-time.
|
677
676
|
const char* begin = str;
|
@@ -689,10 +688,6 @@ class ABSL_ATTRIBUTE_VIEW string_view {
|
|
689
688
|
#endif
|
690
689
|
}
|
691
690
|
|
692
|
-
static constexpr size_t Min(size_type length_a, size_type length_b) {
|
693
|
-
return length_a < length_b ? length_a : length_b;
|
694
|
-
}
|
695
|
-
|
696
691
|
static constexpr int CompareImpl(size_type length_a, size_type length_b,
|
697
692
|
int compare_result) {
|
698
693
|
return compare_result == 0 ? static_cast<int>(length_a > length_b) -
|
@@ -700,7 +695,7 @@ class ABSL_ATTRIBUTE_VIEW string_view {
|
|
700
695
|
: (compare_result < 0 ? -1 : 1);
|
701
696
|
}
|
702
697
|
|
703
|
-
|
698
|
+
const char* absl_nullable ptr_;
|
704
699
|
size_type length_;
|
705
700
|
};
|
706
701
|
|
@@ -761,7 +756,7 @@ inline string_view ClippedSubstr(string_view s, size_t pos,
|
|
761
756
|
// Creates an `absl::string_view` from a pointer `p` even if it's null-valued.
|
762
757
|
// This function should be used where an `absl::string_view` can be created from
|
763
758
|
// a possibly-null pointer.
|
764
|
-
constexpr string_view NullSafeStringView(
|
759
|
+
constexpr string_view NullSafeStringView(const char* absl_nullable p) {
|
765
760
|
return p ? string_view(p) : string_view();
|
766
761
|
}
|
767
762
|
|
@@ -45,7 +45,7 @@ ABSL_NAMESPACE_BEGIN
|
|
45
45
|
// absl::string_view input("abc");
|
46
46
|
// EXPECT_TRUE(absl::ConsumePrefix(&input, "a"));
|
47
47
|
// EXPECT_EQ(input, "bc");
|
48
|
-
inline constexpr bool ConsumePrefix(absl::
|
48
|
+
inline constexpr bool ConsumePrefix(absl::string_view* absl_nonnull str,
|
49
49
|
absl::string_view expected) {
|
50
50
|
if (!absl::StartsWith(*str, expected)) return false;
|
51
51
|
str->remove_prefix(expected.size());
|
@@ -62,7 +62,7 @@ inline constexpr bool ConsumePrefix(absl::Nonnull<absl::string_view*> str,
|
|
62
62
|
// absl::string_view input("abcdef");
|
63
63
|
// EXPECT_TRUE(absl::ConsumeSuffix(&input, "def"));
|
64
64
|
// EXPECT_EQ(input, "abc");
|
65
|
-
inline constexpr bool ConsumeSuffix(absl::
|
65
|
+
inline constexpr bool ConsumeSuffix(absl::string_view* absl_nonnull str,
|
66
66
|
absl::string_view expected) {
|
67
67
|
if (!absl::EndsWith(*str, expected)) return false;
|
68
68
|
str->remove_suffix(expected.size());
|
@@ -74,7 +74,7 @@ inline constexpr bool ConsumeSuffix(absl::Nonnull<absl::string_view*> str,
|
|
74
74
|
// Returns a view into the input string `str` with the given `prefix` removed,
|
75
75
|
// but leaving the original string intact. If the prefix does not match at the
|
76
76
|
// start of the string, returns the original string instead.
|
77
|
-
|
77
|
+
[[nodiscard]] inline constexpr absl::string_view StripPrefix(
|
78
78
|
absl::string_view str ABSL_ATTRIBUTE_LIFETIME_BOUND,
|
79
79
|
absl::string_view prefix) {
|
80
80
|
if (absl::StartsWith(str, prefix)) str.remove_prefix(prefix.size());
|
@@ -86,7 +86,7 @@ ABSL_MUST_USE_RESULT inline constexpr absl::string_view StripPrefix(
|
|
86
86
|
// Returns a view into the input string `str` with the given `suffix` removed,
|
87
87
|
// but leaving the original string intact. If the suffix does not match at the
|
88
88
|
// end of the string, returns the original string instead.
|
89
|
-
|
89
|
+
[[nodiscard]] inline constexpr absl::string_view StripSuffix(
|
90
90
|
absl::string_view str ABSL_ATTRIBUTE_LIFETIME_BOUND,
|
91
91
|
absl::string_view suffix) {
|
92
92
|
if (absl::EndsWith(str, suffix)) str.remove_suffix(suffix.size());
|
@@ -35,9 +35,10 @@ namespace absl {
|
|
35
35
|
ABSL_NAMESPACE_BEGIN
|
36
36
|
namespace substitute_internal {
|
37
37
|
|
38
|
-
void SubstituteAndAppendArray(
|
39
|
-
|
40
|
-
|
38
|
+
void SubstituteAndAppendArray(std::string* absl_nonnull output,
|
39
|
+
absl::string_view format,
|
40
|
+
const absl::string_view* absl_nullable args_array,
|
41
|
+
size_t num_args) {
|
41
42
|
// Determine total size needed.
|
42
43
|
size_t size = 0;
|
43
44
|
for (size_t i = 0; i < format.size(); i++) {
|
@@ -109,7 +110,7 @@ void SubstituteAndAppendArray(
|
|
109
110
|
assert(target == output->data() + output->size());
|
110
111
|
}
|
111
112
|
|
112
|
-
Arg::Arg(
|
113
|
+
Arg::Arg(const void* absl_nullable value) {
|
113
114
|
static_assert(sizeof(scratch_) >= sizeof(value) * 2 + 2,
|
114
115
|
"fix sizeof(scratch_)");
|
115
116
|
if (value == nullptr) {
|