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.
Files changed (495) hide show
  1. package/README.md +60 -4
  2. package/binding.gyp +5 -1
  3. package/lib/addon.cc +4 -0
  4. package/lib/new.cc +1 -246
  5. package/lib/pattern.cc +252 -0
  6. package/lib/pattern.h +10 -0
  7. package/lib/set.cc +777 -0
  8. package/lib/wrapped_re2_set.h +42 -0
  9. package/package.json +21 -9
  10. package/re2.d.ts +46 -9
  11. package/vendor/abseil-cpp/CMake/AbseilDll.cmake +14 -24
  12. package/vendor/abseil-cpp/CMake/AbseilHelpers.cmake +3 -3
  13. package/vendor/abseil-cpp/CMake/README.md +2 -2
  14. package/vendor/abseil-cpp/CMakeLists.txt +3 -3
  15. package/vendor/abseil-cpp/MODULE.bazel +6 -9
  16. package/vendor/abseil-cpp/README.md +6 -8
  17. package/vendor/abseil-cpp/absl/abseil.podspec.gen.py +6 -4
  18. package/vendor/abseil-cpp/absl/algorithm/BUILD.bazel +3 -0
  19. package/vendor/abseil-cpp/absl/algorithm/CMakeLists.txt +1 -0
  20. package/vendor/abseil-cpp/absl/algorithm/container.h +2 -19
  21. package/vendor/abseil-cpp/absl/algorithm/container_test.cc +4 -11
  22. package/vendor/abseil-cpp/absl/base/BUILD.bazel +60 -45
  23. package/vendor/abseil-cpp/absl/base/CMakeLists.txt +57 -38
  24. package/vendor/abseil-cpp/absl/base/attributes.h +76 -7
  25. package/vendor/abseil-cpp/absl/base/attributes_test.cc +43 -0
  26. package/vendor/abseil-cpp/absl/base/call_once.h +11 -12
  27. package/vendor/abseil-cpp/absl/base/config.h +22 -129
  28. package/vendor/abseil-cpp/absl/base/exception_safety_testing_test.cc +0 -4
  29. package/vendor/abseil-cpp/absl/base/{internal/fast_type_id.h → fast_type_id.h} +11 -16
  30. package/vendor/abseil-cpp/absl/base/{internal/fast_type_id_test.cc → fast_type_id_test.cc} +34 -30
  31. package/vendor/abseil-cpp/absl/base/internal/cycleclock.cc +0 -5
  32. package/vendor/abseil-cpp/absl/base/internal/cycleclock_config.h +7 -7
  33. package/vendor/abseil-cpp/absl/base/internal/endian.h +34 -38
  34. package/vendor/abseil-cpp/absl/base/internal/iterator_traits.h +71 -0
  35. package/vendor/abseil-cpp/absl/base/internal/iterator_traits_test.cc +85 -0
  36. package/vendor/abseil-cpp/absl/base/internal/iterator_traits_test_helper.h +97 -0
  37. package/vendor/abseil-cpp/absl/base/internal/low_level_alloc.cc +39 -9
  38. package/vendor/abseil-cpp/absl/base/internal/low_level_alloc.h +6 -0
  39. package/vendor/abseil-cpp/absl/base/internal/poison.cc +7 -6
  40. package/vendor/abseil-cpp/absl/base/internal/spinlock.cc +15 -28
  41. package/vendor/abseil-cpp/absl/base/internal/spinlock.h +65 -35
  42. package/vendor/abseil-cpp/absl/base/internal/spinlock_benchmark.cc +2 -2
  43. package/vendor/abseil-cpp/absl/base/internal/sysinfo_test.cc +2 -2
  44. package/vendor/abseil-cpp/absl/base/internal/thread_identity_benchmark.cc +1 -1
  45. package/vendor/abseil-cpp/absl/base/internal/thread_identity_test.cc +4 -4
  46. package/vendor/abseil-cpp/absl/base/internal/unaligned_access.h +6 -6
  47. package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +4 -0
  48. package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.h +8 -3
  49. package/vendor/abseil-cpp/absl/base/no_destructor.h +11 -32
  50. package/vendor/abseil-cpp/absl/base/no_destructor_test.cc +0 -4
  51. package/vendor/abseil-cpp/absl/base/nullability.h +83 -72
  52. package/vendor/abseil-cpp/absl/base/nullability_test.cc +25 -64
  53. package/vendor/abseil-cpp/absl/base/options.h +3 -80
  54. package/vendor/abseil-cpp/absl/base/policy_checks.h +7 -7
  55. package/vendor/abseil-cpp/absl/base/raw_logging_test.cc +15 -0
  56. package/vendor/abseil-cpp/absl/base/spinlock_test_common.cc +50 -30
  57. package/vendor/abseil-cpp/absl/cleanup/BUILD.bazel +2 -1
  58. package/vendor/abseil-cpp/absl/cleanup/CMakeLists.txt +0 -1
  59. package/vendor/abseil-cpp/absl/cleanup/cleanup.h +1 -3
  60. package/vendor/abseil-cpp/absl/cleanup/cleanup_test.cc +0 -2
  61. package/vendor/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -4
  62. package/vendor/abseil-cpp/absl/container/BUILD.bazel +74 -1
  63. package/vendor/abseil-cpp/absl/container/CMakeLists.txt +73 -0
  64. package/vendor/abseil-cpp/absl/container/btree_benchmark.cc +51 -9
  65. package/vendor/abseil-cpp/absl/container/btree_map.h +8 -6
  66. package/vendor/abseil-cpp/absl/container/btree_set.h +8 -6
  67. package/vendor/abseil-cpp/absl/container/btree_test.cc +89 -4
  68. package/vendor/abseil-cpp/absl/container/fixed_array.h +7 -15
  69. package/vendor/abseil-cpp/absl/container/fixed_array_test.cc +17 -0
  70. package/vendor/abseil-cpp/absl/container/flat_hash_map.h +20 -15
  71. package/vendor/abseil-cpp/absl/container/flat_hash_map_test.cc +8 -14
  72. package/vendor/abseil-cpp/absl/container/flat_hash_set.h +19 -14
  73. package/vendor/abseil-cpp/absl/container/flat_hash_set_test.cc +46 -0
  74. package/vendor/abseil-cpp/absl/container/inlined_vector.h +7 -6
  75. package/vendor/abseil-cpp/absl/container/inlined_vector_test.cc +28 -0
  76. package/vendor/abseil-cpp/absl/container/internal/btree.h +132 -29
  77. package/vendor/abseil-cpp/absl/container/internal/btree_container.h +175 -71
  78. package/vendor/abseil-cpp/absl/container/internal/common.h +43 -0
  79. package/vendor/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -2
  80. package/vendor/abseil-cpp/absl/container/internal/compressed_tuple.h +28 -24
  81. package/vendor/abseil-cpp/absl/container/internal/compressed_tuple_test.cc +4 -17
  82. package/vendor/abseil-cpp/absl/container/internal/container_memory.h +80 -17
  83. package/vendor/abseil-cpp/absl/container/internal/container_memory_test.cc +32 -2
  84. package/vendor/abseil-cpp/absl/container/internal/hash_function_defaults.h +13 -8
  85. package/vendor/abseil-cpp/absl/container/internal/hash_function_defaults_test.cc +1 -52
  86. package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.cc +9 -31
  87. package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.h +23 -32
  88. package/vendor/abseil-cpp/absl/container/internal/hash_policy_testing.h +5 -1
  89. package/vendor/abseil-cpp/absl/container/internal/hash_policy_traits.h +11 -23
  90. package/vendor/abseil-cpp/absl/container/internal/hash_policy_traits_test.cc +14 -9
  91. package/vendor/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +516 -0
  92. package/vendor/abseil-cpp/absl/container/internal/hashtable_control_bytes_test.cc +259 -0
  93. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +23 -6
  94. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.h +32 -13
  95. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler_test.cc +8 -8
  96. package/vendor/abseil-cpp/absl/container/internal/inlined_vector.h +2 -7
  97. package/vendor/abseil-cpp/absl/container/internal/layout.h +26 -42
  98. package/vendor/abseil-cpp/absl/container/internal/raw_hash_map.h +199 -68
  99. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.cc +1506 -213
  100. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.h +1095 -1658
  101. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_allocator_test.cc +3 -2
  102. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_benchmark.cc +31 -29
  103. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_probe_benchmark.cc +51 -20
  104. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl.h +79 -0
  105. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl_test.cc +66 -0
  106. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_test.cc +707 -363
  107. package/vendor/abseil-cpp/absl/container/node_hash_map.h +20 -15
  108. package/vendor/abseil-cpp/absl/container/node_hash_map_test.cc +0 -3
  109. package/vendor/abseil-cpp/absl/container/node_hash_set.h +18 -13
  110. package/vendor/abseil-cpp/absl/container/sample_element_size_test.cc +3 -8
  111. package/vendor/abseil-cpp/absl/copts/AbseilConfigureCopts.cmake +1 -1
  112. package/vendor/abseil-cpp/absl/copts/GENERATED_AbseilCopts.cmake +9 -20
  113. package/vendor/abseil-cpp/absl/copts/GENERATED_copts.bzl +9 -20
  114. package/vendor/abseil-cpp/absl/copts/copts.py +24 -15
  115. package/vendor/abseil-cpp/absl/crc/BUILD.bazel +3 -0
  116. package/vendor/abseil-cpp/absl/crc/crc32c.cc +0 -4
  117. package/vendor/abseil-cpp/absl/crc/crc32c.h +7 -5
  118. package/vendor/abseil-cpp/absl/crc/crc32c_benchmark.cc +17 -4
  119. package/vendor/abseil-cpp/absl/crc/crc32c_test.cc +30 -0
  120. package/vendor/abseil-cpp/absl/crc/internal/cpu_detect.cc +17 -0
  121. package/vendor/abseil-cpp/absl/crc/internal/cpu_detect.h +7 -1
  122. package/vendor/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +0 -22
  123. package/vendor/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc +5 -0
  124. package/vendor/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +136 -165
  125. package/vendor/abseil-cpp/absl/crc/internal/gen_crc32c_consts.py +90 -0
  126. package/vendor/abseil-cpp/absl/debugging/BUILD.bazel +7 -0
  127. package/vendor/abseil-cpp/absl/debugging/CMakeLists.txt +4 -0
  128. package/vendor/abseil-cpp/absl/debugging/internal/addresses.h +57 -0
  129. package/vendor/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc +1 -1
  130. package/vendor/abseil-cpp/absl/debugging/internal/decode_rust_punycode.h +5 -5
  131. package/vendor/abseil-cpp/absl/debugging/internal/demangle.cc +8 -35
  132. package/vendor/abseil-cpp/absl/debugging/internal/demangle_rust.cc +16 -16
  133. package/vendor/abseil-cpp/absl/debugging/internal/demangle_test.cc +11 -10
  134. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +40 -37
  135. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +16 -7
  136. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_config.h +6 -5
  137. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +14 -5
  138. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +10 -4
  139. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +27 -16
  140. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +13 -4
  141. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +4 -3
  142. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +15 -28
  143. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +25 -14
  144. package/vendor/abseil-cpp/absl/debugging/internal/vdso_support.cc +4 -0
  145. package/vendor/abseil-cpp/absl/debugging/stacktrace.cc +161 -27
  146. package/vendor/abseil-cpp/absl/debugging/stacktrace.h +73 -5
  147. package/vendor/abseil-cpp/absl/debugging/stacktrace_test.cc +435 -1
  148. package/vendor/abseil-cpp/absl/debugging/symbolize_elf.inc +55 -63
  149. package/vendor/abseil-cpp/absl/debugging/symbolize_emscripten.inc +3 -2
  150. package/vendor/abseil-cpp/absl/debugging/symbolize_win32.inc +25 -6
  151. package/vendor/abseil-cpp/absl/flags/BUILD.bazel +6 -0
  152. package/vendor/abseil-cpp/absl/flags/CMakeLists.txt +3 -0
  153. package/vendor/abseil-cpp/absl/flags/commandlineflag.h +2 -2
  154. package/vendor/abseil-cpp/absl/flags/flag.h +4 -3
  155. package/vendor/abseil-cpp/absl/flags/internal/commandlineflag.h +2 -2
  156. package/vendor/abseil-cpp/absl/flags/internal/flag.cc +14 -13
  157. package/vendor/abseil-cpp/absl/flags/internal/flag.h +34 -34
  158. package/vendor/abseil-cpp/absl/flags/internal/program_name.cc +2 -2
  159. package/vendor/abseil-cpp/absl/flags/internal/registry.h +4 -3
  160. package/vendor/abseil-cpp/absl/flags/internal/usage.cc +2 -2
  161. package/vendor/abseil-cpp/absl/flags/parse.cc +10 -6
  162. package/vendor/abseil-cpp/absl/flags/reflection.cc +9 -7
  163. package/vendor/abseil-cpp/absl/flags/usage.cc +2 -2
  164. package/vendor/abseil-cpp/absl/flags/usage_config.cc +2 -2
  165. package/vendor/abseil-cpp/absl/functional/BUILD.bazel +7 -6
  166. package/vendor/abseil-cpp/absl/functional/CMakeLists.txt +2 -4
  167. package/vendor/abseil-cpp/absl/functional/any_invocable.h +15 -15
  168. package/vendor/abseil-cpp/absl/functional/any_invocable_test.cc +10 -42
  169. package/vendor/abseil-cpp/absl/functional/function_ref.h +2 -9
  170. package/vendor/abseil-cpp/absl/functional/function_ref_test.cc +10 -0
  171. package/vendor/abseil-cpp/absl/functional/function_type_benchmark.cc +1 -1
  172. package/vendor/abseil-cpp/absl/functional/internal/any_invocable.h +112 -227
  173. package/vendor/abseil-cpp/absl/functional/internal/front_binder.h +10 -12
  174. package/vendor/abseil-cpp/absl/functional/internal/function_ref.h +2 -5
  175. package/vendor/abseil-cpp/absl/functional/overload.h +0 -20
  176. package/vendor/abseil-cpp/absl/functional/overload_test.cc +1 -7
  177. package/vendor/abseil-cpp/absl/hash/BUILD.bazel +16 -9
  178. package/vendor/abseil-cpp/absl/hash/CMakeLists.txt +6 -9
  179. package/vendor/abseil-cpp/absl/hash/hash.h +18 -0
  180. package/vendor/abseil-cpp/absl/hash/hash_benchmark.cc +3 -0
  181. package/vendor/abseil-cpp/absl/hash/hash_instantiated_test.cc +1 -1
  182. package/vendor/abseil-cpp/absl/hash/hash_test.cc +131 -30
  183. package/vendor/abseil-cpp/absl/hash/hash_testing.h +20 -20
  184. package/vendor/abseil-cpp/absl/hash/internal/hash.cc +129 -17
  185. package/vendor/abseil-cpp/absl/hash/internal/hash.h +326 -362
  186. package/vendor/abseil-cpp/absl/hash/internal/low_level_hash_test.cc +54 -151
  187. package/vendor/abseil-cpp/absl/hash/internal/spy_hash_state.h +14 -2
  188. package/vendor/abseil-cpp/absl/{strings/cord_buffer.cc → hash/internal/weakly_mixed_integer.h} +14 -6
  189. package/vendor/abseil-cpp/absl/log/BUILD.bazel +4 -0
  190. package/vendor/abseil-cpp/absl/log/CMakeLists.txt +7 -0
  191. package/vendor/abseil-cpp/absl/log/check.h +2 -1
  192. package/vendor/abseil-cpp/absl/log/check_test_impl.inc +308 -14
  193. package/vendor/abseil-cpp/absl/log/die_if_null.h +2 -2
  194. package/vendor/abseil-cpp/absl/log/flags_test.cc +7 -0
  195. package/vendor/abseil-cpp/absl/log/globals.h +4 -5
  196. package/vendor/abseil-cpp/absl/log/internal/BUILD.bazel +13 -9
  197. package/vendor/abseil-cpp/absl/log/internal/append_truncated.h +28 -0
  198. package/vendor/abseil-cpp/absl/log/internal/check_op.cc +24 -22
  199. package/vendor/abseil-cpp/absl/log/internal/check_op.h +149 -94
  200. package/vendor/abseil-cpp/absl/log/internal/conditions.cc +5 -3
  201. package/vendor/abseil-cpp/absl/log/internal/conditions.h +7 -2
  202. package/vendor/abseil-cpp/absl/log/internal/fnmatch_test.cc +1 -0
  203. package/vendor/abseil-cpp/absl/log/internal/log_message.cc +85 -43
  204. package/vendor/abseil-cpp/absl/log/internal/log_message.h +84 -59
  205. package/vendor/abseil-cpp/absl/log/internal/log_sink_set.cc +4 -4
  206. package/vendor/abseil-cpp/absl/log/internal/nullstream.h +1 -0
  207. package/vendor/abseil-cpp/absl/log/internal/proto.cc +3 -2
  208. package/vendor/abseil-cpp/absl/log/internal/proto.h +3 -3
  209. package/vendor/abseil-cpp/absl/log/internal/strip.h +4 -12
  210. package/vendor/abseil-cpp/absl/log/internal/structured.h +3 -7
  211. package/vendor/abseil-cpp/absl/log/internal/vlog_config.cc +9 -9
  212. package/vendor/abseil-cpp/absl/log/internal/vlog_config.h +8 -6
  213. package/vendor/abseil-cpp/absl/log/internal/voidify.h +10 -4
  214. package/vendor/abseil-cpp/absl/log/log.h +48 -35
  215. package/vendor/abseil-cpp/absl/log/log_basic_test_impl.inc +45 -0
  216. package/vendor/abseil-cpp/absl/log/log_entry.cc +241 -19
  217. package/vendor/abseil-cpp/absl/log/log_entry.h +2 -0
  218. package/vendor/abseil-cpp/absl/log/log_format_test.cc +412 -6
  219. package/vendor/abseil-cpp/absl/log/log_modifier_methods_test.cc +20 -0
  220. package/vendor/abseil-cpp/absl/log/log_sink_registry.h +2 -2
  221. package/vendor/abseil-cpp/absl/log/log_streamer_test.cc +15 -2
  222. package/vendor/abseil-cpp/absl/log/scoped_mock_log.h +7 -1
  223. package/vendor/abseil-cpp/absl/log/structured_test.cc +1 -0
  224. package/vendor/abseil-cpp/absl/memory/BUILD.bazel +2 -0
  225. package/vendor/abseil-cpp/absl/meta/BUILD.bazel +2 -0
  226. package/vendor/abseil-cpp/absl/meta/type_traits.h +46 -175
  227. package/vendor/abseil-cpp/absl/meta/type_traits_test.cc +1 -478
  228. package/vendor/abseil-cpp/absl/numeric/BUILD.bazel +7 -3
  229. package/vendor/abseil-cpp/absl/numeric/CMakeLists.txt +2 -0
  230. package/vendor/abseil-cpp/absl/numeric/bits.h +68 -2
  231. package/vendor/abseil-cpp/absl/numeric/bits_benchmark.cc +1 -1
  232. package/vendor/abseil-cpp/absl/numeric/bits_test.cc +83 -0
  233. package/vendor/abseil-cpp/absl/numeric/int128.cc +0 -52
  234. package/vendor/abseil-cpp/absl/numeric/int128_benchmark.cc +14 -15
  235. package/vendor/abseil-cpp/absl/numeric/int128_test.cc +13 -8
  236. package/vendor/abseil-cpp/absl/numeric/internal/bits.h +39 -7
  237. package/vendor/abseil-cpp/absl/profiling/BUILD.bazel +47 -0
  238. package/vendor/abseil-cpp/absl/profiling/CMakeLists.txt +38 -0
  239. package/vendor/abseil-cpp/absl/profiling/hashtable.cc +124 -0
  240. package/vendor/abseil-cpp/absl/profiling/hashtable.h +40 -0
  241. package/vendor/abseil-cpp/absl/profiling/internal/exponential_biased.cc +1 -1
  242. package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.cc +462 -0
  243. package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.h +138 -0
  244. package/vendor/abseil-cpp/absl/profiling/internal/sample_recorder.h +9 -9
  245. package/vendor/abseil-cpp/absl/profiling/internal/sample_recorder_test.cc +7 -3
  246. package/vendor/abseil-cpp/absl/random/BUILD.bazel +6 -4
  247. package/vendor/abseil-cpp/absl/random/CMakeLists.txt +20 -19
  248. package/vendor/abseil-cpp/absl/random/benchmarks.cc +16 -23
  249. package/vendor/abseil-cpp/absl/random/bit_gen_ref.h +10 -11
  250. package/vendor/abseil-cpp/absl/random/bit_gen_ref_test.cc +7 -2
  251. package/vendor/abseil-cpp/absl/random/distributions.h +6 -8
  252. package/vendor/abseil-cpp/absl/random/gaussian_distribution.h +1 -1
  253. package/vendor/abseil-cpp/absl/random/internal/BUILD.bazel +19 -20
  254. package/vendor/abseil-cpp/absl/random/internal/distribution_caller.h +5 -6
  255. package/vendor/abseil-cpp/absl/random/internal/{pool_urbg.cc → entropy_pool.cc} +24 -92
  256. package/vendor/abseil-cpp/absl/{base/inline_variable_test_b.cc → random/internal/entropy_pool.h} +14 -6
  257. package/vendor/abseil-cpp/absl/random/internal/entropy_pool_test.cc +119 -0
  258. package/vendor/abseil-cpp/absl/random/internal/mock_helpers.h +6 -7
  259. package/vendor/abseil-cpp/absl/random/internal/nonsecure_base.h +5 -6
  260. package/vendor/abseil-cpp/absl/random/internal/nonsecure_base_test.cc +39 -0
  261. package/vendor/abseil-cpp/absl/random/internal/randen_benchmarks.cc +8 -6
  262. package/vendor/abseil-cpp/absl/random/internal/randen_detect.cc +1 -1
  263. package/vendor/abseil-cpp/absl/random/internal/seed_material.cc +20 -12
  264. package/vendor/abseil-cpp/absl/random/internal/seed_material.h +5 -5
  265. package/vendor/abseil-cpp/absl/random/internal/seed_material_test.cc +3 -0
  266. package/vendor/abseil-cpp/absl/random/mock_distributions_test.cc +5 -4
  267. package/vendor/abseil-cpp/absl/random/mocking_bit_gen.h +8 -10
  268. package/vendor/abseil-cpp/absl/random/random.h +88 -53
  269. package/vendor/abseil-cpp/absl/random/seed_sequences.cc +6 -2
  270. package/vendor/abseil-cpp/absl/status/BUILD.bazel +26 -0
  271. package/vendor/abseil-cpp/absl/status/internal/status_internal.cc +3 -4
  272. package/vendor/abseil-cpp/absl/status/internal/status_internal.h +3 -4
  273. package/vendor/abseil-cpp/absl/status/internal/status_matchers.cc +4 -3
  274. package/vendor/abseil-cpp/absl/status/internal/statusor_internal.h +194 -32
  275. package/vendor/abseil-cpp/absl/status/status.cc +4 -8
  276. package/vendor/abseil-cpp/absl/status/status.h +8 -8
  277. package/vendor/abseil-cpp/absl/{base/inline_variable_test_a.cc → status/status_benchmark.cc} +20 -10
  278. package/vendor/abseil-cpp/absl/status/status_matchers_test.cc +65 -0
  279. package/vendor/abseil-cpp/absl/status/status_payload_printer.h +2 -2
  280. package/vendor/abseil-cpp/absl/status/statusor.cc +2 -2
  281. package/vendor/abseil-cpp/absl/status/statusor.h +49 -102
  282. package/vendor/abseil-cpp/absl/status/statusor_benchmark.cc +480 -0
  283. package/vendor/abseil-cpp/absl/status/statusor_test.cc +323 -1
  284. package/vendor/abseil-cpp/absl/strings/BUILD.bazel +70 -34
  285. package/vendor/abseil-cpp/absl/strings/CMakeLists.txt +6 -3
  286. package/vendor/abseil-cpp/absl/strings/ascii.cc +9 -9
  287. package/vendor/abseil-cpp/absl/strings/ascii.h +18 -18
  288. package/vendor/abseil-cpp/absl/strings/ascii_benchmark.cc +5 -8
  289. package/vendor/abseil-cpp/absl/strings/charconv.cc +21 -22
  290. package/vendor/abseil-cpp/absl/strings/charconv.h +5 -5
  291. package/vendor/abseil-cpp/absl/strings/charconv_benchmark.cc +1 -2
  292. package/vendor/abseil-cpp/absl/strings/charset_benchmark.cc +1 -1
  293. package/vendor/abseil-cpp/absl/strings/cord.cc +54 -58
  294. package/vendor/abseil-cpp/absl/strings/cord.h +94 -84
  295. package/vendor/abseil-cpp/absl/strings/cord_analysis.cc +11 -11
  296. package/vendor/abseil-cpp/absl/strings/cord_analysis.h +3 -3
  297. package/vendor/abseil-cpp/absl/strings/cord_test.cc +23 -0
  298. package/vendor/abseil-cpp/absl/strings/cordz_test_helpers.h +4 -5
  299. package/vendor/abseil-cpp/absl/strings/escaping.cc +130 -149
  300. package/vendor/abseil-cpp/absl/strings/escaping.h +9 -10
  301. package/vendor/abseil-cpp/absl/strings/escaping_benchmark.cc +2 -3
  302. package/vendor/abseil-cpp/absl/strings/escaping_test.cc +19 -9
  303. package/vendor/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
  304. package/vendor/abseil-cpp/absl/strings/internal/charconv_bigint_test.cc +1 -1
  305. package/vendor/abseil-cpp/absl/strings/internal/cord_internal.h +6 -10
  306. package/vendor/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +0 -4
  307. package/vendor/abseil-cpp/absl/strings/internal/cordz_handle.cc +6 -6
  308. package/vendor/abseil-cpp/absl/strings/internal/cordz_info.cc +5 -9
  309. package/vendor/abseil-cpp/absl/strings/internal/cordz_info.h +2 -4
  310. package/vendor/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance_benchmark.cc +56 -0
  311. package/vendor/abseil-cpp/absl/strings/internal/memutil_benchmark.cc +2 -3
  312. package/vendor/abseil-cpp/absl/strings/internal/ostringstream_benchmark.cc +1 -2
  313. package/vendor/abseil-cpp/absl/strings/internal/str_format/arg.cc +7 -63
  314. package/vendor/abseil-cpp/absl/strings/internal/str_format/arg.h +1 -11
  315. package/vendor/abseil-cpp/absl/strings/internal/str_format/convert_test.cc +1 -6
  316. package/vendor/abseil-cpp/absl/strings/internal/str_format/extension.cc +0 -22
  317. package/vendor/abseil-cpp/absl/strings/internal/str_format/extension_test.cc +3 -2
  318. package/vendor/abseil-cpp/absl/strings/internal/str_format/output.cc +5 -3
  319. package/vendor/abseil-cpp/absl/strings/internal/str_format/parser.h +4 -2
  320. package/vendor/abseil-cpp/absl/strings/internal/str_join_internal.h +3 -3
  321. package/vendor/abseil-cpp/absl/strings/internal/str_split_internal.h +7 -2
  322. package/vendor/abseil-cpp/absl/strings/internal/string_constant.h +0 -5
  323. package/vendor/abseil-cpp/absl/strings/internal/utf8.cc +96 -1
  324. package/vendor/abseil-cpp/absl/strings/internal/utf8.h +15 -1
  325. package/vendor/abseil-cpp/absl/strings/internal/utf8_test.cc +196 -3
  326. package/vendor/abseil-cpp/absl/strings/numbers.cc +53 -32
  327. package/vendor/abseil-cpp/absl/strings/numbers.h +87 -58
  328. package/vendor/abseil-cpp/absl/strings/numbers_benchmark.cc +1 -1
  329. package/vendor/abseil-cpp/absl/strings/numbers_test.cc +634 -120
  330. package/vendor/abseil-cpp/absl/strings/str_cat.cc +6 -7
  331. package/vendor/abseil-cpp/absl/strings/str_cat.h +32 -32
  332. package/vendor/abseil-cpp/absl/strings/str_cat_benchmark.cc +25 -1
  333. package/vendor/abseil-cpp/absl/strings/str_cat_test.cc +2 -7
  334. package/vendor/abseil-cpp/absl/strings/str_format.h +18 -18
  335. package/vendor/abseil-cpp/absl/strings/str_format_test.cc +8 -14
  336. package/vendor/abseil-cpp/absl/strings/str_join_benchmark.cc +2 -3
  337. package/vendor/abseil-cpp/absl/strings/str_replace.cc +3 -3
  338. package/vendor/abseil-cpp/absl/strings/str_replace.h +6 -6
  339. package/vendor/abseil-cpp/absl/strings/str_replace_benchmark.cc +2 -3
  340. package/vendor/abseil-cpp/absl/strings/str_split.h +2 -2
  341. package/vendor/abseil-cpp/absl/strings/str_split_benchmark.cc +2 -3
  342. package/vendor/abseil-cpp/absl/strings/string_view.cc +4 -9
  343. package/vendor/abseil-cpp/absl/strings/string_view.h +38 -39
  344. package/vendor/abseil-cpp/absl/strings/string_view_benchmark.cc +4 -6
  345. package/vendor/abseil-cpp/absl/strings/string_view_test.cc +2 -50
  346. package/vendor/abseil-cpp/absl/strings/strip.h +4 -4
  347. package/vendor/abseil-cpp/absl/strings/substitute.cc +5 -4
  348. package/vendor/abseil-cpp/absl/strings/substitute.h +66 -64
  349. package/vendor/abseil-cpp/absl/strings/substitute_benchmark.cc +158 -0
  350. package/vendor/abseil-cpp/absl/synchronization/BUILD.bazel +6 -1
  351. package/vendor/abseil-cpp/absl/synchronization/CMakeLists.txt +2 -1
  352. package/vendor/abseil-cpp/absl/synchronization/barrier.cc +1 -1
  353. package/vendor/abseil-cpp/absl/synchronization/barrier_test.cc +3 -3
  354. package/vendor/abseil-cpp/absl/synchronization/blocking_counter.cc +2 -2
  355. package/vendor/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +3 -3
  356. package/vendor/abseil-cpp/absl/synchronization/internal/futex_waiter.cc +0 -4
  357. package/vendor/abseil-cpp/absl/synchronization/internal/graphcycles.cc +30 -33
  358. package/vendor/abseil-cpp/absl/synchronization/internal/graphcycles_benchmark.cc +2 -3
  359. package/vendor/abseil-cpp/absl/synchronization/internal/graphcycles_test.cc +6 -5
  360. package/vendor/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc +0 -5
  361. package/vendor/abseil-cpp/absl/synchronization/internal/pthread_waiter.cc +0 -4
  362. package/vendor/abseil-cpp/absl/synchronization/internal/sem_waiter.cc +0 -4
  363. package/vendor/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc +0 -4
  364. package/vendor/abseil-cpp/absl/synchronization/internal/thread_pool.h +3 -3
  365. package/vendor/abseil-cpp/absl/synchronization/internal/waiter_base.cc +0 -4
  366. package/vendor/abseil-cpp/absl/synchronization/internal/waiter_test.cc +12 -3
  367. package/vendor/abseil-cpp/absl/synchronization/internal/win32_waiter.cc +0 -4
  368. package/vendor/abseil-cpp/absl/synchronization/lifetime_test.cc +4 -4
  369. package/vendor/abseil-cpp/absl/synchronization/mutex.cc +27 -29
  370. package/vendor/abseil-cpp/absl/synchronization/mutex.h +205 -126
  371. package/vendor/abseil-cpp/absl/synchronization/mutex_benchmark.cc +13 -31
  372. package/vendor/abseil-cpp/absl/synchronization/mutex_test.cc +183 -169
  373. package/vendor/abseil-cpp/absl/synchronization/notification.cc +5 -5
  374. package/vendor/abseil-cpp/absl/synchronization/notification.h +1 -1
  375. package/vendor/abseil-cpp/absl/synchronization/notification_test.cc +3 -3
  376. package/vendor/abseil-cpp/absl/time/BUILD.bazel +9 -1
  377. package/vendor/abseil-cpp/absl/time/CMakeLists.txt +3 -1
  378. package/vendor/abseil-cpp/absl/time/civil_time.cc +1 -0
  379. package/vendor/abseil-cpp/absl/time/civil_time_test.cc +134 -0
  380. package/vendor/abseil-cpp/absl/time/clock.cc +11 -14
  381. package/vendor/abseil-cpp/absl/time/duration.cc +14 -9
  382. package/vendor/abseil-cpp/absl/time/duration_test.cc +6 -7
  383. package/vendor/abseil-cpp/absl/time/internal/cctz/BUILD.bazel +14 -3
  384. package/vendor/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +12 -0
  385. package/vendor/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +1 -1
  386. package/vendor/abseil-cpp/absl/time/internal/cctz/src/cctz_benchmark.cc +4 -490
  387. package/vendor/abseil-cpp/absl/time/internal/cctz/src/test_time_zone_names.cc +515 -0
  388. package/vendor/abseil-cpp/absl/time/internal/cctz/src/test_time_zone_names.h +33 -0
  389. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +41 -4
  390. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format_test.cc +22 -23
  391. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +90 -111
  392. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup_test.cc +1 -488
  393. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/version +1 -1
  394. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Coyhaique +0 -0
  395. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tehran +0 -0
  396. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Iran +0 -0
  397. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zone1970.tab +2 -1
  398. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zonenow.tab +1 -1
  399. package/vendor/abseil-cpp/absl/time/time.h +24 -18
  400. package/vendor/abseil-cpp/absl/time/time_test.cc +26 -0
  401. package/vendor/abseil-cpp/absl/types/BUILD.bazel +11 -164
  402. package/vendor/abseil-cpp/absl/types/CMakeLists.txt +23 -167
  403. package/vendor/abseil-cpp/absl/types/any.h +9 -484
  404. package/vendor/abseil-cpp/absl/types/optional.h +7 -747
  405. package/vendor/abseil-cpp/absl/types/span.h +46 -19
  406. package/vendor/abseil-cpp/absl/types/span_test.cc +27 -0
  407. package/vendor/abseil-cpp/absl/types/variant.h +5 -784
  408. package/vendor/abseil-cpp/absl/types/variant_test.cc +43 -2597
  409. package/vendor/abseil-cpp/absl/utility/BUILD.bazel +1 -41
  410. package/vendor/abseil-cpp/absl/utility/CMakeLists.txt +0 -40
  411. package/vendor/abseil-cpp/absl/utility/utility.h +10 -185
  412. package/vendor/abseil-cpp/ci/absl_alternate_options.h +2 -3
  413. package/vendor/abseil-cpp/ci/cmake_common.sh +2 -2
  414. package/vendor/abseil-cpp/ci/linux_arm_clang-latest_libcxx_bazel.sh +12 -13
  415. package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_asan_bazel.sh +24 -21
  416. package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_bazel.sh +12 -12
  417. package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_tsan_bazel.sh +23 -22
  418. package/vendor/abseil-cpp/ci/linux_clang-latest_libstdcxx_bazel.sh +20 -19
  419. package/vendor/abseil-cpp/ci/linux_docker_containers.sh +4 -4
  420. package/vendor/abseil-cpp/ci/linux_gcc-floor_libstdcxx_bazel.sh +17 -17
  421. package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_bazel.sh +10 -10
  422. package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_cmake.sh +1 -1
  423. package/vendor/abseil-cpp/ci/linux_gcc_alpine_cmake.sh +1 -1
  424. package/vendor/abseil-cpp/ci/macos_xcode_bazel.sh +9 -10
  425. package/vendor/abseil-cpp/ci/macos_xcode_cmake.sh +9 -1
  426. package/vendor/abseil-cpp/ci/windows_clangcl_bazel.bat +14 -6
  427. package/vendor/abseil-cpp/ci/windows_msvc_bazel.bat +14 -6
  428. package/vendor/abseil-cpp/ci/windows_msvc_cmake.bat +1 -1
  429. package/vendor/re2/.bazelrc +4 -4
  430. package/vendor/re2/.bcr/metadata.template.json +16 -0
  431. package/vendor/re2/.bcr/presubmit.yml +57 -0
  432. package/vendor/re2/.bcr/source.template.json +5 -0
  433. package/vendor/re2/.github/bazel.sh +1 -7
  434. package/vendor/re2/.github/workflows/ci-bazel.yml +5 -5
  435. package/vendor/re2/.github/workflows/ci-cmake.yml +4 -4
  436. package/vendor/re2/.github/workflows/ci.yml +5 -6
  437. package/vendor/re2/.github/workflows/pages.yml +3 -3
  438. package/vendor/re2/.github/workflows/python.yml +29 -24
  439. package/vendor/re2/.github/workflows/release-bazel.yml +42 -0
  440. package/vendor/re2/.github/workflows/release.yml +15 -4
  441. package/vendor/re2/BUILD.bazel +25 -0
  442. package/vendor/re2/CMakeLists.txt +100 -85
  443. package/vendor/re2/CONTRIBUTING.md +0 -1
  444. package/vendor/re2/MODULE.bazel +10 -10
  445. package/vendor/re2/Makefile +1 -1
  446. package/vendor/re2/README.md +259 -0
  447. package/vendor/re2/python/BUILD.bazel +8 -0
  448. package/vendor/re2/python/re2.py +1 -1
  449. package/vendor/re2/python/re2_test.py +6 -0
  450. package/vendor/re2/python/setup.py +3 -3
  451. package/vendor/re2/re2/bitmap256.cc +3 -4
  452. package/vendor/re2/re2/bitstate.cc +15 -10
  453. package/vendor/re2/re2/dfa.cc +1 -2
  454. package/vendor/re2/re2/parse.cc +3 -4
  455. package/vendor/re2/re2/prog.cc +1 -2
  456. package/vendor/re2/re2/prog.h +1 -0
  457. package/vendor/re2/re2/re2.cc +5 -0
  458. package/vendor/re2/re2/re2.h +9 -9
  459. package/vendor/re2/re2/set.cc +6 -0
  460. package/vendor/re2/re2/set.h +5 -0
  461. package/vendor/re2/re2/testing/re2_arg_test.cc +3 -3
  462. package/vendor/re2/re2/testing/re2_test.cc +8 -0
  463. package/vendor/re2/re2/testing/set_test.cc +5 -0
  464. package/vendor/re2/re2/walker-inl.h +1 -1
  465. package/vendor/abseil-cpp/WORKSPACE +0 -76
  466. package/vendor/abseil-cpp/WORKSPACE.bzlmod +0 -19
  467. package/vendor/abseil-cpp/absl/base/inline_variable_test.cc +0 -64
  468. package/vendor/abseil-cpp/absl/base/internal/inline_variable.h +0 -108
  469. package/vendor/abseil-cpp/absl/base/internal/inline_variable_testing.h +0 -46
  470. package/vendor/abseil-cpp/absl/base/internal/invoke.h +0 -241
  471. package/vendor/abseil-cpp/absl/base/internal/nullability_impl.h +0 -69
  472. package/vendor/abseil-cpp/absl/base/invoke_test.cc +0 -331
  473. package/vendor/abseil-cpp/absl/hash/internal/low_level_hash.cc +0 -148
  474. package/vendor/abseil-cpp/absl/hash/internal/low_level_hash.h +0 -54
  475. package/vendor/abseil-cpp/absl/random/internal/pool_urbg.h +0 -131
  476. package/vendor/abseil-cpp/absl/random/internal/pool_urbg_test.cc +0 -182
  477. package/vendor/abseil-cpp/absl/types/any_exception_safety_test.cc +0 -173
  478. package/vendor/abseil-cpp/absl/types/any_test.cc +0 -778
  479. package/vendor/abseil-cpp/absl/types/bad_any_cast.cc +0 -64
  480. package/vendor/abseil-cpp/absl/types/bad_any_cast.h +0 -75
  481. package/vendor/abseil-cpp/absl/types/bad_optional_access.cc +0 -66
  482. package/vendor/abseil-cpp/absl/types/bad_optional_access.h +0 -78
  483. package/vendor/abseil-cpp/absl/types/bad_variant_access.cc +0 -82
  484. package/vendor/abseil-cpp/absl/types/bad_variant_access.h +0 -82
  485. package/vendor/abseil-cpp/absl/types/internal/optional.h +0 -352
  486. package/vendor/abseil-cpp/absl/types/internal/variant.h +0 -1622
  487. package/vendor/abseil-cpp/absl/types/optional_exception_safety_test.cc +0 -292
  488. package/vendor/abseil-cpp/absl/types/optional_test.cc +0 -1615
  489. package/vendor/abseil-cpp/absl/types/variant_benchmark.cc +0 -222
  490. package/vendor/abseil-cpp/absl/types/variant_exception_safety_test.cc +0 -532
  491. package/vendor/abseil-cpp/absl/utility/internal/if_constexpr.h +0 -70
  492. package/vendor/abseil-cpp/absl/utility/internal/if_constexpr_test.cc +0 -79
  493. package/vendor/abseil-cpp/absl/utility/utility_test.cc +0 -239
  494. package/vendor/re2/.github/workflows/pr.yml +0 -34
  495. package/vendor/re2/README +0 -47
