re2 1.22.2 → 1.23.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/README.md +60 -4
- package/binding.gyp +5 -1
- package/lib/addon.cc +4 -0
- package/lib/new.cc +1 -246
- package/lib/pattern.cc +252 -0
- package/lib/pattern.h +10 -0
- package/lib/set.cc +777 -0
- package/lib/wrapped_re2_set.h +42 -0
- package/package.json +21 -9
- package/re2.d.ts +46 -9
- package/vendor/abseil-cpp/CMake/AbseilDll.cmake +14 -24
- package/vendor/abseil-cpp/CMake/AbseilHelpers.cmake +3 -3
- package/vendor/abseil-cpp/CMake/README.md +2 -2
- package/vendor/abseil-cpp/CMakeLists.txt +3 -3
- package/vendor/abseil-cpp/MODULE.bazel +6 -9
- package/vendor/abseil-cpp/README.md +6 -8
- package/vendor/abseil-cpp/absl/abseil.podspec.gen.py +6 -4
- package/vendor/abseil-cpp/absl/algorithm/BUILD.bazel +3 -0
- package/vendor/abseil-cpp/absl/algorithm/CMakeLists.txt +1 -0
- package/vendor/abseil-cpp/absl/algorithm/container.h +2 -19
- package/vendor/abseil-cpp/absl/algorithm/container_test.cc +4 -11
- package/vendor/abseil-cpp/absl/base/BUILD.bazel +60 -45
- package/vendor/abseil-cpp/absl/base/CMakeLists.txt +57 -38
- package/vendor/abseil-cpp/absl/base/attributes.h +76 -7
- package/vendor/abseil-cpp/absl/base/attributes_test.cc +43 -0
- package/vendor/abseil-cpp/absl/base/call_once.h +11 -12
- package/vendor/abseil-cpp/absl/base/config.h +22 -129
- package/vendor/abseil-cpp/absl/base/exception_safety_testing_test.cc +0 -4
- package/vendor/abseil-cpp/absl/base/{internal/fast_type_id.h → fast_type_id.h} +11 -16
- package/vendor/abseil-cpp/absl/base/{internal/fast_type_id_test.cc → fast_type_id_test.cc} +34 -30
- package/vendor/abseil-cpp/absl/base/internal/cycleclock.cc +0 -5
- package/vendor/abseil-cpp/absl/base/internal/cycleclock_config.h +7 -7
- package/vendor/abseil-cpp/absl/base/internal/endian.h +34 -38
- package/vendor/abseil-cpp/absl/base/internal/iterator_traits.h +71 -0
- package/vendor/abseil-cpp/absl/base/internal/iterator_traits_test.cc +85 -0
- package/vendor/abseil-cpp/absl/base/internal/iterator_traits_test_helper.h +97 -0
- package/vendor/abseil-cpp/absl/base/internal/low_level_alloc.cc +39 -9
- package/vendor/abseil-cpp/absl/base/internal/low_level_alloc.h +6 -0
- package/vendor/abseil-cpp/absl/base/internal/poison.cc +7 -6
- package/vendor/abseil-cpp/absl/base/internal/spinlock.cc +15 -28
- package/vendor/abseil-cpp/absl/base/internal/spinlock.h +65 -35
- package/vendor/abseil-cpp/absl/base/internal/spinlock_benchmark.cc +2 -2
- package/vendor/abseil-cpp/absl/base/internal/sysinfo_test.cc +2 -2
- package/vendor/abseil-cpp/absl/base/internal/thread_identity_benchmark.cc +1 -1
- package/vendor/abseil-cpp/absl/base/internal/thread_identity_test.cc +4 -4
- package/vendor/abseil-cpp/absl/base/internal/unaligned_access.h +6 -6
- package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +4 -0
- package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.h +8 -3
- package/vendor/abseil-cpp/absl/base/no_destructor.h +11 -32
- package/vendor/abseil-cpp/absl/base/no_destructor_test.cc +0 -4
- package/vendor/abseil-cpp/absl/base/nullability.h +83 -72
- package/vendor/abseil-cpp/absl/base/nullability_test.cc +25 -64
- package/vendor/abseil-cpp/absl/base/options.h +3 -80
- package/vendor/abseil-cpp/absl/base/policy_checks.h +7 -7
- package/vendor/abseil-cpp/absl/base/raw_logging_test.cc +15 -0
- package/vendor/abseil-cpp/absl/base/spinlock_test_common.cc +50 -30
- package/vendor/abseil-cpp/absl/cleanup/BUILD.bazel +2 -1
- package/vendor/abseil-cpp/absl/cleanup/CMakeLists.txt +0 -1
- package/vendor/abseil-cpp/absl/cleanup/cleanup.h +1 -3
- package/vendor/abseil-cpp/absl/cleanup/cleanup_test.cc +0 -2
- package/vendor/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -4
- package/vendor/abseil-cpp/absl/container/BUILD.bazel +74 -1
- package/vendor/abseil-cpp/absl/container/CMakeLists.txt +73 -0
- package/vendor/abseil-cpp/absl/container/btree_benchmark.cc +51 -9
- package/vendor/abseil-cpp/absl/container/btree_map.h +8 -6
- package/vendor/abseil-cpp/absl/container/btree_set.h +8 -6
- package/vendor/abseil-cpp/absl/container/btree_test.cc +89 -4
- package/vendor/abseil-cpp/absl/container/fixed_array.h +7 -15
- package/vendor/abseil-cpp/absl/container/fixed_array_test.cc +17 -0
- package/vendor/abseil-cpp/absl/container/flat_hash_map.h +20 -15
- package/vendor/abseil-cpp/absl/container/flat_hash_map_test.cc +8 -14
- package/vendor/abseil-cpp/absl/container/flat_hash_set.h +19 -14
- package/vendor/abseil-cpp/absl/container/flat_hash_set_test.cc +46 -0
- package/vendor/abseil-cpp/absl/container/inlined_vector.h +7 -6
- package/vendor/abseil-cpp/absl/container/inlined_vector_test.cc +28 -0
- package/vendor/abseil-cpp/absl/container/internal/btree.h +132 -29
- package/vendor/abseil-cpp/absl/container/internal/btree_container.h +175 -71
- package/vendor/abseil-cpp/absl/container/internal/common.h +43 -0
- package/vendor/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -2
- package/vendor/abseil-cpp/absl/container/internal/compressed_tuple.h +28 -24
- package/vendor/abseil-cpp/absl/container/internal/compressed_tuple_test.cc +4 -17
- package/vendor/abseil-cpp/absl/container/internal/container_memory.h +80 -17
- package/vendor/abseil-cpp/absl/container/internal/container_memory_test.cc +32 -2
- package/vendor/abseil-cpp/absl/container/internal/hash_function_defaults.h +13 -8
- package/vendor/abseil-cpp/absl/container/internal/hash_function_defaults_test.cc +1 -52
- package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.cc +9 -31
- package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.h +23 -32
- package/vendor/abseil-cpp/absl/container/internal/hash_policy_testing.h +5 -1
- package/vendor/abseil-cpp/absl/container/internal/hash_policy_traits.h +11 -23
- package/vendor/abseil-cpp/absl/container/internal/hash_policy_traits_test.cc +14 -9
- package/vendor/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +516 -0
- package/vendor/abseil-cpp/absl/container/internal/hashtable_control_bytes_test.cc +259 -0
- package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +23 -6
- package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.h +32 -13
- package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler_test.cc +8 -8
- package/vendor/abseil-cpp/absl/container/internal/inlined_vector.h +2 -7
- package/vendor/abseil-cpp/absl/container/internal/layout.h +26 -42
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_map.h +199 -68
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.cc +1506 -213
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.h +1095 -1658
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_allocator_test.cc +3 -2
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_benchmark.cc +31 -29
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_probe_benchmark.cc +51 -20
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl.h +79 -0
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl_test.cc +66 -0
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_test.cc +707 -363
- package/vendor/abseil-cpp/absl/container/node_hash_map.h +20 -15
- package/vendor/abseil-cpp/absl/container/node_hash_map_test.cc +0 -3
- package/vendor/abseil-cpp/absl/container/node_hash_set.h +18 -13
- package/vendor/abseil-cpp/absl/container/sample_element_size_test.cc +3 -8
- package/vendor/abseil-cpp/absl/copts/AbseilConfigureCopts.cmake +1 -1
- package/vendor/abseil-cpp/absl/copts/GENERATED_AbseilCopts.cmake +9 -20
- package/vendor/abseil-cpp/absl/copts/GENERATED_copts.bzl +9 -20
- package/vendor/abseil-cpp/absl/copts/copts.py +24 -15
- package/vendor/abseil-cpp/absl/crc/BUILD.bazel +3 -0
- package/vendor/abseil-cpp/absl/crc/crc32c.cc +0 -4
- package/vendor/abseil-cpp/absl/crc/crc32c.h +7 -5
- package/vendor/abseil-cpp/absl/crc/crc32c_benchmark.cc +17 -4
- package/vendor/abseil-cpp/absl/crc/crc32c_test.cc +30 -0
- package/vendor/abseil-cpp/absl/crc/internal/cpu_detect.cc +17 -0
- package/vendor/abseil-cpp/absl/crc/internal/cpu_detect.h +7 -1
- package/vendor/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +0 -22
- package/vendor/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc +5 -0
- package/vendor/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +136 -165
- package/vendor/abseil-cpp/absl/crc/internal/gen_crc32c_consts.py +90 -0
- package/vendor/abseil-cpp/absl/debugging/BUILD.bazel +7 -0
- package/vendor/abseil-cpp/absl/debugging/CMakeLists.txt +4 -0
- package/vendor/abseil-cpp/absl/debugging/internal/addresses.h +57 -0
- package/vendor/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc +1 -1
- package/vendor/abseil-cpp/absl/debugging/internal/decode_rust_punycode.h +5 -5
- package/vendor/abseil-cpp/absl/debugging/internal/demangle.cc +8 -35
- package/vendor/abseil-cpp/absl/debugging/internal/demangle_rust.cc +16 -16
- package/vendor/abseil-cpp/absl/debugging/internal/demangle_test.cc +11 -10
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +40 -37
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +16 -7
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_config.h +6 -5
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +14 -5
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +10 -4
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +27 -16
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +13 -4
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +4 -3
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +15 -28
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +25 -14
- package/vendor/abseil-cpp/absl/debugging/internal/vdso_support.cc +4 -0
- package/vendor/abseil-cpp/absl/debugging/stacktrace.cc +161 -27
- package/vendor/abseil-cpp/absl/debugging/stacktrace.h +73 -5
- package/vendor/abseil-cpp/absl/debugging/stacktrace_test.cc +435 -1
- package/vendor/abseil-cpp/absl/debugging/symbolize_elf.inc +55 -63
- package/vendor/abseil-cpp/absl/debugging/symbolize_emscripten.inc +3 -2
- package/vendor/abseil-cpp/absl/debugging/symbolize_win32.inc +25 -6
- package/vendor/abseil-cpp/absl/flags/BUILD.bazel +6 -0
- package/vendor/abseil-cpp/absl/flags/CMakeLists.txt +3 -0
- package/vendor/abseil-cpp/absl/flags/commandlineflag.h +2 -2
- package/vendor/abseil-cpp/absl/flags/flag.h +4 -3
- package/vendor/abseil-cpp/absl/flags/internal/commandlineflag.h +2 -2
- package/vendor/abseil-cpp/absl/flags/internal/flag.cc +14 -13
- package/vendor/abseil-cpp/absl/flags/internal/flag.h +34 -34
- package/vendor/abseil-cpp/absl/flags/internal/program_name.cc +2 -2
- package/vendor/abseil-cpp/absl/flags/internal/registry.h +4 -3
- package/vendor/abseil-cpp/absl/flags/internal/usage.cc +2 -2
- package/vendor/abseil-cpp/absl/flags/parse.cc +10 -6
- package/vendor/abseil-cpp/absl/flags/reflection.cc +9 -7
- package/vendor/abseil-cpp/absl/flags/usage.cc +2 -2
- package/vendor/abseil-cpp/absl/flags/usage_config.cc +2 -2
- package/vendor/abseil-cpp/absl/functional/BUILD.bazel +7 -6
- package/vendor/abseil-cpp/absl/functional/CMakeLists.txt +2 -4
- package/vendor/abseil-cpp/absl/functional/any_invocable.h +15 -15
- package/vendor/abseil-cpp/absl/functional/any_invocable_test.cc +10 -42
- package/vendor/abseil-cpp/absl/functional/function_ref.h +2 -9
- package/vendor/abseil-cpp/absl/functional/function_ref_test.cc +10 -0
- package/vendor/abseil-cpp/absl/functional/function_type_benchmark.cc +1 -1
- package/vendor/abseil-cpp/absl/functional/internal/any_invocable.h +112 -227
- package/vendor/abseil-cpp/absl/functional/internal/front_binder.h +10 -12
- package/vendor/abseil-cpp/absl/functional/internal/function_ref.h +2 -5
- package/vendor/abseil-cpp/absl/functional/overload.h +0 -20
- package/vendor/abseil-cpp/absl/functional/overload_test.cc +1 -7
- package/vendor/abseil-cpp/absl/hash/BUILD.bazel +16 -9
- package/vendor/abseil-cpp/absl/hash/CMakeLists.txt +6 -9
- package/vendor/abseil-cpp/absl/hash/hash.h +18 -0
- package/vendor/abseil-cpp/absl/hash/hash_benchmark.cc +3 -0
- package/vendor/abseil-cpp/absl/hash/hash_instantiated_test.cc +1 -1
- package/vendor/abseil-cpp/absl/hash/hash_test.cc +131 -30
- package/vendor/abseil-cpp/absl/hash/hash_testing.h +20 -20
- package/vendor/abseil-cpp/absl/hash/internal/hash.cc +129 -17
- package/vendor/abseil-cpp/absl/hash/internal/hash.h +326 -362
- package/vendor/abseil-cpp/absl/hash/internal/low_level_hash_test.cc +54 -151
- package/vendor/abseil-cpp/absl/hash/internal/spy_hash_state.h +14 -2
- package/vendor/abseil-cpp/absl/{strings/cord_buffer.cc → hash/internal/weakly_mixed_integer.h} +14 -6
- package/vendor/abseil-cpp/absl/log/BUILD.bazel +4 -0
- package/vendor/abseil-cpp/absl/log/CMakeLists.txt +7 -0
- package/vendor/abseil-cpp/absl/log/check.h +2 -1
- package/vendor/abseil-cpp/absl/log/check_test_impl.inc +308 -14
- package/vendor/abseil-cpp/absl/log/die_if_null.h +2 -2
- package/vendor/abseil-cpp/absl/log/flags_test.cc +7 -0
- package/vendor/abseil-cpp/absl/log/globals.h +4 -5
- package/vendor/abseil-cpp/absl/log/internal/BUILD.bazel +13 -9
- package/vendor/abseil-cpp/absl/log/internal/append_truncated.h +28 -0
- package/vendor/abseil-cpp/absl/log/internal/check_op.cc +24 -22
- package/vendor/abseil-cpp/absl/log/internal/check_op.h +149 -94
- package/vendor/abseil-cpp/absl/log/internal/conditions.cc +5 -3
- package/vendor/abseil-cpp/absl/log/internal/conditions.h +7 -2
- package/vendor/abseil-cpp/absl/log/internal/fnmatch_test.cc +1 -0
- package/vendor/abseil-cpp/absl/log/internal/log_message.cc +85 -43
- package/vendor/abseil-cpp/absl/log/internal/log_message.h +84 -59
- package/vendor/abseil-cpp/absl/log/internal/log_sink_set.cc +4 -4
- package/vendor/abseil-cpp/absl/log/internal/nullstream.h +1 -0
- package/vendor/abseil-cpp/absl/log/internal/proto.cc +3 -2
- package/vendor/abseil-cpp/absl/log/internal/proto.h +3 -3
- package/vendor/abseil-cpp/absl/log/internal/strip.h +4 -12
- package/vendor/abseil-cpp/absl/log/internal/structured.h +3 -7
- package/vendor/abseil-cpp/absl/log/internal/vlog_config.cc +9 -9
- package/vendor/abseil-cpp/absl/log/internal/vlog_config.h +8 -6
- package/vendor/abseil-cpp/absl/log/internal/voidify.h +10 -4
- package/vendor/abseil-cpp/absl/log/log.h +48 -35
- package/vendor/abseil-cpp/absl/log/log_basic_test_impl.inc +45 -0
- package/vendor/abseil-cpp/absl/log/log_entry.cc +241 -19
- package/vendor/abseil-cpp/absl/log/log_entry.h +2 -0
- package/vendor/abseil-cpp/absl/log/log_format_test.cc +412 -6
- package/vendor/abseil-cpp/absl/log/log_modifier_methods_test.cc +20 -0
- package/vendor/abseil-cpp/absl/log/log_sink_registry.h +2 -2
- package/vendor/abseil-cpp/absl/log/log_streamer_test.cc +15 -2
- package/vendor/abseil-cpp/absl/log/scoped_mock_log.h +7 -1
- package/vendor/abseil-cpp/absl/log/structured_test.cc +1 -0
- package/vendor/abseil-cpp/absl/memory/BUILD.bazel +2 -0
- package/vendor/abseil-cpp/absl/meta/BUILD.bazel +2 -0
- package/vendor/abseil-cpp/absl/meta/type_traits.h +46 -175
- package/vendor/abseil-cpp/absl/meta/type_traits_test.cc +1 -478
- package/vendor/abseil-cpp/absl/numeric/BUILD.bazel +7 -3
- package/vendor/abseil-cpp/absl/numeric/CMakeLists.txt +2 -0
- package/vendor/abseil-cpp/absl/numeric/bits.h +68 -2
- package/vendor/abseil-cpp/absl/numeric/bits_benchmark.cc +1 -1
- package/vendor/abseil-cpp/absl/numeric/bits_test.cc +83 -0
- package/vendor/abseil-cpp/absl/numeric/int128.cc +0 -52
- package/vendor/abseil-cpp/absl/numeric/int128_benchmark.cc +14 -15
- package/vendor/abseil-cpp/absl/numeric/int128_test.cc +13 -8
- package/vendor/abseil-cpp/absl/numeric/internal/bits.h +39 -7
- package/vendor/abseil-cpp/absl/profiling/BUILD.bazel +47 -0
- package/vendor/abseil-cpp/absl/profiling/CMakeLists.txt +38 -0
- package/vendor/abseil-cpp/absl/profiling/hashtable.cc +124 -0
- package/vendor/abseil-cpp/absl/profiling/hashtable.h +40 -0
- package/vendor/abseil-cpp/absl/profiling/internal/exponential_biased.cc +1 -1
- package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.cc +462 -0
- package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.h +138 -0
- package/vendor/abseil-cpp/absl/profiling/internal/sample_recorder.h +9 -9
- package/vendor/abseil-cpp/absl/profiling/internal/sample_recorder_test.cc +7 -3
- package/vendor/abseil-cpp/absl/random/BUILD.bazel +6 -4
- package/vendor/abseil-cpp/absl/random/CMakeLists.txt +20 -19
- package/vendor/abseil-cpp/absl/random/benchmarks.cc +16 -23
- package/vendor/abseil-cpp/absl/random/bit_gen_ref.h +10 -11
- package/vendor/abseil-cpp/absl/random/bit_gen_ref_test.cc +7 -2
- package/vendor/abseil-cpp/absl/random/distributions.h +6 -8
- package/vendor/abseil-cpp/absl/random/gaussian_distribution.h +1 -1
- package/vendor/abseil-cpp/absl/random/internal/BUILD.bazel +19 -20
- package/vendor/abseil-cpp/absl/random/internal/distribution_caller.h +5 -6
- package/vendor/abseil-cpp/absl/random/internal/{pool_urbg.cc → entropy_pool.cc} +24 -92
- package/vendor/abseil-cpp/absl/{base/inline_variable_test_b.cc → random/internal/entropy_pool.h} +14 -6
- package/vendor/abseil-cpp/absl/random/internal/entropy_pool_test.cc +119 -0
- package/vendor/abseil-cpp/absl/random/internal/mock_helpers.h +6 -7
- package/vendor/abseil-cpp/absl/random/internal/nonsecure_base.h +5 -6
- package/vendor/abseil-cpp/absl/random/internal/nonsecure_base_test.cc +39 -0
- package/vendor/abseil-cpp/absl/random/internal/randen_benchmarks.cc +8 -6
- package/vendor/abseil-cpp/absl/random/internal/randen_detect.cc +1 -1
- package/vendor/abseil-cpp/absl/random/internal/seed_material.cc +20 -12
- package/vendor/abseil-cpp/absl/random/internal/seed_material.h +5 -5
- package/vendor/abseil-cpp/absl/random/internal/seed_material_test.cc +3 -0
- package/vendor/abseil-cpp/absl/random/mock_distributions_test.cc +5 -4
- package/vendor/abseil-cpp/absl/random/mocking_bit_gen.h +8 -10
- package/vendor/abseil-cpp/absl/random/random.h +88 -53
- package/vendor/abseil-cpp/absl/random/seed_sequences.cc +6 -2
- package/vendor/abseil-cpp/absl/status/BUILD.bazel +26 -0
- package/vendor/abseil-cpp/absl/status/internal/status_internal.cc +3 -4
- package/vendor/abseil-cpp/absl/status/internal/status_internal.h +3 -4
- package/vendor/abseil-cpp/absl/status/internal/status_matchers.cc +4 -3
- package/vendor/abseil-cpp/absl/status/internal/statusor_internal.h +194 -32
- package/vendor/abseil-cpp/absl/status/status.cc +4 -8
- package/vendor/abseil-cpp/absl/status/status.h +8 -8
- package/vendor/abseil-cpp/absl/{base/inline_variable_test_a.cc → status/status_benchmark.cc} +20 -10
- package/vendor/abseil-cpp/absl/status/status_matchers_test.cc +65 -0
- package/vendor/abseil-cpp/absl/status/status_payload_printer.h +2 -2
- package/vendor/abseil-cpp/absl/status/statusor.cc +2 -2
- package/vendor/abseil-cpp/absl/status/statusor.h +49 -102
- package/vendor/abseil-cpp/absl/status/statusor_benchmark.cc +480 -0
- package/vendor/abseil-cpp/absl/status/statusor_test.cc +323 -1
- package/vendor/abseil-cpp/absl/strings/BUILD.bazel +70 -34
- package/vendor/abseil-cpp/absl/strings/CMakeLists.txt +6 -3
- package/vendor/abseil-cpp/absl/strings/ascii.cc +9 -9
- package/vendor/abseil-cpp/absl/strings/ascii.h +18 -18
- package/vendor/abseil-cpp/absl/strings/ascii_benchmark.cc +5 -8
- package/vendor/abseil-cpp/absl/strings/charconv.cc +21 -22
- package/vendor/abseil-cpp/absl/strings/charconv.h +5 -5
- package/vendor/abseil-cpp/absl/strings/charconv_benchmark.cc +1 -2
- package/vendor/abseil-cpp/absl/strings/charset_benchmark.cc +1 -1
- package/vendor/abseil-cpp/absl/strings/cord.cc +54 -58
- package/vendor/abseil-cpp/absl/strings/cord.h +94 -84
- package/vendor/abseil-cpp/absl/strings/cord_analysis.cc +11 -11
- package/vendor/abseil-cpp/absl/strings/cord_analysis.h +3 -3
- package/vendor/abseil-cpp/absl/strings/cord_test.cc +23 -0
- package/vendor/abseil-cpp/absl/strings/cordz_test_helpers.h +4 -5
- package/vendor/abseil-cpp/absl/strings/escaping.cc +130 -149
- package/vendor/abseil-cpp/absl/strings/escaping.h +9 -10
- package/vendor/abseil-cpp/absl/strings/escaping_benchmark.cc +2 -3
- package/vendor/abseil-cpp/absl/strings/escaping_test.cc +19 -9
- package/vendor/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
- package/vendor/abseil-cpp/absl/strings/internal/charconv_bigint_test.cc +1 -1
- package/vendor/abseil-cpp/absl/strings/internal/cord_internal.h +6 -10
- package/vendor/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +0 -4
- package/vendor/abseil-cpp/absl/strings/internal/cordz_handle.cc +6 -6
- package/vendor/abseil-cpp/absl/strings/internal/cordz_info.cc +5 -9
- package/vendor/abseil-cpp/absl/strings/internal/cordz_info.h +2 -4
- package/vendor/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance_benchmark.cc +56 -0
- package/vendor/abseil-cpp/absl/strings/internal/memutil_benchmark.cc +2 -3
- package/vendor/abseil-cpp/absl/strings/internal/ostringstream_benchmark.cc +1 -2
- package/vendor/abseil-cpp/absl/strings/internal/str_format/arg.cc +7 -63
- package/vendor/abseil-cpp/absl/strings/internal/str_format/arg.h +1 -11
- package/vendor/abseil-cpp/absl/strings/internal/str_format/convert_test.cc +1 -6
- package/vendor/abseil-cpp/absl/strings/internal/str_format/extension.cc +0 -22
- package/vendor/abseil-cpp/absl/strings/internal/str_format/extension_test.cc +3 -2
- package/vendor/abseil-cpp/absl/strings/internal/str_format/output.cc +5 -3
- package/vendor/abseil-cpp/absl/strings/internal/str_format/parser.h +4 -2
- package/vendor/abseil-cpp/absl/strings/internal/str_join_internal.h +3 -3
- package/vendor/abseil-cpp/absl/strings/internal/str_split_internal.h +7 -2
- package/vendor/abseil-cpp/absl/strings/internal/string_constant.h +0 -5
- package/vendor/abseil-cpp/absl/strings/internal/utf8.cc +96 -1
- package/vendor/abseil-cpp/absl/strings/internal/utf8.h +15 -1
- package/vendor/abseil-cpp/absl/strings/internal/utf8_test.cc +196 -3
- package/vendor/abseil-cpp/absl/strings/numbers.cc +53 -32
- package/vendor/abseil-cpp/absl/strings/numbers.h +87 -58
- package/vendor/abseil-cpp/absl/strings/numbers_benchmark.cc +1 -1
- package/vendor/abseil-cpp/absl/strings/numbers_test.cc +634 -120
- package/vendor/abseil-cpp/absl/strings/str_cat.cc +6 -7
- package/vendor/abseil-cpp/absl/strings/str_cat.h +32 -32
- package/vendor/abseil-cpp/absl/strings/str_cat_benchmark.cc +25 -1
- package/vendor/abseil-cpp/absl/strings/str_cat_test.cc +2 -7
- package/vendor/abseil-cpp/absl/strings/str_format.h +18 -18
- package/vendor/abseil-cpp/absl/strings/str_format_test.cc +8 -14
- package/vendor/abseil-cpp/absl/strings/str_join_benchmark.cc +2 -3
- package/vendor/abseil-cpp/absl/strings/str_replace.cc +3 -3
- package/vendor/abseil-cpp/absl/strings/str_replace.h +6 -6
- package/vendor/abseil-cpp/absl/strings/str_replace_benchmark.cc +2 -3
- package/vendor/abseil-cpp/absl/strings/str_split.h +2 -2
- package/vendor/abseil-cpp/absl/strings/str_split_benchmark.cc +2 -3
- package/vendor/abseil-cpp/absl/strings/string_view.cc +4 -9
- package/vendor/abseil-cpp/absl/strings/string_view.h +38 -39
- package/vendor/abseil-cpp/absl/strings/string_view_benchmark.cc +4 -6
- package/vendor/abseil-cpp/absl/strings/string_view_test.cc +2 -50
- package/vendor/abseil-cpp/absl/strings/strip.h +4 -4
- package/vendor/abseil-cpp/absl/strings/substitute.cc +5 -4
- package/vendor/abseil-cpp/absl/strings/substitute.h +66 -64
- package/vendor/abseil-cpp/absl/strings/substitute_benchmark.cc +158 -0
- package/vendor/abseil-cpp/absl/synchronization/BUILD.bazel +6 -1
- package/vendor/abseil-cpp/absl/synchronization/CMakeLists.txt +2 -1
- package/vendor/abseil-cpp/absl/synchronization/barrier.cc +1 -1
- package/vendor/abseil-cpp/absl/synchronization/barrier_test.cc +3 -3
- package/vendor/abseil-cpp/absl/synchronization/blocking_counter.cc +2 -2
- package/vendor/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +3 -3
- package/vendor/abseil-cpp/absl/synchronization/internal/futex_waiter.cc +0 -4
- package/vendor/abseil-cpp/absl/synchronization/internal/graphcycles.cc +30 -33
- package/vendor/abseil-cpp/absl/synchronization/internal/graphcycles_benchmark.cc +2 -3
- package/vendor/abseil-cpp/absl/synchronization/internal/graphcycles_test.cc +6 -5
- package/vendor/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc +0 -5
- package/vendor/abseil-cpp/absl/synchronization/internal/pthread_waiter.cc +0 -4
- package/vendor/abseil-cpp/absl/synchronization/internal/sem_waiter.cc +0 -4
- package/vendor/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc +0 -4
- package/vendor/abseil-cpp/absl/synchronization/internal/thread_pool.h +3 -3
- package/vendor/abseil-cpp/absl/synchronization/internal/waiter_base.cc +0 -4
- package/vendor/abseil-cpp/absl/synchronization/internal/waiter_test.cc +12 -3
- package/vendor/abseil-cpp/absl/synchronization/internal/win32_waiter.cc +0 -4
- package/vendor/abseil-cpp/absl/synchronization/lifetime_test.cc +4 -4
- package/vendor/abseil-cpp/absl/synchronization/mutex.cc +27 -29
- package/vendor/abseil-cpp/absl/synchronization/mutex.h +205 -126
- package/vendor/abseil-cpp/absl/synchronization/mutex_benchmark.cc +13 -31
- package/vendor/abseil-cpp/absl/synchronization/mutex_test.cc +183 -169
- package/vendor/abseil-cpp/absl/synchronization/notification.cc +5 -5
- package/vendor/abseil-cpp/absl/synchronization/notification.h +1 -1
- package/vendor/abseil-cpp/absl/synchronization/notification_test.cc +3 -3
- package/vendor/abseil-cpp/absl/time/BUILD.bazel +9 -1
- package/vendor/abseil-cpp/absl/time/CMakeLists.txt +3 -1
- package/vendor/abseil-cpp/absl/time/civil_time.cc +1 -0
- package/vendor/abseil-cpp/absl/time/civil_time_test.cc +134 -0
- package/vendor/abseil-cpp/absl/time/clock.cc +11 -14
- package/vendor/abseil-cpp/absl/time/duration.cc +14 -9
- package/vendor/abseil-cpp/absl/time/duration_test.cc +6 -7
- package/vendor/abseil-cpp/absl/time/internal/cctz/BUILD.bazel +14 -3
- package/vendor/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +12 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +1 -1
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/cctz_benchmark.cc +4 -490
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/test_time_zone_names.cc +515 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/test_time_zone_names.h +33 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +41 -4
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format_test.cc +22 -23
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +90 -111
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup_test.cc +1 -488
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/version +1 -1
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Coyhaique +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tehran +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Iran +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zone1970.tab +2 -1
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zonenow.tab +1 -1
- package/vendor/abseil-cpp/absl/time/time.h +24 -18
- package/vendor/abseil-cpp/absl/time/time_test.cc +26 -0
- package/vendor/abseil-cpp/absl/types/BUILD.bazel +11 -164
- package/vendor/abseil-cpp/absl/types/CMakeLists.txt +23 -167
- package/vendor/abseil-cpp/absl/types/any.h +9 -484
- package/vendor/abseil-cpp/absl/types/optional.h +7 -747
- package/vendor/abseil-cpp/absl/types/span.h +46 -19
- package/vendor/abseil-cpp/absl/types/span_test.cc +27 -0
- package/vendor/abseil-cpp/absl/types/variant.h +5 -784
- package/vendor/abseil-cpp/absl/types/variant_test.cc +43 -2597
- package/vendor/abseil-cpp/absl/utility/BUILD.bazel +1 -41
- package/vendor/abseil-cpp/absl/utility/CMakeLists.txt +0 -40
- package/vendor/abseil-cpp/absl/utility/utility.h +10 -185
- package/vendor/abseil-cpp/ci/absl_alternate_options.h +2 -3
- package/vendor/abseil-cpp/ci/cmake_common.sh +2 -2
- package/vendor/abseil-cpp/ci/linux_arm_clang-latest_libcxx_bazel.sh +12 -13
- package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_asan_bazel.sh +24 -21
- package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_bazel.sh +12 -12
- package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_tsan_bazel.sh +23 -22
- package/vendor/abseil-cpp/ci/linux_clang-latest_libstdcxx_bazel.sh +20 -19
- package/vendor/abseil-cpp/ci/linux_docker_containers.sh +4 -4
- package/vendor/abseil-cpp/ci/linux_gcc-floor_libstdcxx_bazel.sh +17 -17
- package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_bazel.sh +10 -10
- package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_cmake.sh +1 -1
- package/vendor/abseil-cpp/ci/linux_gcc_alpine_cmake.sh +1 -1
- package/vendor/abseil-cpp/ci/macos_xcode_bazel.sh +9 -10
- package/vendor/abseil-cpp/ci/macos_xcode_cmake.sh +9 -1
- package/vendor/abseil-cpp/ci/windows_clangcl_bazel.bat +14 -6
- package/vendor/abseil-cpp/ci/windows_msvc_bazel.bat +14 -6
- package/vendor/abseil-cpp/ci/windows_msvc_cmake.bat +1 -1
- package/vendor/re2/.bazelrc +4 -4
- package/vendor/re2/.bcr/metadata.template.json +16 -0
- package/vendor/re2/.bcr/presubmit.yml +57 -0
- package/vendor/re2/.bcr/source.template.json +5 -0
- package/vendor/re2/.github/bazel.sh +1 -7
- package/vendor/re2/.github/workflows/ci-bazel.yml +5 -5
- package/vendor/re2/.github/workflows/ci-cmake.yml +4 -4
- package/vendor/re2/.github/workflows/ci.yml +5 -6
- package/vendor/re2/.github/workflows/pages.yml +3 -3
- package/vendor/re2/.github/workflows/python.yml +29 -24
- package/vendor/re2/.github/workflows/release-bazel.yml +42 -0
- package/vendor/re2/.github/workflows/release.yml +15 -4
- package/vendor/re2/BUILD.bazel +25 -0
- package/vendor/re2/CMakeLists.txt +100 -85
- package/vendor/re2/CONTRIBUTING.md +0 -1
- package/vendor/re2/MODULE.bazel +10 -10
- package/vendor/re2/Makefile +1 -1
- package/vendor/re2/README.md +259 -0
- package/vendor/re2/python/BUILD.bazel +8 -0
- package/vendor/re2/python/re2.py +1 -1
- package/vendor/re2/python/re2_test.py +6 -0
- package/vendor/re2/python/setup.py +3 -3
- package/vendor/re2/re2/bitmap256.cc +3 -4
- package/vendor/re2/re2/bitstate.cc +15 -10
- package/vendor/re2/re2/dfa.cc +1 -2
- package/vendor/re2/re2/parse.cc +3 -4
- package/vendor/re2/re2/prog.cc +1 -2
- package/vendor/re2/re2/prog.h +1 -0
- package/vendor/re2/re2/re2.cc +5 -0
- package/vendor/re2/re2/re2.h +9 -9
- package/vendor/re2/re2/set.cc +6 -0
- package/vendor/re2/re2/set.h +5 -0
- package/vendor/re2/re2/testing/re2_arg_test.cc +3 -3
- package/vendor/re2/re2/testing/re2_test.cc +8 -0
- package/vendor/re2/re2/testing/set_test.cc +5 -0
- package/vendor/re2/re2/walker-inl.h +1 -1
- package/vendor/abseil-cpp/WORKSPACE +0 -76
- package/vendor/abseil-cpp/WORKSPACE.bzlmod +0 -19
- package/vendor/abseil-cpp/absl/base/inline_variable_test.cc +0 -64
- package/vendor/abseil-cpp/absl/base/internal/inline_variable.h +0 -108
- package/vendor/abseil-cpp/absl/base/internal/inline_variable_testing.h +0 -46
- package/vendor/abseil-cpp/absl/base/internal/invoke.h +0 -241
- package/vendor/abseil-cpp/absl/base/internal/nullability_impl.h +0 -69
- package/vendor/abseil-cpp/absl/base/invoke_test.cc +0 -331
- package/vendor/abseil-cpp/absl/hash/internal/low_level_hash.cc +0 -148
- package/vendor/abseil-cpp/absl/hash/internal/low_level_hash.h +0 -54
- package/vendor/abseil-cpp/absl/random/internal/pool_urbg.h +0 -131
- package/vendor/abseil-cpp/absl/random/internal/pool_urbg_test.cc +0 -182
- package/vendor/abseil-cpp/absl/types/any_exception_safety_test.cc +0 -173
- package/vendor/abseil-cpp/absl/types/any_test.cc +0 -778
- package/vendor/abseil-cpp/absl/types/bad_any_cast.cc +0 -64
- package/vendor/abseil-cpp/absl/types/bad_any_cast.h +0 -75
- package/vendor/abseil-cpp/absl/types/bad_optional_access.cc +0 -66
- package/vendor/abseil-cpp/absl/types/bad_optional_access.h +0 -78
- package/vendor/abseil-cpp/absl/types/bad_variant_access.cc +0 -82
- package/vendor/abseil-cpp/absl/types/bad_variant_access.h +0 -82
- package/vendor/abseil-cpp/absl/types/internal/optional.h +0 -352
- package/vendor/abseil-cpp/absl/types/internal/variant.h +0 -1622
- package/vendor/abseil-cpp/absl/types/optional_exception_safety_test.cc +0 -292
- package/vendor/abseil-cpp/absl/types/optional_test.cc +0 -1615
- package/vendor/abseil-cpp/absl/types/variant_benchmark.cc +0 -222
- package/vendor/abseil-cpp/absl/types/variant_exception_safety_test.cc +0 -532
- package/vendor/abseil-cpp/absl/utility/internal/if_constexpr.h +0 -70
- package/vendor/abseil-cpp/absl/utility/internal/if_constexpr_test.cc +0 -79
- package/vendor/abseil-cpp/absl/utility/utility_test.cc +0 -239
- package/vendor/re2/.github/workflows/pr.yml +0 -34
- package/vendor/re2/README +0 -47
|
@@ -42,8 +42,7 @@ ABSL_NAMESPACE_BEGIN
|
|
|
42
42
|
namespace {
|
|
43
43
|
// Append is merely a version of memcpy that returns the address of the byte
|
|
44
44
|
// after the area just overwritten.
|
|
45
|
-
inline
|
|
46
|
-
const AlphaNum& x) {
|
|
45
|
+
inline char* absl_nonnull Append(char* absl_nonnull out, const AlphaNum& x) {
|
|
47
46
|
// memcpy is allowed to overwrite arbitrary memory, so doing this after the
|
|
48
47
|
// call would force an extra fetch of x.size().
|
|
49
48
|
char* after = out + x.size();
|
|
@@ -159,7 +158,7 @@ std::string CatPieces(std::initializer_list<absl::string_view> pieces) {
|
|
|
159
158
|
assert(((src).size() == 0) || \
|
|
160
159
|
(uintptr_t((src).data() - (dest).data()) > uintptr_t((dest).size())))
|
|
161
160
|
|
|
162
|
-
void AppendPieces(
|
|
161
|
+
void AppendPieces(std::string* absl_nonnull dest,
|
|
163
162
|
std::initializer_list<absl::string_view> pieces) {
|
|
164
163
|
size_t old_size = dest->size();
|
|
165
164
|
size_t to_append = 0;
|
|
@@ -183,7 +182,7 @@ void AppendPieces(absl::Nonnull<std::string*> dest,
|
|
|
183
182
|
|
|
184
183
|
} // namespace strings_internal
|
|
185
184
|
|
|
186
|
-
void StrAppend(
|
|
185
|
+
void StrAppend(std::string* absl_nonnull dest, const AlphaNum& a) {
|
|
187
186
|
ASSERT_NO_OVERLAP(*dest, a);
|
|
188
187
|
std::string::size_type old_size = dest->size();
|
|
189
188
|
STLStringAppendUninitializedAmortized(dest, a.size());
|
|
@@ -193,7 +192,7 @@ void StrAppend(absl::Nonnull<std::string*> dest, const AlphaNum& a) {
|
|
|
193
192
|
assert(out == begin + dest->size());
|
|
194
193
|
}
|
|
195
194
|
|
|
196
|
-
void StrAppend(
|
|
195
|
+
void StrAppend(std::string* absl_nonnull dest, const AlphaNum& a,
|
|
197
196
|
const AlphaNum& b) {
|
|
198
197
|
ASSERT_NO_OVERLAP(*dest, a);
|
|
199
198
|
ASSERT_NO_OVERLAP(*dest, b);
|
|
@@ -206,7 +205,7 @@ void StrAppend(absl::Nonnull<std::string*> dest, const AlphaNum& a,
|
|
|
206
205
|
assert(out == begin + dest->size());
|
|
207
206
|
}
|
|
208
207
|
|
|
209
|
-
void StrAppend(
|
|
208
|
+
void StrAppend(std::string* absl_nonnull dest, const AlphaNum& a,
|
|
210
209
|
const AlphaNum& b, const AlphaNum& c) {
|
|
211
210
|
ASSERT_NO_OVERLAP(*dest, a);
|
|
212
211
|
ASSERT_NO_OVERLAP(*dest, b);
|
|
@@ -221,7 +220,7 @@ void StrAppend(absl::Nonnull<std::string*> dest, const AlphaNum& a,
|
|
|
221
220
|
assert(out == begin + dest->size());
|
|
222
221
|
}
|
|
223
222
|
|
|
224
|
-
void StrAppend(
|
|
223
|
+
void StrAppend(std::string* absl_nonnull dest, const AlphaNum& a,
|
|
225
224
|
const AlphaNum& b, const AlphaNum& c, const AlphaNum& d) {
|
|
226
225
|
ASSERT_NO_OVERLAP(*dest, a);
|
|
227
226
|
ASSERT_NO_OVERLAP(*dest, b);
|
|
@@ -111,7 +111,7 @@
|
|
|
111
111
|
#include "absl/strings/numbers.h"
|
|
112
112
|
#include "absl/strings/string_view.h"
|
|
113
113
|
|
|
114
|
-
#if
|
|
114
|
+
#if !defined(ABSL_USES_STD_STRING_VIEW)
|
|
115
115
|
#include <string_view>
|
|
116
116
|
#endif
|
|
117
117
|
|
|
@@ -191,29 +191,29 @@ struct Hex {
|
|
|
191
191
|
template <typename Int>
|
|
192
192
|
explicit Hex(
|
|
193
193
|
Int v, PadSpec spec = absl::kNoPad,
|
|
194
|
-
|
|
195
|
-
|
|
194
|
+
std::enable_if_t<sizeof(Int) == 1 && !std::is_pointer<Int>::value, bool> =
|
|
195
|
+
true)
|
|
196
196
|
: Hex(spec, static_cast<uint8_t>(v)) {}
|
|
197
197
|
template <typename Int>
|
|
198
198
|
explicit Hex(
|
|
199
199
|
Int v, PadSpec spec = absl::kNoPad,
|
|
200
|
-
|
|
201
|
-
|
|
200
|
+
std::enable_if_t<sizeof(Int) == 2 && !std::is_pointer<Int>::value, bool> =
|
|
201
|
+
true)
|
|
202
202
|
: Hex(spec, static_cast<uint16_t>(v)) {}
|
|
203
203
|
template <typename Int>
|
|
204
204
|
explicit Hex(
|
|
205
205
|
Int v, PadSpec spec = absl::kNoPad,
|
|
206
|
-
|
|
207
|
-
|
|
206
|
+
std::enable_if_t<sizeof(Int) == 4 && !std::is_pointer<Int>::value, bool> =
|
|
207
|
+
true)
|
|
208
208
|
: Hex(spec, static_cast<uint32_t>(v)) {}
|
|
209
209
|
template <typename Int>
|
|
210
210
|
explicit Hex(
|
|
211
211
|
Int v, PadSpec spec = absl::kNoPad,
|
|
212
|
-
|
|
213
|
-
|
|
212
|
+
std::enable_if_t<sizeof(Int) == 8 && !std::is_pointer<Int>::value, bool> =
|
|
213
|
+
true)
|
|
214
214
|
: Hex(spec, static_cast<uint64_t>(v)) {}
|
|
215
215
|
template <typename Pointee>
|
|
216
|
-
explicit Hex(
|
|
216
|
+
explicit Hex(Pointee* absl_nullable v, PadSpec spec = absl::kNoPad)
|
|
217
217
|
: Hex(spec, reinterpret_cast<uintptr_t>(v)) {}
|
|
218
218
|
|
|
219
219
|
template <typename S>
|
|
@@ -262,7 +262,7 @@ struct Dec {
|
|
|
262
262
|
|
|
263
263
|
template <typename Int>
|
|
264
264
|
explicit Dec(Int v, PadSpec spec = absl::kNoPad,
|
|
265
|
-
|
|
265
|
+
std::enable_if_t<sizeof(Int) <= 8, bool> = true)
|
|
266
266
|
: value(v >= 0 ? static_cast<uint64_t>(v)
|
|
267
267
|
: uint64_t{0} - static_cast<uint64_t>(v)),
|
|
268
268
|
width(spec == absl::kNoPad ? 1
|
|
@@ -359,14 +359,14 @@ class AlphaNum {
|
|
|
359
359
|
ABSL_ATTRIBUTE_LIFETIME_BOUND)
|
|
360
360
|
: piece_(&buf.data[0], buf.size) {}
|
|
361
361
|
|
|
362
|
-
AlphaNum(
|
|
362
|
+
AlphaNum(const char* absl_nullable c_str // NOLINT(runtime/explicit)
|
|
363
363
|
ABSL_ATTRIBUTE_LIFETIME_BOUND)
|
|
364
364
|
: piece_(NullSafeStringView(c_str)) {}
|
|
365
365
|
AlphaNum(absl::string_view pc // NOLINT(runtime/explicit)
|
|
366
366
|
ABSL_ATTRIBUTE_LIFETIME_BOUND)
|
|
367
367
|
: piece_(pc) {}
|
|
368
368
|
|
|
369
|
-
#if
|
|
369
|
+
#if !defined(ABSL_USES_STD_STRING_VIEW)
|
|
370
370
|
AlphaNum(std::string_view pc // NOLINT(runtime/explicit)
|
|
371
371
|
ABSL_ATTRIBUTE_LIFETIME_BOUND)
|
|
372
372
|
: piece_(pc.data(), pc.size()) {}
|
|
@@ -392,7 +392,7 @@ class AlphaNum {
|
|
|
392
392
|
AlphaNum& operator=(const AlphaNum&) = delete;
|
|
393
393
|
|
|
394
394
|
absl::string_view::size_type size() const { return piece_.size(); }
|
|
395
|
-
|
|
395
|
+
const char* absl_nullable data() const { return piece_.data(); }
|
|
396
396
|
absl::string_view Piece() const { return piece_; }
|
|
397
397
|
|
|
398
398
|
// Match unscoped enums. Use integral promotion so that a `char`-backed
|
|
@@ -462,7 +462,7 @@ namespace strings_internal {
|
|
|
462
462
|
|
|
463
463
|
// Do not call directly - this is not part of the public API.
|
|
464
464
|
std::string CatPieces(std::initializer_list<absl::string_view> pieces);
|
|
465
|
-
void AppendPieces(
|
|
465
|
+
void AppendPieces(std::string* absl_nonnull dest,
|
|
466
466
|
std::initializer_list<absl::string_view> pieces);
|
|
467
467
|
|
|
468
468
|
template <typename Integer>
|
|
@@ -538,28 +538,28 @@ using EnableIfFastCase = T;
|
|
|
538
538
|
|
|
539
539
|
} // namespace strings_internal
|
|
540
540
|
|
|
541
|
-
|
|
541
|
+
[[nodiscard]] inline std::string StrCat() { return std::string(); }
|
|
542
542
|
|
|
543
543
|
template <typename T>
|
|
544
|
-
|
|
544
|
+
[[nodiscard]] inline std::string StrCat(
|
|
545
545
|
strings_internal::EnableIfFastCase<T> a) {
|
|
546
546
|
return strings_internal::SingleArgStrCat(a);
|
|
547
547
|
}
|
|
548
|
-
|
|
548
|
+
[[nodiscard]] inline std::string StrCat(const AlphaNum& a) {
|
|
549
549
|
return std::string(a.data(), a.size());
|
|
550
550
|
}
|
|
551
551
|
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
552
|
+
[[nodiscard]] std::string StrCat(const AlphaNum& a, const AlphaNum& b);
|
|
553
|
+
[[nodiscard]] std::string StrCat(const AlphaNum& a, const AlphaNum& b,
|
|
554
|
+
const AlphaNum& c);
|
|
555
|
+
[[nodiscard]] std::string StrCat(const AlphaNum& a, const AlphaNum& b,
|
|
556
|
+
const AlphaNum& c, const AlphaNum& d);
|
|
557
557
|
|
|
558
558
|
// Support 5 or more arguments
|
|
559
559
|
template <typename... AV>
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
560
|
+
[[nodiscard]] inline std::string StrCat(const AlphaNum& a, const AlphaNum& b,
|
|
561
|
+
const AlphaNum& c, const AlphaNum& d,
|
|
562
|
+
const AlphaNum& e, const AV&... args) {
|
|
563
563
|
return strings_internal::CatPieces(
|
|
564
564
|
{a.Piece(), b.Piece(), c.Piece(), d.Piece(), e.Piece(),
|
|
565
565
|
static_cast<const AlphaNum&>(args).Piece()...});
|
|
@@ -592,18 +592,18 @@ ABSL_MUST_USE_RESULT inline std::string StrCat(
|
|
|
592
592
|
// absl::string_view p = s;
|
|
593
593
|
// StrAppend(&s, p);
|
|
594
594
|
|
|
595
|
-
inline void StrAppend(
|
|
596
|
-
void StrAppend(
|
|
597
|
-
void StrAppend(
|
|
595
|
+
inline void StrAppend(std::string* absl_nonnull) {}
|
|
596
|
+
void StrAppend(std::string* absl_nonnull dest, const AlphaNum& a);
|
|
597
|
+
void StrAppend(std::string* absl_nonnull dest, const AlphaNum& a,
|
|
598
598
|
const AlphaNum& b);
|
|
599
|
-
void StrAppend(
|
|
599
|
+
void StrAppend(std::string* absl_nonnull dest, const AlphaNum& a,
|
|
600
600
|
const AlphaNum& b, const AlphaNum& c);
|
|
601
|
-
void StrAppend(
|
|
601
|
+
void StrAppend(std::string* absl_nonnull dest, const AlphaNum& a,
|
|
602
602
|
const AlphaNum& b, const AlphaNum& c, const AlphaNum& d);
|
|
603
603
|
|
|
604
604
|
// Support 5 or more arguments
|
|
605
605
|
template <typename... AV>
|
|
606
|
-
inline void StrAppend(
|
|
606
|
+
inline void StrAppend(std::string* absl_nonnull dest, const AlphaNum& a,
|
|
607
607
|
const AlphaNum& b, const AlphaNum& c, const AlphaNum& d,
|
|
608
608
|
const AlphaNum& e, const AV&... args) {
|
|
609
609
|
strings_internal::AppendPieces(
|
|
@@ -21,12 +21,13 @@
|
|
|
21
21
|
#include <tuple>
|
|
22
22
|
#include <utility>
|
|
23
23
|
|
|
24
|
-
#include "benchmark/benchmark.h"
|
|
25
24
|
#include "absl/random/log_uniform_int_distribution.h"
|
|
26
25
|
#include "absl/random/random.h"
|
|
27
26
|
#include "absl/strings/str_cat.h"
|
|
27
|
+
#include "absl/strings/str_format.h"
|
|
28
28
|
#include "absl/strings/string_view.h"
|
|
29
29
|
#include "absl/strings/substitute.h"
|
|
30
|
+
#include "benchmark/benchmark.h"
|
|
30
31
|
|
|
31
32
|
namespace {
|
|
32
33
|
|
|
@@ -111,6 +112,17 @@ void BM_HexCat_By_StrCat(benchmark::State& state) {
|
|
|
111
112
|
}
|
|
112
113
|
BENCHMARK(BM_HexCat_By_StrCat);
|
|
113
114
|
|
|
115
|
+
void BM_HexCat_By_StrFormat(benchmark::State& state) {
|
|
116
|
+
int i = 0;
|
|
117
|
+
for (auto _ : state) {
|
|
118
|
+
std::string result =
|
|
119
|
+
absl::StrFormat("%s %x", kStringOne, int64_t{i} + 0x10000000);
|
|
120
|
+
benchmark::DoNotOptimize(result);
|
|
121
|
+
i = IncrementAlternatingSign(i);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
BENCHMARK(BM_HexCat_By_StrFormat);
|
|
125
|
+
|
|
114
126
|
void BM_HexCat_By_Substitute(benchmark::State& state) {
|
|
115
127
|
int i = 0;
|
|
116
128
|
for (auto _ : state) {
|
|
@@ -145,6 +157,18 @@ void BM_DoubleToString_By_SixDigits(benchmark::State& state) {
|
|
|
145
157
|
}
|
|
146
158
|
BENCHMARK(BM_DoubleToString_By_SixDigits);
|
|
147
159
|
|
|
160
|
+
void BM_FloatToString_By_StrFormat(benchmark::State& state) {
|
|
161
|
+
int i = 0;
|
|
162
|
+
float foo = 0.0f;
|
|
163
|
+
for (auto _ : state) {
|
|
164
|
+
std::string result =
|
|
165
|
+
absl::StrFormat("%f != %lld", foo += 1.001f, int64_t{i});
|
|
166
|
+
benchmark::DoNotOptimize(result);
|
|
167
|
+
i = IncrementAlternatingSign(i);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
BENCHMARK(BM_FloatToString_By_StrFormat);
|
|
171
|
+
|
|
148
172
|
template <typename Table, size_t... Index>
|
|
149
173
|
void BM_StrAppendImpl(benchmark::State& state, Table table, size_t total_bytes,
|
|
150
174
|
std::index_sequence<Index...>) {
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
#include <cstdlib>
|
|
22
22
|
#include <limits>
|
|
23
23
|
#include <string>
|
|
24
|
+
#include <string_view>
|
|
24
25
|
#include <vector>
|
|
25
26
|
|
|
26
27
|
#include "gtest/gtest.h"
|
|
@@ -28,10 +29,6 @@
|
|
|
28
29
|
#include "absl/strings/str_format.h"
|
|
29
30
|
#include "absl/strings/string_view.h"
|
|
30
31
|
|
|
31
|
-
#if defined(ABSL_HAVE_STD_STRING_VIEW)
|
|
32
|
-
#include <string_view>
|
|
33
|
-
#endif
|
|
34
|
-
|
|
35
32
|
#ifdef __ANDROID__
|
|
36
33
|
// Android assert messages only go to system log, so death tests cannot inspect
|
|
37
34
|
// the message for matching.
|
|
@@ -78,7 +75,7 @@ TEST(StrCat, Ints) {
|
|
|
78
75
|
TEST(StrCat, Enums) {
|
|
79
76
|
enum SmallNumbers { One = 1, Ten = 10 } e = Ten;
|
|
80
77
|
EXPECT_EQ("10", absl::StrCat(e));
|
|
81
|
-
EXPECT_EQ("
|
|
78
|
+
EXPECT_EQ("1", absl::StrCat(One));
|
|
82
79
|
|
|
83
80
|
enum class Option { Boxers = 1, Briefs = -1 };
|
|
84
81
|
|
|
@@ -219,13 +216,11 @@ TEST(StrCat, CornerCases) {
|
|
|
219
216
|
EXPECT_EQ(result, "");
|
|
220
217
|
}
|
|
221
218
|
|
|
222
|
-
#if defined(ABSL_HAVE_STD_STRING_VIEW)
|
|
223
219
|
TEST(StrCat, StdStringView) {
|
|
224
220
|
std::string_view pieces[] = {"Hello", ", ", "World", "!"};
|
|
225
221
|
EXPECT_EQ(absl::StrCat(pieces[0], pieces[1], pieces[2], pieces[3]),
|
|
226
222
|
"Hello, World!");
|
|
227
223
|
}
|
|
228
|
-
#endif // ABSL_HAVE_STD_STRING_VIEW
|
|
229
224
|
|
|
230
225
|
TEST(StrCat, NullConstCharPtr) {
|
|
231
226
|
const char* null = nullptr;
|
|
@@ -112,7 +112,7 @@ class UntypedFormatSpec {
|
|
|
112
112
|
|
|
113
113
|
protected:
|
|
114
114
|
explicit UntypedFormatSpec(
|
|
115
|
-
|
|
115
|
+
const str_format_internal::ParsedFormatBase* absl_nonnull pc)
|
|
116
116
|
: spec_(pc) {}
|
|
117
117
|
|
|
118
118
|
private:
|
|
@@ -152,7 +152,7 @@ str_format_internal::StreamedWrapper<T> FormatStreamed(const T& v) {
|
|
|
152
152
|
// EXPECT_EQ(8, n);
|
|
153
153
|
class FormatCountCapture {
|
|
154
154
|
public:
|
|
155
|
-
explicit FormatCountCapture(
|
|
155
|
+
explicit FormatCountCapture(int* absl_nonnull p) : p_(p) {}
|
|
156
156
|
|
|
157
157
|
private:
|
|
158
158
|
// FormatCountCaptureHelper is used to define FormatConvertImpl() for this
|
|
@@ -161,8 +161,8 @@ class FormatCountCapture {
|
|
|
161
161
|
// Unused() is here because of the false positive from -Wunused-private-field
|
|
162
162
|
// p_ is used in the templated function of the friend FormatCountCaptureHelper
|
|
163
163
|
// class.
|
|
164
|
-
|
|
165
|
-
|
|
164
|
+
int* absl_nonnull Unused() { return p_; }
|
|
165
|
+
int* absl_nonnull p_;
|
|
166
166
|
};
|
|
167
167
|
|
|
168
168
|
// FormatSpec
|
|
@@ -359,8 +359,8 @@ using ParsedFormat = str_format_internal::ExtendedParsedFormat<
|
|
|
359
359
|
//
|
|
360
360
|
// Returns an empty string in case of error.
|
|
361
361
|
template <typename... Args>
|
|
362
|
-
|
|
363
|
-
|
|
362
|
+
[[nodiscard]] std::string StrFormat(const FormatSpec<Args...>& format,
|
|
363
|
+
const Args&... args) {
|
|
364
364
|
return str_format_internal::FormatPack(
|
|
365
365
|
str_format_internal::UntypedFormatSpecImpl::Extract(format),
|
|
366
366
|
{str_format_internal::FormatArgImpl(args)...});
|
|
@@ -377,7 +377,7 @@ ABSL_MUST_USE_RESULT std::string StrFormat(const FormatSpec<Args...>& format,
|
|
|
377
377
|
// std::string orig("For example PI is approximately ");
|
|
378
378
|
// std::cout << StrAppendFormat(&orig, "%12.6f", 3.14);
|
|
379
379
|
template <typename... Args>
|
|
380
|
-
std::string& StrAppendFormat(
|
|
380
|
+
std::string& StrAppendFormat(std::string* absl_nonnull dst,
|
|
381
381
|
const FormatSpec<Args...>& format,
|
|
382
382
|
const Args&... args) {
|
|
383
383
|
return str_format_internal::AppendPack(
|
|
@@ -396,7 +396,7 @@ std::string& StrAppendFormat(absl::Nonnull<std::string*> dst,
|
|
|
396
396
|
//
|
|
397
397
|
// std::cout << StreamFormat("%12.6f", 3.14);
|
|
398
398
|
template <typename... Args>
|
|
399
|
-
|
|
399
|
+
[[nodiscard]] str_format_internal::Streamable StreamFormat(
|
|
400
400
|
const FormatSpec<Args...>& format, const Args&... args) {
|
|
401
401
|
return str_format_internal::Streamable(
|
|
402
402
|
str_format_internal::UntypedFormatSpecImpl::Extract(format),
|
|
@@ -437,7 +437,7 @@ int PrintF(const FormatSpec<Args...>& format, const Args&... args) {
|
|
|
437
437
|
// Outputs: "The capital of Mongolia is Ulaanbaatar"
|
|
438
438
|
//
|
|
439
439
|
template <typename... Args>
|
|
440
|
-
int FPrintF(
|
|
440
|
+
int FPrintF(std::FILE* absl_nonnull output, const FormatSpec<Args...>& format,
|
|
441
441
|
const Args&... args) {
|
|
442
442
|
return str_format_internal::FprintF(
|
|
443
443
|
output, str_format_internal::UntypedFormatSpecImpl::Extract(format),
|
|
@@ -466,7 +466,7 @@ int FPrintF(absl::Nonnull<std::FILE*> output, const FormatSpec<Args...>& format,
|
|
|
466
466
|
// Post-condition: output == "The capital of Mongolia is Ulaanbaatar"
|
|
467
467
|
//
|
|
468
468
|
template <typename... Args>
|
|
469
|
-
int SNPrintF(
|
|
469
|
+
int SNPrintF(char* absl_nonnull output, std::size_t size,
|
|
470
470
|
const FormatSpec<Args...>& format, const Args&... args) {
|
|
471
471
|
return str_format_internal::SnprintF(
|
|
472
472
|
output, size, str_format_internal::UntypedFormatSpecImpl::Extract(format),
|
|
@@ -500,7 +500,7 @@ class FormatRawSink {
|
|
|
500
500
|
template <typename T,
|
|
501
501
|
typename = typename std::enable_if<std::is_constructible<
|
|
502
502
|
str_format_internal::FormatRawSinkImpl, T*>::value>::type>
|
|
503
|
-
FormatRawSink(
|
|
503
|
+
FormatRawSink(T* absl_nonnull raw) // NOLINT
|
|
504
504
|
: sink_(raw) {}
|
|
505
505
|
|
|
506
506
|
private:
|
|
@@ -582,9 +582,9 @@ using FormatArg = str_format_internal::FormatArgImpl;
|
|
|
582
582
|
// return std::move(out);
|
|
583
583
|
// }
|
|
584
584
|
//
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
585
|
+
[[nodiscard]] inline bool FormatUntyped(FormatRawSink raw_sink,
|
|
586
|
+
const UntypedFormatSpec& format,
|
|
587
|
+
absl::Span<const FormatArg> args) {
|
|
588
588
|
return str_format_internal::FormatUntyped(
|
|
589
589
|
str_format_internal::FormatRawSinkImpl::Extract(raw_sink),
|
|
590
590
|
str_format_internal::UntypedFormatSpecImpl::Extract(format), args);
|
|
@@ -609,7 +609,7 @@ ABSL_MUST_USE_RESULT inline bool FormatUntyped(
|
|
|
609
609
|
//
|
|
610
610
|
// Note that unlike with AbslFormatConvert(), AbslStringify() does not allow
|
|
611
611
|
// customization of allowed conversion characters. AbslStringify() uses `%v` as
|
|
612
|
-
// the underlying conversion
|
|
612
|
+
// the underlying conversion specifier. Additionally, AbslStringify() supports
|
|
613
613
|
// use with absl::StrCat while AbslFormatConvert() does not.
|
|
614
614
|
//
|
|
615
615
|
// Example:
|
|
@@ -857,16 +857,16 @@ class FormatSink {
|
|
|
857
857
|
}
|
|
858
858
|
|
|
859
859
|
// Support `absl::Format(&sink, format, args...)`.
|
|
860
|
-
friend void AbslFormatFlush(
|
|
860
|
+
friend void AbslFormatFlush(FormatSink* absl_nonnull sink,
|
|
861
861
|
absl::string_view v) {
|
|
862
862
|
sink->Append(v);
|
|
863
863
|
}
|
|
864
864
|
|
|
865
865
|
private:
|
|
866
866
|
friend str_format_internal::FormatSinkImpl;
|
|
867
|
-
explicit FormatSink(
|
|
867
|
+
explicit FormatSink(str_format_internal::FormatSinkImpl* absl_nonnull s)
|
|
868
868
|
: sink_(s) {}
|
|
869
|
-
|
|
869
|
+
str_format_internal::FormatSinkImpl* absl_nonnull sink_;
|
|
870
870
|
};
|
|
871
871
|
|
|
872
872
|
// FormatConvertResult
|
|
@@ -516,14 +516,11 @@ TEST_F(FormatEntryPointTest, SNPrintF) {
|
|
|
516
516
|
EXPECT_EQ(result, 17);
|
|
517
517
|
EXPECT_EQ(std::string(buffer), "NUMBER: 1234567");
|
|
518
518
|
|
|
519
|
-
//
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
// warning.
|
|
523
|
-
char* null_output = nullptr;
|
|
524
|
-
result =
|
|
525
|
-
SNPrintF(null_output, 0, "Just checking the %s of the output.", "size");
|
|
519
|
+
// Test that the buffer is never written to if the size is zero.
|
|
520
|
+
buffer[0] = '\0';
|
|
521
|
+
result = SNPrintF(buffer, 0, "Just checking the %s of the output.", "size");
|
|
526
522
|
EXPECT_EQ(result, 37);
|
|
523
|
+
EXPECT_EQ(buffer[0], '\0');
|
|
527
524
|
}
|
|
528
525
|
|
|
529
526
|
TEST_F(FormatEntryPointTest, SNPrintFWithV) {
|
|
@@ -551,14 +548,11 @@ TEST_F(FormatEntryPointTest, SNPrintFWithV) {
|
|
|
551
548
|
|
|
552
549
|
std::string size = "size";
|
|
553
550
|
|
|
554
|
-
//
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
// warning.
|
|
558
|
-
char* null_output = nullptr;
|
|
559
|
-
result =
|
|
560
|
-
SNPrintF(null_output, 0, "Just checking the %v of the output.", size);
|
|
551
|
+
// Test that the buffer is never written to if the size is zero.
|
|
552
|
+
buffer[0] = '\0';
|
|
553
|
+
result = SNPrintF(buffer, 0, "Just checking the %v of the output.", size);
|
|
561
554
|
EXPECT_EQ(result, 37);
|
|
555
|
+
EXPECT_EQ(buffer[0], '\0');
|
|
562
556
|
}
|
|
563
557
|
|
|
564
558
|
TEST(StrFormat, BehavesAsDocumented) {
|
|
@@ -13,13 +13,12 @@
|
|
|
13
13
|
// See the License for the specific language governing permissions and
|
|
14
14
|
// limitations under the License.
|
|
15
15
|
|
|
16
|
-
#include "absl/strings/str_join.h"
|
|
17
|
-
|
|
18
16
|
#include <string>
|
|
19
17
|
#include <tuple>
|
|
20
|
-
#include <vector>
|
|
21
18
|
#include <utility>
|
|
19
|
+
#include <vector>
|
|
22
20
|
|
|
21
|
+
#include "absl/strings/str_join.h"
|
|
23
22
|
#include "benchmark/benchmark.h"
|
|
24
23
|
|
|
25
24
|
namespace {
|
|
@@ -37,8 +37,8 @@ using FixedMapping =
|
|
|
37
37
|
// occurred.
|
|
38
38
|
int ApplySubstitutions(
|
|
39
39
|
absl::string_view s,
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
std::vector<strings_internal::ViableSubstitution>* absl_nonnull subs_ptr,
|
|
41
|
+
std::string* absl_nonnull result_ptr) {
|
|
42
42
|
auto& subs = *subs_ptr;
|
|
43
43
|
int substitutions = 0;
|
|
44
44
|
size_t pos = 0;
|
|
@@ -83,7 +83,7 @@ std::string StrReplaceAll(absl::string_view s,
|
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
int StrReplaceAll(strings_internal::FixedMapping replacements,
|
|
86
|
-
|
|
86
|
+
std::string* absl_nonnull target) {
|
|
87
87
|
return StrReplaceAll<strings_internal::FixedMapping>(replacements, target);
|
|
88
88
|
}
|
|
89
89
|
|
|
@@ -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
|
|
|
@@ -12,13 +12,12 @@
|
|
|
12
12
|
// See the License for the specific language governing permissions and
|
|
13
13
|
// limitations under the License.
|
|
14
14
|
|
|
15
|
-
#include "absl/strings/str_replace.h"
|
|
16
|
-
|
|
17
15
|
#include <cstring>
|
|
18
16
|
#include <string>
|
|
19
17
|
|
|
20
|
-
#include "benchmark/benchmark.h"
|
|
21
18
|
#include "absl/base/internal/raw_logging.h"
|
|
19
|
+
#include "absl/strings/str_replace.h"
|
|
20
|
+
#include "benchmark/benchmark.h"
|
|
22
21
|
|
|
23
22
|
namespace {
|
|
24
23
|
|
|
@@ -127,7 +127,7 @@ class ByString {
|
|
|
127
127
|
absl::string_view Find(absl::string_view text, size_t pos) const;
|
|
128
128
|
|
|
129
129
|
private:
|
|
130
|
-
|
|
130
|
+
std::string delimiter_;
|
|
131
131
|
};
|
|
132
132
|
|
|
133
133
|
// ByAsciiWhitespace
|
|
@@ -277,7 +277,7 @@ template <typename Delimiter>
|
|
|
277
277
|
class MaxSplitsImpl {
|
|
278
278
|
public:
|
|
279
279
|
MaxSplitsImpl(Delimiter delimiter, int limit)
|
|
280
|
-
: delimiter_(delimiter), limit_(limit), count_(0) {}
|
|
280
|
+
: delimiter_(std::move(delimiter)), limit_(limit), count_(0) {}
|
|
281
281
|
absl::string_view Find(absl::string_view text, size_t pos) {
|
|
282
282
|
if (count_++ == limit_) {
|
|
283
283
|
return absl::string_view(text.data() + text.size(),
|
|
@@ -12,8 +12,6 @@
|
|
|
12
12
|
// See the License for the specific language governing permissions and
|
|
13
13
|
// limitations under the License.
|
|
14
14
|
|
|
15
|
-
#include "absl/strings/str_split.h"
|
|
16
|
-
|
|
17
15
|
#include <cstddef>
|
|
18
16
|
#include <iterator>
|
|
19
17
|
#include <string>
|
|
@@ -21,9 +19,10 @@
|
|
|
21
19
|
#include <unordered_set>
|
|
22
20
|
#include <vector>
|
|
23
21
|
|
|
24
|
-
#include "benchmark/benchmark.h"
|
|
25
22
|
#include "absl/base/internal/raw_logging.h"
|
|
23
|
+
#include "absl/strings/str_split.h"
|
|
26
24
|
#include "absl/strings/string_view.h"
|
|
25
|
+
#include "benchmark/benchmark.h"
|
|
27
26
|
|
|
28
27
|
namespace {
|
|
29
28
|
|
|
@@ -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
|
|