re2 1.24.1 → 1.25.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.
- package/LICENSE +15 -20
- package/README.md +62 -4
- package/binding.gyp +1 -2
- package/lib/addon.cc +7 -3
- package/lib/exec.cc +4 -4
- package/lib/match.cc +4 -4
- package/lib/pattern.cc +148 -1
- package/lib/replace.cc +5 -4
- package/lib/search.cc +1 -1
- package/lib/set.cc +75 -0
- package/lib/test.cc +1 -1
- package/lib/unicode_properties.h +15840 -0
- package/lib/wrapped_re2.h +11 -4
- package/lib/wrapped_re2_set.h +3 -1
- package/llms-full.txt +37 -7
- package/llms.txt +4 -1
- package/package.json +11 -10
- package/re2.d.ts +2 -0
- package/vendor/abseil-cpp/CMake/AbseilDll.cmake +87 -74
- package/vendor/abseil-cpp/CMakeLists.txt +3 -3
- package/vendor/abseil-cpp/FAQ.md +130 -79
- package/vendor/abseil-cpp/MODULE.bazel +6 -7
- package/vendor/abseil-cpp/absl/BUILD.bazel +6 -0
- package/vendor/abseil-cpp/absl/algorithm/BUILD.bazel +4 -0
- package/vendor/abseil-cpp/absl/algorithm/CMakeLists.txt +4 -0
- package/vendor/abseil-cpp/absl/algorithm/algorithm.h +34 -2
- package/vendor/abseil-cpp/absl/algorithm/container.h +164 -17
- package/vendor/abseil-cpp/absl/algorithm/container_test.cc +390 -13
- package/vendor/abseil-cpp/absl/base/BUILD.bazel +53 -6
- package/vendor/abseil-cpp/absl/base/CMakeLists.txt +28 -4
- package/vendor/abseil-cpp/absl/base/attributes.h +61 -42
- package/vendor/abseil-cpp/absl/base/call_once.h +1 -0
- package/vendor/abseil-cpp/absl/base/casts.h +8 -1
- package/vendor/abseil-cpp/absl/base/casts_test.cc +3 -6
- package/vendor/abseil-cpp/absl/base/config.h +54 -10
- package/vendor/abseil-cpp/absl/base/exception_safety_testing_test.cc +9 -9
- package/vendor/abseil-cpp/absl/base/fast_type_id.h +30 -2
- package/vendor/abseil-cpp/absl/base/fast_type_id_test.cc +3 -0
- package/vendor/abseil-cpp/absl/base/internal/exception_safety_testing.h +15 -12
- package/vendor/abseil-cpp/absl/base/internal/hardening.h +136 -0
- package/vendor/abseil-cpp/absl/base/internal/hardening_test.cc +168 -0
- package/vendor/abseil-cpp/absl/base/internal/iterator_traits.h +2 -2
- package/vendor/abseil-cpp/absl/base/internal/low_level_alloc.cc +6 -0
- package/vendor/abseil-cpp/absl/base/internal/low_level_scheduling.h +77 -15
- package/vendor/abseil-cpp/absl/base/internal/sysinfo.cc +1 -2
- package/vendor/abseil-cpp/absl/base/internal/thread_identity.h +52 -0
- package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.h +5 -0
- package/vendor/abseil-cpp/absl/base/macros.h +36 -20
- package/vendor/abseil-cpp/absl/base/nullability.h +4 -3
- package/vendor/abseil-cpp/absl/base/optimization.h +3 -2
- package/vendor/abseil-cpp/absl/base/optimization_test.cc +4 -3
- package/vendor/abseil-cpp/absl/base/options.h +55 -1
- package/vendor/abseil-cpp/absl/base/policy_checks.h +5 -5
- package/vendor/abseil-cpp/absl/base/{internal/throw_delegate.cc → throw_delegate.cc} +9 -7
- package/vendor/abseil-cpp/absl/base/{internal/throw_delegate.h → throw_delegate.h} +4 -14
- package/vendor/abseil-cpp/absl/base/throw_delegate_test.cc +19 -28
- package/vendor/abseil-cpp/absl/cleanup/BUILD.bazel +2 -0
- package/vendor/abseil-cpp/absl/cleanup/CMakeLists.txt +2 -0
- package/vendor/abseil-cpp/absl/cleanup/cleanup.h +3 -2
- package/vendor/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -2
- package/vendor/abseil-cpp/absl/container/BUILD.bazel +19 -7
- package/vendor/abseil-cpp/absl/container/CMakeLists.txt +6 -5
- package/vendor/abseil-cpp/absl/container/btree_benchmark.cc +3 -5
- package/vendor/abseil-cpp/absl/container/btree_set.h +5 -5
- package/vendor/abseil-cpp/absl/container/btree_test.cc +11 -14
- package/vendor/abseil-cpp/absl/container/chunked_queue.h +8 -6
- package/vendor/abseil-cpp/absl/container/chunked_queue_test.cc +5 -5
- package/vendor/abseil-cpp/absl/container/fixed_array.h +14 -13
- package/vendor/abseil-cpp/absl/container/fixed_array_test.cc +3 -3
- package/vendor/abseil-cpp/absl/container/flat_hash_map.h +18 -6
- package/vendor/abseil-cpp/absl/container/flat_hash_map_test.cc +34 -1
- package/vendor/abseil-cpp/absl/container/flat_hash_set.h +21 -7
- package/vendor/abseil-cpp/absl/container/flat_hash_set_test.cc +39 -7
- package/vendor/abseil-cpp/absl/container/inlined_vector.h +29 -29
- package/vendor/abseil-cpp/absl/container/inlined_vector_test.cc +2 -2
- package/vendor/abseil-cpp/absl/container/internal/btree.h +32 -24
- package/vendor/abseil-cpp/absl/container/internal/btree_container.h +16 -17
- package/vendor/abseil-cpp/absl/container/internal/common.h +6 -5
- package/vendor/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -1
- package/vendor/abseil-cpp/absl/container/internal/compressed_tuple.h +16 -16
- package/vendor/abseil-cpp/absl/container/internal/compressed_tuple_test.cc +13 -13
- package/vendor/abseil-cpp/absl/container/internal/container_memory.h +41 -31
- package/vendor/abseil-cpp/absl/container/internal/hash_function_defaults.h +2 -2
- package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.h +4 -4
- package/vendor/abseil-cpp/absl/container/internal/hash_policy_traits.h +3 -3
- package/vendor/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +27 -19
- package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +2 -2
- package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.h +0 -17
- package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler_test.cc +12 -30
- package/vendor/abseil-cpp/absl/container/internal/inlined_vector.h +28 -28
- package/vendor/abseil-cpp/absl/container/internal/layout.h +13 -13
- package/vendor/abseil-cpp/absl/container/internal/layout_test.cc +3 -2
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_map.h +60 -62
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.cc +59 -39
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.h +619 -326
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_benchmark.cc +25 -2
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_probe_benchmark.cc +4 -4
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_test.cc +575 -159
- package/vendor/abseil-cpp/absl/container/linked_hash_map.h +2 -2
- package/vendor/abseil-cpp/absl/container/node_hash_map.h +27 -15
- package/vendor/abseil-cpp/absl/container/node_hash_map_test.cc +34 -0
- package/vendor/abseil-cpp/absl/container/node_hash_set.h +25 -11
- package/vendor/abseil-cpp/absl/container/node_hash_set_test.cc +39 -7
- package/vendor/abseil-cpp/absl/container/sample_element_size_test.cc +7 -4
- package/vendor/abseil-cpp/absl/crc/BUILD.bazel +0 -1
- package/vendor/abseil-cpp/absl/crc/CMakeLists.txt +2 -3
- package/vendor/abseil-cpp/absl/crc/crc32c_benchmark.cc +2 -1
- package/vendor/abseil-cpp/absl/crc/internal/cpu_detect.cc +6 -6
- package/vendor/abseil-cpp/absl/crc/internal/crc.cc +4 -6
- package/vendor/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +41 -0
- package/vendor/abseil-cpp/absl/crc/internal/crc_internal.h +0 -16
- package/vendor/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +143 -81
- package/vendor/abseil-cpp/absl/debugging/BUILD.bazel +9 -31
- package/vendor/abseil-cpp/absl/debugging/CMakeLists.txt +3 -33
- package/vendor/abseil-cpp/absl/debugging/internal/demangle_rust.h +8 -0
- package/vendor/abseil-cpp/absl/debugging/internal/demangle_test.cc +2 -1
- package/vendor/abseil-cpp/absl/debugging/internal/examine_stack.cc +12 -2
- package/vendor/abseil-cpp/absl/debugging/internal/examine_stack.h +2 -3
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +11 -0
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +13 -4
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +14 -7
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +4 -0
- package/vendor/abseil-cpp/absl/debugging/internal/symbolize.h +46 -36
- package/vendor/abseil-cpp/absl/debugging/stacktrace.cc +18 -58
- package/vendor/abseil-cpp/absl/debugging/stacktrace.h +5 -48
- package/vendor/abseil-cpp/absl/debugging/stacktrace_test.cc +10 -124
- package/vendor/abseil-cpp/absl/debugging/symbolize.cc +20 -2
- package/vendor/abseil-cpp/absl/debugging/symbolize_elf.inc +58 -106
- package/vendor/abseil-cpp/absl/debugging/symbolize_test.cc +37 -36
- package/vendor/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +4 -4
- package/vendor/abseil-cpp/absl/flags/BUILD.bazel +6 -3
- package/vendor/abseil-cpp/absl/flags/CMakeLists.txt +1 -1
- package/vendor/abseil-cpp/absl/flags/commandlineflag.h +8 -6
- package/vendor/abseil-cpp/absl/flags/commandlineflag_test.cc +1 -1
- package/vendor/abseil-cpp/absl/flags/flag_benchmark.cc +5 -5
- package/vendor/abseil-cpp/absl/flags/flag_test.cc +30 -30
- package/vendor/abseil-cpp/absl/flags/internal/flag.cc +4 -4
- package/vendor/abseil-cpp/absl/flags/internal/flag.h +6 -6
- package/vendor/abseil-cpp/absl/flags/marshalling.h +2 -28
- package/vendor/abseil-cpp/absl/flags/marshalling_test.cc +12 -11
- package/vendor/abseil-cpp/absl/flags/reflection_test.cc +1 -1
- package/vendor/abseil-cpp/absl/functional/BUILD.bazel +26 -1
- package/vendor/abseil-cpp/absl/functional/CMakeLists.txt +29 -1
- package/vendor/abseil-cpp/absl/functional/any_invocable.h +13 -14
- package/vendor/abseil-cpp/absl/functional/any_invocable_test.cc +46 -47
- package/vendor/abseil-cpp/absl/functional/bind_back.h +79 -0
- package/vendor/abseil-cpp/absl/functional/bind_back_test.cc +237 -0
- package/vendor/abseil-cpp/absl/functional/bind_front.h +7 -1
- package/vendor/abseil-cpp/absl/functional/bind_front_test.cc +4 -4
- package/vendor/abseil-cpp/absl/functional/function_ref_test.cc +2 -2
- package/vendor/abseil-cpp/absl/functional/internal/any_invocable.h +28 -28
- package/vendor/abseil-cpp/absl/functional/internal/back_binder.h +95 -0
- package/vendor/abseil-cpp/absl/functional/internal/front_binder.h +4 -4
- package/vendor/abseil-cpp/absl/functional/internal/function_ref.h +2 -2
- package/vendor/abseil-cpp/absl/functional/overload_test.cc +13 -13
- package/vendor/abseil-cpp/absl/hash/BUILD.bazel +1 -2
- package/vendor/abseil-cpp/absl/hash/CMakeLists.txt +1 -2
- package/vendor/abseil-cpp/absl/hash/hash.h +1 -1
- package/vendor/abseil-cpp/absl/hash/hash_test.cc +14 -20
- package/vendor/abseil-cpp/absl/hash/hash_testing.h +11 -9
- package/vendor/abseil-cpp/absl/hash/internal/city.cc +39 -51
- package/vendor/abseil-cpp/absl/hash/internal/hash.cc +165 -47
- package/vendor/abseil-cpp/absl/hash/internal/hash.h +82 -26
- package/vendor/abseil-cpp/absl/hash/internal/low_level_hash_test.cc +36 -1
- package/vendor/abseil-cpp/absl/hash/internal/spy_hash_state.h +8 -5
- package/vendor/abseil-cpp/absl/log/BUILD.bazel +5 -2
- package/vendor/abseil-cpp/absl/log/CMakeLists.txt +5 -3
- package/vendor/abseil-cpp/absl/log/absl_vlog_is_on.h +0 -2
- package/vendor/abseil-cpp/absl/log/internal/BUILD.bazel +15 -1
- package/vendor/abseil-cpp/absl/log/internal/log_message.cc +5 -4
- package/vendor/abseil-cpp/absl/log/internal/log_message.h +14 -0
- package/vendor/abseil-cpp/absl/log/internal/nullstream.h +1 -1
- package/vendor/abseil-cpp/absl/log/internal/proto.cc +13 -0
- package/vendor/abseil-cpp/absl/log/internal/structured_proto.cc +5 -5
- package/vendor/abseil-cpp/absl/log/internal/structured_proto.h +6 -5
- package/vendor/abseil-cpp/absl/log/internal/structured_proto_test.cc +3 -3
- package/vendor/abseil-cpp/absl/log/internal/vlog_config.cc +2 -2
- package/vendor/abseil-cpp/absl/log/internal/vlog_config_benchmark.cc +3 -3
- package/vendor/abseil-cpp/absl/log/log_format_test.cc +19 -2
- package/vendor/abseil-cpp/absl/log/log_modifier_methods_test.cc +18 -0
- package/vendor/abseil-cpp/absl/log/log_streamer.h +29 -2
- package/vendor/abseil-cpp/absl/log/log_streamer_test.cc +18 -0
- package/vendor/abseil-cpp/absl/log/scoped_mock_log_test.cc +1 -1
- package/vendor/abseil-cpp/absl/log/vlog_is_on.h +0 -2
- package/vendor/abseil-cpp/absl/log/vlog_is_on_test.cc +6 -5
- package/vendor/abseil-cpp/absl/memory/memory.h +55 -5
- package/vendor/abseil-cpp/absl/memory/memory_test.cc +55 -1
- package/vendor/abseil-cpp/absl/meta/BUILD.bazel +2 -0
- package/vendor/abseil-cpp/absl/meta/internal/requires.h +1 -1
- package/vendor/abseil-cpp/absl/meta/type_traits.h +119 -55
- package/vendor/abseil-cpp/absl/meta/type_traits_test.cc +7 -7
- package/vendor/abseil-cpp/absl/numeric/int128_test.cc +6 -6
- package/vendor/abseil-cpp/absl/profiling/BUILD.bazel +3 -1
- package/vendor/abseil-cpp/absl/profiling/hashtable.cc +0 -4
- package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.cc +32 -33
- package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.h +25 -2
- package/vendor/abseil-cpp/absl/profiling/internal/sample_recorder_test.cc +8 -5
- package/vendor/abseil-cpp/absl/random/BUILD.bazel +13 -1
- package/vendor/abseil-cpp/absl/random/CMakeLists.txt +23 -2
- package/vendor/abseil-cpp/absl/random/benchmarks.cc +1 -1
- package/vendor/abseil-cpp/absl/random/beta_distribution.h +2 -2
- package/vendor/abseil-cpp/absl/random/bit_gen_ref.h +26 -53
- package/vendor/abseil-cpp/absl/random/bit_gen_ref_test.cc +43 -0
- package/vendor/abseil-cpp/absl/random/discrete_distribution.h +1 -1
- package/vendor/abseil-cpp/absl/random/distributions.h +17 -17
- package/vendor/abseil-cpp/absl/random/distributions_test.cc +4 -4
- package/vendor/abseil-cpp/absl/random/exponential_distribution.h +1 -1
- package/vendor/abseil-cpp/absl/random/internal/BUILD.bazel +4 -2
- package/vendor/abseil-cpp/absl/random/internal/distribution_caller.h +8 -21
- package/vendor/abseil-cpp/absl/random/internal/fast_uniform_bits.h +1 -1
- package/vendor/abseil-cpp/absl/random/internal/generate_real.h +1 -1
- package/vendor/abseil-cpp/absl/random/internal/iostream_state_saver.h +2 -2
- package/vendor/abseil-cpp/absl/random/internal/iostream_state_saver_test.cc +3 -2
- package/vendor/abseil-cpp/absl/random/internal/mock_helpers.h +14 -40
- package/vendor/abseil-cpp/absl/random/internal/nonsecure_base.h +2 -2
- package/vendor/abseil-cpp/absl/random/internal/nonsecure_base_test.cc +2 -2
- package/vendor/abseil-cpp/absl/random/internal/pcg_engine.h +6 -6
- package/vendor/abseil-cpp/absl/random/internal/pcg_engine_test.cc +3 -2
- package/vendor/abseil-cpp/absl/random/internal/randen_detect.cc +6 -6
- package/vendor/abseil-cpp/absl/random/internal/randen_engine.h +2 -2
- package/vendor/abseil-cpp/absl/random/internal/randen_engine_test.cc +3 -2
- package/vendor/abseil-cpp/absl/random/internal/randen_test.cc +3 -2
- package/vendor/abseil-cpp/absl/random/internal/salted_seed_seq.h +6 -5
- package/vendor/abseil-cpp/absl/random/internal/seed_material.cc +4 -4
- package/vendor/abseil-cpp/absl/random/internal/seed_material.h +2 -1
- package/vendor/abseil-cpp/absl/random/internal/traits.h +21 -0
- package/vendor/abseil-cpp/absl/random/internal/traits_test.cc +5 -0
- package/vendor/abseil-cpp/absl/random/internal/uniform_helper.h +23 -23
- package/vendor/abseil-cpp/absl/random/internal/uniform_helper_test.cc +2 -1
- package/vendor/abseil-cpp/absl/random/mocking_access.h +74 -0
- package/vendor/abseil-cpp/absl/random/mocking_bit_gen.h +9 -19
- package/vendor/abseil-cpp/absl/random/uniform_real_distribution.h +1 -1
- package/vendor/abseil-cpp/absl/status/BUILD.bazel +81 -0
- package/vendor/abseil-cpp/absl/status/CMakeLists.txt +91 -0
- package/vendor/abseil-cpp/absl/status/internal/status_internal.cc +63 -18
- package/vendor/abseil-cpp/absl/status/internal/status_internal.h +26 -2
- package/vendor/abseil-cpp/absl/status/internal/status_matchers.h +22 -8
- package/vendor/abseil-cpp/absl/status/internal/statusor_internal.h +43 -43
- package/vendor/abseil-cpp/absl/status/status.cc +62 -70
- package/vendor/abseil-cpp/absl/status/status.h +249 -23
- package/vendor/abseil-cpp/absl/status/status_benchmark.cc +12 -0
- package/vendor/abseil-cpp/absl/status/status_builder.cc +196 -0
- package/vendor/abseil-cpp/absl/status/status_builder.h +978 -0
- package/vendor/abseil-cpp/absl/status/status_builder_test.cc +380 -0
- package/vendor/abseil-cpp/absl/status/status_macros.h +484 -0
- package/vendor/abseil-cpp/absl/status/status_macros_test.cc +634 -0
- package/vendor/abseil-cpp/absl/status/status_matchers.h +2 -1
- package/vendor/abseil-cpp/absl/status/status_matchers_test.cc +3 -4
- package/vendor/abseil-cpp/absl/status/status_payload_printer.h +3 -2
- package/vendor/abseil-cpp/absl/status/status_test.cc +443 -13
- package/vendor/abseil-cpp/absl/status/statusor.h +69 -36
- package/vendor/abseil-cpp/absl/status/statusor_test.cc +132 -35
- package/vendor/abseil-cpp/absl/strings/BUILD.bazel +42 -7
- package/vendor/abseil-cpp/absl/strings/CMakeLists.txt +33 -4
- package/vendor/abseil-cpp/absl/strings/ascii.h +1 -2
- package/vendor/abseil-cpp/absl/strings/atod_manual_test.cc +5 -5
- package/vendor/abseil-cpp/absl/strings/cord.cc +26 -7
- package/vendor/abseil-cpp/absl/strings/cord.h +23 -13
- package/vendor/abseil-cpp/absl/strings/cord_buffer.h +4 -2
- package/vendor/abseil-cpp/absl/strings/cord_test.cc +85 -9
- package/vendor/abseil-cpp/absl/strings/escaping.cc +176 -30
- package/vendor/abseil-cpp/absl/strings/escaping.h +12 -2
- package/vendor/abseil-cpp/absl/strings/escaping_benchmark.cc +1 -3
- package/vendor/abseil-cpp/absl/strings/escaping_test.cc +18 -18
- package/vendor/abseil-cpp/absl/strings/has_absl_stringify_test.cc +2 -2
- package/vendor/abseil-cpp/absl/strings/has_ostream_operator_test.cc +2 -2
- package/vendor/abseil-cpp/absl/strings/internal/append_and_overwrite.h +10 -10
- package/vendor/abseil-cpp/absl/strings/internal/cordz_sample_token_test.cc +1 -1
- package/vendor/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc +6 -0
- package/vendor/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.h +1 -0
- package/vendor/abseil-cpp/absl/strings/internal/escaping.cc +0 -141
- package/vendor/abseil-cpp/absl/strings/internal/escaping.h +2 -26
- package/vendor/abseil-cpp/absl/strings/internal/generic_printer_internal.h +23 -2
- package/vendor/abseil-cpp/absl/strings/internal/generic_printer_test.cc +6 -2
- package/vendor/abseil-cpp/absl/strings/internal/resize_uninitialized.h +31 -24
- package/vendor/abseil-cpp/absl/strings/internal/resize_uninitialized_test.cc +16 -41
- package/vendor/abseil-cpp/absl/strings/internal/stl_type_traits.h +39 -39
- package/vendor/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -22
- package/vendor/abseil-cpp/absl/strings/internal/str_format/bind.h +2 -2
- package/vendor/abseil-cpp/absl/strings/internal/str_format/convert_test.cc +12 -20
- package/vendor/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +510 -307
- package/vendor/abseil-cpp/absl/strings/internal/str_join_internal.h +0 -1
- package/vendor/abseil-cpp/absl/strings/internal/str_split_internal.h +9 -10
- package/vendor/abseil-cpp/absl/strings/internal/string_constant_test.cc +6 -5
- package/vendor/abseil-cpp/absl/strings/internal/stringify_sink.h +12 -0
- package/vendor/abseil-cpp/absl/strings/internal/stringify_stream.h +119 -0
- package/vendor/abseil-cpp/absl/strings/internal/stringify_stream_test.cc +111 -0
- package/vendor/abseil-cpp/absl/strings/numbers.cc +406 -0
- package/vendor/abseil-cpp/absl/strings/numbers.h +4 -0
- package/vendor/abseil-cpp/absl/strings/numbers_test.cc +33 -0
- package/vendor/abseil-cpp/absl/strings/resize_and_overwrite.h +10 -6
- package/vendor/abseil-cpp/absl/strings/str_cat.h +36 -1
- package/vendor/abseil-cpp/absl/strings/str_cat_benchmark.cc +1 -2
- package/vendor/abseil-cpp/absl/strings/str_cat_test.cc +28 -0
- package/vendor/abseil-cpp/absl/strings/str_join_test.cc +4 -4
- package/vendor/abseil-cpp/absl/strings/str_split.h +11 -6
- package/vendor/abseil-cpp/absl/strings/str_split_test.cc +13 -0
- package/vendor/abseil-cpp/absl/strings/substitute.h +2 -2
- package/vendor/abseil-cpp/absl/synchronization/BUILD.bazel +3 -0
- package/vendor/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +21 -0
- package/vendor/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +5 -0
- package/vendor/abseil-cpp/absl/synchronization/mutex.cc +13 -0
- package/vendor/abseil-cpp/absl/synchronization/mutex.h +32 -2
- package/vendor/abseil-cpp/absl/synchronization/mutex_test.cc +17 -3
- package/vendor/abseil-cpp/absl/time/BUILD.bazel +80 -0
- package/vendor/abseil-cpp/absl/time/CMakeLists.txt +73 -0
- package/vendor/abseil-cpp/absl/time/clock.h +3 -0
- package/vendor/abseil-cpp/absl/time/clock_interface.cc +71 -0
- package/vendor/abseil-cpp/absl/time/clock_interface.h +93 -0
- package/vendor/abseil-cpp/absl/time/clock_interface_test.cc +128 -0
- package/vendor/abseil-cpp/absl/time/format.cc +3 -10
- package/vendor/abseil-cpp/absl/time/format_test.cc +12 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +90 -89
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format_test.cc +80 -5
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.cc +1 -2
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +10 -15
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/version +1 -1
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Vancouver +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ho_Chi_Minh +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Phnom_Penh +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Saigon +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tbilisi +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Vientiane +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Pacific +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Chisinau +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Tiraspol +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zone1970.tab +1 -1
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zonenow.tab +3 -3
- package/vendor/abseil-cpp/absl/time/simulated_clock.cc +225 -0
- package/vendor/abseil-cpp/absl/time/simulated_clock.h +109 -0
- package/vendor/abseil-cpp/absl/time/simulated_clock_test.cc +614 -0
- package/vendor/abseil-cpp/absl/types/BUILD.bazel +116 -0
- package/vendor/abseil-cpp/absl/types/CMakeLists.txt +100 -0
- package/vendor/abseil-cpp/absl/types/any.h +26 -4
- package/vendor/abseil-cpp/absl/types/any_span.h +1067 -0
- package/vendor/abseil-cpp/absl/types/any_span_benchmark.cc +258 -0
- package/vendor/abseil-cpp/absl/types/any_span_test.cc +1210 -0
- package/vendor/abseil-cpp/absl/types/compare.h +4 -4
- package/vendor/abseil-cpp/absl/types/internal/any_span.h +477 -0
- package/vendor/abseil-cpp/absl/types/internal/span.h +5 -6
- package/vendor/abseil-cpp/absl/types/optional.h +30 -3
- package/vendor/abseil-cpp/absl/types/optional_ref.h +295 -0
- package/vendor/abseil-cpp/absl/types/optional_ref_test.cc +370 -0
- package/vendor/abseil-cpp/absl/types/source_location.cc +18 -0
- package/vendor/abseil-cpp/absl/types/source_location.h +172 -0
- package/vendor/abseil-cpp/absl/types/source_location_test.cc +139 -0
- package/vendor/abseil-cpp/absl/types/span.h +19 -23
- package/vendor/abseil-cpp/absl/types/variant.h +75 -18
- package/vendor/abseil-cpp/absl/types/variant_test.cc +23 -23
- package/vendor/abseil-cpp/absl/utility/BUILD.bazel +1 -0
- package/vendor/abseil-cpp/absl/utility/CMakeLists.txt +1 -0
- package/vendor/abseil-cpp/absl/utility/utility.h +99 -16
- package/vendor/abseil-cpp/ci/absl_alternate_options.h +2 -0
- package/vendor/abseil-cpp/ci/linux_arm_clang-latest_libcxx_bazel.sh +10 -4
- package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_asan_bazel.sh +13 -6
- package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_bazel.sh +10 -4
- package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_tsan_bazel.sh +12 -5
- package/vendor/abseil-cpp/ci/linux_clang-latest_libstdcxx_bazel.sh +9 -2
- package/vendor/abseil-cpp/ci/linux_docker_containers.sh +4 -4
- package/vendor/abseil-cpp/ci/linux_gcc-floor_libstdcxx_bazel.sh +10 -3
- package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_bazel.sh +8 -2
- package/vendor/abseil-cpp/ci/macos_xcode_bazel.sh +4 -3
- package/vendor/abseil-cpp/ci/macos_xcode_cmake.sh +2 -2
- package/vendor/abseil-cpp/ci/windows_clangcl_bazel.bat +1 -1
- package/vendor/abseil-cpp/ci/windows_msvc_bazel.bat +1 -1
- package/AGENTS.md +0 -131
- package/ARCHITECTURE.md +0 -152
- package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer.cc +0 -118
- package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer.h +0 -71
- package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer_test.cc +0 -97
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
#include <stdint.h>
|
|
20
20
|
|
|
21
21
|
#include <atomic>
|
|
22
|
+
#include <optional>
|
|
22
23
|
#include <string>
|
|
23
24
|
#include <thread> // NOLINT
|
|
24
25
|
#include <vector>
|
|
@@ -42,7 +43,6 @@
|
|
|
42
43
|
#include "absl/strings/string_view.h"
|
|
43
44
|
#include "absl/time/clock.h"
|
|
44
45
|
#include "absl/time/time.h"
|
|
45
|
-
#include "absl/types/optional.h"
|
|
46
46
|
|
|
47
47
|
ABSL_DECLARE_FLAG(int64_t, mistyped_int_flag);
|
|
48
48
|
ABSL_DECLARE_FLAG(std::vector<std::string>, mistyped_string_flag);
|
|
@@ -1038,7 +1038,7 @@ std::string AbslUnparseFlag(const NonTriviallyCopyableUDT<id>&) {
|
|
|
1038
1038
|
template <int id, typename F>
|
|
1039
1039
|
void TestExpectedLeaks(
|
|
1040
1040
|
F&& f, uint64_t num_leaks,
|
|
1041
|
-
|
|
1041
|
+
std::optional<uint64_t> num_new_instances = std::nullopt) {
|
|
1042
1042
|
if (!num_new_instances.has_value()) num_new_instances = num_leaks;
|
|
1043
1043
|
|
|
1044
1044
|
auto num_leaked_before = flags::NumLeakedFlagValues();
|
|
@@ -1216,14 +1216,14 @@ TEST_F(FlagTest, MacroWithinAbslFlag) {
|
|
|
1216
1216
|
|
|
1217
1217
|
// --------------------------------------------------------------------
|
|
1218
1218
|
|
|
1219
|
-
ABSL_FLAG(
|
|
1220
|
-
ABSL_FLAG(
|
|
1221
|
-
ABSL_FLAG(
|
|
1222
|
-
ABSL_FLAG(
|
|
1223
|
-
ABSL_FLAG(
|
|
1219
|
+
ABSL_FLAG(std::optional<bool>, optional_bool, std::nullopt, "help");
|
|
1220
|
+
ABSL_FLAG(std::optional<int>, optional_int, {}, "help");
|
|
1221
|
+
ABSL_FLAG(std::optional<double>, optional_double, 9.3, "help");
|
|
1222
|
+
ABSL_FLAG(std::optional<std::string>, optional_string, std::nullopt, "help");
|
|
1223
|
+
ABSL_FLAG(std::optional<absl::Duration>, optional_duration, std::nullopt,
|
|
1224
1224
|
"help");
|
|
1225
|
-
ABSL_FLAG(
|
|
1226
|
-
|
|
1225
|
+
ABSL_FLAG(std::optional<std::optional<int>>, optional_optional_int,
|
|
1226
|
+
std::nullopt, "help");
|
|
1227
1227
|
#if defined(ABSL_HAVE_STD_OPTIONAL) && !defined(ABSL_USES_STD_OPTIONAL)
|
|
1228
1228
|
ABSL_FLAG(std::optional<int64_t>, std_optional_int64, std::nullopt, "help");
|
|
1229
1229
|
#endif
|
|
@@ -1232,7 +1232,7 @@ namespace {
|
|
|
1232
1232
|
|
|
1233
1233
|
TEST_F(FlagTest, TestOptionalBool) {
|
|
1234
1234
|
EXPECT_FALSE(absl::GetFlag(FLAGS_optional_bool).has_value());
|
|
1235
|
-
EXPECT_EQ(absl::GetFlag(FLAGS_optional_bool),
|
|
1235
|
+
EXPECT_EQ(absl::GetFlag(FLAGS_optional_bool), std::nullopt);
|
|
1236
1236
|
|
|
1237
1237
|
absl::SetFlag(&FLAGS_optional_bool, false);
|
|
1238
1238
|
EXPECT_TRUE(absl::GetFlag(FLAGS_optional_bool).has_value());
|
|
@@ -1242,16 +1242,16 @@ TEST_F(FlagTest, TestOptionalBool) {
|
|
|
1242
1242
|
EXPECT_TRUE(absl::GetFlag(FLAGS_optional_bool).has_value());
|
|
1243
1243
|
EXPECT_EQ(absl::GetFlag(FLAGS_optional_bool), true);
|
|
1244
1244
|
|
|
1245
|
-
absl::SetFlag(&FLAGS_optional_bool,
|
|
1245
|
+
absl::SetFlag(&FLAGS_optional_bool, std::nullopt);
|
|
1246
1246
|
EXPECT_FALSE(absl::GetFlag(FLAGS_optional_bool).has_value());
|
|
1247
|
-
EXPECT_EQ(absl::GetFlag(FLAGS_optional_bool),
|
|
1247
|
+
EXPECT_EQ(absl::GetFlag(FLAGS_optional_bool), std::nullopt);
|
|
1248
1248
|
}
|
|
1249
1249
|
|
|
1250
1250
|
// --------------------------------------------------------------------
|
|
1251
1251
|
|
|
1252
1252
|
TEST_F(FlagTest, TestOptionalInt) {
|
|
1253
1253
|
EXPECT_FALSE(absl::GetFlag(FLAGS_optional_int).has_value());
|
|
1254
|
-
EXPECT_EQ(absl::GetFlag(FLAGS_optional_int),
|
|
1254
|
+
EXPECT_EQ(absl::GetFlag(FLAGS_optional_int), std::nullopt);
|
|
1255
1255
|
|
|
1256
1256
|
absl::SetFlag(&FLAGS_optional_int, 0);
|
|
1257
1257
|
EXPECT_TRUE(absl::GetFlag(FLAGS_optional_int).has_value());
|
|
@@ -1261,9 +1261,9 @@ TEST_F(FlagTest, TestOptionalInt) {
|
|
|
1261
1261
|
EXPECT_TRUE(absl::GetFlag(FLAGS_optional_int).has_value());
|
|
1262
1262
|
EXPECT_EQ(absl::GetFlag(FLAGS_optional_int), 10);
|
|
1263
1263
|
|
|
1264
|
-
absl::SetFlag(&FLAGS_optional_int,
|
|
1264
|
+
absl::SetFlag(&FLAGS_optional_int, std::nullopt);
|
|
1265
1265
|
EXPECT_FALSE(absl::GetFlag(FLAGS_optional_int).has_value());
|
|
1266
|
-
EXPECT_EQ(absl::GetFlag(FLAGS_optional_int),
|
|
1266
|
+
EXPECT_EQ(absl::GetFlag(FLAGS_optional_int), std::nullopt);
|
|
1267
1267
|
}
|
|
1268
1268
|
|
|
1269
1269
|
// --------------------------------------------------------------------
|
|
@@ -1280,16 +1280,16 @@ TEST_F(FlagTest, TestOptionalDouble) {
|
|
|
1280
1280
|
EXPECT_TRUE(absl::GetFlag(FLAGS_optional_double).has_value());
|
|
1281
1281
|
EXPECT_DOUBLE_EQ(*absl::GetFlag(FLAGS_optional_double), 1.234);
|
|
1282
1282
|
|
|
1283
|
-
absl::SetFlag(&FLAGS_optional_double,
|
|
1283
|
+
absl::SetFlag(&FLAGS_optional_double, std::nullopt);
|
|
1284
1284
|
EXPECT_FALSE(absl::GetFlag(FLAGS_optional_double).has_value());
|
|
1285
|
-
EXPECT_EQ(absl::GetFlag(FLAGS_optional_double),
|
|
1285
|
+
EXPECT_EQ(absl::GetFlag(FLAGS_optional_double), std::nullopt);
|
|
1286
1286
|
}
|
|
1287
1287
|
|
|
1288
1288
|
// --------------------------------------------------------------------
|
|
1289
1289
|
|
|
1290
1290
|
TEST_F(FlagTest, TestOptionalString) {
|
|
1291
1291
|
EXPECT_FALSE(absl::GetFlag(FLAGS_optional_string).has_value());
|
|
1292
|
-
EXPECT_EQ(absl::GetFlag(FLAGS_optional_string),
|
|
1292
|
+
EXPECT_EQ(absl::GetFlag(FLAGS_optional_string), std::nullopt);
|
|
1293
1293
|
|
|
1294
1294
|
// Setting optional string to "" leads to undefined behavior.
|
|
1295
1295
|
|
|
@@ -1301,16 +1301,16 @@ TEST_F(FlagTest, TestOptionalString) {
|
|
|
1301
1301
|
EXPECT_TRUE(absl::GetFlag(FLAGS_optional_string).has_value());
|
|
1302
1302
|
EXPECT_EQ(absl::GetFlag(FLAGS_optional_string), "QWERTY");
|
|
1303
1303
|
|
|
1304
|
-
absl::SetFlag(&FLAGS_optional_string,
|
|
1304
|
+
absl::SetFlag(&FLAGS_optional_string, std::nullopt);
|
|
1305
1305
|
EXPECT_FALSE(absl::GetFlag(FLAGS_optional_string).has_value());
|
|
1306
|
-
EXPECT_EQ(absl::GetFlag(FLAGS_optional_string),
|
|
1306
|
+
EXPECT_EQ(absl::GetFlag(FLAGS_optional_string), std::nullopt);
|
|
1307
1307
|
}
|
|
1308
1308
|
|
|
1309
1309
|
// --------------------------------------------------------------------
|
|
1310
1310
|
|
|
1311
1311
|
TEST_F(FlagTest, TestOptionalDuration) {
|
|
1312
1312
|
EXPECT_FALSE(absl::GetFlag(FLAGS_optional_duration).has_value());
|
|
1313
|
-
EXPECT_EQ(absl::GetFlag(FLAGS_optional_duration),
|
|
1313
|
+
EXPECT_EQ(absl::GetFlag(FLAGS_optional_duration), std::nullopt);
|
|
1314
1314
|
|
|
1315
1315
|
absl::SetFlag(&FLAGS_optional_duration, absl::ZeroDuration());
|
|
1316
1316
|
EXPECT_TRUE(absl::GetFlag(FLAGS_optional_duration).has_value());
|
|
@@ -1320,37 +1320,37 @@ TEST_F(FlagTest, TestOptionalDuration) {
|
|
|
1320
1320
|
EXPECT_TRUE(absl::GetFlag(FLAGS_optional_duration).has_value());
|
|
1321
1321
|
EXPECT_EQ(absl::GetFlag(FLAGS_optional_duration), absl::Hours(3));
|
|
1322
1322
|
|
|
1323
|
-
absl::SetFlag(&FLAGS_optional_duration,
|
|
1323
|
+
absl::SetFlag(&FLAGS_optional_duration, std::nullopt);
|
|
1324
1324
|
EXPECT_FALSE(absl::GetFlag(FLAGS_optional_duration).has_value());
|
|
1325
|
-
EXPECT_EQ(absl::GetFlag(FLAGS_optional_duration),
|
|
1325
|
+
EXPECT_EQ(absl::GetFlag(FLAGS_optional_duration), std::nullopt);
|
|
1326
1326
|
}
|
|
1327
1327
|
|
|
1328
1328
|
// --------------------------------------------------------------------
|
|
1329
1329
|
|
|
1330
1330
|
TEST_F(FlagTest, TestOptionalOptional) {
|
|
1331
1331
|
EXPECT_FALSE(absl::GetFlag(FLAGS_optional_optional_int).has_value());
|
|
1332
|
-
EXPECT_EQ(absl::GetFlag(FLAGS_optional_optional_int),
|
|
1332
|
+
EXPECT_EQ(absl::GetFlag(FLAGS_optional_optional_int), std::nullopt);
|
|
1333
1333
|
|
|
1334
|
-
|
|
1334
|
+
std::optional<int> nullint{std::nullopt};
|
|
1335
1335
|
|
|
1336
1336
|
absl::SetFlag(&FLAGS_optional_optional_int, nullint);
|
|
1337
1337
|
EXPECT_TRUE(absl::GetFlag(FLAGS_optional_optional_int).has_value());
|
|
1338
1338
|
EXPECT_NE(absl::GetFlag(FLAGS_optional_optional_int), nullint);
|
|
1339
1339
|
EXPECT_EQ(absl::GetFlag(FLAGS_optional_optional_int),
|
|
1340
|
-
|
|
1340
|
+
std::optional<std::optional<int>>{nullint});
|
|
1341
1341
|
|
|
1342
1342
|
absl::SetFlag(&FLAGS_optional_optional_int, 0);
|
|
1343
1343
|
EXPECT_TRUE(absl::GetFlag(FLAGS_optional_optional_int).has_value());
|
|
1344
1344
|
EXPECT_EQ(absl::GetFlag(FLAGS_optional_optional_int), 0);
|
|
1345
1345
|
|
|
1346
|
-
absl::SetFlag(&FLAGS_optional_optional_int,
|
|
1346
|
+
absl::SetFlag(&FLAGS_optional_optional_int, std::optional<int>{0});
|
|
1347
1347
|
EXPECT_TRUE(absl::GetFlag(FLAGS_optional_optional_int).has_value());
|
|
1348
1348
|
EXPECT_EQ(absl::GetFlag(FLAGS_optional_optional_int), 0);
|
|
1349
|
-
EXPECT_EQ(absl::GetFlag(FLAGS_optional_optional_int),
|
|
1349
|
+
EXPECT_EQ(absl::GetFlag(FLAGS_optional_optional_int), std::optional<int>{0});
|
|
1350
1350
|
|
|
1351
|
-
absl::SetFlag(&FLAGS_optional_optional_int,
|
|
1351
|
+
absl::SetFlag(&FLAGS_optional_optional_int, std::nullopt);
|
|
1352
1352
|
EXPECT_FALSE(absl::GetFlag(FLAGS_optional_optional_int).has_value());
|
|
1353
|
-
EXPECT_EQ(absl::GetFlag(FLAGS_optional_optional_int),
|
|
1353
|
+
EXPECT_EQ(absl::GetFlag(FLAGS_optional_optional_int), std::nullopt);
|
|
1354
1354
|
}
|
|
1355
1355
|
|
|
1356
1356
|
// --------------------------------------------------------------------
|
|
@@ -443,7 +443,7 @@ std::unique_ptr<FlagStateInterface> FlagImpl::SaveState() {
|
|
|
443
443
|
switch (ValueStorageKind()) {
|
|
444
444
|
case FlagValueStorageKind::kValueAndInitBit:
|
|
445
445
|
case FlagValueStorageKind::kOneWordAtomic: {
|
|
446
|
-
return
|
|
446
|
+
return std::make_unique<FlagState>(
|
|
447
447
|
*this, OneWordValue().load(std::memory_order_acquire), modified,
|
|
448
448
|
on_command_line, ModificationCount());
|
|
449
449
|
}
|
|
@@ -454,11 +454,11 @@ std::unique_ptr<FlagStateInterface> FlagImpl::SaveState() {
|
|
|
454
454
|
seq_lock_.TryRead(cloned, AtomicBufferValue(), Sizeof(op_));
|
|
455
455
|
assert(success);
|
|
456
456
|
static_cast<void>(success);
|
|
457
|
-
return
|
|
458
|
-
|
|
457
|
+
return std::make_unique<FlagState>(*this, cloned, modified,
|
|
458
|
+
on_command_line, ModificationCount());
|
|
459
459
|
}
|
|
460
460
|
case FlagValueStorageKind::kHeapAllocated: {
|
|
461
|
-
return
|
|
461
|
+
return std::make_unique<FlagState>(
|
|
462
462
|
*this,
|
|
463
463
|
flags_internal::Clone(
|
|
464
464
|
op_, PtrStorage().load(std::memory_order_acquire).Ptr()),
|
|
@@ -135,7 +135,7 @@ inline size_t Sizeof(FlagOpFn op) {
|
|
|
135
135
|
}
|
|
136
136
|
// Returns fast type id corresponding to the value type.
|
|
137
137
|
inline FlagFastTypeId FastTypeId(FlagOpFn op) {
|
|
138
|
-
return
|
|
138
|
+
return absl::bit_cast<FlagFastTypeId>(
|
|
139
139
|
op(FlagOp::kFastTypeId, nullptr, nullptr, nullptr));
|
|
140
140
|
}
|
|
141
141
|
// Returns fast type id corresponding to the value type.
|
|
@@ -168,7 +168,7 @@ inline const std::type_info* GenRuntimeTypeId() {
|
|
|
168
168
|
// Flag help auxiliary structs.
|
|
169
169
|
|
|
170
170
|
// This is help argument for absl::Flag encapsulating the string literal pointer
|
|
171
|
-
// or pointer to function generating it as well as enum
|
|
171
|
+
// or pointer to function generating it as well as enum discriminating two
|
|
172
172
|
// cases.
|
|
173
173
|
using HelpGenFunc = std::string (*)();
|
|
174
174
|
|
|
@@ -178,7 +178,7 @@ struct FixedCharArray {
|
|
|
178
178
|
|
|
179
179
|
template <size_t... I>
|
|
180
180
|
static constexpr FixedCharArray<N> FromLiteralString(
|
|
181
|
-
absl::string_view str,
|
|
181
|
+
absl::string_view str, std::index_sequence<I...>) {
|
|
182
182
|
return (void)str, FixedCharArray<N>({{str[I]..., '\0'}});
|
|
183
183
|
}
|
|
184
184
|
};
|
|
@@ -186,7 +186,7 @@ struct FixedCharArray {
|
|
|
186
186
|
template <typename Gen, size_t N = Gen::Value().size()>
|
|
187
187
|
constexpr FixedCharArray<N + 1> HelpStringAsArray(int) {
|
|
188
188
|
return FixedCharArray<N + 1>::FromLiteralString(
|
|
189
|
-
Gen::Value(),
|
|
189
|
+
Gen::Value(), std::make_index_sequence<N>{});
|
|
190
190
|
}
|
|
191
191
|
|
|
192
192
|
template <typename Gen>
|
|
@@ -608,7 +608,7 @@ class FlagImpl final : public CommandLineFlag {
|
|
|
608
608
|
*value = ReadOneBool();
|
|
609
609
|
}
|
|
610
610
|
template <typename T,
|
|
611
|
-
|
|
611
|
+
std::enable_if_t<flags_internal::StorageKind<T>() ==
|
|
612
612
|
FlagValueStorageKind::kOneWordAtomic,
|
|
613
613
|
int> = 0>
|
|
614
614
|
void Read(T* value) const ABSL_LOCKS_EXCLUDED(DataGuard()) {
|
|
@@ -901,7 +901,7 @@ void* FlagOps(FlagOp op, const void* v1, void* v2, void* v3) {
|
|
|
901
901
|
case FlagOp::kSizeof:
|
|
902
902
|
return reinterpret_cast<void*>(static_cast<uintptr_t>(sizeof(T)));
|
|
903
903
|
case FlagOp::kFastTypeId:
|
|
904
|
-
return
|
|
904
|
+
return absl::bit_cast<void*>(absl::FastTypeId<T>());
|
|
905
905
|
case FlagOp::kRuntimeTypeId:
|
|
906
906
|
return const_cast<std::type_info*>(GenRuntimeTypeId<T>());
|
|
907
907
|
case FlagOp::kParse: {
|
|
@@ -199,15 +199,12 @@
|
|
|
199
199
|
#ifndef ABSL_FLAGS_MARSHALLING_H_
|
|
200
200
|
#define ABSL_FLAGS_MARSHALLING_H_
|
|
201
201
|
|
|
202
|
-
#include "absl/base/config.h"
|
|
203
|
-
#include "absl/numeric/int128.h"
|
|
204
|
-
|
|
205
|
-
#if defined(ABSL_HAVE_STD_OPTIONAL) && !defined(ABSL_USES_STD_OPTIONAL)
|
|
206
202
|
#include <optional>
|
|
207
|
-
#endif
|
|
208
203
|
#include <string>
|
|
209
204
|
#include <vector>
|
|
210
205
|
|
|
206
|
+
#include "absl/base/config.h"
|
|
207
|
+
#include "absl/numeric/int128.h"
|
|
211
208
|
#include "absl/strings/string_view.h"
|
|
212
209
|
#include "absl/types/optional.h"
|
|
213
210
|
|
|
@@ -241,21 +238,6 @@ bool AbslParseFlag(absl::string_view, double*, std::string*);
|
|
|
241
238
|
bool AbslParseFlag(absl::string_view, std::string*, std::string*);
|
|
242
239
|
bool AbslParseFlag(absl::string_view, std::vector<std::string>*, std::string*);
|
|
243
240
|
|
|
244
|
-
template <typename T>
|
|
245
|
-
bool AbslParseFlag(absl::string_view text, absl::optional<T>* f,
|
|
246
|
-
std::string* err) {
|
|
247
|
-
if (text.empty()) {
|
|
248
|
-
*f = absl::nullopt;
|
|
249
|
-
return true;
|
|
250
|
-
}
|
|
251
|
-
T value;
|
|
252
|
-
if (!absl::ParseFlag(text, &value, err)) return false;
|
|
253
|
-
|
|
254
|
-
*f = std::move(value);
|
|
255
|
-
return true;
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
#if defined(ABSL_HAVE_STD_OPTIONAL) && !defined(ABSL_USES_STD_OPTIONAL)
|
|
259
241
|
template <typename T>
|
|
260
242
|
bool AbslParseFlag(absl::string_view text, std::optional<T>* f,
|
|
261
243
|
std::string* err) {
|
|
@@ -269,7 +251,6 @@ bool AbslParseFlag(absl::string_view text, std::optional<T>* f,
|
|
|
269
251
|
*f = std::move(value);
|
|
270
252
|
return true;
|
|
271
253
|
}
|
|
272
|
-
#endif
|
|
273
254
|
|
|
274
255
|
template <typename T>
|
|
275
256
|
bool InvokeParseFlag(absl::string_view input, T* dst, std::string* err) {
|
|
@@ -284,17 +265,10 @@ bool InvokeParseFlag(absl::string_view input, T* dst, std::string* err) {
|
|
|
284
265
|
std::string AbslUnparseFlag(absl::string_view v);
|
|
285
266
|
std::string AbslUnparseFlag(const std::vector<std::string>&);
|
|
286
267
|
|
|
287
|
-
template <typename T>
|
|
288
|
-
std::string AbslUnparseFlag(const absl::optional<T>& f) {
|
|
289
|
-
return f.has_value() ? absl::UnparseFlag(*f) : "";
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
#if defined(ABSL_HAVE_STD_OPTIONAL) && !defined(ABSL_USES_STD_OPTIONAL)
|
|
293
268
|
template <typename T>
|
|
294
269
|
std::string AbslUnparseFlag(const std::optional<T>& f) {
|
|
295
270
|
return f.has_value() ? absl::UnparseFlag(*f) : "";
|
|
296
271
|
}
|
|
297
|
-
#endif
|
|
298
272
|
|
|
299
273
|
template <typename T>
|
|
300
274
|
std::string Unparse(const T& v) {
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
|
|
20
20
|
#include <cmath>
|
|
21
21
|
#include <limits>
|
|
22
|
+
#include <optional>
|
|
22
23
|
#include <string>
|
|
23
24
|
#include <vector>
|
|
24
25
|
|
|
@@ -777,7 +778,7 @@ TEST(MarshallingTest, TestVectorOfStringParsing) {
|
|
|
777
778
|
|
|
778
779
|
TEST(MarshallingTest, TestOptionalBoolParsing) {
|
|
779
780
|
std::string err;
|
|
780
|
-
|
|
781
|
+
std::optional<bool> value;
|
|
781
782
|
|
|
782
783
|
EXPECT_TRUE(absl::ParseFlag("", &value, &err));
|
|
783
784
|
EXPECT_FALSE(value.has_value());
|
|
@@ -797,7 +798,7 @@ TEST(MarshallingTest, TestOptionalBoolParsing) {
|
|
|
797
798
|
|
|
798
799
|
TEST(MarshallingTest, TestOptionalIntParsing) {
|
|
799
800
|
std::string err;
|
|
800
|
-
|
|
801
|
+
std::optional<int> value;
|
|
801
802
|
|
|
802
803
|
EXPECT_TRUE(absl::ParseFlag("", &value, &err));
|
|
803
804
|
EXPECT_FALSE(value.has_value());
|
|
@@ -817,7 +818,7 @@ TEST(MarshallingTest, TestOptionalIntParsing) {
|
|
|
817
818
|
|
|
818
819
|
TEST(MarshallingTest, TestOptionalDoubleParsing) {
|
|
819
820
|
std::string err;
|
|
820
|
-
|
|
821
|
+
std::optional<double> value;
|
|
821
822
|
|
|
822
823
|
EXPECT_TRUE(absl::ParseFlag("", &value, &err));
|
|
823
824
|
EXPECT_FALSE(value.has_value());
|
|
@@ -837,7 +838,7 @@ TEST(MarshallingTest, TestOptionalDoubleParsing) {
|
|
|
837
838
|
|
|
838
839
|
TEST(MarshallingTest, TestOptionalStringParsing) {
|
|
839
840
|
std::string err;
|
|
840
|
-
|
|
841
|
+
std::optional<std::string> value;
|
|
841
842
|
|
|
842
843
|
EXPECT_TRUE(absl::ParseFlag("", &value, &err));
|
|
843
844
|
EXPECT_FALSE(value.has_value());
|
|
@@ -1041,49 +1042,49 @@ TEST(MarshallingTest, TestStringUnparsing) {
|
|
|
1041
1042
|
// --------------------------------------------------------------------
|
|
1042
1043
|
|
|
1043
1044
|
TEST(MarshallingTest, TestOptionalBoolUnparsing) {
|
|
1044
|
-
|
|
1045
|
+
std::optional<bool> value;
|
|
1045
1046
|
|
|
1046
1047
|
EXPECT_EQ(absl::UnparseFlag(value), "");
|
|
1047
1048
|
value = true;
|
|
1048
1049
|
EXPECT_EQ(absl::UnparseFlag(value), "true");
|
|
1049
1050
|
value = false;
|
|
1050
1051
|
EXPECT_EQ(absl::UnparseFlag(value), "false");
|
|
1051
|
-
value =
|
|
1052
|
+
value = std::nullopt;
|
|
1052
1053
|
EXPECT_EQ(absl::UnparseFlag(value), "");
|
|
1053
1054
|
}
|
|
1054
1055
|
|
|
1055
1056
|
// --------------------------------------------------------------------
|
|
1056
1057
|
|
|
1057
1058
|
TEST(MarshallingTest, TestOptionalIntUnparsing) {
|
|
1058
|
-
|
|
1059
|
+
std::optional<int> value;
|
|
1059
1060
|
|
|
1060
1061
|
EXPECT_EQ(absl::UnparseFlag(value), "");
|
|
1061
1062
|
value = 0;
|
|
1062
1063
|
EXPECT_EQ(absl::UnparseFlag(value), "0");
|
|
1063
1064
|
value = -12;
|
|
1064
1065
|
EXPECT_EQ(absl::UnparseFlag(value), "-12");
|
|
1065
|
-
value =
|
|
1066
|
+
value = std::nullopt;
|
|
1066
1067
|
EXPECT_EQ(absl::UnparseFlag(value), "");
|
|
1067
1068
|
}
|
|
1068
1069
|
|
|
1069
1070
|
// --------------------------------------------------------------------
|
|
1070
1071
|
|
|
1071
1072
|
TEST(MarshallingTest, TestOptionalDoubleUnparsing) {
|
|
1072
|
-
|
|
1073
|
+
std::optional<double> value;
|
|
1073
1074
|
|
|
1074
1075
|
EXPECT_EQ(absl::UnparseFlag(value), "");
|
|
1075
1076
|
value = 1.;
|
|
1076
1077
|
EXPECT_EQ(absl::UnparseFlag(value), "1");
|
|
1077
1078
|
value = -1.23;
|
|
1078
1079
|
EXPECT_EQ(absl::UnparseFlag(value), "-1.23");
|
|
1079
|
-
value =
|
|
1080
|
+
value = std::nullopt;
|
|
1080
1081
|
EXPECT_EQ(absl::UnparseFlag(value), "");
|
|
1081
1082
|
}
|
|
1082
1083
|
|
|
1083
1084
|
// --------------------------------------------------------------------
|
|
1084
1085
|
|
|
1085
1086
|
TEST(MarshallingTest, TestOptionalStringUnparsing) {
|
|
1086
|
-
|
|
1087
|
+
std::optional<std::string> strvalue;
|
|
1087
1088
|
EXPECT_EQ(absl::UnparseFlag(strvalue), "");
|
|
1088
1089
|
|
|
1089
1090
|
strvalue = "asdfg";
|
|
@@ -38,7 +38,7 @@ class ReflectionTest : public testing::Test {
|
|
|
38
38
|
#if ABSL_FLAGS_STRIP_NAMES
|
|
39
39
|
GTEST_SKIP() << "This test requires flag names to be present";
|
|
40
40
|
#endif
|
|
41
|
-
flag_saver_ =
|
|
41
|
+
flag_saver_ = std::make_unique<absl::FlagSaver>();
|
|
42
42
|
}
|
|
43
43
|
void TearDown() override { flag_saver_.reset(); }
|
|
44
44
|
|
|
@@ -70,6 +70,32 @@ cc_test(
|
|
|
70
70
|
],
|
|
71
71
|
)
|
|
72
72
|
|
|
73
|
+
cc_library(
|
|
74
|
+
name = "bind_back",
|
|
75
|
+
srcs = ["internal/back_binder.h"],
|
|
76
|
+
hdrs = ["bind_back.h"],
|
|
77
|
+
copts = ABSL_DEFAULT_COPTS,
|
|
78
|
+
linkopts = ABSL_DEFAULT_LINKOPTS,
|
|
79
|
+
deps = [
|
|
80
|
+
"//absl/base:config",
|
|
81
|
+
"//absl/container:compressed_tuple",
|
|
82
|
+
"//absl/utility",
|
|
83
|
+
],
|
|
84
|
+
)
|
|
85
|
+
|
|
86
|
+
cc_test(
|
|
87
|
+
name = "bind_back_test",
|
|
88
|
+
srcs = ["bind_back_test.cc"],
|
|
89
|
+
copts = ABSL_TEST_COPTS,
|
|
90
|
+
linkopts = ABSL_DEFAULT_LINKOPTS,
|
|
91
|
+
deps = [
|
|
92
|
+
":bind_back",
|
|
93
|
+
"//absl/memory",
|
|
94
|
+
"@googletest//:gtest",
|
|
95
|
+
"@googletest//:gtest_main",
|
|
96
|
+
],
|
|
97
|
+
)
|
|
98
|
+
|
|
73
99
|
cc_library(
|
|
74
100
|
name = "bind_front",
|
|
75
101
|
srcs = ["internal/front_binder.h"],
|
|
@@ -149,7 +175,6 @@ cc_test(
|
|
|
149
175
|
"//absl/base:config",
|
|
150
176
|
"//absl/strings",
|
|
151
177
|
"//absl/strings:string_view",
|
|
152
|
-
"//absl/types:variant",
|
|
153
178
|
"@googletest//:gtest",
|
|
154
179
|
"@googletest//:gtest_main",
|
|
155
180
|
],
|
|
@@ -50,6 +50,35 @@ absl_cc_test(
|
|
|
50
50
|
GTest::gmock_main
|
|
51
51
|
)
|
|
52
52
|
|
|
53
|
+
absl_cc_library(
|
|
54
|
+
NAME
|
|
55
|
+
bind_back
|
|
56
|
+
SRCS
|
|
57
|
+
"internal/back_binder.h"
|
|
58
|
+
HDRS
|
|
59
|
+
"bind_back.h"
|
|
60
|
+
COPTS
|
|
61
|
+
${ABSL_DEFAULT_COPTS}
|
|
62
|
+
DEPS
|
|
63
|
+
absl::compressed_tuple
|
|
64
|
+
absl::config
|
|
65
|
+
absl::utility
|
|
66
|
+
PUBLIC
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
absl_cc_test(
|
|
70
|
+
NAME
|
|
71
|
+
bind_back_test
|
|
72
|
+
SRCS
|
|
73
|
+
"bind_back_test.cc"
|
|
74
|
+
COPTS
|
|
75
|
+
${ABSL_DEFAULT_COPTS}
|
|
76
|
+
DEPS
|
|
77
|
+
absl::bind_back
|
|
78
|
+
absl::memory
|
|
79
|
+
GTest::gmock_main
|
|
80
|
+
)
|
|
81
|
+
|
|
53
82
|
absl_cc_library(
|
|
54
83
|
NAME
|
|
55
84
|
bind_front
|
|
@@ -135,6 +164,5 @@ absl_cc_test(
|
|
|
135
164
|
absl::overload
|
|
136
165
|
absl::string_view
|
|
137
166
|
absl::strings
|
|
138
|
-
absl::variant
|
|
139
167
|
GTest::gmock_main
|
|
140
168
|
)
|
|
@@ -191,7 +191,7 @@ class ABSL_NULLABILITY_COMPATIBLE ABSL_ATTRIBUTE_OWNER AnyInvocable
|
|
|
191
191
|
// Upon construction, `*this` is only empty if `f` is a function pointer or
|
|
192
192
|
// member pointer type and is null, or if `f` is an `AnyInvocable` that is
|
|
193
193
|
// empty.
|
|
194
|
-
template <class F, typename =
|
|
194
|
+
template <class F, typename = std::enable_if_t<
|
|
195
195
|
internal_any_invocable::CanConvert<Sig, F>::value>>
|
|
196
196
|
AnyInvocable(F&& f) // NOLINT
|
|
197
197
|
: Impl(internal_any_invocable::ConversionConstruct(),
|
|
@@ -203,28 +203,27 @@ class ABSL_NULLABILITY_COMPATIBLE ABSL_ATTRIBUTE_OWNER AnyInvocable
|
|
|
203
203
|
// Example:
|
|
204
204
|
//
|
|
205
205
|
// AnyInvocable<int(int)> func(
|
|
206
|
-
//
|
|
206
|
+
// std::in_place_type<PossiblyImmovableType>, arg1, arg2);
|
|
207
207
|
//
|
|
208
208
|
template <class T, class... Args,
|
|
209
|
-
typename =
|
|
209
|
+
typename = std::enable_if_t<
|
|
210
210
|
internal_any_invocable::CanEmplace<Sig, T, Args...>::value>>
|
|
211
|
-
explicit AnyInvocable(
|
|
212
|
-
: Impl(
|
|
213
|
-
|
|
214
|
-
static_assert(std::is_same<T, absl::decay_t<T>>::value,
|
|
211
|
+
explicit AnyInvocable(std::in_place_type_t<T>, Args&&... args)
|
|
212
|
+
: Impl(std::in_place_type<std::decay_t<T>>, std::forward<Args>(args)...) {
|
|
213
|
+
static_assert(std::is_same<T, std::decay_t<T>>::value,
|
|
215
214
|
"The explicit template argument of in_place_type is required "
|
|
216
215
|
"to be an unqualified object type.");
|
|
217
216
|
}
|
|
218
217
|
|
|
219
218
|
// Overload of the above constructor to support list-initialization.
|
|
220
219
|
template <class T, class U, class... Args,
|
|
221
|
-
typename =
|
|
220
|
+
typename = std::enable_if_t<internal_any_invocable::CanEmplace<
|
|
222
221
|
Sig, T, std::initializer_list<U>&, Args...>::value>>
|
|
223
|
-
explicit AnyInvocable(
|
|
224
|
-
|
|
225
|
-
: Impl(
|
|
222
|
+
explicit AnyInvocable(std::in_place_type_t<T>, std::initializer_list<U> ilist,
|
|
223
|
+
Args&&... args)
|
|
224
|
+
: Impl(std::in_place_type<std::decay_t<T>>, ilist,
|
|
226
225
|
std::forward<Args>(args)...) {
|
|
227
|
-
static_assert(std::is_same<T,
|
|
226
|
+
static_assert(std::is_same<T, std::decay_t<T>>::value,
|
|
228
227
|
"The explicit template argument of in_place_type is required "
|
|
229
228
|
"to be an unqualified object type.");
|
|
230
229
|
}
|
|
@@ -248,7 +247,7 @@ class ABSL_NULLABILITY_COMPATIBLE ABSL_ATTRIBUTE_OWNER AnyInvocable
|
|
|
248
247
|
// Upon assignment, `*this` is only empty if `f` is a function pointer or
|
|
249
248
|
// member pointer type and is null, or if `f` is an `AnyInvocable` that is
|
|
250
249
|
// empty.
|
|
251
|
-
template <class F, typename =
|
|
250
|
+
template <class F, typename = std::enable_if_t<
|
|
252
251
|
internal_any_invocable::CanAssign<Sig, F>::value>>
|
|
253
252
|
AnyInvocable& operator=(F&& f) {
|
|
254
253
|
*this = AnyInvocable(std::forward<F>(f));
|
|
@@ -260,7 +259,7 @@ class ABSL_NULLABILITY_COMPATIBLE ABSL_ATTRIBUTE_OWNER AnyInvocable
|
|
|
260
259
|
// `AnyInvocable` instance.
|
|
261
260
|
template <
|
|
262
261
|
class F,
|
|
263
|
-
typename =
|
|
262
|
+
typename = std::enable_if_t<
|
|
264
263
|
internal_any_invocable::CanAssignReferenceWrapper<Sig, F>::value>>
|
|
265
264
|
AnyInvocable& operator=(std::reference_wrapper<F> f) noexcept {
|
|
266
265
|
*this = AnyInvocable(f);
|