@@ -79,6 +79,7 @@
79
79
  #include "absl/base/optimization.h"
80
80
  #include "absl/crc/internal/crc_cord_state.h"
81
81
  #include "absl/functional/function_ref.h"
82
+ #include "absl/hash/internal/weakly_mixed_integer.h"
82
83
  #include "absl/meta/type_traits.h"
83
84
  #include "absl/strings/cord_analysis.h"
84
85
  #include "absl/strings/cord_buffer.h"
@@ -102,8 +103,8 @@ class Cord;
102
103
  class CordTestPeer;
103
104
  template <typename Releaser>
104
105
  Cord MakeCordFromExternal(absl::string_view, Releaser&&);
105
- void CopyCordToString(const Cord& src, absl::Nonnull<std::string*> dst);
106
- void AppendCordToString(const Cord& src, absl::Nonnull<std::string*> dst);
106
+ void CopyCordToString(const Cord& src, std::string* absl_nonnull dst);
107
+ void AppendCordToString(const Cord& src, std::string* absl_nonnull dst);
107
108
 
108
109
  // Cord memory accounting modes
109
110
  enum class CordMemoryAccounting {
@@ -417,8 +418,7 @@ class Cord {
417
418
  // guarantee that pointers previously returned by `dst->data()` remain valid
418
419
  // even if `*dst` had enough capacity to hold `src`. If `*dst` is a new
419
420
  // object, prefer to simply use the conversion operator to `std::string`.
420
- friend void CopyCordToString(const Cord& src,
421
- absl::Nonnull<std::string*> dst);
421
+ friend void CopyCordToString(const Cord& src, std::string* absl_nonnull dst);
422
422
 
423
423
  // AppendCordToString()
424
424
  //
@@ -430,7 +430,7 @@ class Cord {
430
430
  // `dst->data()`. If `*dst` is a new object, prefer to simply use the
431
431
  // conversion operator to `std::string`.
432
432
  friend void AppendCordToString(const Cord& src,
433
- absl::Nonnull<std::string*> dst);
433
+ std::string* absl_nonnull dst);
434
434
 
435
435
  class CharIterator;
436
436
 
@@ -467,7 +467,7 @@ class Cord {
467
467
  using iterator_category = std::input_iterator_tag;
468
468
  using value_type = absl::string_view;
469
469
  using difference_type = ptrdiff_t;
470
- using pointer = absl::Nonnull<const value_type*>;
470
+ using pointer = const value_type* absl_nonnull;
471
471
  using reference = value_type;
472
472
 
473
473
  ChunkIterator() = default;
@@ -488,13 +488,13 @@ class Cord {
488
488
  using CordRepBtreeReader = absl::cord_internal::CordRepBtreeReader;
489
489
 
490
490
  // Constructs a `begin()` iterator from `tree`.
491
- explicit ChunkIterator(absl::Nonnull<cord_internal::CordRep*> tree);
491
+ explicit ChunkIterator(cord_internal::CordRep* absl_nonnull tree);
492
492
 
493
493
  // Constructs a `begin()` iterator from `cord`.
494
- explicit ChunkIterator(absl::Nonnull<const Cord*> cord);
494
+ explicit ChunkIterator(const Cord* absl_nonnull cord);
495
495
 
496
496
  // Initializes this instance from a tree. Invoked by constructors.
497
- void InitTree(absl::Nonnull<cord_internal::CordRep*> tree);
497
+ void InitTree(cord_internal::CordRep* absl_nonnull tree);
498
498
 
499
499
  // Removes `n` bytes from `current_chunk_`. Expects `n` to be smaller than
500
500
  // `current_chunk_.size()`.
@@ -512,7 +512,7 @@ class Cord {
512
512
  // The current leaf, or `nullptr` if the iterator points to short data.
513
513
  // If the current chunk is a substring node, current_leaf_ points to the
514
514
  // underlying flat or external node.
515
- absl::Nullable<absl::cord_internal::CordRep*> current_leaf_ = nullptr;
515
+ absl::cord_internal::CordRep* absl_nullable current_leaf_ = nullptr;
516
516
  // The number of bytes left in the `Cord` over which we are iterating.
517
517
  size_t bytes_remaining_ = 0;
518
518
 
@@ -569,13 +569,13 @@ class Cord {
569
569
  using iterator = ChunkIterator;
570
570
  using const_iterator = ChunkIterator;
571
571
 
572
- explicit ChunkRange(absl::Nonnull<const Cord*> cord) : cord_(cord) {}
572
+ explicit ChunkRange(const Cord* absl_nonnull cord) : cord_(cord) {}
573
573
 
574
574
  ChunkIterator begin() const;
575
575
  ChunkIterator end() const;
576
576
 
577
577
  private:
578
- absl::Nonnull<const Cord*> cord_;
578
+ const Cord* absl_nonnull cord_;
579
579
  };
580
580
 
581
581
  // Cord::Chunks()
@@ -628,7 +628,7 @@ class Cord {
628
628
  using iterator_category = std::input_iterator_tag;
629
629
  using value_type = char;
630
630
  using difference_type = ptrdiff_t;
631
- using pointer = absl::Nonnull<const char*>;
631
+ using pointer = const char* absl_nonnull;
632
632
  using reference = const char&;
633
633
 
634
634
  CharIterator() = default;
@@ -642,7 +642,7 @@ class Cord {
642
642
  friend Cord;
643
643
 
644
644
  private:
645
- explicit CharIterator(absl::Nonnull<const Cord*> cord)
645
+ explicit CharIterator(const Cord* absl_nonnull cord)
646
646
  : chunk_iterator_(cord) {}
647
647
 
648
648
  ChunkIterator chunk_iterator_;
@@ -654,14 +654,14 @@ class Cord {
654
654
  // advanced as a separate `Cord`. `n_bytes` must be less than or equal to the
655
655
  // number of bytes within the Cord; otherwise, behavior is undefined. It is
656
656
  // valid to pass `char_end()` and `0`.
657
- static Cord AdvanceAndRead(absl::Nonnull<CharIterator*> it, size_t n_bytes);
657
+ static Cord AdvanceAndRead(CharIterator* absl_nonnull it, size_t n_bytes);
658
658
 
659
659
  // Cord::Advance()
660
660
  //
661
661
  // Advances the `Cord::CharIterator` by `n_bytes`. `n_bytes` must be less than
662
662
  // or equal to the number of bytes remaining within the Cord; otherwise,
663
663
  // behavior is undefined. It is valid to pass `char_end()` and `0`.
664
- static void Advance(absl::Nonnull<CharIterator*> it, size_t n_bytes);
664
+ static void Advance(CharIterator* absl_nonnull it, size_t n_bytes);
665
665
 
666
666
  // Cord::ChunkRemaining()
667
667
  //
@@ -670,6 +670,13 @@ class Cord {
670
670
  // `it` must be dereferenceable.
671
671
  static absl::string_view ChunkRemaining(const CharIterator& it);
672
672
 
673
+ // Cord::Distance()
674
+ //
675
+ // Returns the distance between `first` and `last`, as if
676
+ // `std::distance(first, last)` was called.
677
+ static ptrdiff_t Distance(const CharIterator& first,
678
+ const CharIterator& last);
679
+
673
680
  // Cord::char_begin()
674
681
  //
675
682
  // Returns an iterator to the first character of the `Cord`.
@@ -710,13 +717,13 @@ class Cord {
710
717
  using iterator = CharIterator;
711
718
  using const_iterator = CharIterator;
712
719
 
713
- explicit CharRange(absl::Nonnull<const Cord*> cord) : cord_(cord) {}
720
+ explicit CharRange(const Cord* absl_nonnull cord) : cord_(cord) {}
714
721
 
715
722
  CharIterator begin() const;
716
723
  CharIterator end() const;
717
724
 
718
725
  private:
719
- absl::Nonnull<const Cord*> cord_;
726
+ const Cord* absl_nonnull cord_;
720
727
  };
721
728
 
722
729
  // Cord::Chars()
@@ -748,7 +755,7 @@ class Cord {
748
755
  // NOTE: This routine is reasonably efficient. It is roughly
749
756
  // logarithmic based on the number of chunks that make up the cord. Still,
750
757
  // if you need to iterate over the contents of a cord, you should
751
- // use a CharIterator/ChunkIterator rather than call operator[] or Get()
758
+ // use a CharIterator/ChunkIterator rather than call operator[]
752
759
  // repeatedly in a loop.
753
760
  char operator[](size_t i) const;
754
761
 
@@ -775,7 +782,7 @@ class Cord {
775
782
  CharIterator Find(const absl::Cord& needle) const;
776
783
 
777
784
  // Supports absl::Cord as a sink object for absl::Format().
778
- friend void AbslFormatFlush(absl::Nonnull<absl::Cord*> cord,
785
+ friend void AbslFormatFlush(absl::Cord* absl_nonnull cord,
779
786
  absl::string_view part) {
780
787
  cord->Append(part);
781
788
  }
@@ -878,7 +885,7 @@ class Cord {
878
885
  }
879
886
  #endif
880
887
 
881
- friend absl::Nullable<const CordzInfo*> GetCordzInfoForTesting(
888
+ friend const CordzInfo* absl_nullable GetCordzInfoForTesting(
882
889
  const Cord& cord);
883
890
 
884
891
  // Calls the provided function once for each cord chunk, in order. Unlike
@@ -907,21 +914,21 @@ class Cord {
907
914
  InlineRep& operator=(InlineRep&& src) noexcept;
908
915
 
909
916
  explicit constexpr InlineRep(absl::string_view sv,
910
- absl::Nullable<CordRep*> rep);
917
+ CordRep* absl_nullable rep);
911
918
 
912
- void Swap(absl::Nonnull<InlineRep*> rhs);
919
+ void Swap(InlineRep* absl_nonnull rhs);
913
920
  size_t size() const;
914
921
  // Returns nullptr if holding pointer
915
- absl::Nullable<const char*> data() const;
922
+ const char* absl_nullable data() const;
916
923
  // Discards pointer, if any
917
- void set_data(absl::Nonnull<const char*> data, size_t n);
918
- absl::Nonnull<char*> set_data(size_t n); // Write data to the result
924
+ void set_data(const char* absl_nonnull data, size_t n);
925
+ char* absl_nonnull set_data(size_t n); // Write data to the result
919
926
  // Returns nullptr if holding bytes
920
- absl::Nullable<absl::cord_internal::CordRep*> tree() const;
921
- absl::Nonnull<absl::cord_internal::CordRep*> as_tree() const;
922
- absl::Nonnull<const char*> as_chars() const;
927
+ absl::cord_internal::CordRep* absl_nullable tree() const;
928
+ absl::cord_internal::CordRep* absl_nonnull as_tree() const;
929
+ const char* absl_nonnull as_chars() const;
923
930
  // Returns non-null iff was holding a pointer
924
- absl::Nullable<absl::cord_internal::CordRep*> clear();
931
+ absl::cord_internal::CordRep* absl_nullable clear();
925
932
  // Converts to pointer if necessary.
926
933
  void reduce_size(size_t n); // REQUIRES: holding data
927
934
  void remove_prefix(size_t n); // REQUIRES: holding data
@@ -930,58 +937,56 @@ class Cord {
930
937
 
931
938
  // Creates a CordRepFlat instance from the current inlined data with `extra'
932
939
  // bytes of desired additional capacity.
933
- absl::Nonnull<CordRepFlat*> MakeFlatWithExtraCapacity(size_t extra);
940
+ CordRepFlat* absl_nonnull MakeFlatWithExtraCapacity(size_t extra);
934
941
 
935
942
  // Sets the tree value for this instance. `rep` must not be null.
936
943
  // Requires the current instance to hold a tree, and a lock to be held on
937
944
  // any CordzInfo referenced by this instance. The latter is enforced through
938
945
  // the CordzUpdateScope argument. If the current instance is sampled, then
939
946
  // the CordzInfo instance is updated to reference the new `rep` value.
940
- void SetTree(absl::Nonnull<CordRep*> rep, const CordzUpdateScope& scope);
947
+ void SetTree(CordRep* absl_nonnull rep, const CordzUpdateScope& scope);
941
948
 
942
949
  // Identical to SetTree(), except that `rep` is allowed to be null, in
943
950
  // which case the current instance is reset to an empty value.
944
- void SetTreeOrEmpty(absl::Nullable<CordRep*> rep,
951
+ void SetTreeOrEmpty(CordRep* absl_nullable rep,
945
952
  const CordzUpdateScope& scope);
946
953
 
947
954
  // Sets the tree value for this instance, and randomly samples this cord.
948
955
  // This function disregards existing contents in `data_`, and should be
949
956
  // called when a Cord is 'promoted' from an 'uninitialized' or 'inlined'
950
957
  // value to a non-inlined (tree / ring) value.
951
- void EmplaceTree(absl::Nonnull<CordRep*> rep, MethodIdentifier method);
958
+ void EmplaceTree(CordRep* absl_nonnull rep, MethodIdentifier method);
952
959
 
953
960
  // Identical to EmplaceTree, except that it copies the parent stack from
954
961
  // the provided `parent` data if the parent is sampled.
955
- void EmplaceTree(absl::Nonnull<CordRep*> rep, const InlineData& parent,
962
+ void EmplaceTree(CordRep* absl_nonnull rep, const InlineData& parent,
956
963
  MethodIdentifier method);
957
964
 
958
965
  // Commits the change of a newly created, or updated `rep` root value into
959
966
  // this cord. `old_rep` indicates the old (inlined or tree) value of the
960
967
  // cord, and determines if the commit invokes SetTree() or EmplaceTree().
961
- void CommitTree(absl::Nullable<const CordRep*> old_rep,
962
- absl::Nonnull<CordRep*> rep, const CordzUpdateScope& scope,
968
+ void CommitTree(const CordRep* absl_nullable old_rep,
969
+ CordRep* absl_nonnull rep, const CordzUpdateScope& scope,
963
970
  MethodIdentifier method);
964
971
 
965
- void AppendTreeToInlined(absl::Nonnull<CordRep*> tree,
972
+ void AppendTreeToInlined(CordRep* absl_nonnull tree,
966
973
  MethodIdentifier method);
967
- void AppendTreeToTree(absl::Nonnull<CordRep*> tree,
968
- MethodIdentifier method);
969
- void AppendTree(absl::Nonnull<CordRep*> tree, MethodIdentifier method);
970
- void PrependTreeToInlined(absl::Nonnull<CordRep*> tree,
974
+ void AppendTreeToTree(CordRep* absl_nonnull tree, MethodIdentifier method);
975
+ void AppendTree(CordRep* absl_nonnull tree, MethodIdentifier method);
976
+ void PrependTreeToInlined(CordRep* absl_nonnull tree,
971
977
  MethodIdentifier method);
972
- void PrependTreeToTree(absl::Nonnull<CordRep*> tree,
973
- MethodIdentifier method);
974
- void PrependTree(absl::Nonnull<CordRep*> tree, MethodIdentifier method);
978
+ void PrependTreeToTree(CordRep* absl_nonnull tree, MethodIdentifier method);
979
+ void PrependTree(CordRep* absl_nonnull tree, MethodIdentifier method);
975
980
 
976
981
  bool IsSame(const InlineRep& other) const { return data_ == other.data_; }
977
982
 
978
983
  // Copies the inline contents into `dst`. Assumes the cord is not empty.
979
- void CopyTo(absl::Nonnull<std::string*> dst) const {
984
+ void CopyTo(std::string* absl_nonnull dst) const {
980
985
  data_.CopyInlineToString(dst);
981
986
  }
982
987
 
983
988
  // Copies the inline contents into `dst`. Assumes the cord is not empty.
984
- void CopyToArray(absl::Nonnull<char*> dst) const;
989
+ void CopyToArray(char* absl_nonnull dst) const;
985
990
 
986
991
  bool is_tree() const { return data_.is_tree(); }
987
992
 
@@ -994,12 +999,12 @@ class Cord {
994
999
  }
995
1000
 
996
1001
  // Returns the profiled CordzInfo, or nullptr if not sampled.
997
- absl::Nullable<absl::cord_internal::CordzInfo*> cordz_info() const {
1002
+ absl::cord_internal::CordzInfo* absl_nullable cordz_info() const {
998
1003
  return data_.cordz_info();
999
1004
  }
1000
1005
 
1001
1006
  // Sets the profiled CordzInfo.
1002
- void set_cordz_info(absl::Nonnull<cord_internal::CordzInfo*> cordz_info) {
1007
+ void set_cordz_info(cord_internal::CordzInfo* absl_nonnull cordz_info) {
1003
1008
  assert(cordz_info != nullptr);
1004
1009
  data_.set_cordz_info(cordz_info);
1005
1010
  }
@@ -1031,19 +1036,19 @@ class Cord {
1031
1036
  InlineRep contents_;
1032
1037
 
1033
1038
  // Helper for GetFlat() and TryFlat().
1034
- static bool GetFlatAux(absl::Nonnull<absl::cord_internal::CordRep*> rep,
1035
- absl::Nonnull<absl::string_view*> fragment);
1039
+ static bool GetFlatAux(absl::cord_internal::CordRep* absl_nonnull rep,
1040
+ absl::string_view* absl_nonnull fragment);
1036
1041
 
1037
1042
  // Helper for ForEachChunk().
1038
1043
  static void ForEachChunkAux(
1039
- absl::Nonnull<absl::cord_internal::CordRep*> rep,
1044
+ absl::cord_internal::CordRep* absl_nonnull rep,
1040
1045
  absl::FunctionRef<void(absl::string_view)> callback);
1041
1046
 
1042
1047
  // The destructor for non-empty Cords.
1043
1048
  void DestroyCordSlow();
1044
1049
 
1045
1050
  // Out-of-line implementation of slower parts of logic.
1046
- void CopyToArraySlowPath(absl::Nonnull<char*> dst) const;
1051
+ void CopyToArraySlowPath(char* absl_nonnull dst) const;
1047
1052
  int CompareSlowPath(absl::string_view rhs, size_t compared_size,
1048
1053
  size_t size_to_compare) const;
1049
1054
  int CompareSlowPath(const Cord& rhs, size_t compared_size,
@@ -1060,8 +1065,8 @@ class Cord {
1060
1065
 
1061
1066
  // Returns a new reference to contents_.tree(), or steals an existing
1062
1067
  // reference if called on an rvalue.
1063
- absl::Nonnull<absl::cord_internal::CordRep*> TakeRep() const&;
1064
- absl::Nonnull<absl::cord_internal::CordRep*> TakeRep() &&;
1068
+ absl::cord_internal::CordRep* absl_nonnull TakeRep() const&;
1069
+ absl::cord_internal::CordRep* absl_nonnull TakeRep() &&;
1065
1070
 
1066
1071
  // Helper for Append().
1067
1072
  template <typename C>
@@ -1093,17 +1098,16 @@ class Cord {
1093
1098
  hash_state = combiner.add_buffer(std::move(hash_state), chunk.data(),
1094
1099
  chunk.size());
1095
1100
  });
1096
- return H::combine(combiner.finalize(std::move(hash_state)), size());
1101
+ return combiner.finalize(std::move(hash_state));
1097
1102
  }
1098
1103
 
1099
1104
  friend class CrcCord;
1100
1105
  void SetCrcCordState(crc_internal::CrcCordState state);
1101
- absl::Nullable<const crc_internal::CrcCordState*> MaybeGetCrcCordState()
1102
- const;
1106
+ const crc_internal::CrcCordState* absl_nullable MaybeGetCrcCordState() const;
1103
1107
 
1104
1108
  CharIterator FindImpl(CharIterator it, absl::string_view needle) const;
1105
1109
 
1106
- void CopyToArrayImpl(absl::Nonnull<char*> dst) const;
1110
+ void CopyToArrayImpl(char* absl_nonnull dst) const;
1107
1111
  };
1108
1112
 
1109
1113
  ABSL_NAMESPACE_END
@@ -1123,14 +1127,14 @@ namespace cord_internal {
1123
1127
  // Does non-template-specific `CordRepExternal` initialization.
1124
1128
  // Requires `data` to be non-empty.
1125
1129
  void InitializeCordRepExternal(absl::string_view data,
1126
- absl::Nonnull<CordRepExternal*> rep);
1130
+ CordRepExternal* absl_nonnull rep);
1127
1131
 
1128
1132
  // Creates a new `CordRep` that owns `data` and `releaser` and returns a pointer
1129
1133
  // to it. Requires `data` to be non-empty.
1130
1134
  template <typename Releaser>
1131
1135
  // NOLINTNEXTLINE - suppress clang-tidy raw pointer return.
1132
- absl::Nonnull<CordRep*> NewExternalRep(absl::string_view data,
1133
- Releaser&& releaser) {
1136
+ CordRep* absl_nonnull NewExternalRep(absl::string_view data,
1137
+ Releaser&& releaser) {
1134
1138
  assert(!data.empty());
1135
1139
  using ReleaserType = absl::decay_t<Releaser>;
1136
1140
  CordRepExternal* rep = new CordRepExternalImpl<ReleaserType>(
@@ -1142,7 +1146,7 @@ absl::Nonnull<CordRep*> NewExternalRep(absl::string_view data,
1142
1146
  // Overload for function reference types that dispatches using a function
1143
1147
  // pointer because there are no `alignof()` or `sizeof()` a function reference.
1144
1148
  // NOLINTNEXTLINE - suppress clang-tidy raw pointer return.
1145
- inline absl::Nonnull<CordRep*> NewExternalRep(
1149
+ inline CordRep* absl_nonnull NewExternalRep(
1146
1150
  absl::string_view data, void (&releaser)(absl::string_view)) {
1147
1151
  return NewExternalRep(data, &releaser);
1148
1152
  }
@@ -1166,7 +1170,7 @@ Cord MakeCordFromExternal(absl::string_view data, Releaser&& releaser) {
1166
1170
  }
1167
1171
 
1168
1172
  constexpr Cord::InlineRep::InlineRep(absl::string_view sv,
1169
- absl::Nullable<CordRep*> rep)
1173
+ CordRep* absl_nullable rep)
1170
1174
  : data_(sv, rep) {}
1171
1175
 
1172
1176
  inline Cord::InlineRep::InlineRep(const Cord::InlineRep& src)
@@ -1205,7 +1209,7 @@ inline Cord::InlineRep& Cord::InlineRep::operator=(
1205
1209
  return *this;
1206
1210
  }
1207
1211
 
1208
- inline void Cord::InlineRep::Swap(absl::Nonnull<Cord::InlineRep*> rhs) {
1212
+ inline void Cord::InlineRep::Swap(Cord::InlineRep* absl_nonnull rhs) {
1209
1213
  if (rhs == this) {
1210
1214
  return;
1211
1215
  }
@@ -1213,22 +1217,22 @@ inline void Cord::InlineRep::Swap(absl::Nonnull<Cord::InlineRep*> rhs) {
1213
1217
  swap(data_, rhs->data_);
1214
1218
  }
1215
1219
 
1216
- inline absl::Nullable<const char*> Cord::InlineRep::data() const {
1220
+ inline const char* absl_nullable Cord::InlineRep::data() const {
1217
1221
  return is_tree() ? nullptr : data_.as_chars();
1218
1222
  }
1219
1223
 
1220
- inline absl::Nonnull<const char*> Cord::InlineRep::as_chars() const {
1224
+ inline const char* absl_nonnull Cord::InlineRep::as_chars() const {
1221
1225
  assert(!data_.is_tree());
1222
1226
  return data_.as_chars();
1223
1227
  }
1224
1228
 
1225
- inline absl::Nonnull<absl::cord_internal::CordRep*> Cord::InlineRep::as_tree()
1229
+ inline absl::cord_internal::CordRep* absl_nonnull Cord::InlineRep::as_tree()
1226
1230
  const {
1227
1231
  assert(data_.is_tree());
1228
1232
  return data_.as_tree();
1229
1233
  }
1230
1234
 
1231
- inline absl::Nullable<absl::cord_internal::CordRep*> Cord::InlineRep::tree()
1235
+ inline absl::cord_internal::CordRep* absl_nullable Cord::InlineRep::tree()
1232
1236
  const {
1233
1237
  if (is_tree()) {
1234
1238
  return as_tree();
@@ -1241,7 +1245,7 @@ inline size_t Cord::InlineRep::size() const {
1241
1245
  return is_tree() ? as_tree()->length : inline_size();
1242
1246
  }
1243
1247
 
1244
- inline absl::Nonnull<cord_internal::CordRepFlat*>
1248
+ inline cord_internal::CordRepFlat* absl_nonnull
1245
1249
  Cord::InlineRep::MakeFlatWithExtraCapacity(size_t extra) {
1246
1250
  static_assert(cord_internal::kMinFlatLength >= sizeof(data_), "");
1247
1251
  size_t len = data_.inline_size();
@@ -1251,21 +1255,21 @@ Cord::InlineRep::MakeFlatWithExtraCapacity(size_t extra) {
1251
1255
  return result;
1252
1256
  }
1253
1257
 
1254
- inline void Cord::InlineRep::EmplaceTree(absl::Nonnull<CordRep*> rep,
1258
+ inline void Cord::InlineRep::EmplaceTree(CordRep* absl_nonnull rep,
1255
1259
  MethodIdentifier method) {
1256
1260
  assert(rep);
1257
1261
  data_.make_tree(rep);
1258
1262
  CordzInfo::MaybeTrackCord(data_, method);
1259
1263
  }
1260
1264
 
1261
- inline void Cord::InlineRep::EmplaceTree(absl::Nonnull<CordRep*> rep,
1265
+ inline void Cord::InlineRep::EmplaceTree(CordRep* absl_nonnull rep,
1262
1266
  const InlineData& parent,
1263
1267
  MethodIdentifier method) {
1264
1268
  data_.make_tree(rep);
1265
1269
  CordzInfo::MaybeTrackCord(data_, parent, method);
1266
1270
  }
1267
1271
 
1268
- inline void Cord::InlineRep::SetTree(absl::Nonnull<CordRep*> rep,
1272
+ inline void Cord::InlineRep::SetTree(CordRep* absl_nonnull rep,
1269
1273
  const CordzUpdateScope& scope) {
1270
1274
  assert(rep);
1271
1275
  assert(data_.is_tree());
@@ -1273,7 +1277,7 @@ inline void Cord::InlineRep::SetTree(absl::Nonnull<CordRep*> rep,
1273
1277
  scope.SetCordRep(rep);
1274
1278
  }
1275
1279
 
1276
- inline void Cord::InlineRep::SetTreeOrEmpty(absl::Nullable<CordRep*> rep,
1280
+ inline void Cord::InlineRep::SetTreeOrEmpty(CordRep* absl_nullable rep,
1277
1281
  const CordzUpdateScope& scope) {
1278
1282
  assert(data_.is_tree());
1279
1283
  if (rep) {
@@ -1284,8 +1288,8 @@ inline void Cord::InlineRep::SetTreeOrEmpty(absl::Nullable<CordRep*> rep,
1284
1288
  scope.SetCordRep(rep);
1285
1289
  }
1286
1290
 
1287
- inline void Cord::InlineRep::CommitTree(absl::Nullable<const CordRep*> old_rep,
1288
- absl::Nonnull<CordRep*> rep,
1291
+ inline void Cord::InlineRep::CommitTree(const CordRep* absl_nullable old_rep,
1292
+ CordRep* absl_nonnull rep,
1289
1293
  const CordzUpdateScope& scope,
1290
1294
  MethodIdentifier method) {
1291
1295
  if (old_rep) {
@@ -1295,7 +1299,7 @@ inline void Cord::InlineRep::CommitTree(absl::Nullable<const CordRep*> old_rep,
1295
1299
  }
1296
1300
  }
1297
1301
 
1298
- inline absl::Nullable<absl::cord_internal::CordRep*> Cord::InlineRep::clear() {
1302
+ inline absl::cord_internal::CordRep* absl_nullable Cord::InlineRep::clear() {
1299
1303
  if (is_tree()) {
1300
1304
  CordzInfo::MaybeUntrackCord(cordz_info());
1301
1305
  }
@@ -1304,7 +1308,7 @@ inline absl::Nullable<absl::cord_internal::CordRep*> Cord::InlineRep::clear() {
1304
1308
  return result;
1305
1309
  }
1306
1310
 
1307
- inline void Cord::InlineRep::CopyToArray(absl::Nonnull<char*> dst) const {
1311
+ inline void Cord::InlineRep::CopyToArray(char* absl_nonnull dst) const {
1308
1312
  assert(!is_tree());
1309
1313
  size_t n = inline_size();
1310
1314
  assert(n != 0);
@@ -1488,7 +1492,7 @@ inline bool Cord::StartsWith(absl::string_view rhs) const {
1488
1492
  return EqualsImpl(rhs, rhs_size);
1489
1493
  }
1490
1494
 
1491
- inline void Cord::CopyToArrayImpl(absl::Nonnull<char*> dst) const {
1495
+ inline void Cord::CopyToArrayImpl(char* absl_nonnull dst) const {
1492
1496
  if (!contents_.is_tree()) {
1493
1497
  if (!empty()) contents_.CopyToArray(dst);
1494
1498
  } else {
@@ -1497,7 +1501,7 @@ inline void Cord::CopyToArrayImpl(absl::Nonnull<char*> dst) const {
1497
1501
  }
1498
1502
 
1499
1503
  inline void Cord::ChunkIterator::InitTree(
1500
- absl::Nonnull<cord_internal::CordRep*> tree) {
1504
+ cord_internal::CordRep* absl_nonnull tree) {
1501
1505
  tree = cord_internal::SkipCrcNode(tree);
1502
1506
  if (tree->tag == cord_internal::BTREE) {
1503
1507
  current_chunk_ = btree_reader_.Init(tree->btree());
@@ -1508,12 +1512,12 @@ inline void Cord::ChunkIterator::InitTree(
1508
1512
  }
1509
1513
 
1510
1514
  inline Cord::ChunkIterator::ChunkIterator(
1511
- absl::Nonnull<cord_internal::CordRep*> tree) {
1515
+ cord_internal::CordRep* absl_nonnull tree) {
1512
1516
  bytes_remaining_ = tree->length;
1513
1517
  InitTree(tree);
1514
1518
  }
1515
1519
 
1516
- inline Cord::ChunkIterator::ChunkIterator(absl::Nonnull<const Cord*> cord) {
1520
+ inline Cord::ChunkIterator::ChunkIterator(const Cord* absl_nonnull cord) {
1517
1521
  if (CordRep* tree = cord->contents_.tree()) {
1518
1522
  bytes_remaining_ = tree->length;
1519
1523
  if (ABSL_PREDICT_TRUE(bytes_remaining_ != 0)) {
@@ -1649,13 +1653,13 @@ inline Cord::CharIterator::reference Cord::CharIterator::operator*() const {
1649
1653
  return *chunk_iterator_->data();
1650
1654
  }
1651
1655
 
1652
- inline Cord Cord::AdvanceAndRead(absl::Nonnull<CharIterator*> it,
1656
+ inline Cord Cord::AdvanceAndRead(CharIterator* absl_nonnull it,
1653
1657
  size_t n_bytes) {
1654
1658
  assert(it != nullptr);
1655
1659
  return it->chunk_iterator_.AdvanceAndReadBytes(n_bytes);
1656
1660
  }
1657
1661
 
1658
- inline void Cord::Advance(absl::Nonnull<CharIterator*> it, size_t n_bytes) {
1662
+ inline void Cord::Advance(CharIterator* absl_nonnull it, size_t n_bytes) {
1659
1663
  assert(it != nullptr);
1660
1664
  it->chunk_iterator_.AdvanceBytes(n_bytes);
1661
1665
  }
@@ -1664,6 +1668,12 @@ inline absl::string_view Cord::ChunkRemaining(const CharIterator& it) {
1664
1668
  return *it.chunk_iterator_;
1665
1669
  }
1666
1670
 
1671
+ inline ptrdiff_t Cord::Distance(const CharIterator& first,
1672
+ const CharIterator& last) {
1673
+ return static_cast<ptrdiff_t>(first.chunk_iterator_.bytes_remaining_ -
1674
+ last.chunk_iterator_.bytes_remaining_);
1675
+ }
1676
+
1667
1677
  inline Cord::CharIterator Cord::char_begin() const {
1668
1678
  return CharIterator(this);
1669
1679
  }
@@ -39,15 +39,15 @@ enum class Mode { kFairShare, kTotal, kTotalMorePrecise };
39
39
  template <Mode mode>
40
40
  struct CordRepRef {
41
41
  // Instantiates a CordRepRef instance.
42
- explicit CordRepRef(absl::Nonnull<const CordRep*> r) : rep(r) {}
42
+ explicit CordRepRef(const CordRep* absl_nonnull r) : rep(r) {}
43
43
 
44
44
  // Creates a child reference holding the provided child.
45
45
  // Overloaded to add cumulative reference count for kFairShare.
46
- CordRepRef Child(absl::Nonnull<const CordRep*> child) const {
46
+ CordRepRef Child(const CordRep* absl_nonnull child) const {
47
47
  return CordRepRef(child);
48
48
  }
49
49
 
50
- absl::Nonnull<const CordRep*> rep;
50
+ const CordRep* absl_nonnull rep;
51
51
  };
52
52
 
53
53
  // RawUsage holds the computed total number of bytes.
@@ -66,7 +66,7 @@ template <>
66
66
  struct RawUsage<Mode::kTotalMorePrecise> {
67
67
  size_t total = 0;
68
68
  // TODO(b/289250880): Replace this with a flat_hash_set.
69
- std::unordered_set<absl::Nonnull<const CordRep*>> counted;
69
+ std::unordered_set<const CordRep* absl_nonnull> counted;
70
70
 
71
71
  void Add(size_t size, CordRepRef<Mode::kTotalMorePrecise> repref) {
72
72
  if (counted.insert(repref.rep).second) {
@@ -90,15 +90,15 @@ double MaybeDiv(double d, refcount_t refcount) {
90
90
  template <>
91
91
  struct CordRepRef<Mode::kFairShare> {
92
92
  // Creates a CordRepRef with the provided rep and top (parent) fraction.
93
- explicit CordRepRef(absl::Nonnull<const CordRep*> r, double frac = 1.0)
93
+ explicit CordRepRef(const CordRep* absl_nonnull r, double frac = 1.0)
94
94
  : rep(r), fraction(MaybeDiv(frac, r->refcount.Get())) {}
95
95
 
96
96
  // Returns a CordRepRef with a fraction of `this->fraction / child.refcount`
97
- CordRepRef Child(absl::Nonnull<const CordRep*> child) const {
97
+ CordRepRef Child(const CordRep* absl_nonnull child) const {
98
98
  return CordRepRef(child, fraction);
99
99
  }
100
100
 
101
- absl::Nonnull<const CordRep*> rep;
101
+ const CordRep* absl_nonnull rep;
102
102
  double fraction;
103
103
  };
104
104
 
@@ -150,7 +150,7 @@ void AnalyzeBtree(CordRepRef<mode> rep, RawUsage<mode>& raw_usage) {
150
150
  }
151
151
 
152
152
  template <Mode mode>
153
- size_t GetEstimatedUsage(absl::Nonnull<const CordRep*> rep) {
153
+ size_t GetEstimatedUsage(const CordRep* absl_nonnull rep) {
154
154
  // Zero initialized memory usage totals.
155
155
  RawUsage<mode> raw_usage;
156
156
 
@@ -179,15 +179,15 @@ size_t GetEstimatedUsage(absl::Nonnull<const CordRep*> rep) {
179
179
 
180
180
  } // namespace
181
181
 
182
- size_t GetEstimatedMemoryUsage(absl::Nonnull<const CordRep*> rep) {
182
+ size_t GetEstimatedMemoryUsage(const CordRep* absl_nonnull rep) {
183
183
  return GetEstimatedUsage<Mode::kTotal>(rep);
184
184
  }
185
185
 
186
- size_t GetEstimatedFairShareMemoryUsage(absl::Nonnull<const CordRep*> rep) {
186
+ size_t GetEstimatedFairShareMemoryUsage(const CordRep* absl_nonnull rep) {
187
187
  return GetEstimatedUsage<Mode::kFairShare>(rep);
188
188
  }
189
189
 
190
- size_t GetMorePreciseMemoryUsage(absl::Nonnull<const CordRep*> rep) {
190
+ size_t GetMorePreciseMemoryUsage(const CordRep* absl_nonnull rep) {
191
191
  return GetEstimatedUsage<Mode::kTotalMorePrecise>(rep);
192
192
  }
193
193
 
@@ -29,7 +29,7 @@ namespace cord_internal {
29
29
  // Returns the *approximate* number of bytes held in full or in part by this
30
30
  // Cord (which may not remain the same between invocations). Cords that share
31
31
  // memory could each be "charged" independently for the same shared memory.
32
- size_t GetEstimatedMemoryUsage(absl::Nonnull<const CordRep*> rep);
32
+ size_t GetEstimatedMemoryUsage(const CordRep* absl_nonnull rep);
33
33
 
34
34
  // Returns the *approximate* number of bytes held in full or in part by this
35
35
  // Cord for the distinct memory held by this cord. This is similar to
@@ -47,13 +47,13 @@ size_t GetEstimatedMemoryUsage(absl::Nonnull<const CordRep*> rep);
47
47
  //
48
48
  // This is more expensive than `GetEstimatedMemoryUsage()` as it requires
49
49
  // deduplicating all memory references.
50
- size_t GetMorePreciseMemoryUsage(absl::Nonnull<const CordRep*> rep);
50
+ size_t GetMorePreciseMemoryUsage(const CordRep* absl_nonnull rep);
51
51
 
52
52
  // Returns the *approximate* number of bytes held in full or in part by this
53
53
  // CordRep weighted by the sharing ratio of that data. For example, if some data
54
54
  // edge is shared by 4 different Cords, then each cord is attribute 1/4th of
55
55
  // the total memory usage as a 'fair share' of the total memory usage.
56
- size_t GetEstimatedFairShareMemoryUsage(absl::Nonnull<const CordRep*> rep);
56
+ size_t GetEstimatedFairShareMemoryUsage(const CordRep* absl_nonnull rep);
57
57
 
58
58
  } // namespace cord_internal
59
59
  ABSL_NAMESPACE_END