protovalidate 0.1.0.beta1

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 (1827) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +8 -0
  3. data/CHANGELOG.md +5 -0
  4. data/LICENSE.txt +201 -0
  5. data/NOTICE.md +30 -0
  6. data/README.md +93 -0
  7. data/Rakefile +32 -0
  8. data/ext/protovalidate/Cargo.lock +342 -0
  9. data/ext/protovalidate/Cargo.toml +27 -0
  10. data/ext/protovalidate/build.rs +4 -0
  11. data/ext/protovalidate/extconf.rb +8 -0
  12. data/ext/protovalidate/src/lib.rs +161 -0
  13. data/ext/protovalidate/sys/Cargo.toml +11 -0
  14. data/ext/protovalidate/sys/build.rs +218 -0
  15. data/ext/protovalidate/sys/filelists/absl.txt +126 -0
  16. data/ext/protovalidate/sys/filelists/antlr4.txt +139 -0
  17. data/ext/protovalidate/sys/filelists/celcpp.txt +199 -0
  18. data/ext/protovalidate/sys/filelists/protobuf.txt +83 -0
  19. data/ext/protovalidate/sys/filelists/protovalidate.txt +14 -0
  20. data/ext/protovalidate/sys/filelists/re2.txt +25 -0
  21. data/ext/protovalidate/sys/gen/buf/validate/validate.pb.cc +23621 -0
  22. data/ext/protovalidate/sys/gen/buf/validate/validate.pb.h +27800 -0
  23. data/ext/protovalidate/sys/gen/cel/expr/checked.pb.cc +6286 -0
  24. data/ext/protovalidate/sys/gen/cel/expr/checked.pb.h +6412 -0
  25. data/ext/protovalidate/sys/gen/cel/expr/syntax.pb.cc +7423 -0
  26. data/ext/protovalidate/sys/gen/cel/expr/syntax.pb.h +7510 -0
  27. data/ext/protovalidate/sys/gen/cel/expr/value.pb.cc +2512 -0
  28. data/ext/protovalidate/sys/gen/cel/expr/value.pb.h +2589 -0
  29. data/ext/protovalidate/sys/gen/internal/empty_descriptor_set_embed.inc +1 -0
  30. data/ext/protovalidate/sys/gen/parser/internal/CelBaseVisitor.cpp +9 -0
  31. data/ext/protovalidate/sys/gen/parser/internal/CelBaseVisitor.h +167 -0
  32. data/ext/protovalidate/sys/gen/parser/internal/CelLexer.cpp +308 -0
  33. data/ext/protovalidate/sys/gen/parser/internal/CelLexer.h +57 -0
  34. data/ext/protovalidate/sys/gen/parser/internal/CelParser.cpp +2484 -0
  35. data/ext/protovalidate/sys/gen/parser/internal/CelParser.h +697 -0
  36. data/ext/protovalidate/sys/gen/parser/internal/CelVisitor.cpp +9 -0
  37. data/ext/protovalidate/sys/gen/parser/internal/CelVisitor.h +98 -0
  38. data/ext/protovalidate/sys/shim/pv_shim.cc +260 -0
  39. data/ext/protovalidate/sys/shim/pv_shim.h +84 -0
  40. data/ext/protovalidate/sys/src/lib.rs +176 -0
  41. data/ext/protovalidate/sys/third_party/abseil-cpp/LICENSE +203 -0
  42. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/algorithm/algorithm.h +96 -0
  43. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/algorithm/container.h +2011 -0
  44. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/attributes.h +1100 -0
  45. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/call_once.h +228 -0
  46. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/casts.cc +61 -0
  47. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/casts.h +313 -0
  48. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/config.h +898 -0
  49. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/const_init.h +76 -0
  50. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/dynamic_annotations.h +480 -0
  51. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/fast_type_id.h +73 -0
  52. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/atomic_hook.h +200 -0
  53. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/atomic_hook_test_helper.h +34 -0
  54. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/cycleclock.cc +72 -0
  55. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/cycleclock.h +144 -0
  56. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/cycleclock_config.h +55 -0
  57. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +170 -0
  58. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/dynamic_annotations.h +398 -0
  59. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/endian.h +279 -0
  60. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/errno_saver.h +43 -0
  61. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/exception_safety_testing.h +1112 -0
  62. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/exception_testing.h +42 -0
  63. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/hardening.h +136 -0
  64. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/hide_ptr.h +51 -0
  65. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/iterator_traits.h +75 -0
  66. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/iterator_traits_test_helper.h +97 -0
  67. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +667 -0
  68. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +133 -0
  69. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +196 -0
  70. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/nullability_traits.h +71 -0
  71. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/per_thread_tls.h +52 -0
  72. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/poison.h +59 -0
  73. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/pretty_function.h +33 -0
  74. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +279 -0
  75. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/raw_logging.h +217 -0
  76. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/scheduling_mode.h +58 -0
  77. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/scoped_set_env.h +45 -0
  78. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/spinlock.cc +225 -0
  79. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/spinlock.h +310 -0
  80. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +35 -0
  81. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +71 -0
  82. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +46 -0
  83. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/spinlock_wait.cc +81 -0
  84. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +95 -0
  85. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +40 -0
  86. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/strerror.cc +88 -0
  87. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/strerror.h +39 -0
  88. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +493 -0
  89. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/sysinfo.h +74 -0
  90. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +163 -0
  91. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/thread_identity.h +325 -0
  92. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/tracing.cc +39 -0
  93. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/tracing.h +81 -0
  94. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/tsan_mutex_interface.h +68 -0
  95. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +89 -0
  96. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +134 -0
  97. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +118 -0
  98. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +62 -0
  99. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/log_severity.cc +56 -0
  100. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/log_severity.h +185 -0
  101. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/macros.h +259 -0
  102. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/no_destructor.h +191 -0
  103. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/nullability.h +318 -0
  104. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/optimization.h +311 -0
  105. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/options.h +212 -0
  106. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/policy_checks.h +115 -0
  107. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/port.h +25 -0
  108. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/prefetch.h +209 -0
  109. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/thread_annotations.h +333 -0
  110. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/throw_delegate.cc +205 -0
  111. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/throw_delegate.h +65 -0
  112. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/cleanup/cleanup.h +143 -0
  113. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +100 -0
  114. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/btree_map.h +941 -0
  115. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/btree_set.h +872 -0
  116. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/chunked_queue.h +757 -0
  117. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/fixed_array.h +548 -0
  118. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/flat_hash_map.h +714 -0
  119. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/flat_hash_set.h +604 -0
  120. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/hash_container_defaults.h +45 -0
  121. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/inlined_vector.h +1025 -0
  122. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/btree.h +3157 -0
  123. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/btree_container.h +875 -0
  124. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/chunked_queue.h +173 -0
  125. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/common.h +302 -0
  126. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +151 -0
  127. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +275 -0
  128. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/container_memory.h +571 -0
  129. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +281 -0
  130. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/hash_generator_testing.h +172 -0
  131. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/hash_policy_testing.h +173 -0
  132. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +195 -0
  133. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +527 -0
  134. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/hashtable_debug.h +102 -0
  135. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/hashtable_debug_hooks.h +85 -0
  136. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +316 -0
  137. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +294 -0
  138. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +31 -0
  139. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/heterogeneous_lookup_testing.h +80 -0
  140. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +1094 -0
  141. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/layout.h +828 -0
  142. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/node_slot_policy.h +95 -0
  143. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +380 -0
  144. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +2110 -0
  145. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +4056 -0
  146. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl.h +79 -0
  147. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/test_allocator.h +387 -0
  148. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/test_instance_tracker.h +274 -0
  149. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/tracked.h +83 -0
  150. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/linked_hash_map.h +666 -0
  151. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/linked_hash_set.h +527 -0
  152. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/node_hash_map.h +710 -0
  153. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/node_hash_set.h +603 -0
  154. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/crc32c.cc +95 -0
  155. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/crc32c.h +192 -0
  156. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/cpu_detect.cc +359 -0
  157. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/cpu_detect.h +69 -0
  158. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/crc.cc +435 -0
  159. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/crc.h +83 -0
  160. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +319 -0
  161. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/crc32c.h +39 -0
  162. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/crc32c_inline.h +72 -0
  163. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.cc +131 -0
  164. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.h +159 -0
  165. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/crc_internal.h +161 -0
  166. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/crc_memcpy.h +122 -0
  167. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_fallback.cc +78 -0
  168. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc +459 -0
  169. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc +93 -0
  170. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +824 -0
  171. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/non_temporal_arm_intrinsics.h +81 -0
  172. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/non_temporal_memcpy.h +195 -0
  173. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/failure_signal_handler.h +121 -0
  174. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +98 -0
  175. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.h +32 -0
  176. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/addresses.h +57 -0
  177. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/bounded_utf8_length_sequence.h +126 -0
  178. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc +258 -0
  179. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.h +55 -0
  180. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +2958 -0
  181. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/demangle.h +76 -0
  182. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.cc +925 -0
  183. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.h +50 -0
  184. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +413 -0
  185. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +141 -0
  186. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc +334 -0
  187. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/examine_stack.h +70 -0
  188. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/stack_consumption.h +50 -0
  189. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +299 -0
  190. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +148 -0
  191. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +96 -0
  192. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +121 -0
  193. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +121 -0
  194. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +270 -0
  195. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +208 -0
  196. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +25 -0
  197. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +81 -0
  198. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +410 -0
  199. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +163 -0
  200. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/utf8_for_code_point.cc +70 -0
  201. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/utf8_for_code_point.h +47 -0
  202. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +209 -0
  203. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/vdso_support.h +158 -0
  204. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/leak_check.cc +73 -0
  205. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/leak_check.h +150 -0
  206. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/stacktrace.cc +204 -0
  207. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/stacktrace.h +259 -0
  208. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/symbolize.cc +62 -0
  209. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/symbolize.h +99 -0
  210. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +102 -0
  211. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +1708 -0
  212. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +63 -0
  213. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +40 -0
  214. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +99 -0
  215. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/commandlineflag.h +220 -0
  216. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/config.h +68 -0
  217. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/declare.h +77 -0
  218. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/flag.h +307 -0
  219. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +68 -0
  220. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/internal/flag.h +969 -0
  221. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/internal/parse.h +70 -0
  222. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/internal/path_util.h +62 -0
  223. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.h +64 -0
  224. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/internal/program_name.h +50 -0
  225. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/internal/registry.h +98 -0
  226. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/internal/sequence_lock.h +187 -0
  227. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/internal/usage.h +106 -0
  228. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/marshalling.h +335 -0
  229. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/parse.h +130 -0
  230. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/reflection.h +90 -0
  231. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/usage.h +43 -0
  232. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/usage_config.h +135 -0
  233. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/functional/any_invocable.h +335 -0
  234. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/functional/bind_back.h +79 -0
  235. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/functional/bind_front.h +200 -0
  236. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/functional/function_ref.h +249 -0
  237. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +787 -0
  238. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/functional/internal/back_binder.h +95 -0
  239. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/functional/internal/front_binder.h +93 -0
  240. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/functional/internal/function_ref.h +151 -0
  241. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/functional/overload.h +72 -0
  242. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/hash/hash.h +466 -0
  243. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/hash/hash_testing.h +382 -0
  244. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/hash/internal/city.cc +337 -0
  245. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/hash/internal/city.h +78 -0
  246. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/hash/internal/hash.cc +430 -0
  247. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/hash/internal/hash.h +1619 -0
  248. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/hash/internal/spy_hash_state.h +289 -0
  249. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/hash/internal/weakly_mixed_integer.h +38 -0
  250. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/absl_check.h +117 -0
  251. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/absl_log.h +115 -0
  252. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/absl_vlog_is_on.h +93 -0
  253. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/check.h +210 -0
  254. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/check_test_impl.inc +1035 -0
  255. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/die_if_null.cc +34 -0
  256. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/die_if_null.h +97 -0
  257. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/flags.h +43 -0
  258. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/globals.cc +178 -0
  259. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/globals.h +230 -0
  260. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/initialize.h +45 -0
  261. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/append_truncated.h +75 -0
  262. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/check_impl.h +151 -0
  263. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/check_op.cc +147 -0
  264. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/check_op.h +565 -0
  265. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/conditions.cc +85 -0
  266. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/conditions.h +247 -0
  267. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/config.h +45 -0
  268. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/container.h +312 -0
  269. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/flags.h +59 -0
  270. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/fnmatch.cc +73 -0
  271. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/fnmatch.h +35 -0
  272. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/globals.cc +145 -0
  273. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/globals.h +101 -0
  274. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/log_format.cc +205 -0
  275. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/log_format.h +78 -0
  276. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/log_impl.h +280 -0
  277. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/log_message.cc +788 -0
  278. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/log_message.h +469 -0
  279. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/log_sink_set.cc +296 -0
  280. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/log_sink_set.h +54 -0
  281. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/nullguard.cc +35 -0
  282. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/nullguard.h +88 -0
  283. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/nullstream.h +128 -0
  284. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/proto.cc +231 -0
  285. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/proto.h +298 -0
  286. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/strip.h +99 -0
  287. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/structured.h +160 -0
  288. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/structured_proto.cc +115 -0
  289. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/structured_proto.h +108 -0
  290. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/test_actions.h +90 -0
  291. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/test_helpers.h +71 -0
  292. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/test_matchers.h +94 -0
  293. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/vlog_config.cc +347 -0
  294. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/vlog_config.h +164 -0
  295. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/voidify.h +50 -0
  296. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/log.h +378 -0
  297. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/log_basic_test_impl.inc +654 -0
  298. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/log_entry.cc +263 -0
  299. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/log_entry.h +223 -0
  300. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/log_sink.cc +23 -0
  301. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/log_sink.h +71 -0
  302. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/log_sink_registry.h +64 -0
  303. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/log_streamer.h +208 -0
  304. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/scoped_mock_log.h +203 -0
  305. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/structured.h +75 -0
  306. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/vlog_is_on.h +72 -0
  307. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/memory/memory.h +328 -0
  308. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/meta/internal/constexpr_testing.h +73 -0
  309. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/meta/internal/requires.h +67 -0
  310. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/meta/type_traits.h +646 -0
  311. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/numeric/bits.h +262 -0
  312. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/numeric/int128.cc +344 -0
  313. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/numeric/int128.h +1224 -0
  314. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +303 -0
  315. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +347 -0
  316. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/numeric/internal/bits.h +394 -0
  317. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
  318. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/profiling/hashtable.h +40 -0
  319. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/profiling/internal/exponential_biased.cc +93 -0
  320. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/profiling/internal/exponential_biased.h +130 -0
  321. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/profiling/internal/periodic_sampler.h +211 -0
  322. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/profiling/internal/profile_builder.h +161 -0
  323. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +253 -0
  324. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/bernoulli_distribution.h +202 -0
  325. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/beta_distribution.h +429 -0
  326. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/bit_gen_ref.h +160 -0
  327. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/discrete_distribution.h +249 -0
  328. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/distributions.h +450 -0
  329. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/exponential_distribution.h +166 -0
  330. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/gaussian_distribution.h +276 -0
  331. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/chi_square.h +89 -0
  332. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +83 -0
  333. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/distribution_test_util.h +113 -0
  334. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/entropy_pool.h +35 -0
  335. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/explicit_seed_seq.h +92 -0
  336. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +271 -0
  337. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/fastmath.h +57 -0
  338. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/generate_real.h +144 -0
  339. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h +248 -0
  340. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/mock_helpers.h +134 -0
  341. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/mock_overload_set.h +122 -0
  342. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/mock_validators.h +98 -0
  343. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/nanobenchmark.h +172 -0
  344. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +160 -0
  345. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +287 -0
  346. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/platform.h +158 -0
  347. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/randen.h +96 -0
  348. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/randen_detect.h +33 -0
  349. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/randen_engine.h +265 -0
  350. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/randen_hwaes.h +50 -0
  351. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/randen_slow.h +40 -0
  352. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/randen_traits.h +88 -0
  353. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +166 -0
  354. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/seed_material.h +105 -0
  355. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/sequence_urbg.h +60 -0
  356. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/traits.h +170 -0
  357. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +244 -0
  358. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/wide_multiply.h +95 -0
  359. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h +253 -0
  360. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/mock_distributions.h +269 -0
  361. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/mocking_access.h +74 -0
  362. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/mocking_bit_gen.h +227 -0
  363. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/poisson_distribution.h +262 -0
  364. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/random.h +224 -0
  365. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/seed_gen_exception.h +55 -0
  366. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/seed_sequences.h +112 -0
  367. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/uniform_int_distribution.h +276 -0
  368. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +204 -0
  369. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/zipf_distribution.h +273 -0
  370. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/status/internal/status_internal.cc +296 -0
  371. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/status/internal/status_internal.h +157 -0
  372. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/status/internal/status_matchers.h +260 -0
  373. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +657 -0
  374. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/status/status.cc +413 -0
  375. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/status/status.h +1174 -0
  376. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/status/status_builder.h +978 -0
  377. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/status/status_macros.h +484 -0
  378. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/status/status_matchers.h +167 -0
  379. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/status/status_payload_printer.cc +36 -0
  380. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/status/status_payload_printer.h +53 -0
  381. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/status/statusor.cc +106 -0
  382. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/status/statusor.h +776 -0
  383. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/ascii.cc +296 -0
  384. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/ascii.h +288 -0
  385. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/charconv.cc +1442 -0
  386. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/charconv.h +123 -0
  387. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/charset.h +163 -0
  388. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/cord.cc +1601 -0
  389. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/cord.h +1773 -0
  390. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/cord_analysis.cc +196 -0
  391. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/cord_analysis.h +63 -0
  392. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/cord_buffer.h +574 -0
  393. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/cord_test_helpers.h +122 -0
  394. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/cordz_test_helpers.h +152 -0
  395. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/escaping.cc +1183 -0
  396. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/escaping.h +195 -0
  397. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/has_absl_stringify.h +64 -0
  398. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/has_ostream_operator.h +42 -0
  399. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/append_and_overwrite.h +93 -0
  400. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +357 -0
  401. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +433 -0
  402. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +504 -0
  403. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/charconv_parse.h +99 -0
  404. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cord_data_edge.h +63 -0
  405. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +70 -0
  406. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +942 -0
  407. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +1237 -0
  408. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +944 -0
  409. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +187 -0
  410. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h +267 -0
  411. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc +69 -0
  412. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h +212 -0
  413. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +64 -0
  414. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.h +47 -0
  415. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.cc +56 -0
  416. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.h +103 -0
  417. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +195 -0
  418. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cord_rep_test_util.h +205 -0
  419. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc +102 -0
  420. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cordz_functions.h +87 -0
  421. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +165 -0
  422. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cordz_handle.h +98 -0
  423. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +424 -0
  424. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +295 -0
  425. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cordz_sample_token.h +97 -0
  426. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +88 -0
  427. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cordz_update_scope.h +71 -0
  428. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker.h +123 -0
  429. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc +99 -0
  430. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.h +35 -0
  431. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/escaping.cc +68 -0
  432. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/escaping.h +35 -0
  433. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/escaping_test_common.h +133 -0
  434. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/generic_printer.h +115 -0
  435. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/generic_printer_internal.h +444 -0
  436. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/memutil.cc +48 -0
  437. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/memutil.h +40 -0
  438. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/numbers_test_common.h +184 -0
  439. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/ostringstream.cc +43 -0
  440. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/ostringstream.h +114 -0
  441. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/pow10_helper.h +40 -0
  442. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h +114 -0
  443. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/stl_type_traits.h +248 -0
  444. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +615 -0
  445. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +653 -0
  446. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +275 -0
  447. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +237 -0
  448. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +98 -0
  449. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/str_format/constexpr_parser.h +357 -0
  450. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +53 -0
  451. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +456 -0
  452. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +2148 -0
  453. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +37 -0
  454. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/str_format/output.cc +74 -0
  455. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +97 -0
  456. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +140 -0
  457. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +271 -0
  458. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +340 -0
  459. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +524 -0
  460. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/string_constant.h +67 -0
  461. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/stringify_sink.cc +28 -0
  462. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/stringify_sink.h +69 -0
  463. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/stringify_stream.h +119 -0
  464. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/utf8.cc +148 -0
  465. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/utf8.h +64 -0
  466. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/match.cc +133 -0
  467. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/match.h +129 -0
  468. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/numbers.cc +1636 -0
  469. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/numbers.h +363 -0
  470. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/resize_and_overwrite.h +198 -0
  471. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/str_cat.cc +247 -0
  472. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/str_cat.h +668 -0
  473. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/str_format.h +887 -0
  474. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/str_join.h +301 -0
  475. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/str_replace.cc +91 -0
  476. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/str_replace.h +222 -0
  477. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/str_split.cc +144 -0
  478. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/str_split.h +587 -0
  479. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/string_view.h +60 -0
  480. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/strip.h +99 -0
  481. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/substitute.cc +187 -0
  482. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/substitute.h +769 -0
  483. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/barrier.cc +52 -0
  484. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/barrier.h +79 -0
  485. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +73 -0
  486. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +107 -0
  487. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +173 -0
  488. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.h +56 -0
  489. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/futex.h +177 -0
  490. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/futex_waiter.cc +107 -0
  491. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/futex_waiter.h +63 -0
  492. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +714 -0
  493. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.h +146 -0
  494. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc +220 -0
  495. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +178 -0
  496. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +106 -0
  497. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +124 -0
  498. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/pthread_waiter.cc +163 -0
  499. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/pthread_waiter.h +60 -0
  500. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/sem_waiter.cc +118 -0
  501. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/sem_waiter.h +65 -0
  502. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc +87 -0
  503. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.h +56 -0
  504. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/thread_pool.h +96 -0
  505. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +69 -0
  506. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/waiter_base.cc +38 -0
  507. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/waiter_base.h +90 -0
  508. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/win32_waiter.cc +147 -0
  509. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/win32_waiter.h +72 -0
  510. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/mutex.cc +2833 -0
  511. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/mutex.h +1352 -0
  512. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/notification.cc +85 -0
  513. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/notification.h +133 -0
  514. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/civil_time.cc +200 -0
  515. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/civil_time.h +589 -0
  516. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/clock.cc +603 -0
  517. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/clock.h +81 -0
  518. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/clock_interface.h +93 -0
  519. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/duration.cc +918 -0
  520. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/format.cc +155 -0
  521. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time.h +332 -0
  522. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +644 -0
  523. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +460 -0
  524. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +102 -0
  525. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc +94 -0
  526. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/test_time_zone_names.h +33 -0
  527. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +140 -0
  528. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.h +52 -0
  529. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +1069 -0
  530. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc +47 -0
  531. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +80 -0
  532. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +115 -0
  533. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +97 -0
  534. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +1070 -0
  535. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +128 -0
  536. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +333 -0
  537. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h +60 -0
  538. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +217 -0
  539. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.cc +185 -0
  540. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.h +37 -0
  541. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc +159 -0
  542. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.h +132 -0
  543. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +115 -0
  544. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +116 -0
  545. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/get_current_time_chrono.inc +31 -0
  546. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/get_current_time_posix.inc +24 -0
  547. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/test_util.h +33 -0
  548. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/simulated_clock.h +109 -0
  549. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/time.cc +507 -0
  550. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/time.h +1926 -0
  551. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/types/any.h +66 -0
  552. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/types/any_span.h +1067 -0
  553. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/types/compare.h +506 -0
  554. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/types/internal/any_span.h +477 -0
  555. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/types/internal/span.h +140 -0
  556. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/types/optional.h +68 -0
  557. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/types/optional_ref.h +295 -0
  558. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/types/source_location.cc +18 -0
  559. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/types/source_location.h +172 -0
  560. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/types/span.h +827 -0
  561. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/types/variant.h +139 -0
  562. data/ext/protovalidate/sys/third_party/abseil-cpp/absl/utility/utility.h +151 -0
  563. data/ext/protovalidate/sys/third_party/antlr4/LICENSE.txt +28 -0
  564. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRErrorListener.cpp +10 -0
  565. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRErrorListener.h +167 -0
  566. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRErrorStrategy.cpp +10 -0
  567. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRErrorStrategy.h +121 -0
  568. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRFileStream.cpp +23 -0
  569. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRFileStream.h +30 -0
  570. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRInputStream.cpp +180 -0
  571. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRInputStream.h +79 -0
  572. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/BailErrorStrategy.cpp +61 -0
  573. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/BailErrorStrategy.h +59 -0
  574. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/BaseErrorListener.cpp +25 -0
  575. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/BaseErrorListener.h +36 -0
  576. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/BufferedTokenStream.cpp +414 -0
  577. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/BufferedTokenStream.h +200 -0
  578. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/CharStream.cpp +11 -0
  579. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/CharStream.h +37 -0
  580. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/CommonToken.cpp +193 -0
  581. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/CommonToken.h +158 -0
  582. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/CommonTokenFactory.cpp +39 -0
  583. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/CommonTokenFactory.h +74 -0
  584. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/CommonTokenStream.cpp +78 -0
  585. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/CommonTokenStream.h +79 -0
  586. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ConsoleErrorListener.cpp +15 -0
  587. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ConsoleErrorListener.h +35 -0
  588. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/DefaultErrorStrategy.cpp +336 -0
  589. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/DefaultErrorStrategy.h +466 -0
  590. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/DiagnosticErrorListener.cpp +84 -0
  591. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/DiagnosticErrorListener.h +80 -0
  592. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/Exceptions.cpp +64 -0
  593. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/Exceptions.h +99 -0
  594. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/FailedPredicateException.cpp +52 -0
  595. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/FailedPredicateException.h +32 -0
  596. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/FlatHashMap.h +57 -0
  597. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/FlatHashSet.h +57 -0
  598. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/InputMismatchException.cpp +18 -0
  599. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/InputMismatchException.h +24 -0
  600. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/IntStream.cpp +12 -0
  601. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/IntStream.h +218 -0
  602. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/InterpreterRuleContext.cpp +19 -0
  603. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/InterpreterRuleContext.h +45 -0
  604. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/Lexer.cpp +294 -0
  605. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/Lexer.h +196 -0
  606. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/LexerInterpreter.cpp +60 -0
  607. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/LexerInterpreter.h +46 -0
  608. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/LexerNoViableAltException.cpp +36 -0
  609. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/LexerNoViableAltException.h +31 -0
  610. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ListTokenSource.cpp +92 -0
  611. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ListTokenSource.h +88 -0
  612. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/NoViableAltException.cpp +46 -0
  613. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/NoViableAltException.h +42 -0
  614. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/Parser.cpp +670 -0
  615. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/Parser.h +461 -0
  616. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ParserInterpreter.cpp +294 -0
  617. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ParserInterpreter.h +173 -0
  618. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ParserRuleContext.cpp +138 -0
  619. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ParserRuleContext.h +147 -0
  620. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ProxyErrorListener.cpp +53 -0
  621. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ProxyErrorListener.h +38 -0
  622. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/RecognitionException.cpp +65 -0
  623. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/RecognitionException.h +98 -0
  624. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/Recognizer.cpp +157 -0
  625. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/Recognizer.h +160 -0
  626. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/RuleContext.cpp +144 -0
  627. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/RuleContext.h +141 -0
  628. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/RuleContextWithAltNum.cpp +27 -0
  629. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/RuleContextWithAltNum.h +32 -0
  630. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/RuntimeMetaData.cpp +54 -0
  631. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/RuntimeMetaData.h +155 -0
  632. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/Token.cpp +9 -0
  633. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/Token.h +92 -0
  634. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/TokenFactory.h +30 -0
  635. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/TokenSource.cpp +9 -0
  636. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/TokenSource.h +85 -0
  637. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/TokenStream.cpp +11 -0
  638. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/TokenStream.h +137 -0
  639. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/TokenStreamRewriter.cpp +428 -0
  640. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/TokenStreamRewriter.h +295 -0
  641. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/UnbufferedCharStream.cpp +208 -0
  642. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/UnbufferedCharStream.h +117 -0
  643. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/UnbufferedTokenStream.cpp +270 -0
  644. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/UnbufferedTokenStream.h +115 -0
  645. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/Version.h +42 -0
  646. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/Vocabulary.cpp +64 -0
  647. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/Vocabulary.h +177 -0
  648. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/WritableToken.cpp +9 -0
  649. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/WritableToken.h +23 -0
  650. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/antlr4-common.h +101 -0
  651. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/antlr4-runtime.h +168 -0
  652. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATN.cpp +159 -0
  653. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATN.h +133 -0
  654. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNConfig.cpp +106 -0
  655. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNConfig.h +157 -0
  656. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNConfigSet.cpp +233 -0
  657. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNConfigSet.h +157 -0
  658. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.cpp +39 -0
  659. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.h +48 -0
  660. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNDeserializer.cpp +628 -0
  661. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNDeserializer.h +32 -0
  662. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNSimulator.cpp +33 -0
  663. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNSimulator.h +71 -0
  664. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNState.cpp +56 -0
  665. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNState.h +139 -0
  666. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNStateType.cpp +33 -0
  667. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNStateType.h +36 -0
  668. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNType.h +20 -0
  669. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ActionTransition.cpp +29 -0
  670. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ActionTransition.h +35 -0
  671. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/AmbiguityInfo.cpp +16 -0
  672. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/AmbiguityInfo.h +68 -0
  673. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.cpp +129 -0
  674. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.h +51 -0
  675. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/AtomTransition.cpp +27 -0
  676. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/AtomTransition.h +33 -0
  677. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/BasicBlockStartState.h +24 -0
  678. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/BasicState.h +23 -0
  679. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/BlockEndState.h +26 -0
  680. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/BlockStartState.h +30 -0
  681. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.cpp +14 -0
  682. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.h +47 -0
  683. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/DecisionEventInfo.cpp +14 -0
  684. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/DecisionEventInfo.h +70 -0
  685. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/DecisionInfo.cpp +25 -0
  686. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/DecisionInfo.h +227 -0
  687. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/DecisionState.cpp +12 -0
  688. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/DecisionState.h +34 -0
  689. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/EpsilonTransition.cpp +31 -0
  690. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/EpsilonTransition.h +42 -0
  691. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ErrorInfo.cpp +15 -0
  692. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ErrorInfo.h +43 -0
  693. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/HashUtils.h +18 -0
  694. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LL1Analyzer.cpp +189 -0
  695. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LL1Analyzer.h +76 -0
  696. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerATNConfig.cpp +67 -0
  697. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerATNConfig.h +44 -0
  698. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerATNSimulator.cpp +621 -0
  699. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerATNSimulator.h +199 -0
  700. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerAction.cpp +15 -0
  701. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerAction.h +100 -0
  702. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerActionExecutor.cpp +108 -0
  703. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerActionExecutor.h +128 -0
  704. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerActionType.h +57 -0
  705. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerChannelAction.cpp +43 -0
  706. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerChannelAction.h +59 -0
  707. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerCustomAction.cpp +45 -0
  708. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerCustomAction.h +75 -0
  709. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.cpp +50 -0
  710. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.h +76 -0
  711. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerModeAction.cpp +43 -0
  712. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerModeAction.h +57 -0
  713. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerMoreAction.cpp +36 -0
  714. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerMoreAction.h +53 -0
  715. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerPopModeAction.cpp +36 -0
  716. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerPopModeAction.h +53 -0
  717. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerPushModeAction.cpp +43 -0
  718. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerPushModeAction.h +57 -0
  719. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerSkipAction.cpp +36 -0
  720. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerSkipAction.h +51 -0
  721. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerTypeAction.cpp +43 -0
  722. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerTypeAction.h +51 -0
  723. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.cpp +16 -0
  724. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.h +42 -0
  725. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LoopEndState.h +26 -0
  726. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/NotSetTransition.cpp +22 -0
  727. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/NotSetTransition.h +27 -0
  728. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.cpp +16 -0
  729. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.h +25 -0
  730. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ParseInfo.cpp +102 -0
  731. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ParseInfo.h +102 -0
  732. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ParserATNSimulator.cpp +1413 -0
  733. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ParserATNSimulator.h +911 -0
  734. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ParserATNSimulatorOptions.h +50 -0
  735. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PlusBlockStartState.h +29 -0
  736. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PlusLoopbackState.h +25 -0
  737. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.cpp +23 -0
  738. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.h +35 -0
  739. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.cpp +17 -0
  740. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.h +62 -0
  741. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredicateTransition.cpp +24 -0
  742. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredicateTransition.h +50 -0
  743. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredictionContext.cpp +601 -0
  744. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredictionContext.h +225 -0
  745. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredictionContextCache.cpp +56 -0
  746. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredictionContextCache.h +63 -0
  747. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredictionContextMergeCache.cpp +167 -0
  748. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredictionContextMergeCache.h +101 -0
  749. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredictionContextMergeCacheOptions.h +71 -0
  750. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredictionContextType.h +21 -0
  751. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredictionMode.cpp +202 -0
  752. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredictionMode.h +436 -0
  753. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.cpp +179 -0
  754. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.h +60 -0
  755. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/RangeTransition.cpp +26 -0
  756. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/RangeTransition.h +31 -0
  757. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/RuleStartState.h +26 -0
  758. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/RuleStopState.h +27 -0
  759. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/RuleTransition.cpp +33 -0
  760. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/RuleTransition.h +42 -0
  761. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/SemanticContext.cpp +418 -0
  762. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/SemanticContext.h +237 -0
  763. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/SemanticContextType.h +23 -0
  764. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/SerializedATNView.h +101 -0
  765. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/SetTransition.cpp +28 -0
  766. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/SetTransition.h +38 -0
  767. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.cpp +79 -0
  768. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.h +43 -0
  769. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/StarBlockStartState.h +24 -0
  770. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/StarLoopEntryState.h +37 -0
  771. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/StarLoopbackState.cpp +19 -0
  772. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/StarLoopbackState.h +25 -0
  773. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/TokensStartState.h +24 -0
  774. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/Transition.cpp +36 -0
  775. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/Transition.h +65 -0
  776. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/TransitionType.cpp +27 -0
  777. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/TransitionType.h +33 -0
  778. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/WildcardTransition.cpp +21 -0
  779. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/WildcardTransition.h +27 -0
  780. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/dfa/DFA.cpp +115 -0
  781. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/dfa/DFA.h +96 -0
  782. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/dfa/DFASerializer.cpp +60 -0
  783. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/dfa/DFASerializer.h +32 -0
  784. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/dfa/DFAState.cpp +59 -0
  785. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/dfa/DFAState.h +154 -0
  786. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.cpp +17 -0
  787. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.h +22 -0
  788. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/internal/Synchronization.cpp +100 -0
  789. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/internal/Synchronization.h +154 -0
  790. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/misc/InterpreterDataReader.cpp +124 -0
  791. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/misc/InterpreterDataReader.h +33 -0
  792. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/misc/Interval.cpp +61 -0
  793. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/misc/Interval.h +84 -0
  794. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/misc/IntervalSet.cpp +508 -0
  795. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/misc/IntervalSet.h +190 -0
  796. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/misc/MurmurHash.cpp +120 -0
  797. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/misc/MurmurHash.h +102 -0
  798. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/misc/Predicate.cpp +4 -0
  799. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/misc/Predicate.h +21 -0
  800. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/support/Any.cpp +8 -0
  801. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/support/Any.h +16 -0
  802. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/support/Arrays.cpp +43 -0
  803. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/support/Arrays.h +149 -0
  804. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/support/BitSet.h +76 -0
  805. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/support/CPPUtils.cpp +207 -0
  806. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/support/CPPUtils.h +65 -0
  807. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/support/Casts.h +34 -0
  808. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/support/Declarations.h +161 -0
  809. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/support/StringUtils.cpp +38 -0
  810. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/support/StringUtils.h +16 -0
  811. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/support/Unicode.h +28 -0
  812. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/support/Utf8.cpp +242 -0
  813. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/support/Utf8.h +54 -0
  814. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/AbstractParseTreeVisitor.h +129 -0
  815. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/ErrorNode.h +24 -0
  816. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.cpp +54 -0
  817. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.h +43 -0
  818. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.cpp +66 -0
  819. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.h +53 -0
  820. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTree.cpp +12 -0
  821. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTree.h +111 -0
  822. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTreeListener.cpp +9 -0
  823. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTreeListener.h +39 -0
  824. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTreeProperty.h +50 -0
  825. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTreeType.h +22 -0
  826. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.cpp +9 -0
  827. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.h +57 -0
  828. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTreeWalker.cpp +48 -0
  829. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTreeWalker.h +55 -0
  830. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/TerminalNode.h +40 -0
  831. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.cpp +54 -0
  832. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.h +32 -0
  833. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/Trees.cpp +241 -0
  834. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/Trees.h +78 -0
  835. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/Chunk.cpp +9 -0
  836. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/Chunk.h +44 -0
  837. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.cpp +69 -0
  838. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.h +132 -0
  839. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.cpp +64 -0
  840. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.h +105 -0
  841. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.cpp +370 -0
  842. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.h +185 -0
  843. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.cpp +77 -0
  844. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.h +117 -0
  845. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/TagChunk.cpp +39 -0
  846. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/TagChunk.h +86 -0
  847. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/TextChunk.cpp +28 -0
  848. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/TextChunk.h +51 -0
  849. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.cpp +36 -0
  850. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.h +80 -0
  851. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPath.cpp +154 -0
  852. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPath.h +86 -0
  853. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathElement.cpp +31 -0
  854. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathElement.h +40 -0
  855. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.cpp +180 -0
  856. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.h +53 -0
  857. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.cpp +13 -0
  858. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.h +22 -0
  859. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.cpp +20 -0
  860. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.h +27 -0
  861. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.cpp +30 -0
  862. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.h +26 -0
  863. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.cpp +20 -0
  864. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.h +25 -0
  865. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.cpp +33 -0
  866. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.h +26 -0
  867. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.cpp +23 -0
  868. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.h +23 -0
  869. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.cpp +24 -0
  870. data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.h +23 -0
  871. data/ext/protovalidate/sys/third_party/cel-cpp/LICENSE +202 -0
  872. data/ext/protovalidate/sys/third_party/cel-cpp/base/ast.h +20 -0
  873. data/ext/protovalidate/sys/third_party/cel-cpp/base/attribute.cc +330 -0
  874. data/ext/protovalidate/sys/third_party/cel-cpp/base/attribute.h +278 -0
  875. data/ext/protovalidate/sys/third_party/cel-cpp/base/attribute_set.h +108 -0
  876. data/ext/protovalidate/sys/third_party/cel-cpp/base/builtins.h +106 -0
  877. data/ext/protovalidate/sys/third_party/cel-cpp/base/function.h +20 -0
  878. data/ext/protovalidate/sys/third_party/cel-cpp/base/function_adapter.h +19 -0
  879. data/ext/protovalidate/sys/third_party/cel-cpp/base/function_descriptor.h +20 -0
  880. data/ext/protovalidate/sys/third_party/cel-cpp/base/function_result.h +70 -0
  881. data/ext/protovalidate/sys/third_party/cel-cpp/base/function_result_set.cc +28 -0
  882. data/ext/protovalidate/sys/third_party/cel-cpp/base/function_result_set.h +105 -0
  883. data/ext/protovalidate/sys/third_party/cel-cpp/base/internal/memory_manager_testing.h +54 -0
  884. data/ext/protovalidate/sys/third_party/cel-cpp/base/internal/message_wrapper.h +30 -0
  885. data/ext/protovalidate/sys/third_party/cel-cpp/base/internal/operators.h +91 -0
  886. data/ext/protovalidate/sys/third_party/cel-cpp/base/internal/unknown_set.cc +31 -0
  887. data/ext/protovalidate/sys/third_party/cel-cpp/base/internal/unknown_set.h +131 -0
  888. data/ext/protovalidate/sys/third_party/cel-cpp/base/kind.h +25 -0
  889. data/ext/protovalidate/sys/third_party/cel-cpp/base/operators.h +507 -0
  890. data/ext/protovalidate/sys/third_party/cel-cpp/base/type_provider.h +26 -0
  891. data/ext/protovalidate/sys/third_party/cel-cpp/checker/checker_options.h +110 -0
  892. data/ext/protovalidate/sys/third_party/cel-cpp/checker/internal/builtins_arena.cc +28 -0
  893. data/ext/protovalidate/sys/third_party/cel-cpp/checker/internal/builtins_arena.h +29 -0
  894. data/ext/protovalidate/sys/third_party/cel-cpp/checker/internal/field_path.h +77 -0
  895. data/ext/protovalidate/sys/third_party/cel-cpp/checker/internal/namespace_generator.h +120 -0
  896. data/ext/protovalidate/sys/third_party/cel-cpp/checker/internal/proto_type_mask.h +111 -0
  897. data/ext/protovalidate/sys/third_party/cel-cpp/checker/internal/proto_type_mask_registry.h +83 -0
  898. data/ext/protovalidate/sys/third_party/cel-cpp/checker/internal/test_ast_helpers.h +31 -0
  899. data/ext/protovalidate/sys/third_party/cel-cpp/checker/internal/type_check_env.h +249 -0
  900. data/ext/protovalidate/sys/third_party/cel-cpp/checker/internal/type_checker_builder_impl.h +170 -0
  901. data/ext/protovalidate/sys/third_party/cel-cpp/checker/internal/type_checker_impl.h +58 -0
  902. data/ext/protovalidate/sys/third_party/cel-cpp/checker/internal/type_inference_context.h +229 -0
  903. data/ext/protovalidate/sys/third_party/cel-cpp/checker/optional.h +30 -0
  904. data/ext/protovalidate/sys/third_party/cel-cpp/checker/standard_library.h +26 -0
  905. data/ext/protovalidate/sys/third_party/cel-cpp/checker/type_check_issue.cc +59 -0
  906. data/ext/protovalidate/sys/third_party/cel-cpp/checker/type_check_issue.h +69 -0
  907. data/ext/protovalidate/sys/third_party/cel-cpp/checker/type_checker.cc +36 -0
  908. data/ext/protovalidate/sys/third_party/cel-cpp/checker/type_checker.h +65 -0
  909. data/ext/protovalidate/sys/third_party/cel-cpp/checker/type_checker_builder.h +186 -0
  910. data/ext/protovalidate/sys/third_party/cel-cpp/checker/type_checker_builder_factory.h +59 -0
  911. data/ext/protovalidate/sys/third_party/cel-cpp/checker/type_checker_subset_factory.h +45 -0
  912. data/ext/protovalidate/sys/third_party/cel-cpp/checker/validation_result.cc +32 -0
  913. data/ext/protovalidate/sys/third_party/cel-cpp/checker/validation_result.h +117 -0
  914. data/ext/protovalidate/sys/third_party/cel-cpp/codelab/checked_expr_conversion_example.h +59 -0
  915. data/ext/protovalidate/sys/third_party/cel-cpp/codelab/exercise1.h +32 -0
  916. data/ext/protovalidate/sys/third_party/cel-cpp/codelab/exercise10.h +46 -0
  917. data/ext/protovalidate/sys/third_party/cel-cpp/codelab/exercise2.h +40 -0
  918. data/ext/protovalidate/sys/third_party/cel-cpp/codelab/exercise4.h +34 -0
  919. data/ext/protovalidate/sys/third_party/cel-cpp/codelab/network_functions.h +197 -0
  920. data/ext/protovalidate/sys/third_party/cel-cpp/common/allocator.h +606 -0
  921. data/ext/protovalidate/sys/third_party/cel-cpp/common/any.cc +38 -0
  922. data/ext/protovalidate/sys/third_party/cel-cpp/common/any.h +90 -0
  923. data/ext/protovalidate/sys/third_party/cel-cpp/common/arena.h +110 -0
  924. data/ext/protovalidate/sys/third_party/cel-cpp/common/arena_string.h +365 -0
  925. data/ext/protovalidate/sys/third_party/cel-cpp/common/arena_string_pool.h +86 -0
  926. data/ext/protovalidate/sys/third_party/cel-cpp/common/arena_string_view.h +239 -0
  927. data/ext/protovalidate/sys/third_party/cel-cpp/common/ast/constant_proto.cc +123 -0
  928. data/ext/protovalidate/sys/third_party/cel-cpp/common/ast/constant_proto.h +37 -0
  929. data/ext/protovalidate/sys/third_party/cel-cpp/common/ast/expr_proto.cc +514 -0
  930. data/ext/protovalidate/sys/third_party/cel-cpp/common/ast/expr_proto.h +32 -0
  931. data/ext/protovalidate/sys/third_party/cel-cpp/common/ast/metadata.cc +262 -0
  932. data/ext/protovalidate/sys/third_party/cel-cpp/common/ast/metadata.h +920 -0
  933. data/ext/protovalidate/sys/third_party/cel-cpp/common/ast/navigable_ast_internal.h +311 -0
  934. data/ext/protovalidate/sys/third_party/cel-cpp/common/ast/navigable_ast_kinds.cc +80 -0
  935. data/ext/protovalidate/sys/third_party/cel-cpp/common/ast/navigable_ast_kinds.h +74 -0
  936. data/ext/protovalidate/sys/third_party/cel-cpp/common/ast/source_info_proto.cc +90 -0
  937. data/ext/protovalidate/sys/third_party/cel-cpp/common/ast/source_info_proto.h +32 -0
  938. data/ext/protovalidate/sys/third_party/cel-cpp/common/ast.cc +98 -0
  939. data/ext/protovalidate/sys/third_party/cel-cpp/common/ast.h +157 -0
  940. data/ext/protovalidate/sys/third_party/cel-cpp/common/ast_proto.cc +547 -0
  941. data/ext/protovalidate/sys/third_party/cel-cpp/common/ast_proto.h +52 -0
  942. data/ext/protovalidate/sys/third_party/cel-cpp/common/ast_rewrite.cc +389 -0
  943. data/ext/protovalidate/sys/third_party/cel-cpp/common/ast_rewrite.h +146 -0
  944. data/ext/protovalidate/sys/third_party/cel-cpp/common/ast_traverse.cc +380 -0
  945. data/ext/protovalidate/sys/third_party/cel-cpp/common/ast_traverse.h +105 -0
  946. data/ext/protovalidate/sys/third_party/cel-cpp/common/ast_visitor.h +118 -0
  947. data/ext/protovalidate/sys/third_party/cel-cpp/common/ast_visitor_base.h +88 -0
  948. data/ext/protovalidate/sys/third_party/cel-cpp/common/casting.h +75 -0
  949. data/ext/protovalidate/sys/third_party/cel-cpp/common/constant.cc +101 -0
  950. data/ext/protovalidate/sys/third_party/cel-cpp/common/constant.h +491 -0
  951. data/ext/protovalidate/sys/third_party/cel-cpp/common/container.cc +171 -0
  952. data/ext/protovalidate/sys/third_party/cel-cpp/common/container.h +138 -0
  953. data/ext/protovalidate/sys/third_party/cel-cpp/common/data.h +120 -0
  954. data/ext/protovalidate/sys/third_party/cel-cpp/common/decl.cc +221 -0
  955. data/ext/protovalidate/sys/third_party/cel-cpp/common/decl.h +446 -0
  956. data/ext/protovalidate/sys/third_party/cel-cpp/common/decl_proto.h +50 -0
  957. data/ext/protovalidate/sys/third_party/cel-cpp/common/decl_proto_v1alpha1.h +55 -0
  958. data/ext/protovalidate/sys/third_party/cel-cpp/common/descriptor_pool_type_introspector.cc +244 -0
  959. data/ext/protovalidate/sys/third_party/cel-cpp/common/descriptor_pool_type_introspector.h +106 -0
  960. data/ext/protovalidate/sys/third_party/cel-cpp/common/expr.cc +320 -0
  961. data/ext/protovalidate/sys/third_party/cel-cpp/common/expr.h +1720 -0
  962. data/ext/protovalidate/sys/third_party/cel-cpp/common/expr_factory.h +402 -0
  963. data/ext/protovalidate/sys/third_party/cel-cpp/common/expr_printer.h +57 -0
  964. data/ext/protovalidate/sys/third_party/cel-cpp/common/format_type_name.h +30 -0
  965. data/ext/protovalidate/sys/third_party/cel-cpp/common/function_descriptor.cc +98 -0
  966. data/ext/protovalidate/sys/third_party/cel-cpp/common/function_descriptor.h +124 -0
  967. data/ext/protovalidate/sys/third_party/cel-cpp/common/internal/byte_string.cc +1074 -0
  968. data/ext/protovalidate/sys/third_party/cel-cpp/common/internal/byte_string.h +688 -0
  969. data/ext/protovalidate/sys/third_party/cel-cpp/common/internal/casting.h +237 -0
  970. data/ext/protovalidate/sys/third_party/cel-cpp/common/internal/metadata.h +41 -0
  971. data/ext/protovalidate/sys/third_party/cel-cpp/common/internal/reference_count.cc +118 -0
  972. data/ext/protovalidate/sys/third_party/cel-cpp/common/internal/reference_count.h +406 -0
  973. data/ext/protovalidate/sys/third_party/cel-cpp/common/internal/value_conversion.h +115 -0
  974. data/ext/protovalidate/sys/third_party/cel-cpp/common/json.h +35 -0
  975. data/ext/protovalidate/sys/third_party/cel-cpp/common/kind.cc +80 -0
  976. data/ext/protovalidate/sys/third_party/cel-cpp/common/kind.h +76 -0
  977. data/ext/protovalidate/sys/third_party/cel-cpp/common/legacy_value.cc +1324 -0
  978. data/ext/protovalidate/sys/third_party/cel-cpp/common/legacy_value.h +131 -0
  979. data/ext/protovalidate/sys/third_party/cel-cpp/common/memory.cc +83 -0
  980. data/ext/protovalidate/sys/third_party/cel-cpp/common/memory.h +1505 -0
  981. data/ext/protovalidate/sys/third_party/cel-cpp/common/memory_testing.h +71 -0
  982. data/ext/protovalidate/sys/third_party/cel-cpp/common/minimal_descriptor_database.h +32 -0
  983. data/ext/protovalidate/sys/third_party/cel-cpp/common/minimal_descriptor_pool.h +36 -0
  984. data/ext/protovalidate/sys/third_party/cel-cpp/common/native_type.h +26 -0
  985. data/ext/protovalidate/sys/third_party/cel-cpp/common/navigable_ast.cc +202 -0
  986. data/ext/protovalidate/sys/third_party/cel-cpp/common/navigable_ast.h +168 -0
  987. data/ext/protovalidate/sys/third_party/cel-cpp/common/operators.cc +233 -0
  988. data/ext/protovalidate/sys/third_party/cel-cpp/common/operators.h +87 -0
  989. data/ext/protovalidate/sys/third_party/cel-cpp/common/optional_ref.h +163 -0
  990. data/ext/protovalidate/sys/third_party/cel-cpp/common/reference.h +269 -0
  991. data/ext/protovalidate/sys/third_party/cel-cpp/common/reference_count.h +26 -0
  992. data/ext/protovalidate/sys/third_party/cel-cpp/common/signature.cc +640 -0
  993. data/ext/protovalidate/sys/third_party/cel-cpp/common/signature.h +101 -0
  994. data/ext/protovalidate/sys/third_party/cel-cpp/common/source.cc +679 -0
  995. data/ext/protovalidate/sys/third_party/cel-cpp/common/source.h +261 -0
  996. data/ext/protovalidate/sys/third_party/cel-cpp/common/standard_definitions.h +349 -0
  997. data/ext/protovalidate/sys/third_party/cel-cpp/common/type.cc +737 -0
  998. data/ext/protovalidate/sys/third_party/cel-cpp/common/type.h +1303 -0
  999. data/ext/protovalidate/sys/third_party/cel-cpp/common/type_introspector.cc +277 -0
  1000. data/ext/protovalidate/sys/third_party/cel-cpp/common/type_introspector.h +157 -0
  1001. data/ext/protovalidate/sys/third_party/cel-cpp/common/type_kind.h +113 -0
  1002. data/ext/protovalidate/sys/third_party/cel-cpp/common/type_proto.h +39 -0
  1003. data/ext/protovalidate/sys/third_party/cel-cpp/common/type_reflector.h +43 -0
  1004. data/ext/protovalidate/sys/third_party/cel-cpp/common/type_spec_resolver.cc +324 -0
  1005. data/ext/protovalidate/sys/third_party/cel-cpp/common/type_spec_resolver.h +46 -0
  1006. data/ext/protovalidate/sys/third_party/cel-cpp/common/type_testing.h +24 -0
  1007. data/ext/protovalidate/sys/third_party/cel-cpp/common/typeinfo.cc +73 -0
  1008. data/ext/protovalidate/sys/third_party/cel-cpp/common/typeinfo.h +221 -0
  1009. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/any_type.h +74 -0
  1010. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/basic_struct_type.cc +53 -0
  1011. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/basic_struct_type.h +119 -0
  1012. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/bool_type.h +73 -0
  1013. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/bool_wrapper_type.h +79 -0
  1014. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/bytes_type.h +73 -0
  1015. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/bytes_wrapper_type.h +79 -0
  1016. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/double_type.h +73 -0
  1017. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/double_wrapper_type.h +79 -0
  1018. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/duration_type.h +73 -0
  1019. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/dyn_type.h +73 -0
  1020. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/enum_type.cc +43 -0
  1021. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/enum_type.h +128 -0
  1022. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/error_type.h +75 -0
  1023. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/function_type.cc +89 -0
  1024. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/function_type.h +91 -0
  1025. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/function_type_pool.cc +29 -0
  1026. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/function_type_pool.h +102 -0
  1027. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/int_type.h +72 -0
  1028. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/int_wrapper_type.h +78 -0
  1029. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/legacy_type_introspector.h +34 -0
  1030. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/list_type.cc +77 -0
  1031. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/list_type.h +115 -0
  1032. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/list_type_pool.cc +29 -0
  1033. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/list_type_pool.h +80 -0
  1034. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/map_type.cc +122 -0
  1035. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/map_type.h +124 -0
  1036. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/map_type_pool.cc +30 -0
  1037. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/map_type_pool.h +93 -0
  1038. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/message_type.cc +95 -0
  1039. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/message_type.h +209 -0
  1040. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/null_type.h +73 -0
  1041. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/opaque_type.cc +109 -0
  1042. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/opaque_type.h +118 -0
  1043. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/opaque_type_pool.cc +33 -0
  1044. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/opaque_type_pool.h +99 -0
  1045. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/optional_type.cc +68 -0
  1046. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/optional_type.h +114 -0
  1047. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/string_type.h +73 -0
  1048. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/string_wrapper_type.h +86 -0
  1049. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/struct_type.cc +87 -0
  1050. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/struct_type.h +158 -0
  1051. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/timestamp_type.h +73 -0
  1052. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/type_param_type.h +78 -0
  1053. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/type_pool.cc +96 -0
  1054. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/type_pool.h +99 -0
  1055. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/type_type.cc +74 -0
  1056. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/type_type.h +92 -0
  1057. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/type_type_pool.cc +26 -0
  1058. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/type_type_pool.h +86 -0
  1059. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/types.h +99 -0
  1060. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/uint_type.h +73 -0
  1061. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/uint_wrapper_type.h +79 -0
  1062. data/ext/protovalidate/sys/third_party/cel-cpp/common/types/unknown_type.h +74 -0
  1063. data/ext/protovalidate/sys/third_party/cel-cpp/common/unknown.h +27 -0
  1064. data/ext/protovalidate/sys/third_party/cel-cpp/common/value.cc +2791 -0
  1065. data/ext/protovalidate/sys/third_party/cel-cpp/common/value.h +2947 -0
  1066. data/ext/protovalidate/sys/third_party/cel-cpp/common/value_kind.h +104 -0
  1067. data/ext/protovalidate/sys/third_party/cel-cpp/common/value_testing.h +307 -0
  1068. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/bool_value.cc +97 -0
  1069. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/bool_value.h +111 -0
  1070. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/bytes_value.cc +194 -0
  1071. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/bytes_value.h +338 -0
  1072. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/bytes_value_input_stream.h +133 -0
  1073. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/bytes_value_output_stream.h +176 -0
  1074. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/custom_list_value.cc +614 -0
  1075. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/custom_list_value.h +423 -0
  1076. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/custom_map_value.cc +823 -0
  1077. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/custom_map_value.h +469 -0
  1078. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/custom_struct_value.cc +385 -0
  1079. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/custom_struct_value.h +459 -0
  1080. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/custom_value.h +84 -0
  1081. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/double_value.cc +137 -0
  1082. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/double_value.h +101 -0
  1083. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/duration_value.cc +105 -0
  1084. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/duration_value.h +147 -0
  1085. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/enum_value.h +49 -0
  1086. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/error_value.cc +194 -0
  1087. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/error_value.h +276 -0
  1088. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/int_value.cc +111 -0
  1089. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/int_value.h +117 -0
  1090. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/legacy_list_value.cc +76 -0
  1091. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/legacy_list_value.h +167 -0
  1092. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/legacy_map_value.cc +76 -0
  1093. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/legacy_map_value.h +185 -0
  1094. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/legacy_struct_value.cc +43 -0
  1095. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/legacy_struct_value.h +183 -0
  1096. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/list_value.cc +304 -0
  1097. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/list_value.h +284 -0
  1098. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/list_value_builder.h +110 -0
  1099. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/list_value_variant.h +214 -0
  1100. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/map_value.cc +378 -0
  1101. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/map_value.h +323 -0
  1102. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/map_value_builder.h +110 -0
  1103. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/map_value_variant.h +212 -0
  1104. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/message_value.cc +306 -0
  1105. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/message_value.h +268 -0
  1106. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/null_value.cc +78 -0
  1107. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/null_value.h +96 -0
  1108. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/opaque_value.cc +194 -0
  1109. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/opaque_value.h +338 -0
  1110. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/optional_value.cc +435 -0
  1111. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/optional_value.h +207 -0
  1112. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/parsed_json_list_value.cc +486 -0
  1113. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/parsed_json_list_value.h +229 -0
  1114. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/parsed_json_map_value.cc +439 -0
  1115. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/parsed_json_map_value.h +250 -0
  1116. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/parsed_json_value.cc +103 -0
  1117. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/parsed_json_value.h +40 -0
  1118. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/parsed_map_field_value.cc +583 -0
  1119. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/parsed_map_field_value.h +242 -0
  1120. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/parsed_message_value.cc +411 -0
  1121. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/parsed_message_value.h +249 -0
  1122. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/parsed_repeated_field_value.cc +365 -0
  1123. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/parsed_repeated_field_value.h +220 -0
  1124. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/string_value.cc +1518 -0
  1125. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/string_value.h +489 -0
  1126. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/struct_value.cc +390 -0
  1127. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/struct_value.h +373 -0
  1128. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/struct_value_builder.cc +1552 -0
  1129. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/struct_value_builder.h +35 -0
  1130. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/struct_value_variant.h +205 -0
  1131. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/timestamp_value.cc +105 -0
  1132. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/timestamp_value.h +146 -0
  1133. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/type_value.cc +72 -0
  1134. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/type_value.h +108 -0
  1135. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/uint_value.cc +110 -0
  1136. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/uint_value.h +119 -0
  1137. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/unknown_value.cc +66 -0
  1138. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/unknown_value.h +121 -0
  1139. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/value_builder.cc +1432 -0
  1140. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/value_builder.h +36 -0
  1141. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/value_variant.cc +537 -0
  1142. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/value_variant.h +831 -0
  1143. data/ext/protovalidate/sys/third_party/cel-cpp/common/values/values.h +351 -0
  1144. data/ext/protovalidate/sys/third_party/cel-cpp/compiler/compiler.h +195 -0
  1145. data/ext/protovalidate/sys/third_party/cel-cpp/compiler/compiler_factory.h +70 -0
  1146. data/ext/protovalidate/sys/third_party/cel-cpp/compiler/compiler_library_subset_factory.h +80 -0
  1147. data/ext/protovalidate/sys/third_party/cel-cpp/compiler/optional.h +28 -0
  1148. data/ext/protovalidate/sys/third_party/cel-cpp/compiler/standard_library.h +27 -0
  1149. data/ext/protovalidate/sys/third_party/cel-cpp/env/config.h +173 -0
  1150. data/ext/protovalidate/sys/third_party/cel-cpp/env/env.h +76 -0
  1151. data/ext/protovalidate/sys/third_party/cel-cpp/env/env_runtime.h +85 -0
  1152. data/ext/protovalidate/sys/third_party/cel-cpp/env/env_std_extensions.h +42 -0
  1153. data/ext/protovalidate/sys/third_party/cel-cpp/env/env_yaml.h +74 -0
  1154. data/ext/protovalidate/sys/third_party/cel-cpp/env/internal/ext_registry.h +74 -0
  1155. data/ext/protovalidate/sys/third_party/cel-cpp/env/internal/runtime_ext_registry.h +84 -0
  1156. data/ext/protovalidate/sys/third_party/cel-cpp/env/runtime_std_extensions.h +46 -0
  1157. data/ext/protovalidate/sys/third_party/cel-cpp/env/type_info.h +42 -0
  1158. data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/cel_expression_builder_flat_impl.cc +111 -0
  1159. data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/cel_expression_builder_flat_impl.h +108 -0
  1160. data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/check_ast_extensions.cc +58 -0
  1161. data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/check_ast_extensions.h +34 -0
  1162. data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/comprehension_vulnerability_check.cc +275 -0
  1163. data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/comprehension_vulnerability_check.h +51 -0
  1164. data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/constant_folding.cc +280 -0
  1165. data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/constant_folding.h +42 -0
  1166. data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/flat_expr_builder.cc +2667 -0
  1167. data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/flat_expr_builder.h +104 -0
  1168. data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/flat_expr_builder_extensions.cc +474 -0
  1169. data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/flat_expr_builder_extensions.h +481 -0
  1170. data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/instrumentation.h +60 -0
  1171. data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/qualified_reference_resolver.cc +359 -0
  1172. data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/qualified_reference_resolver.h +53 -0
  1173. data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/regex_precompilation_optimization.cc +274 -0
  1174. data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/regex_precompilation_optimization.h +29 -0
  1175. data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/resolver.cc +222 -0
  1176. data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/resolver.h +127 -0
  1177. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/attribute_trail.cc +28 -0
  1178. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/attribute_trail.h +65 -0
  1179. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/attribute_utility.cc +260 -0
  1180. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/attribute_utility.h +179 -0
  1181. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/cel_expression_flat_impl.cc +147 -0
  1182. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/cel_expression_flat_impl.h +175 -0
  1183. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/compiler_constant_step.cc +37 -0
  1184. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/compiler_constant_step.h +76 -0
  1185. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/comprehension_slots.h +153 -0
  1186. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/comprehension_step.cc +685 -0
  1187. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/comprehension_step.h +119 -0
  1188. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/const_value_step.h +31 -0
  1189. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/container_access_step.cc +370 -0
  1190. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/container_access_step.h +26 -0
  1191. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/create_list_step.cc +283 -0
  1192. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/create_list_step.h +40 -0
  1193. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/create_map_step.cc +289 -0
  1194. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/create_map_step.h +59 -0
  1195. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/create_struct_step.cc +270 -0
  1196. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/create_struct_step.h +44 -0
  1197. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/direct_expression_step.cc +34 -0
  1198. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/direct_expression_step.h +99 -0
  1199. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/equality_steps.cc +293 -0
  1200. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/equality_steps.h +45 -0
  1201. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/evaluator_core.cc +178 -0
  1202. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/evaluator_core.h +516 -0
  1203. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/evaluator_stack.cc +92 -0
  1204. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/evaluator_stack.h +327 -0
  1205. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/expression_step_base.h +12 -0
  1206. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/function_step.cc +529 -0
  1207. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/function_step.h +48 -0
  1208. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/ident_step.cc +174 -0
  1209. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/ident_step.h +31 -0
  1210. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/iterator_stack.h +77 -0
  1211. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/jump_step.cc +172 -0
  1212. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/jump_step.h +74 -0
  1213. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/lazy_init_step.cc +236 -0
  1214. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/lazy_init_step.h +87 -0
  1215. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/logic_step.cc +487 -0
  1216. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/logic_step.h +49 -0
  1217. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/optional_or_step.cc +305 -0
  1218. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/optional_or_step.h +51 -0
  1219. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/regex_match_step.cc +135 -0
  1220. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/regex_match_step.h +37 -0
  1221. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/select_step.cc +581 -0
  1222. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/select_step.h +33 -0
  1223. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/shadowable_value_step.cc +98 -0
  1224. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/shadowable_value_step.h +26 -0
  1225. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/ternary_step.cc +194 -0
  1226. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/ternary_step.h +26 -0
  1227. data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/trace_step.h +73 -0
  1228. data/ext/protovalidate/sys/third_party/cel-cpp/eval/internal/adapter_activation_impl.cc +87 -0
  1229. data/ext/protovalidate/sys/third_party/cel-cpp/eval/internal/adapter_activation_impl.h +68 -0
  1230. data/ext/protovalidate/sys/third_party/cel-cpp/eval/internal/cel_value_equal.cc +242 -0
  1231. data/ext/protovalidate/sys/third_party/cel-cpp/eval/internal/cel_value_equal.h +34 -0
  1232. data/ext/protovalidate/sys/third_party/cel-cpp/eval/internal/errors.cc +64 -0
  1233. data/ext/protovalidate/sys/third_party/cel-cpp/eval/internal/errors.h +54 -0
  1234. data/ext/protovalidate/sys/third_party/cel-cpp/eval/internal/interop.h +20 -0
  1235. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/activation.cc +119 -0
  1236. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/activation.h +170 -0
  1237. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/activation_bind_helper.h +60 -0
  1238. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/ast_rewrite.h +175 -0
  1239. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/ast_traverse.h +110 -0
  1240. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/ast_visitor.h +185 -0
  1241. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/ast_visitor_base.h +109 -0
  1242. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/base_activation.h +75 -0
  1243. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/builtin_func_registrar.cc +65 -0
  1244. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/builtin_func_registrar.h +30 -0
  1245. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_attribute.cc +90 -0
  1246. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_attribute.h +64 -0
  1247. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_builtins.h +19 -0
  1248. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_expr_builder_factory.cc +146 -0
  1249. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_expr_builder_factory.h +43 -0
  1250. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_expression.h +144 -0
  1251. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_function.cc +76 -0
  1252. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_function.h +80 -0
  1253. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_function_adapter.h +121 -0
  1254. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_function_adapter_impl.h +407 -0
  1255. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_function_registry.cc +122 -0
  1256. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_function_registry.h +146 -0
  1257. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_number.cc +31 -0
  1258. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_number.h +36 -0
  1259. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_options.cc +51 -0
  1260. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_options.h +233 -0
  1261. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_type_registry.cc +64 -0
  1262. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_type_registry.h +145 -0
  1263. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_value.cc +412 -0
  1264. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_value.h +770 -0
  1265. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_value_internal.h +103 -0
  1266. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_value_producer.h +25 -0
  1267. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/comparison_functions.h +36 -0
  1268. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/container_function_registrar.h +36 -0
  1269. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/containers/container_backed_list_impl.h +44 -0
  1270. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/containers/container_backed_map_impl.cc +131 -0
  1271. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/containers/container_backed_map_impl.h +70 -0
  1272. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/containers/field_access.cc +85 -0
  1273. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/containers/field_access.h +70 -0
  1274. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/containers/field_backed_list_impl.h +33 -0
  1275. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/containers/field_backed_map_impl.h +35 -0
  1276. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/containers/internal_field_backed_list_impl.cc +36 -0
  1277. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/containers/internal_field_backed_list_impl.h +59 -0
  1278. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/containers/internal_field_backed_map_impl.cc +298 -0
  1279. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/containers/internal_field_backed_map_impl.h +77 -0
  1280. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/equality_function_registrar.h +44 -0
  1281. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/extension_func_registrar.h +20 -0
  1282. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/logical_function_registrar.h +36 -0
  1283. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/message_wrapper.h +139 -0
  1284. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/portable_cel_function_adapter.h +72 -0
  1285. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/set_util.h +43 -0
  1286. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/source_position.h +65 -0
  1287. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/string_extension_func_registrar.cc +29 -0
  1288. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/string_extension_func_registrar.h +31 -0
  1289. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/cel_proto_descriptor_pool_builder.h +40 -0
  1290. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/cel_proto_wrap_util.cc +1479 -0
  1291. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/cel_proto_wrap_util.h +45 -0
  1292. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/cel_proto_wrapper.cc +60 -0
  1293. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/cel_proto_wrapper.h +53 -0
  1294. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/field_access_impl.cc +746 -0
  1295. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/field_access_impl.h +80 -0
  1296. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/legacy_type_adapter.h +177 -0
  1297. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/legacy_type_info_apis.h +108 -0
  1298. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/legacy_type_provider.cc +232 -0
  1299. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/legacy_type_provider.h +79 -0
  1300. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/proto_message_type_adapter.cc +708 -0
  1301. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/proto_message_type_adapter.h +137 -0
  1302. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/protobuf_descriptor_type_provider.cc +70 -0
  1303. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/protobuf_descriptor_type_provider.h +67 -0
  1304. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/protobuf_value_factory.h +36 -0
  1305. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/trivial_legacy_type_info.h +54 -0
  1306. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/transform_utility.h +39 -0
  1307. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/unknown_attribute_set.h +20 -0
  1308. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/unknown_function_result_set.cc +1 -0
  1309. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/unknown_function_result_set.h +27 -0
  1310. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/unknown_set.h +22 -0
  1311. data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/value_export_util.h +28 -0
  1312. data/ext/protovalidate/sys/third_party/cel-cpp/extensions/bindings_ext.h +46 -0
  1313. data/ext/protovalidate/sys/third_party/cel-cpp/extensions/comprehensions_v2.h +39 -0
  1314. data/ext/protovalidate/sys/third_party/cel-cpp/extensions/comprehensions_v2_functions.h +35 -0
  1315. data/ext/protovalidate/sys/third_party/cel-cpp/extensions/comprehensions_v2_macros.h +34 -0
  1316. data/ext/protovalidate/sys/third_party/cel-cpp/extensions/encoders.h +45 -0
  1317. data/ext/protovalidate/sys/third_party/cel-cpp/extensions/formatting.cc +570 -0
  1318. data/ext/protovalidate/sys/third_party/cel-cpp/extensions/formatting.h +39 -0
  1319. data/ext/protovalidate/sys/third_party/cel-cpp/extensions/lists_functions.h +138 -0
  1320. data/ext/protovalidate/sys/third_party/cel-cpp/extensions/math_ext.h +39 -0
  1321. data/ext/protovalidate/sys/third_party/cel-cpp/extensions/math_ext_decls.h +33 -0
  1322. data/ext/protovalidate/sys/third_party/cel-cpp/extensions/math_ext_macros.h +38 -0
  1323. data/ext/protovalidate/sys/third_party/cel-cpp/extensions/proto_ext.h +42 -0
  1324. data/ext/protovalidate/sys/third_party/cel-cpp/extensions/protobuf/ast_converters.h +56 -0
  1325. data/ext/protovalidate/sys/third_party/cel-cpp/extensions/protobuf/bind_proto_to_activation.h +38 -0
  1326. data/ext/protovalidate/sys/third_party/cel-cpp/extensions/protobuf/enum_adapter.h +30 -0
  1327. data/ext/protovalidate/sys/third_party/cel-cpp/extensions/protobuf/internal/map_reflection.cc +132 -0
  1328. data/ext/protovalidate/sys/third_party/cel-cpp/extensions/protobuf/internal/map_reflection.h +67 -0
  1329. data/ext/protovalidate/sys/third_party/cel-cpp/extensions/protobuf/internal/qualify.cc +457 -0
  1330. data/ext/protovalidate/sys/third_party/cel-cpp/extensions/protobuf/internal/qualify.h +117 -0
  1331. data/ext/protovalidate/sys/third_party/cel-cpp/extensions/protobuf/memory_manager.cc +37 -0
  1332. data/ext/protovalidate/sys/third_party/cel-cpp/extensions/protobuf/memory_manager.h +56 -0
  1333. data/ext/protovalidate/sys/third_party/cel-cpp/extensions/protobuf/runtime_adapter.h +51 -0
  1334. data/ext/protovalidate/sys/third_party/cel-cpp/extensions/protobuf/value.h +98 -0
  1335. data/ext/protovalidate/sys/third_party/cel-cpp/extensions/protobuf/value_testing.h +78 -0
  1336. data/ext/protovalidate/sys/third_party/cel-cpp/extensions/regex_ext.h +131 -0
  1337. data/ext/protovalidate/sys/third_party/cel-cpp/extensions/regex_functions.h +52 -0
  1338. data/ext/protovalidate/sys/third_party/cel-cpp/extensions/select_optimization.cc +958 -0
  1339. data/ext/protovalidate/sys/third_party/cel-cpp/extensions/select_optimization.h +90 -0
  1340. data/ext/protovalidate/sys/third_party/cel-cpp/extensions/sets_functions.h +45 -0
  1341. data/ext/protovalidate/sys/third_party/cel-cpp/extensions/strings.cc +432 -0
  1342. data/ext/protovalidate/sys/third_party/cel-cpp/extensions/strings.h +73 -0
  1343. data/ext/protovalidate/sys/third_party/cel-cpp/internal/align.h +95 -0
  1344. data/ext/protovalidate/sys/third_party/cel-cpp/internal/benchmark.h +20 -0
  1345. data/ext/protovalidate/sys/third_party/cel-cpp/internal/casts.h +50 -0
  1346. data/ext/protovalidate/sys/third_party/cel-cpp/internal/empty_descriptors.cc +73 -0
  1347. data/ext/protovalidate/sys/third_party/cel-cpp/internal/empty_descriptors.h +31 -0
  1348. data/ext/protovalidate/sys/third_party/cel-cpp/internal/equals_text_proto.h +65 -0
  1349. data/ext/protovalidate/sys/third_party/cel-cpp/internal/exceptions.h +35 -0
  1350. data/ext/protovalidate/sys/third_party/cel-cpp/internal/json.cc +2041 -0
  1351. data/ext/protovalidate/sys/third_party/cel-cpp/internal/json.h +141 -0
  1352. data/ext/protovalidate/sys/third_party/cel-cpp/internal/lexis.cc +79 -0
  1353. data/ext/protovalidate/sys/third_party/cel-cpp/internal/lexis.h +32 -0
  1354. data/ext/protovalidate/sys/third_party/cel-cpp/internal/manual.h +91 -0
  1355. data/ext/protovalidate/sys/third_party/cel-cpp/internal/message_equality.cc +1490 -0
  1356. data/ext/protovalidate/sys/third_party/cel-cpp/internal/message_equality.h +54 -0
  1357. data/ext/protovalidate/sys/third_party/cel-cpp/internal/message_type_name.h +56 -0
  1358. data/ext/protovalidate/sys/third_party/cel-cpp/internal/minimal_descriptor_database.h +32 -0
  1359. data/ext/protovalidate/sys/third_party/cel-cpp/internal/minimal_descriptor_pool.h +40 -0
  1360. data/ext/protovalidate/sys/third_party/cel-cpp/internal/names.h +26 -0
  1361. data/ext/protovalidate/sys/third_party/cel-cpp/internal/new.cc +142 -0
  1362. data/ext/protovalidate/sys/third_party/cel-cpp/internal/new.h +61 -0
  1363. data/ext/protovalidate/sys/third_party/cel-cpp/internal/noop_delete.h +53 -0
  1364. data/ext/protovalidate/sys/third_party/cel-cpp/internal/number.h +299 -0
  1365. data/ext/protovalidate/sys/third_party/cel-cpp/internal/overflow.cc +339 -0
  1366. data/ext/protovalidate/sys/third_party/cel-cpp/internal/overflow.h +178 -0
  1367. data/ext/protovalidate/sys/third_party/cel-cpp/internal/parse_text_proto.h +121 -0
  1368. data/ext/protovalidate/sys/third_party/cel-cpp/internal/proto_file_util.h +73 -0
  1369. data/ext/protovalidate/sys/third_party/cel-cpp/internal/proto_matchers.h +140 -0
  1370. data/ext/protovalidate/sys/third_party/cel-cpp/internal/proto_time_encoding.cc +103 -0
  1371. data/ext/protovalidate/sys/third_party/cel-cpp/internal/proto_time_encoding.h +49 -0
  1372. data/ext/protovalidate/sys/third_party/cel-cpp/internal/proto_util.h +87 -0
  1373. data/ext/protovalidate/sys/third_party/cel-cpp/internal/protobuf_runtime_version.h +32 -0
  1374. data/ext/protovalidate/sys/third_party/cel-cpp/internal/re2_options.h +61 -0
  1375. data/ext/protovalidate/sys/third_party/cel-cpp/internal/runfiles.h +36 -0
  1376. data/ext/protovalidate/sys/third_party/cel-cpp/internal/status_builder.h +114 -0
  1377. data/ext/protovalidate/sys/third_party/cel-cpp/internal/status_macros.h +152 -0
  1378. data/ext/protovalidate/sys/third_party/cel-cpp/internal/string_pool.cc +79 -0
  1379. data/ext/protovalidate/sys/third_party/cel-cpp/internal/string_pool.h +59 -0
  1380. data/ext/protovalidate/sys/third_party/cel-cpp/internal/strings.cc +693 -0
  1381. data/ext/protovalidate/sys/third_party/cel-cpp/internal/strings.h +90 -0
  1382. data/ext/protovalidate/sys/third_party/cel-cpp/internal/testing.h +44 -0
  1383. data/ext/protovalidate/sys/third_party/cel-cpp/internal/testing_descriptor_pool.h +35 -0
  1384. data/ext/protovalidate/sys/third_party/cel-cpp/internal/testing_message_factory.h +31 -0
  1385. data/ext/protovalidate/sys/third_party/cel-cpp/internal/time.cc +198 -0
  1386. data/ext/protovalidate/sys/third_party/cel-cpp/internal/time.h +65 -0
  1387. data/ext/protovalidate/sys/third_party/cel-cpp/internal/to_address.h +68 -0
  1388. data/ext/protovalidate/sys/third_party/cel-cpp/internal/unicode.h +28 -0
  1389. data/ext/protovalidate/sys/third_party/cel-cpp/internal/utf8.cc +526 -0
  1390. data/ext/protovalidate/sys/third_party/cel-cpp/internal/utf8.h +82 -0
  1391. data/ext/protovalidate/sys/third_party/cel-cpp/internal/well_known_types.cc +2181 -0
  1392. data/ext/protovalidate/sys/third_party/cel-cpp/internal/well_known_types.h +1593 -0
  1393. data/ext/protovalidate/sys/third_party/cel-cpp/parser/internal/ast_factory.cc +320 -0
  1394. data/ext/protovalidate/sys/third_party/cel-cpp/parser/internal/ast_factory.h +174 -0
  1395. data/ext/protovalidate/sys/third_party/cel-cpp/parser/internal/ast_factory_interface.h +130 -0
  1396. data/ext/protovalidate/sys/third_party/cel-cpp/parser/internal/lexer.cc +711 -0
  1397. data/ext/protovalidate/sys/third_party/cel-cpp/parser/internal/lexer.h +286 -0
  1398. data/ext/protovalidate/sys/third_party/cel-cpp/parser/internal/options.h +29 -0
  1399. data/ext/protovalidate/sys/third_party/cel-cpp/parser/internal/pratt_parser.cc +226 -0
  1400. data/ext/protovalidate/sys/third_party/cel-cpp/parser/internal/pratt_parser.h +110 -0
  1401. data/ext/protovalidate/sys/third_party/cel-cpp/parser/internal/pratt_parser_worker.cc +261 -0
  1402. data/ext/protovalidate/sys/third_party/cel-cpp/parser/internal/pratt_parser_worker.h +1143 -0
  1403. data/ext/protovalidate/sys/third_party/cel-cpp/parser/macro.cc +561 -0
  1404. data/ext/protovalidate/sys/third_party/cel-cpp/parser/macro.h +229 -0
  1405. data/ext/protovalidate/sys/third_party/cel-cpp/parser/macro_expr_factory.cc +128 -0
  1406. data/ext/protovalidate/sys/third_party/cel-cpp/parser/macro_expr_factory.h +333 -0
  1407. data/ext/protovalidate/sys/third_party/cel-cpp/parser/macro_registry.cc +87 -0
  1408. data/ext/protovalidate/sys/third_party/cel-cpp/parser/macro_registry.h +59 -0
  1409. data/ext/protovalidate/sys/third_party/cel-cpp/parser/options.h +115 -0
  1410. data/ext/protovalidate/sys/third_party/cel-cpp/parser/parser.cc +1995 -0
  1411. data/ext/protovalidate/sys/third_party/cel-cpp/parser/parser.h +102 -0
  1412. data/ext/protovalidate/sys/third_party/cel-cpp/parser/parser_interface.h +160 -0
  1413. data/ext/protovalidate/sys/third_party/cel-cpp/parser/parser_subset_factory.h +41 -0
  1414. data/ext/protovalidate/sys/third_party/cel-cpp/parser/source_factory.h +47 -0
  1415. data/ext/protovalidate/sys/third_party/cel-cpp/parser/standard_macros.h +31 -0
  1416. data/ext/protovalidate/sys/third_party/cel-cpp/policy/cel_policy.h +333 -0
  1417. data/ext/protovalidate/sys/third_party/cel-cpp/policy/cel_policy_parse_context.h +65 -0
  1418. data/ext/protovalidate/sys/third_party/cel-cpp/policy/cel_policy_parse_result.h +105 -0
  1419. data/ext/protovalidate/sys/third_party/cel-cpp/policy/cel_policy_parser.h +40 -0
  1420. data/ext/protovalidate/sys/third_party/cel-cpp/policy/cel_policy_validation_result.h +84 -0
  1421. data/ext/protovalidate/sys/third_party/cel-cpp/policy/compiler.h +50 -0
  1422. data/ext/protovalidate/sys/third_party/cel-cpp/policy/internal/issue_reporter.h +57 -0
  1423. data/ext/protovalidate/sys/third_party/cel-cpp/policy/internal/optimizer_expr_factory.h +419 -0
  1424. data/ext/protovalidate/sys/third_party/cel-cpp/policy/internal/yaml_string_element_scanner.h +40 -0
  1425. data/ext/protovalidate/sys/third_party/cel-cpp/policy/test_util.h +33 -0
  1426. data/ext/protovalidate/sys/third_party/cel-cpp/policy/yaml_policy_parser.h +135 -0
  1427. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/activation.cc +141 -0
  1428. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/activation.h +184 -0
  1429. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/activation_interface.h +109 -0
  1430. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/bind_proto_to_activation.h +174 -0
  1431. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/comprehension_vulnerability_check.h +35 -0
  1432. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/constant_folding.h +69 -0
  1433. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/embedder_context.h +147 -0
  1434. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/function.h +115 -0
  1435. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/function_adapter.h +830 -0
  1436. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/function_overload_reference.h +34 -0
  1437. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/function_provider.h +46 -0
  1438. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/function_registry.cc +263 -0
  1439. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/function_registry.h +160 -0
  1440. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/activation_attribute_matcher_access.cc +61 -0
  1441. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/activation_attribute_matcher_access.h +60 -0
  1442. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/attribute_matcher.h +48 -0
  1443. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/convert_constant.cc +78 -0
  1444. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/convert_constant.h +39 -0
  1445. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/errors.cc +69 -0
  1446. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/errors.h +71 -0
  1447. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/function_adapter.h +232 -0
  1448. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/issue_collector.h +64 -0
  1449. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/legacy_runtime_type_provider.h +37 -0
  1450. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/runtime_env.cc +73 -0
  1451. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/runtime_env.h +134 -0
  1452. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/runtime_env_testing.h +60 -0
  1453. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/runtime_friend_access.h +45 -0
  1454. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/runtime_impl.cc +159 -0
  1455. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/runtime_impl.h +125 -0
  1456. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/runtime_type_provider.cc +96 -0
  1457. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/runtime_type_provider.h +66 -0
  1458. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/optional_types.h +152 -0
  1459. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/reference_resolver.h +46 -0
  1460. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/regex_precompilation.h +32 -0
  1461. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/register_function_helper.h +99 -0
  1462. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/runtime.h +229 -0
  1463. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/runtime_builder.h +101 -0
  1464. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/runtime_builder_factory.h +65 -0
  1465. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/runtime_issue.h +88 -0
  1466. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/runtime_options.h +209 -0
  1467. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/arithmetic_functions.cc +233 -0
  1468. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/arithmetic_functions.h +35 -0
  1469. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/comparison_functions.cc +272 -0
  1470. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/comparison_functions.h +36 -0
  1471. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/container_functions.cc +136 -0
  1472. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/container_functions.h +36 -0
  1473. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/container_membership_functions.cc +331 -0
  1474. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/container_membership_functions.h +34 -0
  1475. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/equality_functions.cc +612 -0
  1476. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/equality_functions.h +60 -0
  1477. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/logical_functions.cc +66 -0
  1478. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/logical_functions.h +36 -0
  1479. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/regex_functions.cc +56 -0
  1480. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/regex_functions.h +38 -0
  1481. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/string_functions.cc +140 -0
  1482. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/string_functions.h +34 -0
  1483. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/time_functions.cc +499 -0
  1484. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/time_functions.h +56 -0
  1485. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/type_conversion_functions.cc +470 -0
  1486. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/type_conversion_functions.h +34 -0
  1487. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard_functions.h +33 -0
  1488. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard_runtime_builder_factory.h +43 -0
  1489. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/type_registry.cc +84 -0
  1490. data/ext/protovalidate/sys/third_party/cel-cpp/runtime/type_registry.h +155 -0
  1491. data/ext/protovalidate/sys/third_party/cel-cpp/tools/branch_coverage.h +68 -0
  1492. data/ext/protovalidate/sys/third_party/cel-cpp/tools/cel_field_extractor.h +70 -0
  1493. data/ext/protovalidate/sys/third_party/cel-cpp/tools/cel_unparser.h +60 -0
  1494. data/ext/protovalidate/sys/third_party/cel-cpp/tools/descriptor_pool_builder.h +93 -0
  1495. data/ext/protovalidate/sys/third_party/cel-cpp/tools/flatbuffers_backed_impl.h +58 -0
  1496. data/ext/protovalidate/sys/third_party/cel-cpp/tools/navigable_ast.h +169 -0
  1497. data/ext/protovalidate/sys/third_party/cel-cpp/tools/proto_to_predicate.h +48 -0
  1498. data/ext/protovalidate/sys/third_party/cel-cpp/validator/ast_depth_validator.h +27 -0
  1499. data/ext/protovalidate/sys/third_party/cel-cpp/validator/comprehension_nesting_validator.h +31 -0
  1500. data/ext/protovalidate/sys/third_party/cel-cpp/validator/homogeneous_literal_validator.h +38 -0
  1501. data/ext/protovalidate/sys/third_party/cel-cpp/validator/regex_validator.h +53 -0
  1502. data/ext/protovalidate/sys/third_party/cel-cpp/validator/timestamp_literal_validator.h +29 -0
  1503. data/ext/protovalidate/sys/third_party/cel-cpp/validator/validator.cc +85 -0
  1504. data/ext/protovalidate/sys/third_party/cel-cpp/validator/validator.h +151 -0
  1505. data/ext/protovalidate/sys/third_party/protobuf/LICENSE +32 -0
  1506. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/any.cc +65 -0
  1507. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/any.h +161 -0
  1508. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/any.pb.cc +528 -0
  1509. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/any.pb.h +516 -0
  1510. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/any_lite.cc +95 -0
  1511. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/api.pb.cc +1959 -0
  1512. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/api.pb.h +1985 -0
  1513. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/arena.cc +1004 -0
  1514. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/arena.h +1238 -0
  1515. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/arena_align.cc +21 -0
  1516. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/arena_align.h +199 -0
  1517. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/arena_allocation_policy.h +102 -0
  1518. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/arena_cleanup.h +108 -0
  1519. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/arena_test_util.h +91 -0
  1520. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/arenastring.cc +290 -0
  1521. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/arenastring.h +545 -0
  1522. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/arenaz_sampler.cc +227 -0
  1523. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/arenaz_sampler.h +238 -0
  1524. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/annotation_test_util.h +105 -0
  1525. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/code_generator.h +256 -0
  1526. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/code_generator_lite.h +77 -0
  1527. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/command_line_interface.h +517 -0
  1528. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/command_line_interface_tester.h +162 -0
  1529. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/importer.cc +594 -0
  1530. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/importer.h +338 -0
  1531. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/mock_code_generator.h +144 -0
  1532. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/notices.h +242 -0
  1533. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/package_info.h +40 -0
  1534. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/parser.cc +2716 -0
  1535. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/parser.h +642 -0
  1536. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/plugin.h +73 -0
  1537. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/plugin.pb.h +2320 -0
  1538. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/retention.h +70 -0
  1539. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/scc.h +155 -0
  1540. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/subprocess.h +91 -0
  1541. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/versions.h +78 -0
  1542. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/zip_writer.h +45 -0
  1543. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/cpp_edition_defaults.h +12 -0
  1544. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/cpp_features.pb.cc +539 -0
  1545. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/cpp_features.pb.h +630 -0
  1546. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/descriptor.cc +10801 -0
  1547. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/descriptor.h +3417 -0
  1548. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/descriptor.pb.cc +18982 -0
  1549. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/descriptor.pb.h +23170 -0
  1550. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/descriptor_database.cc +1102 -0
  1551. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/descriptor_database.h +423 -0
  1552. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/descriptor_legacy.h +32 -0
  1553. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/descriptor_lite.h +110 -0
  1554. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/descriptor_test_utils.h +129 -0
  1555. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/descriptor_visitor.h +187 -0
  1556. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/duration.pb.cc +481 -0
  1557. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/duration.pb.h +367 -0
  1558. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/dynamic_message.cc +1104 -0
  1559. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/dynamic_message.h +217 -0
  1560. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/empty.pb.cc +285 -0
  1561. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/empty.pb.h +245 -0
  1562. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/endian.h +192 -0
  1563. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/explicitly_constructed.h +71 -0
  1564. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/extension_set.cc +1925 -0
  1565. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/extension_set.h +1886 -0
  1566. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/extension_set_heavy.cc +459 -0
  1567. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/extension_set_inl.h +274 -0
  1568. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/feature_resolver.cc +637 -0
  1569. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/feature_resolver.h +108 -0
  1570. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/field_access_listener.h +166 -0
  1571. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/field_mask.pb.cc +472 -0
  1572. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/field_mask.pb.h +396 -0
  1573. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/field_with_arena.h +110 -0
  1574. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/generated_enum_reflection.h +187 -0
  1575. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/generated_enum_util.cc +223 -0
  1576. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/generated_enum_util.h +185 -0
  1577. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/generated_message_bases.cc +88 -0
  1578. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/generated_message_bases.h +68 -0
  1579. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/generated_message_reflection.cc +4185 -0
  1580. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/generated_message_reflection.h +372 -0
  1581. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/generated_message_tctable_decl.h +615 -0
  1582. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/generated_message_tctable_full.cc +105 -0
  1583. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/generated_message_tctable_gen.cc +960 -0
  1584. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/generated_message_tctable_gen.h +193 -0
  1585. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/generated_message_tctable_impl.h +1229 -0
  1586. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/generated_message_tctable_lite.cc +3308 -0
  1587. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/generated_message_util.cc +434 -0
  1588. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/generated_message_util.h +445 -0
  1589. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/has_bits.h +138 -0
  1590. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/implicit_weak_message.cc +139 -0
  1591. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/implicit_weak_message.h +266 -0
  1592. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/inlined_string_field.cc +144 -0
  1593. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/inlined_string_field.h +379 -0
  1594. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/internal_feature_helper.cc +28 -0
  1595. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/internal_feature_helper.h +130 -0
  1596. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/internal_metadata_locator.h +291 -0
  1597. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/internal_visibility.h +55 -0
  1598. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/internal_visibility_for_testing.h +27 -0
  1599. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/coded_stream.cc +1045 -0
  1600. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/coded_stream.h +1885 -0
  1601. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/gzip_stream.cc +333 -0
  1602. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/gzip_stream.h +189 -0
  1603. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/io_win32.cc +450 -0
  1604. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/io_win32.h +118 -0
  1605. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/package_info.h +30 -0
  1606. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/printer.cc +842 -0
  1607. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/printer.h +1183 -0
  1608. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/strtod.cc +260 -0
  1609. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/strtod.h +57 -0
  1610. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/test_zero_copy_stream.h +185 -0
  1611. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/tokenizer.cc +1262 -0
  1612. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/tokenizer.h +441 -0
  1613. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/zero_copy_sink.cc +45 -0
  1614. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/zero_copy_sink.h +59 -0
  1615. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/zero_copy_stream.cc +128 -0
  1616. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/zero_copy_stream.h +269 -0
  1617. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl.cc +354 -0
  1618. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl.h +319 -0
  1619. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.cc +699 -0
  1620. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.h +533 -0
  1621. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/descriptor_traits.h +510 -0
  1622. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/lexer.cc +512 -0
  1623. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/lexer.h +341 -0
  1624. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/message_path.cc +46 -0
  1625. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/message_path.h +61 -0
  1626. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/parser.cc +1437 -0
  1627. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/parser.h +37 -0
  1628. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/parser_traits.h +400 -0
  1629. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/unparser.cc +915 -0
  1630. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/unparser.h +38 -0
  1631. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/unparser_traits.h +414 -0
  1632. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/untyped_message.cc +577 -0
  1633. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/untyped_message.h +246 -0
  1634. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/writer.cc +307 -0
  1635. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/writer.h +214 -0
  1636. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/zero_copy_buffered_stream.cc +152 -0
  1637. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/zero_copy_buffered_stream.h +338 -0
  1638. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/json.cc +137 -0
  1639. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/json.h +200 -0
  1640. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/map.cc +297 -0
  1641. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/map.h +1787 -0
  1642. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/map_entry.h +139 -0
  1643. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/map_field.cc +597 -0
  1644. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/map_field.h +925 -0
  1645. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/map_field_lite.h +124 -0
  1646. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/map_test.inc +4427 -0
  1647. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/map_test_util.h +617 -0
  1648. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/map_type_handler.h +374 -0
  1649. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/message.cc +745 -0
  1650. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/message.h +1936 -0
  1651. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/message_lite.cc +807 -0
  1652. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/message_lite.h +1861 -0
  1653. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/message_unittest.inc +2302 -0
  1654. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/message_unittest_legacy_apis.inc +98 -0
  1655. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/metadata.h +13 -0
  1656. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/metadata_lite.h +271 -0
  1657. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/micro_string.cc +376 -0
  1658. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/micro_string.h +649 -0
  1659. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/os_macros_restore.inc +97 -0
  1660. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/os_macros_undef.inc +166 -0
  1661. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/package_info.h +43 -0
  1662. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/parse_context.cc +850 -0
  1663. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/parse_context.h +1883 -0
  1664. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/port.cc +131 -0
  1665. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/port.h +908 -0
  1666. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/port_def.inc +820 -0
  1667. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/port_undef.inc +97 -0
  1668. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/proto3_lite_unittest.inc +127 -0
  1669. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/raw_ptr.cc +29 -0
  1670. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/raw_ptr.h +64 -0
  1671. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/reflection.h +603 -0
  1672. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/reflection_internal.h +313 -0
  1673. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/reflection_mode.cc +36 -0
  1674. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/reflection_mode.h +144 -0
  1675. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/reflection_ops.cc +456 -0
  1676. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/reflection_ops.h +67 -0
  1677. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/reflection_tester.h +127 -0
  1678. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/reflection_visit_field_info.h +1378 -0
  1679. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/reflection_visit_fields.h +511 -0
  1680. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/repeated_field.cc +76 -0
  1681. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/repeated_field.h +1814 -0
  1682. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/repeated_field_proxy.h +697 -0
  1683. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/repeated_field_proxy_iterator.h +236 -0
  1684. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/repeated_field_proxy_traits.h +100 -0
  1685. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/repeated_field_reflection_unittest.inc +687 -0
  1686. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/repeated_ptr_field.cc +251 -0
  1687. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/repeated_ptr_field.h +2706 -0
  1688. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/runtime_version.h +27 -0
  1689. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/serial_arena.h +447 -0
  1690. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/service.cc +22 -0
  1691. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/service.h +271 -0
  1692. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/source_context.pb.cc +463 -0
  1693. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/source_context.pb.h +376 -0
  1694. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/string_block.h +181 -0
  1695. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/string_member_robber.h +17 -0
  1696. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/struct.pb.cc +1663 -0
  1697. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/struct.pb.h +1426 -0
  1698. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/stubs/callback.h +584 -0
  1699. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/stubs/common.cc +121 -0
  1700. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/stubs/common.h +94 -0
  1701. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/stubs/platform_macros.h +115 -0
  1702. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/stubs/port.h +228 -0
  1703. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/stubs/status_macros.h +72 -0
  1704. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/symbol_checker.cc +219 -0
  1705. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/symbol_checker.h +142 -0
  1706. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/test_textproto.h +54 -0
  1707. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/test_util.h +3897 -0
  1708. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/test_util2.h +70 -0
  1709. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/test_util_lite.h +86 -0
  1710. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/text_format.cc +3324 -0
  1711. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/text_format.h +925 -0
  1712. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/thread_safe_arena.h +297 -0
  1713. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/timestamp.pb.cc +481 -0
  1714. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/timestamp.pb.h +367 -0
  1715. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/type.pb.cc +3129 -0
  1716. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/type.pb.h +3343 -0
  1717. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/unknown_field_set.cc +351 -0
  1718. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/unknown_field_set.h +464 -0
  1719. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/delimited_message_util.cc +107 -0
  1720. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/delimited_message_util.h +85 -0
  1721. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/field_comparator.cc +237 -0
  1722. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/field_comparator.h +256 -0
  1723. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/field_mask_util.cc +754 -0
  1724. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/field_mask_util.h +242 -0
  1725. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/internal_timeval.h +28 -0
  1726. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/json_util.h +34 -0
  1727. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/message_differencer.cc +2372 -0
  1728. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/message_differencer.h +1002 -0
  1729. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/package_info.h +23 -0
  1730. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/python/field_mask_util_clif_aux.h +32 -0
  1731. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/time_util.cc +563 -0
  1732. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/time_util.h +297 -0
  1733. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/type_resolver.h +56 -0
  1734. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/type_resolver_util.cc +436 -0
  1735. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/type_resolver_util.h +45 -0
  1736. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/varint_shuffle.h +165 -0
  1737. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/wire_format.cc +1785 -0
  1738. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/wire_format.h +374 -0
  1739. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/wire_format_lite.cc +901 -0
  1740. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/wire_format_lite.h +1720 -0
  1741. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/wire_format_unittest.h +1726 -0
  1742. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/wrappers.pb.cc +3203 -0
  1743. data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/wrappers.pb.h +2317 -0
  1744. data/ext/protovalidate/sys/third_party/protobuf/third_party/utf8_range/utf8_range.c +207 -0
  1745. data/ext/protovalidate/sys/third_party/protobuf/third_party/utf8_range/utf8_range.h +23 -0
  1746. data/ext/protovalidate/sys/third_party/protobuf/third_party/utf8_range/utf8_range_neon.inc +117 -0
  1747. data/ext/protovalidate/sys/third_party/protobuf/third_party/utf8_range/utf8_range_sse.inc +272 -0
  1748. data/ext/protovalidate/sys/third_party/protobuf/third_party/utf8_range/utf8_validity.h +30 -0
  1749. data/ext/protovalidate/sys/third_party/protovalidate-cc/LICENSE +201 -0
  1750. data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/cel_rules.h +116 -0
  1751. data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/cel_validation_rules.cc +166 -0
  1752. data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/cel_validation_rules.h +72 -0
  1753. data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/extra_func.cc +482 -0
  1754. data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/extra_func.h +31 -0
  1755. data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/field_rules.cc +388 -0
  1756. data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/field_rules.h +92 -0
  1757. data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/lib/ipv4.cc +69 -0
  1758. data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/lib/ipv4.h +58 -0
  1759. data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/lib/ipv6.cc +143 -0
  1760. data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/lib/ipv6.h +51 -0
  1761. data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/lib/parser_common.h +256 -0
  1762. data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/lib/uri.cc +469 -0
  1763. data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/lib/uri.h +25 -0
  1764. data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/message_factory.cc +31 -0
  1765. data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/message_factory.h +43 -0
  1766. data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/message_rules.cc +114 -0
  1767. data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/message_rules.h +39 -0
  1768. data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/proto_field.h +155 -0
  1769. data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/rules.cc +437 -0
  1770. data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/rules.h +221 -0
  1771. data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/validation_rules.h +153 -0
  1772. data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/validator.cc +190 -0
  1773. data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/validator.h +156 -0
  1774. data/ext/protovalidate/sys/third_party/re2/LICENSE +27 -0
  1775. data/ext/protovalidate/sys/third_party/re2/re2/bitmap256.cc +43 -0
  1776. data/ext/protovalidate/sys/third_party/re2/re2/bitmap256.h +88 -0
  1777. data/ext/protovalidate/sys/third_party/re2/re2/bitstate.cc +389 -0
  1778. data/ext/protovalidate/sys/third_party/re2/re2/compile.cc +1265 -0
  1779. data/ext/protovalidate/sys/third_party/re2/re2/dfa.cc +2135 -0
  1780. data/ext/protovalidate/sys/third_party/re2/re2/filtered_re2.cc +138 -0
  1781. data/ext/protovalidate/sys/third_party/re2/re2/filtered_re2.h +115 -0
  1782. data/ext/protovalidate/sys/third_party/re2/re2/mimics_pcre.cc +196 -0
  1783. data/ext/protovalidate/sys/third_party/re2/re2/nfa.cc +714 -0
  1784. data/ext/protovalidate/sys/third_party/re2/re2/onepass.cc +623 -0
  1785. data/ext/protovalidate/sys/third_party/re2/re2/parse.cc +2529 -0
  1786. data/ext/protovalidate/sys/third_party/re2/re2/perl_groups.cc +119 -0
  1787. data/ext/protovalidate/sys/third_party/re2/re2/pod_array.h +55 -0
  1788. data/ext/protovalidate/sys/third_party/re2/re2/prefilter.cc +711 -0
  1789. data/ext/protovalidate/sys/third_party/re2/re2/prefilter.h +168 -0
  1790. data/ext/protovalidate/sys/third_party/re2/re2/prefilter_tree.cc +376 -0
  1791. data/ext/protovalidate/sys/third_party/re2/re2/prefilter_tree.h +153 -0
  1792. data/ext/protovalidate/sys/third_party/re2/re2/prog.cc +1181 -0
  1793. data/ext/protovalidate/sys/third_party/re2/re2/prog.h +493 -0
  1794. data/ext/protovalidate/sys/third_party/re2/re2/re2.cc +1355 -0
  1795. data/ext/protovalidate/sys/third_party/re2/re2/re2.h +1074 -0
  1796. data/ext/protovalidate/sys/third_party/re2/re2/regexp.cc +1004 -0
  1797. data/ext/protovalidate/sys/third_party/re2/re2/regexp.h +693 -0
  1798. data/ext/protovalidate/sys/third_party/re2/re2/set.cc +185 -0
  1799. data/ext/protovalidate/sys/third_party/re2/re2/set.h +91 -0
  1800. data/ext/protovalidate/sys/third_party/re2/re2/simplify.cc +689 -0
  1801. data/ext/protovalidate/sys/third_party/re2/re2/sparse_array.h +394 -0
  1802. data/ext/protovalidate/sys/third_party/re2/re2/sparse_set.h +266 -0
  1803. data/ext/protovalidate/sys/third_party/re2/re2/stringpiece.h +18 -0
  1804. data/ext/protovalidate/sys/third_party/re2/re2/tostring.cc +351 -0
  1805. data/ext/protovalidate/sys/third_party/re2/re2/unicode_casefold.cc +604 -0
  1806. data/ext/protovalidate/sys/third_party/re2/re2/unicode_casefold.h +77 -0
  1807. data/ext/protovalidate/sys/third_party/re2/re2/unicode_groups.cc +6517 -0
  1808. data/ext/protovalidate/sys/third_party/re2/re2/unicode_groups.h +66 -0
  1809. data/ext/protovalidate/sys/third_party/re2/re2/walker-inl.h +249 -0
  1810. data/ext/protovalidate/sys/third_party/re2/util/malloc_counter.h +19 -0
  1811. data/ext/protovalidate/sys/third_party/re2/util/pcre.h +671 -0
  1812. data/ext/protovalidate/sys/third_party/re2/util/rune.cc +260 -0
  1813. data/ext/protovalidate/sys/third_party/re2/util/strutil.cc +26 -0
  1814. data/ext/protovalidate/sys/third_party/re2/util/strutil.h +16 -0
  1815. data/ext/protovalidate/sys/third_party/re2/util/utf.h +44 -0
  1816. data/ext/protovalidate/sys/versions.json +15 -0
  1817. data/lib/buf/validate/validate_pb.rb +55 -0
  1818. data/lib/protovalidate/errors.rb +32 -0
  1819. data/lib/protovalidate/native.rb +30 -0
  1820. data/lib/protovalidate/validator.rb +96 -0
  1821. data/lib/protovalidate/version.rb +10 -0
  1822. data/lib/protovalidate/violation.rb +115 -0
  1823. data/lib/protovalidate.rb +48 -0
  1824. data/sig/buf/validate/validate_pb.rbs +64 -0
  1825. data/sig/protovalidate/native.rbs +14 -0
  1826. data/sig/protovalidate.rbs +90 -0
  1827. metadata +1900 -0
@@ -0,0 +1,2791 @@
1
+ // Copyright 2023 Google LLC
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // https://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ #include "common/value.h"
16
+
17
+ #include <cstddef>
18
+ #include <cstdint>
19
+ #include <memory>
20
+ #include <optional>
21
+ #include <ostream>
22
+ #include <string>
23
+ #include <type_traits>
24
+ #include <utility>
25
+
26
+ #include "google/protobuf/struct.pb.h"
27
+ #include "absl/base/attributes.h"
28
+ #include "absl/base/nullability.h"
29
+ #include "absl/base/optimization.h"
30
+ #include "absl/functional/overload.h"
31
+ #include "absl/log/absl_check.h"
32
+ #include "absl/log/absl_log.h"
33
+ #include "absl/meta/type_traits.h"
34
+ #include "absl/status/status.h"
35
+ #include "absl/status/statusor.h"
36
+ #include "absl/strings/cord.h"
37
+ #include "absl/strings/str_cat.h"
38
+ #include "absl/strings/string_view.h"
39
+ #include "absl/time/time.h"
40
+ #include "absl/types/optional.h"
41
+ #include "absl/types/variant.h"
42
+ #include "common/allocator.h"
43
+ #include "common/memory.h"
44
+ #include "common/optional_ref.h"
45
+ #include "common/type.h"
46
+ #include "common/value_kind.h"
47
+ #include "common/values/list_value_builder.h"
48
+ #include "common/values/map_value_builder.h"
49
+ #include "common/values/struct_value_builder.h"
50
+ #include "common/values/values.h"
51
+ #include "internal/number.h"
52
+ #include "internal/protobuf_runtime_version.h"
53
+ #include "internal/status_macros.h"
54
+ #include "internal/well_known_types.h"
55
+ #include "runtime/runtime_options.h"
56
+ #include "google/protobuf/arena.h"
57
+ #include "google/protobuf/descriptor.h"
58
+ #include "google/protobuf/message.h"
59
+
60
+ #undef GetMessage
61
+
62
+ namespace cel {
63
+ namespace {
64
+
65
+ google::protobuf::Arena* absl_nonnull MessageArenaOr(
66
+ const google::protobuf::Message* absl_nonnull message,
67
+ google::protobuf::Arena* absl_nonnull or_arena) {
68
+ google::protobuf::Arena* absl_nullable arena = message->GetArena();
69
+ if (arena == nullptr) {
70
+ arena = or_arena;
71
+ }
72
+ return arena;
73
+ }
74
+
75
+ } // namespace
76
+
77
+ Type Value::GetRuntimeType() const {
78
+ switch (kind()) {
79
+ case ValueKind::kNull:
80
+ return NullType();
81
+ case ValueKind::kBool:
82
+ return BoolType();
83
+ case ValueKind::kInt:
84
+ return IntType();
85
+ case ValueKind::kUint:
86
+ return UintType();
87
+ case ValueKind::kDouble:
88
+ return DoubleType();
89
+ case ValueKind::kString:
90
+ return StringType();
91
+ case ValueKind::kBytes:
92
+ return BytesType();
93
+ case ValueKind::kStruct:
94
+ return this->GetStruct().GetRuntimeType();
95
+ case ValueKind::kDuration:
96
+ return DurationType();
97
+ case ValueKind::kTimestamp:
98
+ return TimestampType();
99
+ case ValueKind::kList:
100
+ return ListType();
101
+ case ValueKind::kMap:
102
+ return MapType();
103
+ case ValueKind::kUnknown:
104
+ return UnknownType();
105
+ case ValueKind::kType:
106
+ return TypeType();
107
+ case ValueKind::kError:
108
+ return ErrorType();
109
+ case ValueKind::kOpaque:
110
+ return this->GetOpaque().GetRuntimeType();
111
+ default:
112
+ return cel::Type();
113
+ }
114
+ }
115
+
116
+ namespace {
117
+
118
+ template <typename T>
119
+ struct IsMonostate : std::is_same<absl::remove_cvref_t<T>, std::monostate> {};
120
+
121
+ } // namespace
122
+
123
+ absl::string_view Value::GetTypeName() const {
124
+ return variant_.Visit([](const auto& alternative) -> absl::string_view {
125
+ return alternative.GetTypeName();
126
+ });
127
+ }
128
+
129
+ std::string Value::DebugString() const {
130
+ return variant_.Visit([](const auto& alternative) -> std::string {
131
+ return alternative.DebugString();
132
+ });
133
+ }
134
+
135
+ absl::Status Value::SerializeTo(
136
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
137
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
138
+ google::protobuf::io::ZeroCopyOutputStream* absl_nonnull output) const {
139
+ ABSL_DCHECK(descriptor_pool != nullptr);
140
+ ABSL_DCHECK(message_factory != nullptr);
141
+ ABSL_DCHECK(output != nullptr);
142
+
143
+ return variant_.Visit([&](const auto& alternative) -> absl::Status {
144
+ return alternative.SerializeTo(descriptor_pool, message_factory, output);
145
+ });
146
+ }
147
+
148
+ absl::Status Value::ConvertToJson(
149
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
150
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
151
+ google::protobuf::Message* absl_nonnull json) const {
152
+ ABSL_DCHECK(descriptor_pool != nullptr);
153
+ ABSL_DCHECK(message_factory != nullptr);
154
+ ABSL_DCHECK(json != nullptr);
155
+ ABSL_DCHECK_EQ(json->GetDescriptor()->well_known_type(),
156
+ google::protobuf::Descriptor::WELLKNOWNTYPE_VALUE);
157
+
158
+ return variant_.Visit([descriptor_pool, message_factory,
159
+ json](const auto& alternative) -> absl::Status {
160
+ return alternative.ConvertToJson(descriptor_pool, message_factory, json);
161
+ });
162
+ }
163
+
164
+ absl::Status Value::ConvertToJsonArray(
165
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
166
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
167
+ google::protobuf::Message* absl_nonnull json) const {
168
+ ABSL_DCHECK(descriptor_pool != nullptr);
169
+ ABSL_DCHECK(message_factory != nullptr);
170
+ ABSL_DCHECK(json != nullptr);
171
+ ABSL_DCHECK_EQ(json->GetDescriptor()->well_known_type(),
172
+ google::protobuf::Descriptor::WELLKNOWNTYPE_LISTVALUE);
173
+
174
+ return variant_.Visit(absl::Overload(
175
+ [](std::monostate) -> absl::Status {
176
+ return absl::InternalError("use of invalid Value");
177
+ },
178
+ [descriptor_pool, message_factory, json](
179
+ const common_internal::LegacyListValue& alternative) -> absl::Status {
180
+ return alternative.ConvertToJsonArray(descriptor_pool, message_factory,
181
+ json);
182
+ },
183
+ [descriptor_pool, message_factory,
184
+ json](const CustomListValue& alternative) -> absl::Status {
185
+ return alternative.ConvertToJsonArray(descriptor_pool, message_factory,
186
+ json);
187
+ },
188
+ [descriptor_pool, message_factory,
189
+ json](const ParsedRepeatedFieldValue& alternative) -> absl::Status {
190
+ return alternative.ConvertToJsonArray(descriptor_pool, message_factory,
191
+ json);
192
+ },
193
+ [descriptor_pool, message_factory,
194
+ json](const ParsedJsonListValue& alternative) -> absl::Status {
195
+ return alternative.ConvertToJsonArray(descriptor_pool, message_factory,
196
+ json);
197
+ },
198
+ [](const auto& alternative) -> absl::Status {
199
+ return TypeConversionError(alternative.GetTypeName(),
200
+ "google.protobuf.ListValue")
201
+ .NativeValue();
202
+ }));
203
+ }
204
+
205
+ absl::Status Value::ConvertToJsonObject(
206
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
207
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
208
+ google::protobuf::Message* absl_nonnull json) const {
209
+ ABSL_DCHECK(descriptor_pool != nullptr);
210
+ ABSL_DCHECK(message_factory != nullptr);
211
+ ABSL_DCHECK(json != nullptr);
212
+ ABSL_DCHECK_EQ(json->GetDescriptor()->well_known_type(),
213
+ google::protobuf::Descriptor::WELLKNOWNTYPE_STRUCT);
214
+
215
+ return variant_.Visit(absl::Overload(
216
+ [](std::monostate) -> absl::Status {
217
+ return absl::InternalError("use of invalid Value");
218
+ },
219
+ [descriptor_pool, message_factory, json](
220
+ const common_internal::LegacyMapValue& alternative) -> absl::Status {
221
+ return alternative.ConvertToJsonObject(descriptor_pool, message_factory,
222
+ json);
223
+ },
224
+ [descriptor_pool, message_factory,
225
+ json](const CustomMapValue& alternative) -> absl::Status {
226
+ return alternative.ConvertToJsonObject(descriptor_pool, message_factory,
227
+ json);
228
+ },
229
+ [descriptor_pool, message_factory,
230
+ json](const ParsedMapFieldValue& alternative) -> absl::Status {
231
+ return alternative.ConvertToJsonObject(descriptor_pool, message_factory,
232
+ json);
233
+ },
234
+ [descriptor_pool, message_factory,
235
+ json](const ParsedJsonMapValue& alternative) -> absl::Status {
236
+ return alternative.ConvertToJsonObject(descriptor_pool, message_factory,
237
+ json);
238
+ },
239
+ [descriptor_pool, message_factory,
240
+ json](const common_internal::LegacyStructValue& alternative)
241
+ -> absl::Status {
242
+ return alternative.ConvertToJsonObject(descriptor_pool, message_factory,
243
+ json);
244
+ },
245
+ [descriptor_pool, message_factory,
246
+ json](const CustomStructValue& alternative) -> absl::Status {
247
+ return alternative.ConvertToJsonObject(descriptor_pool, message_factory,
248
+ json);
249
+ },
250
+ [descriptor_pool, message_factory,
251
+ json](const ParsedMessageValue& alternative) -> absl::Status {
252
+ return alternative.ConvertToJsonObject(descriptor_pool, message_factory,
253
+ json);
254
+ },
255
+ [](const auto& alternative) -> absl::Status {
256
+ return TypeConversionError(alternative.GetTypeName(),
257
+ "google.protobuf.Struct")
258
+ .NativeValue();
259
+ }));
260
+ }
261
+
262
+ absl::Status Value::Equal(
263
+ const Value& other,
264
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
265
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
266
+ google::protobuf::Arena* absl_nonnull arena, Value* absl_nonnull result) const {
267
+ ABSL_DCHECK(descriptor_pool != nullptr);
268
+ ABSL_DCHECK(message_factory != nullptr);
269
+ ABSL_DCHECK(arena != nullptr);
270
+ ABSL_DCHECK(result != nullptr);
271
+
272
+ return variant_.Visit([&other, descriptor_pool, message_factory, arena,
273
+ result](const auto& alternative) -> absl::Status {
274
+ return alternative.Equal(other, descriptor_pool, message_factory, arena,
275
+ result);
276
+ });
277
+ }
278
+
279
+ bool Value::IsZeroValue() const {
280
+ return variant_.Visit([](const auto& alternative) -> bool {
281
+ return alternative.IsZeroValue();
282
+ });
283
+ }
284
+
285
+ namespace {
286
+
287
+ template <typename, typename = void>
288
+ struct HasCloneMethod : std::false_type {};
289
+
290
+ template <typename T>
291
+ struct HasCloneMethod<T, std::void_t<decltype(std::declval<const T>().Clone(
292
+ std::declval<google::protobuf::Arena* absl_nonnull>()))>>
293
+ : std::true_type {};
294
+
295
+ } // namespace
296
+
297
+ Value Value::Clone(google::protobuf::Arena* absl_nonnull arena) const {
298
+ return variant_.Visit([arena](const auto& alternative) -> Value {
299
+ if constexpr (IsMonostate<decltype(alternative)>::value) {
300
+ return Value();
301
+ } else if constexpr (HasCloneMethod<absl::remove_cvref_t<
302
+ decltype(alternative)>>::value) {
303
+ return alternative.Clone(arena);
304
+ } else {
305
+ return alternative;
306
+ }
307
+ });
308
+ }
309
+
310
+ std::ostream& operator<<(std::ostream& out, const Value& value) {
311
+ return value.variant_.Visit([&out](const auto& alternative) -> std::ostream& {
312
+ return out << alternative;
313
+ });
314
+ }
315
+
316
+ namespace {
317
+
318
+ Value NonNullEnumValue(const google::protobuf::EnumValueDescriptor* absl_nonnull value) {
319
+ ABSL_DCHECK(value != nullptr);
320
+ return IntValue(value->number());
321
+ }
322
+
323
+ Value NonNullEnumValue(const google::protobuf::EnumDescriptor* absl_nonnull type,
324
+ int32_t number) {
325
+ ABSL_DCHECK(type != nullptr);
326
+ if (type->is_closed()) {
327
+ if (ABSL_PREDICT_FALSE(type->FindValueByNumber(number) == nullptr)) {
328
+ return ErrorValue(absl::InvalidArgumentError(absl::StrCat(
329
+ "closed enum has no such value: ", type->full_name(), ".", number)));
330
+ }
331
+ }
332
+ return IntValue(number);
333
+ }
334
+
335
+ } // namespace
336
+
337
+ Value Value::Enum(const google::protobuf::EnumValueDescriptor* absl_nonnull value) {
338
+ ABSL_DCHECK(value != nullptr);
339
+ if (value->type()->full_name() == "google.protobuf.NullValue") {
340
+ ABSL_DCHECK_EQ(value->number(), 0);
341
+ return NullValue();
342
+ }
343
+ return NonNullEnumValue(value);
344
+ }
345
+
346
+ Value Value::Enum(const google::protobuf::EnumDescriptor* absl_nonnull type,
347
+ int32_t number) {
348
+ ABSL_DCHECK(type != nullptr);
349
+ if (type->full_name() == "google.protobuf.NullValue") {
350
+ ABSL_DCHECK_EQ(number, 0);
351
+ return NullValue();
352
+ }
353
+ return NonNullEnumValue(type, number);
354
+ }
355
+
356
+ namespace common_internal {
357
+
358
+ namespace {
359
+
360
+ void BoolMapFieldKeyAccessor(const google::protobuf::MapKey& key,
361
+ const google::protobuf::Message* absl_nonnull message,
362
+ google::protobuf::Arena* absl_nonnull arena,
363
+ Value* absl_nonnull result) {
364
+ ABSL_DCHECK(message != nullptr);
365
+ ABSL_DCHECK(arena != nullptr);
366
+ ABSL_DCHECK(result != nullptr);
367
+
368
+ *result = BoolValue(key.GetBoolValue());
369
+ }
370
+
371
+ void Int32MapFieldKeyAccessor(const google::protobuf::MapKey& key,
372
+ const google::protobuf::Message* absl_nonnull message,
373
+ google::protobuf::Arena* absl_nonnull arena,
374
+ Value* absl_nonnull result) {
375
+ ABSL_DCHECK(message != nullptr);
376
+ ABSL_DCHECK(arena != nullptr);
377
+ ABSL_DCHECK(result != nullptr);
378
+
379
+ *result = IntValue(key.GetInt32Value());
380
+ }
381
+
382
+ void Int64MapFieldKeyAccessor(const google::protobuf::MapKey& key,
383
+ const google::protobuf::Message* absl_nonnull message,
384
+ google::protobuf::Arena* absl_nonnull arena,
385
+ Value* absl_nonnull result) {
386
+ ABSL_DCHECK(message != nullptr);
387
+ ABSL_DCHECK(arena != nullptr);
388
+ ABSL_DCHECK(result != nullptr);
389
+
390
+ *result = IntValue(key.GetInt64Value());
391
+ }
392
+
393
+ void UInt32MapFieldKeyAccessor(const google::protobuf::MapKey& key,
394
+ const google::protobuf::Message* absl_nonnull message,
395
+ google::protobuf::Arena* absl_nonnull arena,
396
+ Value* absl_nonnull result) {
397
+ ABSL_DCHECK(message != nullptr);
398
+ ABSL_DCHECK(arena != nullptr);
399
+ ABSL_DCHECK(result != nullptr);
400
+
401
+ *result = UintValue(key.GetUInt32Value());
402
+ }
403
+
404
+ void UInt64MapFieldKeyAccessor(const google::protobuf::MapKey& key,
405
+ const google::protobuf::Message* absl_nonnull message,
406
+ google::protobuf::Arena* absl_nonnull arena,
407
+ Value* absl_nonnull result) {
408
+ ABSL_DCHECK(message != nullptr);
409
+ ABSL_DCHECK(arena != nullptr);
410
+ ABSL_DCHECK(result != nullptr);
411
+
412
+ *result = UintValue(key.GetUInt64Value());
413
+ }
414
+
415
+ void StringMapFieldKeyAccessor(const google::protobuf::MapKey& key,
416
+ const google::protobuf::Message* absl_nonnull message,
417
+ google::protobuf::Arena* absl_nonnull arena,
418
+ Value* absl_nonnull result) {
419
+ ABSL_DCHECK(message != nullptr);
420
+ ABSL_DCHECK(arena != nullptr);
421
+ ABSL_DCHECK(result != nullptr);
422
+
423
+ #if CEL_INTERNAL_PROTOBUF_OSS_VERSION_PREREQ(5, 30, 0)
424
+ *result = StringValue(Borrower::Arena(MessageArenaOr(message, arena)),
425
+ key.GetStringValue());
426
+ #else
427
+ *result = StringValue(arena, key.GetStringValue());
428
+ #endif
429
+ }
430
+
431
+ } // namespace
432
+
433
+ absl::StatusOr<MapFieldKeyAccessor> MapFieldKeyAccessorFor(
434
+ const google::protobuf::FieldDescriptor* absl_nonnull field) {
435
+ switch (field->cpp_type()) {
436
+ case google::protobuf::FieldDescriptor::CPPTYPE_BOOL:
437
+ return &BoolMapFieldKeyAccessor;
438
+ case google::protobuf::FieldDescriptor::CPPTYPE_INT32:
439
+ return &Int32MapFieldKeyAccessor;
440
+ case google::protobuf::FieldDescriptor::CPPTYPE_INT64:
441
+ return &Int64MapFieldKeyAccessor;
442
+ case google::protobuf::FieldDescriptor::CPPTYPE_UINT32:
443
+ return &UInt32MapFieldKeyAccessor;
444
+ case google::protobuf::FieldDescriptor::CPPTYPE_UINT64:
445
+ return &UInt64MapFieldKeyAccessor;
446
+ case google::protobuf::FieldDescriptor::CPPTYPE_STRING:
447
+ return &StringMapFieldKeyAccessor;
448
+ default:
449
+ return absl::InvalidArgumentError(
450
+ absl::StrCat("unexpected map key type: ", field->cpp_type_name()));
451
+ }
452
+ }
453
+
454
+ namespace {
455
+
456
+ void DoubleMapFieldValueAccessor(
457
+ const google::protobuf::MapValueConstRef& value,
458
+ const google::protobuf::Message* absl_nonnull message,
459
+ const google::protobuf::FieldDescriptor* absl_nonnull field,
460
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
461
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
462
+ google::protobuf::Arena* absl_nonnull arena, Value* absl_nonnull result) {
463
+ ABSL_DCHECK(message != nullptr);
464
+ ABSL_DCHECK(field != nullptr);
465
+ ABSL_DCHECK(descriptor_pool != nullptr);
466
+ ABSL_DCHECK(message_factory != nullptr);
467
+ ABSL_DCHECK(arena != nullptr);
468
+ ABSL_DCHECK(result != nullptr);
469
+ ABSL_DCHECK(!field->is_repeated());
470
+ ABSL_DCHECK_EQ(field->cpp_type(), google::protobuf::FieldDescriptor::CPPTYPE_DOUBLE);
471
+
472
+ *result = DoubleValue(value.GetDoubleValue());
473
+ }
474
+
475
+ void FloatMapFieldValueAccessor(
476
+ const google::protobuf::MapValueConstRef& value,
477
+ const google::protobuf::Message* absl_nonnull message,
478
+ const google::protobuf::FieldDescriptor* absl_nonnull field,
479
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
480
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
481
+ google::protobuf::Arena* absl_nonnull arena, Value* absl_nonnull result) {
482
+ ABSL_DCHECK(message != nullptr);
483
+ ABSL_DCHECK(field != nullptr);
484
+ ABSL_DCHECK(descriptor_pool != nullptr);
485
+ ABSL_DCHECK(message_factory != nullptr);
486
+ ABSL_DCHECK(arena != nullptr);
487
+ ABSL_DCHECK(result != nullptr);
488
+ ABSL_DCHECK(!field->is_repeated());
489
+ ABSL_DCHECK_EQ(field->cpp_type(), google::protobuf::FieldDescriptor::CPPTYPE_FLOAT);
490
+
491
+ *result = DoubleValue(value.GetFloatValue());
492
+ }
493
+
494
+ void Int64MapFieldValueAccessor(
495
+ const google::protobuf::MapValueConstRef& value,
496
+ const google::protobuf::Message* absl_nonnull message,
497
+ const google::protobuf::FieldDescriptor* absl_nonnull field,
498
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
499
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
500
+ google::protobuf::Arena* absl_nonnull arena, Value* absl_nonnull result) {
501
+ ABSL_DCHECK(message != nullptr);
502
+ ABSL_DCHECK(field != nullptr);
503
+ ABSL_DCHECK(descriptor_pool != nullptr);
504
+ ABSL_DCHECK(message_factory != nullptr);
505
+ ABSL_DCHECK(arena != nullptr);
506
+ ABSL_DCHECK(result != nullptr);
507
+ ABSL_DCHECK(!field->is_repeated());
508
+ ABSL_DCHECK_EQ(field->cpp_type(), google::protobuf::FieldDescriptor::CPPTYPE_INT64);
509
+
510
+ *result = IntValue(value.GetInt64Value());
511
+ }
512
+
513
+ void UInt64MapFieldValueAccessor(
514
+ const google::protobuf::MapValueConstRef& value,
515
+ const google::protobuf::Message* absl_nonnull message,
516
+ const google::protobuf::FieldDescriptor* absl_nonnull field,
517
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
518
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
519
+ google::protobuf::Arena* absl_nonnull arena, Value* absl_nonnull result) {
520
+ ABSL_DCHECK(message != nullptr);
521
+ ABSL_DCHECK(field != nullptr);
522
+ ABSL_DCHECK(descriptor_pool != nullptr);
523
+ ABSL_DCHECK(message_factory != nullptr);
524
+ ABSL_DCHECK(arena != nullptr);
525
+ ABSL_DCHECK(result != nullptr);
526
+ ABSL_DCHECK(!field->is_repeated());
527
+ ABSL_DCHECK_EQ(field->cpp_type(), google::protobuf::FieldDescriptor::CPPTYPE_UINT64);
528
+
529
+ *result = UintValue(value.GetUInt64Value());
530
+ }
531
+
532
+ void Int32MapFieldValueAccessor(
533
+ const google::protobuf::MapValueConstRef& value,
534
+ const google::protobuf::Message* absl_nonnull message,
535
+ const google::protobuf::FieldDescriptor* absl_nonnull field,
536
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
537
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
538
+ google::protobuf::Arena* absl_nonnull arena, Value* absl_nonnull result) {
539
+ ABSL_DCHECK(message != nullptr);
540
+ ABSL_DCHECK(field != nullptr);
541
+ ABSL_DCHECK(descriptor_pool != nullptr);
542
+ ABSL_DCHECK(message_factory != nullptr);
543
+ ABSL_DCHECK(arena != nullptr);
544
+ ABSL_DCHECK(result != nullptr);
545
+ ABSL_DCHECK(!field->is_repeated());
546
+ ABSL_DCHECK_EQ(field->cpp_type(), google::protobuf::FieldDescriptor::CPPTYPE_INT32);
547
+
548
+ *result = IntValue(value.GetInt32Value());
549
+ }
550
+
551
+ void UInt32MapFieldValueAccessor(
552
+ const google::protobuf::MapValueConstRef& value,
553
+ const google::protobuf::Message* absl_nonnull message,
554
+ const google::protobuf::FieldDescriptor* absl_nonnull field,
555
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
556
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
557
+ google::protobuf::Arena* absl_nonnull arena, Value* absl_nonnull result) {
558
+ ABSL_DCHECK(message != nullptr);
559
+ ABSL_DCHECK(field != nullptr);
560
+ ABSL_DCHECK(descriptor_pool != nullptr);
561
+ ABSL_DCHECK(message_factory != nullptr);
562
+ ABSL_DCHECK(arena != nullptr);
563
+ ABSL_DCHECK(result != nullptr);
564
+ ABSL_DCHECK(!field->is_repeated());
565
+ ABSL_DCHECK_EQ(field->cpp_type(), google::protobuf::FieldDescriptor::CPPTYPE_UINT32);
566
+
567
+ *result = UintValue(value.GetUInt32Value());
568
+ }
569
+
570
+ void BoolMapFieldValueAccessor(
571
+ const google::protobuf::MapValueConstRef& value,
572
+ const google::protobuf::Message* absl_nonnull message,
573
+ const google::protobuf::FieldDescriptor* absl_nonnull field,
574
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
575
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
576
+ google::protobuf::Arena* absl_nonnull arena, Value* absl_nonnull result) {
577
+ ABSL_DCHECK(message != nullptr);
578
+ ABSL_DCHECK(field != nullptr);
579
+ ABSL_DCHECK(descriptor_pool != nullptr);
580
+ ABSL_DCHECK(message_factory != nullptr);
581
+ ABSL_DCHECK(arena != nullptr);
582
+ ABSL_DCHECK(result != nullptr);
583
+ ABSL_DCHECK(!field->is_repeated());
584
+ ABSL_DCHECK_EQ(field->cpp_type(), google::protobuf::FieldDescriptor::CPPTYPE_BOOL);
585
+
586
+ *result = BoolValue(value.GetBoolValue());
587
+ }
588
+
589
+ void StringMapFieldValueAccessor(
590
+ const google::protobuf::MapValueConstRef& value,
591
+ const google::protobuf::Message* absl_nonnull message,
592
+ const google::protobuf::FieldDescriptor* absl_nonnull field,
593
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
594
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
595
+ google::protobuf::Arena* absl_nonnull arena, Value* absl_nonnull result) {
596
+ ABSL_DCHECK(message != nullptr);
597
+ ABSL_DCHECK(field != nullptr);
598
+ ABSL_DCHECK(descriptor_pool != nullptr);
599
+ ABSL_DCHECK(message_factory != nullptr);
600
+ ABSL_DCHECK(arena != nullptr);
601
+ ABSL_DCHECK(result != nullptr);
602
+ ABSL_DCHECK(!field->is_repeated());
603
+ ABSL_DCHECK_EQ(field->type(), google::protobuf::FieldDescriptor::TYPE_STRING);
604
+
605
+ if (message->GetArena() == nullptr) {
606
+ *result = StringValue(arena, value.GetStringValue());
607
+ } else {
608
+ *result = StringValue(Borrower::Arena(arena), value.GetStringValue());
609
+ }
610
+ }
611
+
612
+ void MessageMapFieldValueAccessor(
613
+ const google::protobuf::MapValueConstRef& value,
614
+ const google::protobuf::Message* absl_nonnull message,
615
+ const google::protobuf::FieldDescriptor* absl_nonnull field,
616
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
617
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
618
+ google::protobuf::Arena* absl_nonnull arena, Value* absl_nonnull result) {
619
+ ABSL_DCHECK(message != nullptr);
620
+ ABSL_DCHECK(field != nullptr);
621
+ ABSL_DCHECK(descriptor_pool != nullptr);
622
+ ABSL_DCHECK(message_factory != nullptr);
623
+ ABSL_DCHECK(arena != nullptr);
624
+ ABSL_DCHECK(result != nullptr);
625
+ ABSL_DCHECK(!field->is_repeated());
626
+ ABSL_DCHECK_EQ(field->cpp_type(), google::protobuf::FieldDescriptor::CPPTYPE_MESSAGE);
627
+
628
+ *result = Value::WrapMessage(&value.GetMessageValue(), descriptor_pool,
629
+ message_factory, arena);
630
+ }
631
+
632
+ void BytesMapFieldValueAccessor(
633
+ const google::protobuf::MapValueConstRef& value,
634
+ const google::protobuf::Message* absl_nonnull message,
635
+ const google::protobuf::FieldDescriptor* absl_nonnull field,
636
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
637
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
638
+ google::protobuf::Arena* absl_nonnull arena, Value* absl_nonnull result) {
639
+ ABSL_DCHECK(message != nullptr);
640
+ ABSL_DCHECK(field != nullptr);
641
+ ABSL_DCHECK(descriptor_pool != nullptr);
642
+ ABSL_DCHECK(message_factory != nullptr);
643
+ ABSL_DCHECK(arena != nullptr);
644
+ ABSL_DCHECK(result != nullptr);
645
+ ABSL_DCHECK(!field->is_repeated());
646
+ ABSL_DCHECK_EQ(field->type(), google::protobuf::FieldDescriptor::TYPE_BYTES);
647
+
648
+ if (message->GetArena() == nullptr) {
649
+ *result = BytesValue(arena, value.GetStringValue());
650
+ } else {
651
+ *result = BytesValue(Borrower::Arena(arena), value.GetStringValue());
652
+ }
653
+ }
654
+
655
+ void EnumMapFieldValueAccessor(
656
+ const google::protobuf::MapValueConstRef& value,
657
+ const google::protobuf::Message* absl_nonnull message,
658
+ const google::protobuf::FieldDescriptor* absl_nonnull field,
659
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
660
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
661
+ google::protobuf::Arena* absl_nonnull arena, Value* absl_nonnull result) {
662
+ ABSL_DCHECK(message != nullptr);
663
+ ABSL_DCHECK(field != nullptr);
664
+ ABSL_DCHECK(descriptor_pool != nullptr);
665
+ ABSL_DCHECK(message_factory != nullptr);
666
+ ABSL_DCHECK(arena != nullptr);
667
+ ABSL_DCHECK(result != nullptr);
668
+ ABSL_DCHECK(!field->is_repeated());
669
+ ABSL_DCHECK_EQ(field->cpp_type(), google::protobuf::FieldDescriptor::CPPTYPE_ENUM);
670
+
671
+ *result = NonNullEnumValue(field->enum_type(), value.GetEnumValue());
672
+ }
673
+
674
+ void NullMapFieldValueAccessor(
675
+ const google::protobuf::MapValueConstRef& value,
676
+ const google::protobuf::Message* absl_nonnull message,
677
+ const google::protobuf::FieldDescriptor* absl_nonnull field,
678
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
679
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
680
+ google::protobuf::Arena* absl_nonnull arena, Value* absl_nonnull result) {
681
+ ABSL_DCHECK(message != nullptr);
682
+ ABSL_DCHECK(field != nullptr);
683
+ ABSL_DCHECK(descriptor_pool != nullptr);
684
+ ABSL_DCHECK(message_factory != nullptr);
685
+ ABSL_DCHECK(arena != nullptr);
686
+ ABSL_DCHECK(result != nullptr);
687
+ ABSL_DCHECK(!field->is_repeated());
688
+ ABSL_DCHECK(field->cpp_type() == google::protobuf::FieldDescriptor::CPPTYPE_ENUM &&
689
+ field->enum_type()->full_name() == "google.protobuf.NullValue");
690
+
691
+ *result = NullValue();
692
+ }
693
+
694
+ } // namespace
695
+
696
+ absl::StatusOr<MapFieldValueAccessor> MapFieldValueAccessorFor(
697
+ const google::protobuf::FieldDescriptor* absl_nonnull field) {
698
+ switch (field->type()) {
699
+ case google::protobuf::FieldDescriptor::TYPE_DOUBLE:
700
+ return &DoubleMapFieldValueAccessor;
701
+ case google::protobuf::FieldDescriptor::TYPE_FLOAT:
702
+ return &FloatMapFieldValueAccessor;
703
+ case google::protobuf::FieldDescriptor::TYPE_SFIXED64:
704
+ ABSL_FALLTHROUGH_INTENDED;
705
+ case google::protobuf::FieldDescriptor::TYPE_SINT64:
706
+ ABSL_FALLTHROUGH_INTENDED;
707
+ case google::protobuf::FieldDescriptor::TYPE_INT64:
708
+ return &Int64MapFieldValueAccessor;
709
+ case google::protobuf::FieldDescriptor::TYPE_FIXED64:
710
+ ABSL_FALLTHROUGH_INTENDED;
711
+ case google::protobuf::FieldDescriptor::TYPE_UINT64:
712
+ return &UInt64MapFieldValueAccessor;
713
+ case google::protobuf::FieldDescriptor::TYPE_SFIXED32:
714
+ ABSL_FALLTHROUGH_INTENDED;
715
+ case google::protobuf::FieldDescriptor::TYPE_SINT32:
716
+ ABSL_FALLTHROUGH_INTENDED;
717
+ case google::protobuf::FieldDescriptor::TYPE_INT32:
718
+ return &Int32MapFieldValueAccessor;
719
+ case google::protobuf::FieldDescriptor::TYPE_BOOL:
720
+ return &BoolMapFieldValueAccessor;
721
+ case google::protobuf::FieldDescriptor::TYPE_STRING:
722
+ return &StringMapFieldValueAccessor;
723
+ case google::protobuf::FieldDescriptor::TYPE_GROUP:
724
+ ABSL_FALLTHROUGH_INTENDED;
725
+ case google::protobuf::FieldDescriptor::TYPE_MESSAGE:
726
+ return &MessageMapFieldValueAccessor;
727
+ case google::protobuf::FieldDescriptor::TYPE_BYTES:
728
+ return &BytesMapFieldValueAccessor;
729
+ case google::protobuf::FieldDescriptor::TYPE_FIXED32:
730
+ ABSL_FALLTHROUGH_INTENDED;
731
+ case google::protobuf::FieldDescriptor::TYPE_UINT32:
732
+ return &UInt32MapFieldValueAccessor;
733
+ case google::protobuf::FieldDescriptor::TYPE_ENUM:
734
+ if (field->enum_type()->full_name() == "google.protobuf.NullValue") {
735
+ return &NullMapFieldValueAccessor;
736
+ }
737
+ return &EnumMapFieldValueAccessor;
738
+ default:
739
+ return absl::InvalidArgumentError(
740
+ absl::StrCat("unexpected protocol buffer message field type: ",
741
+ field->type_name()));
742
+ }
743
+ }
744
+
745
+ namespace {
746
+
747
+ void DoubleRepeatedFieldAccessor(
748
+ int index, const google::protobuf::Message* absl_nonnull message,
749
+ const google::protobuf::FieldDescriptor* absl_nonnull field,
750
+ const google::protobuf::Reflection* absl_nonnull reflection,
751
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
752
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
753
+ google::protobuf::Arena* absl_nonnull arena, Value* absl_nonnull result) {
754
+ ABSL_DCHECK(message != nullptr);
755
+ ABSL_DCHECK(field != nullptr);
756
+ ABSL_DCHECK(message_factory != nullptr);
757
+ ABSL_DCHECK(descriptor_pool != nullptr);
758
+ ABSL_DCHECK(reflection != nullptr);
759
+ ABSL_DCHECK(arena != nullptr);
760
+ ABSL_DCHECK(result != nullptr);
761
+ ABSL_DCHECK_EQ(reflection, message->GetReflection());
762
+ ABSL_DCHECK_EQ(field->containing_type(), message->GetDescriptor());
763
+ ABSL_DCHECK(field->is_repeated());
764
+ ABSL_DCHECK_EQ(field->cpp_type(), google::protobuf::FieldDescriptor::CPPTYPE_DOUBLE);
765
+ ABSL_DCHECK_GE(index, 0);
766
+ ABSL_DCHECK_LT(index, reflection->FieldSize(*message, field));
767
+
768
+ *result = DoubleValue(reflection->GetRepeatedDouble(*message, field, index));
769
+ }
770
+
771
+ void FloatRepeatedFieldAccessor(
772
+ int index, const google::protobuf::Message* absl_nonnull message,
773
+ const google::protobuf::FieldDescriptor* absl_nonnull field,
774
+ const google::protobuf::Reflection* absl_nonnull reflection,
775
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
776
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
777
+ google::protobuf::Arena* absl_nonnull arena, Value* absl_nonnull result) {
778
+ ABSL_DCHECK(message != nullptr);
779
+ ABSL_DCHECK(field != nullptr);
780
+ ABSL_DCHECK(message_factory != nullptr);
781
+ ABSL_DCHECK(descriptor_pool != nullptr);
782
+ ABSL_DCHECK(reflection != nullptr);
783
+ ABSL_DCHECK(arena != nullptr);
784
+ ABSL_DCHECK(result != nullptr);
785
+ ABSL_DCHECK_EQ(reflection, message->GetReflection());
786
+ ABSL_DCHECK_EQ(field->containing_type(), message->GetDescriptor());
787
+ ABSL_DCHECK(field->is_repeated());
788
+ ABSL_DCHECK_EQ(field->cpp_type(), google::protobuf::FieldDescriptor::CPPTYPE_FLOAT);
789
+ ABSL_DCHECK_GE(index, 0);
790
+ ABSL_DCHECK_LT(index, reflection->FieldSize(*message, field));
791
+
792
+ *result = DoubleValue(reflection->GetRepeatedFloat(*message, field, index));
793
+ }
794
+
795
+ void Int64RepeatedFieldAccessor(
796
+ int index, const google::protobuf::Message* absl_nonnull message,
797
+ const google::protobuf::FieldDescriptor* absl_nonnull field,
798
+ const google::protobuf::Reflection* absl_nonnull reflection,
799
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
800
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
801
+ google::protobuf::Arena* absl_nonnull arena, Value* absl_nonnull result) {
802
+ ABSL_DCHECK(message != nullptr);
803
+ ABSL_DCHECK(field != nullptr);
804
+ ABSL_DCHECK(message_factory != nullptr);
805
+ ABSL_DCHECK(descriptor_pool != nullptr);
806
+ ABSL_DCHECK(reflection != nullptr);
807
+ ABSL_DCHECK(arena != nullptr);
808
+ ABSL_DCHECK(result != nullptr);
809
+ ABSL_DCHECK_EQ(reflection, message->GetReflection());
810
+ ABSL_DCHECK_EQ(field->containing_type(), message->GetDescriptor());
811
+ ABSL_DCHECK(field->is_repeated());
812
+ ABSL_DCHECK_EQ(field->cpp_type(), google::protobuf::FieldDescriptor::CPPTYPE_INT64);
813
+ ABSL_DCHECK_GE(index, 0);
814
+ ABSL_DCHECK_LT(index, reflection->FieldSize(*message, field));
815
+
816
+ *result = IntValue(reflection->GetRepeatedInt64(*message, field, index));
817
+ }
818
+
819
+ void UInt64RepeatedFieldAccessor(
820
+ int index, const google::protobuf::Message* absl_nonnull message,
821
+ const google::protobuf::FieldDescriptor* absl_nonnull field,
822
+ const google::protobuf::Reflection* absl_nonnull reflection,
823
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
824
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
825
+ google::protobuf::Arena* absl_nonnull arena, Value* absl_nonnull result) {
826
+ ABSL_DCHECK(message != nullptr);
827
+ ABSL_DCHECK(field != nullptr);
828
+ ABSL_DCHECK(message_factory != nullptr);
829
+ ABSL_DCHECK(descriptor_pool != nullptr);
830
+ ABSL_DCHECK(reflection != nullptr);
831
+ ABSL_DCHECK(arena != nullptr);
832
+ ABSL_DCHECK(result != nullptr);
833
+ ABSL_DCHECK_EQ(reflection, message->GetReflection());
834
+ ABSL_DCHECK_EQ(field->containing_type(), message->GetDescriptor());
835
+ ABSL_DCHECK(field->is_repeated());
836
+ ABSL_DCHECK_EQ(field->cpp_type(), google::protobuf::FieldDescriptor::CPPTYPE_UINT64);
837
+ ABSL_DCHECK_GE(index, 0);
838
+ ABSL_DCHECK_LT(index, reflection->FieldSize(*message, field));
839
+
840
+ *result = UintValue(reflection->GetRepeatedUInt64(*message, field, index));
841
+ }
842
+
843
+ void Int32RepeatedFieldAccessor(
844
+ int index, const google::protobuf::Message* absl_nonnull message,
845
+ const google::protobuf::FieldDescriptor* absl_nonnull field,
846
+ const google::protobuf::Reflection* absl_nonnull reflection,
847
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
848
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
849
+ google::protobuf::Arena* absl_nonnull arena, Value* absl_nonnull result) {
850
+ ABSL_DCHECK(message != nullptr);
851
+ ABSL_DCHECK(field != nullptr);
852
+ ABSL_DCHECK(message_factory != nullptr);
853
+ ABSL_DCHECK(descriptor_pool != nullptr);
854
+ ABSL_DCHECK(reflection != nullptr);
855
+ ABSL_DCHECK(arena != nullptr);
856
+ ABSL_DCHECK(result != nullptr);
857
+ ABSL_DCHECK_EQ(reflection, message->GetReflection());
858
+ ABSL_DCHECK_EQ(field->containing_type(), message->GetDescriptor());
859
+ ABSL_DCHECK(field->is_repeated());
860
+ ABSL_DCHECK_EQ(field->cpp_type(), google::protobuf::FieldDescriptor::CPPTYPE_INT32);
861
+ ABSL_DCHECK_GE(index, 0);
862
+ ABSL_DCHECK_LT(index, reflection->FieldSize(*message, field));
863
+
864
+ *result = IntValue(reflection->GetRepeatedInt32(*message, field, index));
865
+ }
866
+
867
+ void UInt32RepeatedFieldAccessor(
868
+ int index, const google::protobuf::Message* absl_nonnull message,
869
+ const google::protobuf::FieldDescriptor* absl_nonnull field,
870
+ const google::protobuf::Reflection* absl_nonnull reflection,
871
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
872
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
873
+ google::protobuf::Arena* absl_nonnull arena, Value* absl_nonnull result) {
874
+ ABSL_DCHECK(message != nullptr);
875
+ ABSL_DCHECK(field != nullptr);
876
+ ABSL_DCHECK(message_factory != nullptr);
877
+ ABSL_DCHECK(descriptor_pool != nullptr);
878
+ ABSL_DCHECK(reflection != nullptr);
879
+ ABSL_DCHECK(arena != nullptr);
880
+ ABSL_DCHECK(result != nullptr);
881
+ ABSL_DCHECK_EQ(reflection, message->GetReflection());
882
+ ABSL_DCHECK_EQ(field->containing_type(), message->GetDescriptor());
883
+ ABSL_DCHECK(field->is_repeated());
884
+ ABSL_DCHECK_EQ(field->cpp_type(), google::protobuf::FieldDescriptor::CPPTYPE_UINT32);
885
+ ABSL_DCHECK_GE(index, 0);
886
+ ABSL_DCHECK_LT(index, reflection->FieldSize(*message, field));
887
+
888
+ *result = UintValue(reflection->GetRepeatedUInt32(*message, field, index));
889
+ }
890
+
891
+ void BoolRepeatedFieldAccessor(
892
+ int index, const google::protobuf::Message* absl_nonnull message,
893
+ const google::protobuf::FieldDescriptor* absl_nonnull field,
894
+ const google::protobuf::Reflection* absl_nonnull reflection,
895
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
896
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
897
+ google::protobuf::Arena* absl_nonnull arena, Value* absl_nonnull result) {
898
+ ABSL_DCHECK(message != nullptr);
899
+ ABSL_DCHECK(field != nullptr);
900
+ ABSL_DCHECK(message_factory != nullptr);
901
+ ABSL_DCHECK(descriptor_pool != nullptr);
902
+ ABSL_DCHECK(reflection != nullptr);
903
+ ABSL_DCHECK(arena != nullptr);
904
+ ABSL_DCHECK(result != nullptr);
905
+ ABSL_DCHECK_EQ(reflection, message->GetReflection());
906
+ ABSL_DCHECK_EQ(field->containing_type(), message->GetDescriptor());
907
+ ABSL_DCHECK(field->is_repeated());
908
+ ABSL_DCHECK_EQ(field->cpp_type(), google::protobuf::FieldDescriptor::CPPTYPE_BOOL);
909
+ ABSL_DCHECK_GE(index, 0);
910
+ ABSL_DCHECK_LT(index, reflection->FieldSize(*message, field));
911
+
912
+ *result = BoolValue(reflection->GetRepeatedBool(*message, field, index));
913
+ }
914
+
915
+ void StringRepeatedFieldAccessor(
916
+ int index, const google::protobuf::Message* absl_nonnull message,
917
+ const google::protobuf::FieldDescriptor* absl_nonnull field,
918
+ const google::protobuf::Reflection* absl_nonnull reflection,
919
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
920
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
921
+ google::protobuf::Arena* absl_nonnull arena, Value* absl_nonnull result) {
922
+ ABSL_DCHECK(message != nullptr);
923
+ ABSL_DCHECK(field != nullptr);
924
+ ABSL_DCHECK(message_factory != nullptr);
925
+ ABSL_DCHECK(descriptor_pool != nullptr);
926
+ ABSL_DCHECK(reflection != nullptr);
927
+ ABSL_DCHECK(arena != nullptr);
928
+ ABSL_DCHECK(result != nullptr);
929
+ ABSL_DCHECK_EQ(reflection, message->GetReflection());
930
+ ABSL_DCHECK_EQ(field->containing_type(), message->GetDescriptor());
931
+ ABSL_DCHECK(field->is_repeated());
932
+ ABSL_DCHECK_EQ(field->type(), google::protobuf::FieldDescriptor::TYPE_STRING);
933
+ ABSL_DCHECK_GE(index, 0);
934
+ ABSL_DCHECK_LT(index, reflection->FieldSize(*message, field));
935
+
936
+ std::string scratch;
937
+ absl::visit(
938
+ absl::Overload(
939
+ [&](absl::string_view string) {
940
+ if (string.data() == scratch.data() &&
941
+ string.size() == scratch.size()) {
942
+ *result = StringValue(arena, std::move(scratch));
943
+ } else {
944
+ if (message->GetArena() == nullptr) {
945
+ *result = StringValue(arena, string);
946
+ } else {
947
+ *result = StringValue(Borrower::Arena(arena), string);
948
+ }
949
+ }
950
+ },
951
+ [&](absl::Cord&& cord) { *result = StringValue(std::move(cord)); }),
952
+ well_known_types::AsVariant(well_known_types::GetRepeatedStringField(
953
+ *message, field, index, scratch)));
954
+ }
955
+
956
+ void MessageRepeatedFieldAccessor(
957
+ int index, const google::protobuf::Message* absl_nonnull message,
958
+ const google::protobuf::FieldDescriptor* absl_nonnull field,
959
+ const google::protobuf::Reflection* absl_nonnull reflection,
960
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
961
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
962
+ google::protobuf::Arena* absl_nonnull arena, Value* absl_nonnull result) {
963
+ ABSL_DCHECK(message != nullptr);
964
+ ABSL_DCHECK(field != nullptr);
965
+ ABSL_DCHECK(message_factory != nullptr);
966
+ ABSL_DCHECK(descriptor_pool != nullptr);
967
+ ABSL_DCHECK(reflection != nullptr);
968
+ ABSL_DCHECK(arena != nullptr);
969
+ ABSL_DCHECK(result != nullptr);
970
+ ABSL_DCHECK_EQ(reflection, message->GetReflection());
971
+ ABSL_DCHECK_EQ(field->containing_type(), message->GetDescriptor());
972
+ ABSL_DCHECK(field->is_repeated());
973
+ ABSL_DCHECK_EQ(field->cpp_type(), google::protobuf::FieldDescriptor::CPPTYPE_MESSAGE);
974
+ ABSL_DCHECK_GE(index, 0);
975
+ ABSL_DCHECK_LT(index, reflection->FieldSize(*message, field));
976
+
977
+ *result = Value::WrapMessage(
978
+ &reflection->GetRepeatedMessage(*message, field, index), descriptor_pool,
979
+ message_factory, arena);
980
+ }
981
+
982
+ void BytesRepeatedFieldAccessor(
983
+ int index, const google::protobuf::Message* absl_nonnull message,
984
+ const google::protobuf::FieldDescriptor* absl_nonnull field,
985
+ const google::protobuf::Reflection* absl_nonnull reflection,
986
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
987
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
988
+ google::protobuf::Arena* absl_nonnull arena, Value* absl_nonnull result) {
989
+ ABSL_DCHECK(message != nullptr);
990
+ ABSL_DCHECK(field != nullptr);
991
+ ABSL_DCHECK(message_factory != nullptr);
992
+ ABSL_DCHECK(descriptor_pool != nullptr);
993
+ ABSL_DCHECK(reflection != nullptr);
994
+ ABSL_DCHECK(arena != nullptr);
995
+ ABSL_DCHECK(result != nullptr);
996
+ ABSL_DCHECK_EQ(reflection, message->GetReflection());
997
+ ABSL_DCHECK_EQ(field->containing_type(), message->GetDescriptor());
998
+ ABSL_DCHECK(field->is_repeated());
999
+ ABSL_DCHECK_EQ(field->type(), google::protobuf::FieldDescriptor::TYPE_BYTES);
1000
+ ABSL_DCHECK_GE(index, 0);
1001
+ ABSL_DCHECK_LT(index, reflection->FieldSize(*message, field));
1002
+
1003
+ std::string scratch;
1004
+ absl::visit(
1005
+ absl::Overload(
1006
+ [&](absl::string_view string) {
1007
+ if (string.data() == scratch.data() &&
1008
+ string.size() == scratch.size()) {
1009
+ *result = BytesValue(arena, std::move(scratch));
1010
+ } else {
1011
+ if (message->GetArena() == nullptr) {
1012
+ *result = BytesValue(arena, string);
1013
+ } else {
1014
+ *result = BytesValue(Borrower::Arena(arena), string);
1015
+ }
1016
+ }
1017
+ },
1018
+ [&](absl::Cord&& cord) { *result = BytesValue(std::move(cord)); }),
1019
+ well_known_types::AsVariant(well_known_types::GetRepeatedBytesField(
1020
+ *message, field, index, scratch)));
1021
+ }
1022
+
1023
+ void EnumRepeatedFieldAccessor(
1024
+ int index, const google::protobuf::Message* absl_nonnull message,
1025
+ const google::protobuf::FieldDescriptor* absl_nonnull field,
1026
+ const google::protobuf::Reflection* absl_nonnull reflection,
1027
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
1028
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
1029
+ google::protobuf::Arena* absl_nonnull arena, Value* absl_nonnull result) {
1030
+ ABSL_DCHECK(message != nullptr);
1031
+ ABSL_DCHECK(field != nullptr);
1032
+ ABSL_DCHECK(message_factory != nullptr);
1033
+ ABSL_DCHECK(descriptor_pool != nullptr);
1034
+ ABSL_DCHECK(reflection != nullptr);
1035
+ ABSL_DCHECK(arena != nullptr);
1036
+ ABSL_DCHECK(result != nullptr);
1037
+ ABSL_DCHECK_EQ(reflection, message->GetReflection());
1038
+ ABSL_DCHECK_EQ(field->containing_type(), message->GetDescriptor());
1039
+ ABSL_DCHECK(field->is_repeated());
1040
+ ABSL_DCHECK_EQ(field->cpp_type(), google::protobuf::FieldDescriptor::CPPTYPE_ENUM);
1041
+ ABSL_DCHECK_GE(index, 0);
1042
+ ABSL_DCHECK_LT(index, reflection->FieldSize(*message, field));
1043
+
1044
+ *result = NonNullEnumValue(
1045
+ field->enum_type(),
1046
+ reflection->GetRepeatedEnumValue(*message, field, index));
1047
+ }
1048
+
1049
+ void NullRepeatedFieldAccessor(
1050
+ int index, const google::protobuf::Message* absl_nonnull message,
1051
+ const google::protobuf::FieldDescriptor* absl_nonnull field,
1052
+ const google::protobuf::Reflection* absl_nonnull reflection,
1053
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
1054
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
1055
+ google::protobuf::Arena* absl_nonnull arena, Value* absl_nonnull result) {
1056
+ ABSL_DCHECK(message != nullptr);
1057
+ ABSL_DCHECK(field != nullptr);
1058
+ ABSL_DCHECK(message_factory != nullptr);
1059
+ ABSL_DCHECK(descriptor_pool != nullptr);
1060
+ ABSL_DCHECK(reflection != nullptr);
1061
+ ABSL_DCHECK(arena != nullptr);
1062
+ ABSL_DCHECK(result != nullptr);
1063
+ ABSL_DCHECK_EQ(reflection, message->GetReflection());
1064
+ ABSL_DCHECK_EQ(field->containing_type(), message->GetDescriptor());
1065
+ ABSL_DCHECK(field->is_repeated());
1066
+ ABSL_DCHECK(field->cpp_type() == google::protobuf::FieldDescriptor::CPPTYPE_ENUM &&
1067
+ field->enum_type()->full_name() == "google.protobuf.NullValue");
1068
+ ABSL_DCHECK_GE(index, 0);
1069
+ ABSL_DCHECK_LT(index, reflection->FieldSize(*message, field));
1070
+
1071
+ *result = NullValue();
1072
+ }
1073
+
1074
+ } // namespace
1075
+
1076
+ absl::StatusOr<RepeatedFieldAccessor> RepeatedFieldAccessorFor(
1077
+ const google::protobuf::FieldDescriptor* absl_nonnull field) {
1078
+ switch (field->type()) {
1079
+ case google::protobuf::FieldDescriptor::TYPE_DOUBLE:
1080
+ return &DoubleRepeatedFieldAccessor;
1081
+ case google::protobuf::FieldDescriptor::TYPE_FLOAT:
1082
+ return &FloatRepeatedFieldAccessor;
1083
+ case google::protobuf::FieldDescriptor::TYPE_SFIXED64:
1084
+ ABSL_FALLTHROUGH_INTENDED;
1085
+ case google::protobuf::FieldDescriptor::TYPE_SINT64:
1086
+ ABSL_FALLTHROUGH_INTENDED;
1087
+ case google::protobuf::FieldDescriptor::TYPE_INT64:
1088
+ return &Int64RepeatedFieldAccessor;
1089
+ case google::protobuf::FieldDescriptor::TYPE_FIXED64:
1090
+ ABSL_FALLTHROUGH_INTENDED;
1091
+ case google::protobuf::FieldDescriptor::TYPE_UINT64:
1092
+ return &UInt64RepeatedFieldAccessor;
1093
+ case google::protobuf::FieldDescriptor::TYPE_SFIXED32:
1094
+ ABSL_FALLTHROUGH_INTENDED;
1095
+ case google::protobuf::FieldDescriptor::TYPE_SINT32:
1096
+ ABSL_FALLTHROUGH_INTENDED;
1097
+ case google::protobuf::FieldDescriptor::TYPE_INT32:
1098
+ return &Int32RepeatedFieldAccessor;
1099
+ case google::protobuf::FieldDescriptor::TYPE_BOOL:
1100
+ return &BoolRepeatedFieldAccessor;
1101
+ case google::protobuf::FieldDescriptor::TYPE_STRING:
1102
+ return &StringRepeatedFieldAccessor;
1103
+ case google::protobuf::FieldDescriptor::TYPE_GROUP:
1104
+ ABSL_FALLTHROUGH_INTENDED;
1105
+ case google::protobuf::FieldDescriptor::TYPE_MESSAGE:
1106
+ return &MessageRepeatedFieldAccessor;
1107
+ case google::protobuf::FieldDescriptor::TYPE_BYTES:
1108
+ return &BytesRepeatedFieldAccessor;
1109
+ case google::protobuf::FieldDescriptor::TYPE_FIXED32:
1110
+ ABSL_FALLTHROUGH_INTENDED;
1111
+ case google::protobuf::FieldDescriptor::TYPE_UINT32:
1112
+ return &UInt32RepeatedFieldAccessor;
1113
+ case google::protobuf::FieldDescriptor::TYPE_ENUM:
1114
+ if (field->enum_type()->full_name() == "google.protobuf.NullValue") {
1115
+ return &NullRepeatedFieldAccessor;
1116
+ }
1117
+ return &EnumRepeatedFieldAccessor;
1118
+ default:
1119
+ return absl::InvalidArgumentError(
1120
+ absl::StrCat("unexpected protocol buffer message field type: ",
1121
+ field->type_name()));
1122
+ }
1123
+ }
1124
+
1125
+ } // namespace common_internal
1126
+
1127
+ namespace {
1128
+
1129
+ // Overloads for `well_known_types::Value` which handles the primitive values
1130
+ // which require no special handling based on allocators.
1131
+ Value VistWellKnownTypeValue(std::nullptr_t) { return NullValue(); }
1132
+
1133
+ Value VistWellKnownTypeValue(bool value) { return BoolValue(value); }
1134
+
1135
+ Value VistWellKnownTypeValue(int32_t value) { return IntValue(value); }
1136
+
1137
+ Value VistWellKnownTypeValue(int64_t value) { return IntValue(value); }
1138
+
1139
+ Value VistWellKnownTypeValue(uint32_t value) { return UintValue(value); }
1140
+
1141
+ Value VistWellKnownTypeValue(uint64_t value) { return UintValue(value); }
1142
+
1143
+ Value VistWellKnownTypeValue(float value) { return DoubleValue(value); }
1144
+
1145
+ Value VistWellKnownTypeValue(double value) { return DoubleValue(value); }
1146
+
1147
+ Value VistWellKnownTypeValue(absl::Duration value) {
1148
+ return DurationValue(value);
1149
+ }
1150
+
1151
+ Value VistWellKnownTypeValue(absl::Time value) { return TimestampValue(value); }
1152
+
1153
+ struct OwningWellKnownTypesValueVisitor {
1154
+ google::protobuf::Arena* absl_nullable arena;
1155
+ std::string* absl_nonnull scratch;
1156
+
1157
+ Value operator()(well_known_types::BytesValue&& value) const {
1158
+ return absl::visit(absl::Overload(
1159
+ [&](absl::string_view string) -> BytesValue {
1160
+ if (string.empty()) {
1161
+ return BytesValue();
1162
+ }
1163
+ if (scratch->data() == string.data() &&
1164
+ scratch->size() == string.size()) {
1165
+ return BytesValue(arena, std::move(*scratch));
1166
+ }
1167
+ return BytesValue(arena, string);
1168
+ },
1169
+ [&](absl::Cord&& cord) -> BytesValue {
1170
+ if (cord.empty()) {
1171
+ return BytesValue();
1172
+ }
1173
+ return BytesValue(arena, cord);
1174
+ }),
1175
+ well_known_types::AsVariant(std::move(value)));
1176
+ }
1177
+
1178
+ Value operator()(well_known_types::StringValue&& value) const {
1179
+ return absl::visit(absl::Overload(
1180
+ [&](absl::string_view string) -> StringValue {
1181
+ if (string.empty()) {
1182
+ return StringValue();
1183
+ }
1184
+ if (scratch->data() == string.data() &&
1185
+ scratch->size() == string.size()) {
1186
+ return StringValue(arena, std::move(*scratch));
1187
+ }
1188
+ return StringValue(arena, string);
1189
+ },
1190
+ [&](absl::Cord&& cord) -> StringValue {
1191
+ if (cord.empty()) {
1192
+ return StringValue();
1193
+ }
1194
+ return StringValue(arena, cord);
1195
+ }),
1196
+ well_known_types::AsVariant(std::move(value)));
1197
+ }
1198
+
1199
+ Value operator()(well_known_types::ListValue&& value) const {
1200
+ return absl::visit(
1201
+ absl::Overload(
1202
+ [&](well_known_types::ListValueConstRef value) -> ListValue {
1203
+ auto* cloned = value.get().New(arena);
1204
+ cloned->CopyFrom(value.get());
1205
+ return ParsedJsonListValue(cloned, arena);
1206
+ },
1207
+ [&](well_known_types::ListValuePtr value) -> ListValue {
1208
+ if (value->GetArena() != arena) {
1209
+ auto* cloned = value->New(arena);
1210
+ cloned->CopyFrom(*value);
1211
+ return ParsedJsonListValue(cloned, arena);
1212
+ }
1213
+ return ParsedJsonListValue(value.release(), arena);
1214
+ }),
1215
+ well_known_types::AsVariant(std::move(value)));
1216
+ }
1217
+
1218
+ Value operator()(well_known_types::Struct&& value) const {
1219
+ return absl::visit(
1220
+ absl::Overload(
1221
+ [&](well_known_types::StructConstRef value) -> MapValue {
1222
+ auto* cloned = value.get().New(arena);
1223
+ cloned->CopyFrom(value.get());
1224
+ return ParsedJsonMapValue(cloned, arena);
1225
+ },
1226
+ [&](well_known_types::StructPtr value) -> MapValue {
1227
+ if (value.arena() != arena) {
1228
+ auto* cloned = value->New(arena);
1229
+ cloned->CopyFrom(*value);
1230
+ return ParsedJsonMapValue(cloned, arena);
1231
+ }
1232
+ return ParsedJsonMapValue(value.release(), arena);
1233
+ }),
1234
+ well_known_types::AsVariant(std::move(value)));
1235
+ }
1236
+
1237
+ Value operator()(Unique<google::protobuf::Message> value) const {
1238
+ if (value->GetArena() != arena) {
1239
+ auto* cloned = value->New(arena);
1240
+ cloned->CopyFrom(*value);
1241
+ return ParsedMessageValue(cloned, arena);
1242
+ }
1243
+ return ParsedMessageValue(value.release(), arena);
1244
+ }
1245
+
1246
+ template <typename T>
1247
+ Value operator()(T t) const {
1248
+ return VistWellKnownTypeValue(t);
1249
+ }
1250
+ };
1251
+
1252
+ struct BorrowingWellKnownTypesValueVisitor {
1253
+ const google::protobuf::Message* absl_nonnull message;
1254
+ google::protobuf::Arena* absl_nonnull arena;
1255
+ std::string* absl_nonnull scratch;
1256
+
1257
+ Value operator()(well_known_types::BytesValue&& value) const {
1258
+ return absl::visit(
1259
+ absl::Overload(
1260
+ [&](absl::string_view string) -> BytesValue {
1261
+ if (string.data() == scratch->data() &&
1262
+ string.size() == scratch->size()) {
1263
+ return BytesValue(arena, std::move(*scratch));
1264
+ } else {
1265
+ return BytesValue(
1266
+ Borrower::Arena(MessageArenaOr(message, arena)), string);
1267
+ }
1268
+ },
1269
+ [&](absl::Cord&& cord) -> BytesValue {
1270
+ return BytesValue(std::move(cord));
1271
+ }),
1272
+ well_known_types::AsVariant(std::move(value)));
1273
+ }
1274
+
1275
+ Value operator()(well_known_types::StringValue&& value) const {
1276
+ return absl::visit(
1277
+ absl::Overload(
1278
+ [&](absl::string_view string) -> StringValue {
1279
+ if (string.data() == scratch->data() &&
1280
+ string.size() == scratch->size()) {
1281
+ return StringValue(arena, std::move(*scratch));
1282
+ } else {
1283
+ return StringValue(
1284
+ Borrower::Arena(MessageArenaOr(message, arena)), string);
1285
+ }
1286
+ },
1287
+ [&](absl::Cord&& cord) -> StringValue {
1288
+ return StringValue(std::move(cord));
1289
+ }),
1290
+ well_known_types::AsVariant(std::move(value)));
1291
+ }
1292
+
1293
+ Value operator()(well_known_types::ListValue&& value) const {
1294
+ return absl::visit(
1295
+ absl::Overload(
1296
+ [&](well_known_types::ListValueConstRef value)
1297
+ -> ParsedJsonListValue {
1298
+ return ParsedJsonListValue(&value.get(),
1299
+ MessageArenaOr(&value.get(), arena));
1300
+ },
1301
+ [&](well_known_types::ListValuePtr value) -> ParsedJsonListValue {
1302
+ if (value->GetArena() != arena) {
1303
+ auto* cloned = value->New(arena);
1304
+ cloned->CopyFrom(*value);
1305
+ return ParsedJsonListValue(cloned, arena);
1306
+ }
1307
+ return ParsedJsonListValue(value.release(), arena);
1308
+ }),
1309
+ well_known_types::AsVariant(std::move(value)));
1310
+ }
1311
+
1312
+ Value operator()(well_known_types::Struct&& value) const {
1313
+ return absl::visit(
1314
+ absl::Overload(
1315
+ [&](well_known_types::StructConstRef value) -> ParsedJsonMapValue {
1316
+ return ParsedJsonMapValue(&value.get(),
1317
+ MessageArenaOr(&value.get(), arena));
1318
+ },
1319
+ [&](well_known_types::StructPtr value) -> ParsedJsonMapValue {
1320
+ if (value->GetArena() != arena) {
1321
+ auto* cloned = value->New(arena);
1322
+ cloned->CopyFrom(*value);
1323
+ return ParsedJsonMapValue(cloned, arena);
1324
+ }
1325
+ return ParsedJsonMapValue(value.release(), arena);
1326
+ }),
1327
+ well_known_types::AsVariant(std::move(value)));
1328
+ }
1329
+
1330
+ Value operator()(Unique<google::protobuf::Message>&& value) const {
1331
+ if (value->GetArena() != arena) {
1332
+ auto* cloned = value->New(arena);
1333
+ cloned->CopyFrom(*value);
1334
+ return ParsedMessageValue(cloned, arena);
1335
+ }
1336
+ return ParsedMessageValue(value.release(), arena);
1337
+ }
1338
+
1339
+ template <typename T>
1340
+ Value operator()(T t) const {
1341
+ return VistWellKnownTypeValue(t);
1342
+ }
1343
+ };
1344
+
1345
+ } // namespace
1346
+
1347
+ Value Value::FromMessage(
1348
+ const google::protobuf::Message& message,
1349
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool
1350
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1351
+ google::protobuf::MessageFactory* absl_nonnull message_factory
1352
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1353
+ google::protobuf::Arena* absl_nonnull arena ABSL_ATTRIBUTE_LIFETIME_BOUND) {
1354
+ ABSL_DCHECK(descriptor_pool != nullptr);
1355
+ ABSL_DCHECK(message_factory != nullptr);
1356
+ ABSL_DCHECK(arena != nullptr);
1357
+
1358
+ std::string scratch;
1359
+ auto status_or_adapted = well_known_types::AdaptFromMessage(
1360
+ arena, message, descriptor_pool, message_factory, scratch);
1361
+ if (ABSL_PREDICT_FALSE(!status_or_adapted.ok())) {
1362
+ return ErrorValue(std::move(status_or_adapted).status());
1363
+ }
1364
+ return absl::visit(
1365
+ absl::Overload(OwningWellKnownTypesValueVisitor{
1366
+ /* .arena = */ arena, /* .scratch = */ &scratch},
1367
+ [&](std::monostate) -> Value {
1368
+ auto* cloned = message.New(arena);
1369
+ cloned->CopyFrom(message);
1370
+ return ParsedMessageValue(cloned, arena);
1371
+ }),
1372
+ std::move(status_or_adapted).value());
1373
+ }
1374
+
1375
+ Value Value::FromMessage(
1376
+ google::protobuf::Message&& message,
1377
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool
1378
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1379
+ google::protobuf::MessageFactory* absl_nonnull message_factory
1380
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1381
+ google::protobuf::Arena* absl_nonnull arena ABSL_ATTRIBUTE_LIFETIME_BOUND) {
1382
+ ABSL_DCHECK(descriptor_pool != nullptr);
1383
+ ABSL_DCHECK(message_factory != nullptr);
1384
+ ABSL_DCHECK(arena != nullptr);
1385
+
1386
+ std::string scratch;
1387
+ auto status_or_adapted = well_known_types::AdaptFromMessage(
1388
+ arena, message, descriptor_pool, message_factory, scratch);
1389
+ if (ABSL_PREDICT_FALSE(!status_or_adapted.ok())) {
1390
+ return ErrorValue(std::move(status_or_adapted).status());
1391
+ }
1392
+ return absl::visit(
1393
+ absl::Overload(OwningWellKnownTypesValueVisitor{
1394
+ /* .arena = */ arena, /* .scratch = */ &scratch},
1395
+ [&](std::monostate) -> Value {
1396
+ auto* cloned = message.New(arena);
1397
+ cloned->GetReflection()->Swap(cloned, &message);
1398
+ return ParsedMessageValue(cloned, arena);
1399
+ }),
1400
+ std::move(status_or_adapted).value());
1401
+ }
1402
+
1403
+ Value Value::WrapMessage(
1404
+ const google::protobuf::Message* absl_nonnull message ABSL_ATTRIBUTE_LIFETIME_BOUND,
1405
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool
1406
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1407
+ google::protobuf::MessageFactory* absl_nonnull message_factory
1408
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1409
+ google::protobuf::Arena* absl_nonnull arena ABSL_ATTRIBUTE_LIFETIME_BOUND) {
1410
+ ABSL_DCHECK(message != nullptr);
1411
+ ABSL_DCHECK(descriptor_pool != nullptr);
1412
+ ABSL_DCHECK(message_factory != nullptr);
1413
+ ABSL_DCHECK(arena != nullptr);
1414
+
1415
+ std::string scratch;
1416
+ absl::StatusOr<well_known_types::Value> adapted_value =
1417
+ well_known_types::AdaptFromMessage(arena, *message, descriptor_pool,
1418
+ message_factory, scratch);
1419
+ if (ABSL_PREDICT_FALSE(!adapted_value.ok())) {
1420
+ return ErrorValue(std::move(adapted_value).status());
1421
+ }
1422
+ return absl::visit(
1423
+ absl::Overload(BorrowingWellKnownTypesValueVisitor{
1424
+ /* .message = */ message, /* .arena = */ arena,
1425
+ /* .scratch = */ &scratch},
1426
+ [&](std::monostate) -> Value {
1427
+ if (message->GetArena() != arena) {
1428
+ auto* cloned = message->New(arena);
1429
+ cloned->CopyFrom(*message);
1430
+ return ParsedMessageValue(cloned, arena);
1431
+ }
1432
+ return ParsedMessageValue(message, arena);
1433
+ }),
1434
+ std::move(adapted_value).value());
1435
+ }
1436
+
1437
+ Value Value::WrapMessageUnsafe(
1438
+ const google::protobuf::Message* absl_nonnull message ABSL_ATTRIBUTE_LIFETIME_BOUND,
1439
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool
1440
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1441
+ google::protobuf::MessageFactory* absl_nonnull message_factory
1442
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1443
+ google::protobuf::Arena* absl_nonnull arena ABSL_ATTRIBUTE_LIFETIME_BOUND) {
1444
+ ABSL_DCHECK(message != nullptr);
1445
+ ABSL_DCHECK(descriptor_pool != nullptr);
1446
+ ABSL_DCHECK(message_factory != nullptr);
1447
+ ABSL_DCHECK(arena != nullptr);
1448
+
1449
+ std::string scratch;
1450
+ absl::StatusOr<well_known_types::Value> adapted_value =
1451
+ well_known_types::AdaptFromMessage(arena, *message, descriptor_pool,
1452
+ message_factory, scratch);
1453
+ if (ABSL_PREDICT_FALSE(!adapted_value.ok())) {
1454
+ return ErrorValue(std::move(adapted_value).status());
1455
+ }
1456
+ return absl::visit(
1457
+ absl::Overload(BorrowingWellKnownTypesValueVisitor{
1458
+ /* .message = */ message, /* .arena = */ arena,
1459
+ /* .scratch = */ &scratch},
1460
+ [&](std::monostate) -> Value {
1461
+ if (message->GetArena() != arena) {
1462
+ return UnsafeParsedMessageValue(message);
1463
+ }
1464
+ return ParsedMessageValue(message, arena);
1465
+ }),
1466
+ std::move(adapted_value).value());
1467
+ }
1468
+
1469
+ namespace {
1470
+
1471
+ bool IsWellKnownMessageWrapperType(
1472
+ const google::protobuf::Descriptor* absl_nonnull descriptor) {
1473
+ switch (descriptor->well_known_type()) {
1474
+ case google::protobuf::Descriptor::WELLKNOWNTYPE_BOOLVALUE:
1475
+ ABSL_FALLTHROUGH_INTENDED;
1476
+ case google::protobuf::Descriptor::WELLKNOWNTYPE_INT32VALUE:
1477
+ ABSL_FALLTHROUGH_INTENDED;
1478
+ case google::protobuf::Descriptor::WELLKNOWNTYPE_INT64VALUE:
1479
+ ABSL_FALLTHROUGH_INTENDED;
1480
+ case google::protobuf::Descriptor::WELLKNOWNTYPE_UINT32VALUE:
1481
+ ABSL_FALLTHROUGH_INTENDED;
1482
+ case google::protobuf::Descriptor::WELLKNOWNTYPE_UINT64VALUE:
1483
+ ABSL_FALLTHROUGH_INTENDED;
1484
+ case google::protobuf::Descriptor::WELLKNOWNTYPE_FLOATVALUE:
1485
+ ABSL_FALLTHROUGH_INTENDED;
1486
+ case google::protobuf::Descriptor::WELLKNOWNTYPE_DOUBLEVALUE:
1487
+ ABSL_FALLTHROUGH_INTENDED;
1488
+ case google::protobuf::Descriptor::WELLKNOWNTYPE_BYTESVALUE:
1489
+ ABSL_FALLTHROUGH_INTENDED;
1490
+ case google::protobuf::Descriptor::WELLKNOWNTYPE_STRINGVALUE:
1491
+ return true;
1492
+ default:
1493
+ return false;
1494
+ }
1495
+ }
1496
+
1497
+ template <typename Unsafe>
1498
+ Value WrapFieldImpl(
1499
+ ProtoWrapperTypeOptions wrapper_type_options,
1500
+ const google::protobuf::Message* absl_nonnull message ABSL_ATTRIBUTE_LIFETIME_BOUND,
1501
+ const google::protobuf::FieldDescriptor* absl_nonnull field
1502
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1503
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool
1504
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1505
+ google::protobuf::MessageFactory* absl_nonnull message_factory
1506
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1507
+ google::protobuf::Arena* absl_nonnull arena ABSL_ATTRIBUTE_LIFETIME_BOUND) {
1508
+ ABSL_DCHECK(field != nullptr);
1509
+ ABSL_DCHECK_EQ(message->GetDescriptor(), field->containing_type());
1510
+ ABSL_DCHECK(descriptor_pool != nullptr);
1511
+ ABSL_DCHECK(message_factory != nullptr);
1512
+ ABSL_DCHECK(!IsWellKnownMessageType(message->GetDescriptor()));
1513
+
1514
+ const auto* reflection = message->GetReflection();
1515
+ if (field->is_map()) {
1516
+ if (reflection->FieldSize(*message, field) == 0) {
1517
+ return MapValue();
1518
+ }
1519
+ if constexpr (Unsafe::value) {
1520
+ return UnsafeParsedMapFieldValue(message, field);
1521
+ } else {
1522
+ return ParsedMapFieldValue(message, field,
1523
+ MessageArenaOr(message, arena));
1524
+ }
1525
+ }
1526
+ if (field->is_repeated()) {
1527
+ if (reflection->FieldSize(*message, field) == 0) {
1528
+ return ListValue();
1529
+ }
1530
+ if constexpr (Unsafe::value) {
1531
+ return UnsafeParsedRepeatedFieldValue(message, field);
1532
+ } else {
1533
+ return ParsedRepeatedFieldValue(message, field,
1534
+ MessageArenaOr(message, arena));
1535
+ }
1536
+ }
1537
+ switch (field->type()) {
1538
+ case google::protobuf::FieldDescriptor::TYPE_DOUBLE:
1539
+ return DoubleValue(reflection->GetDouble(*message, field));
1540
+ case google::protobuf::FieldDescriptor::TYPE_FLOAT:
1541
+ return DoubleValue(reflection->GetFloat(*message, field));
1542
+ case google::protobuf::FieldDescriptor::TYPE_INT64:
1543
+ return IntValue(reflection->GetInt64(*message, field));
1544
+ case google::protobuf::FieldDescriptor::TYPE_UINT64:
1545
+ return UintValue(reflection->GetUInt64(*message, field));
1546
+ case google::protobuf::FieldDescriptor::TYPE_INT32:
1547
+ return IntValue(reflection->GetInt32(*message, field));
1548
+ case google::protobuf::FieldDescriptor::TYPE_FIXED64:
1549
+ return UintValue(reflection->GetUInt64(*message, field));
1550
+ case google::protobuf::FieldDescriptor::TYPE_FIXED32:
1551
+ return UintValue(reflection->GetUInt32(*message, field));
1552
+ case google::protobuf::FieldDescriptor::TYPE_BOOL:
1553
+ return BoolValue(reflection->GetBool(*message, field));
1554
+ case google::protobuf::FieldDescriptor::TYPE_STRING: {
1555
+ std::string scratch;
1556
+ return absl::visit(
1557
+ absl::Overload(
1558
+ [&](absl::string_view string) -> StringValue {
1559
+ if (string.data() == scratch.data() &&
1560
+ string.size() == scratch.size()) {
1561
+ return StringValue(arena, std::move(scratch));
1562
+ }
1563
+ if constexpr (Unsafe::value) {
1564
+ return StringValue::WrapUnsafe(string);
1565
+ } else {
1566
+ return StringValue(
1567
+ Borrower::Arena(MessageArenaOr(message, arena)), string);
1568
+ }
1569
+ },
1570
+ [&](absl::Cord&& cord) -> StringValue {
1571
+ return StringValue(std::move(cord));
1572
+ }),
1573
+ well_known_types::AsVariant(
1574
+ well_known_types::GetStringField(*message, field, scratch)));
1575
+ }
1576
+ case google::protobuf::FieldDescriptor::TYPE_GROUP:
1577
+ ABSL_FALLTHROUGH_INTENDED;
1578
+ case google::protobuf::FieldDescriptor::TYPE_MESSAGE:
1579
+ if (wrapper_type_options == ProtoWrapperTypeOptions::kUnsetNull &&
1580
+ IsWellKnownMessageWrapperType(field->message_type()) &&
1581
+ !reflection->HasField(*message, field)) {
1582
+ return NullValue();
1583
+ }
1584
+ if constexpr (Unsafe::value) {
1585
+ return Value::WrapMessageUnsafe(
1586
+ &reflection->GetMessage(*message, field), descriptor_pool,
1587
+ message_factory, arena);
1588
+ } else {
1589
+ return Value::WrapMessage(&reflection->GetMessage(*message, field),
1590
+ descriptor_pool, message_factory, arena);
1591
+ }
1592
+ case google::protobuf::FieldDescriptor::TYPE_BYTES: {
1593
+ std::string scratch;
1594
+ return absl::visit(
1595
+ absl::Overload(
1596
+ [&](absl::string_view string) -> BytesValue {
1597
+ if (string.data() == scratch.data() &&
1598
+ string.size() == scratch.size()) {
1599
+ return BytesValue(arena, std::move(scratch));
1600
+ }
1601
+ if constexpr (Unsafe::value) {
1602
+ return BytesValue::WrapUnsafe(string);
1603
+ } else {
1604
+ return BytesValue(
1605
+ Borrower::Arena(MessageArenaOr(message, arena)), string);
1606
+ }
1607
+ },
1608
+ [&](absl::Cord&& cord) -> BytesValue {
1609
+ return BytesValue(std::move(cord));
1610
+ }),
1611
+ well_known_types::AsVariant(
1612
+ well_known_types::GetBytesField(*message, field, scratch)));
1613
+ }
1614
+ case google::protobuf::FieldDescriptor::TYPE_UINT32:
1615
+ return UintValue(reflection->GetUInt32(*message, field));
1616
+ case google::protobuf::FieldDescriptor::TYPE_ENUM:
1617
+ return Value::Enum(field->enum_type(),
1618
+ reflection->GetEnumValue(*message, field));
1619
+ case google::protobuf::FieldDescriptor::TYPE_SFIXED32:
1620
+ return IntValue(reflection->GetInt32(*message, field));
1621
+ case google::protobuf::FieldDescriptor::TYPE_SFIXED64:
1622
+ return IntValue(reflection->GetInt64(*message, field));
1623
+ case google::protobuf::FieldDescriptor::TYPE_SINT32:
1624
+ return IntValue(reflection->GetInt32(*message, field));
1625
+ case google::protobuf::FieldDescriptor::TYPE_SINT64:
1626
+ return IntValue(reflection->GetInt64(*message, field));
1627
+ default:
1628
+ return ErrorValue(absl::InvalidArgumentError(
1629
+ absl::StrCat("unexpected protocol buffer message field type: ",
1630
+ field->type_name())));
1631
+ }
1632
+ }
1633
+
1634
+ template <typename Unsafe>
1635
+ Value WrapRepeatedFieldImpl(
1636
+ int index,
1637
+ const google::protobuf::Message* absl_nonnull message ABSL_ATTRIBUTE_LIFETIME_BOUND,
1638
+ const google::protobuf::FieldDescriptor* absl_nonnull field
1639
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1640
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool
1641
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1642
+ google::protobuf::MessageFactory* absl_nonnull message_factory
1643
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1644
+ google::protobuf::Arena* absl_nonnull arena ABSL_ATTRIBUTE_LIFETIME_BOUND) {
1645
+ ABSL_DCHECK(field != nullptr);
1646
+ ABSL_DCHECK_EQ(field->containing_type(), message->GetDescriptor());
1647
+ ABSL_DCHECK(!field->is_map() && field->is_repeated());
1648
+ ABSL_DCHECK_GE(index, 0);
1649
+ ABSL_DCHECK(message != nullptr);
1650
+ ABSL_DCHECK(descriptor_pool != nullptr);
1651
+ ABSL_DCHECK(message_factory != nullptr);
1652
+ ABSL_DCHECK(arena != nullptr);
1653
+
1654
+ const auto* reflection = message->GetReflection();
1655
+ const int size = reflection->FieldSize(*message, field);
1656
+ if (ABSL_PREDICT_FALSE(index < 0 || index >= size)) {
1657
+ return ErrorValue(absl::InvalidArgumentError(
1658
+ absl::StrCat("index out of bounds: ", index)));
1659
+ }
1660
+ switch (field->type()) {
1661
+ case google::protobuf::FieldDescriptor::TYPE_DOUBLE:
1662
+ return DoubleValue(reflection->GetRepeatedDouble(*message, field, index));
1663
+ case google::protobuf::FieldDescriptor::TYPE_FLOAT:
1664
+ return DoubleValue(reflection->GetRepeatedFloat(*message, field, index));
1665
+ case google::protobuf::FieldDescriptor::TYPE_SFIXED64:
1666
+ ABSL_FALLTHROUGH_INTENDED;
1667
+ case google::protobuf::FieldDescriptor::TYPE_SINT64:
1668
+ ABSL_FALLTHROUGH_INTENDED;
1669
+ case google::protobuf::FieldDescriptor::TYPE_INT64:
1670
+ return IntValue(reflection->GetRepeatedInt64(*message, field, index));
1671
+ case google::protobuf::FieldDescriptor::TYPE_FIXED64:
1672
+ ABSL_FALLTHROUGH_INTENDED;
1673
+ case google::protobuf::FieldDescriptor::TYPE_UINT64:
1674
+ return UintValue(reflection->GetRepeatedUInt64(*message, field, index));
1675
+ case google::protobuf::FieldDescriptor::TYPE_SFIXED32:
1676
+ ABSL_FALLTHROUGH_INTENDED;
1677
+ case google::protobuf::FieldDescriptor::TYPE_SINT32:
1678
+ ABSL_FALLTHROUGH_INTENDED;
1679
+ case google::protobuf::FieldDescriptor::TYPE_INT32:
1680
+ return IntValue(reflection->GetRepeatedInt32(*message, field, index));
1681
+ case google::protobuf::FieldDescriptor::TYPE_BOOL:
1682
+ return BoolValue(reflection->GetRepeatedBool(*message, field, index));
1683
+ case google::protobuf::FieldDescriptor::TYPE_STRING: {
1684
+ std::string scratch;
1685
+ return absl::visit(
1686
+ absl::Overload(
1687
+ [&](absl::string_view string) -> StringValue {
1688
+ if (string.data() == scratch.data() &&
1689
+ string.size() == scratch.size()) {
1690
+ return StringValue(arena, std::move(scratch));
1691
+ }
1692
+ if constexpr (Unsafe::value) {
1693
+ return StringValue::WrapUnsafe(string);
1694
+ } else {
1695
+ return StringValue(
1696
+ Borrower::Arena(MessageArenaOr(message, arena)), string);
1697
+ }
1698
+ },
1699
+ [&](absl::Cord&& cord) -> StringValue {
1700
+ return StringValue(std::move(cord));
1701
+ }),
1702
+ well_known_types::AsVariant(well_known_types::GetRepeatedStringField(
1703
+ reflection, *message, field, index, scratch)));
1704
+ }
1705
+ case google::protobuf::FieldDescriptor::TYPE_GROUP:
1706
+ ABSL_FALLTHROUGH_INTENDED;
1707
+ case google::protobuf::FieldDescriptor::TYPE_MESSAGE:
1708
+ if constexpr (Unsafe::value) {
1709
+ return Value::WrapMessageUnsafe(
1710
+ &reflection->GetRepeatedMessage(*message, field, index),
1711
+ descriptor_pool, message_factory, arena);
1712
+ } else {
1713
+ return Value::WrapMessage(
1714
+ &reflection->GetRepeatedMessage(*message, field, index),
1715
+ descriptor_pool, message_factory, arena);
1716
+ }
1717
+ case google::protobuf::FieldDescriptor::TYPE_BYTES: {
1718
+ std::string scratch;
1719
+ return absl::visit(
1720
+ absl::Overload(
1721
+ [&](absl::string_view string) -> BytesValue {
1722
+ if (string.data() == scratch.data() &&
1723
+ string.size() == scratch.size()) {
1724
+ return BytesValue(arena, std::move(scratch));
1725
+ }
1726
+ if constexpr (Unsafe::value) {
1727
+ return BytesValue::WrapUnsafe(string);
1728
+ } else {
1729
+ return BytesValue(
1730
+ Borrower::Arena(MessageArenaOr(message, arena)), string);
1731
+ }
1732
+ },
1733
+ [&](absl::Cord&& cord) -> BytesValue {
1734
+ return BytesValue(std::move(cord));
1735
+ }),
1736
+ well_known_types::AsVariant(well_known_types::GetRepeatedBytesField(
1737
+ reflection, *message, field, index, scratch)));
1738
+ }
1739
+ case google::protobuf::FieldDescriptor::TYPE_FIXED32:
1740
+ ABSL_FALLTHROUGH_INTENDED;
1741
+ case google::protobuf::FieldDescriptor::TYPE_UINT32:
1742
+ return UintValue(reflection->GetRepeatedUInt32(*message, field, index));
1743
+ case google::protobuf::FieldDescriptor::TYPE_ENUM:
1744
+ return Value::Enum(field->enum_type(), reflection->GetRepeatedEnumValue(
1745
+ *message, field, index));
1746
+ default:
1747
+ return ErrorValue(absl::InvalidArgumentError(
1748
+ absl::StrCat("unexpected message field type: ", field->type_name())));
1749
+ }
1750
+ }
1751
+
1752
+ template <typename Unsafe>
1753
+ Value WrapMapFieldValueImpl(
1754
+ const google::protobuf::MapValueConstRef& value,
1755
+ const google::protobuf::Message* absl_nonnull message ABSL_ATTRIBUTE_LIFETIME_BOUND,
1756
+ const google::protobuf::FieldDescriptor* absl_nonnull field
1757
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1758
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool
1759
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1760
+ google::protobuf::MessageFactory* absl_nonnull message_factory
1761
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1762
+ google::protobuf::Arena* absl_nonnull arena ABSL_ATTRIBUTE_LIFETIME_BOUND) {
1763
+ ABSL_DCHECK(field != nullptr);
1764
+ ABSL_DCHECK_EQ(field->containing_type()->containing_type(),
1765
+ message->GetDescriptor());
1766
+ ABSL_DCHECK(!field->is_map() && !field->is_repeated());
1767
+ ABSL_DCHECK_EQ(value.type(), field->cpp_type());
1768
+ ABSL_DCHECK(message != nullptr);
1769
+ ABSL_DCHECK(descriptor_pool != nullptr);
1770
+ ABSL_DCHECK(message_factory != nullptr);
1771
+ ABSL_DCHECK(arena != nullptr);
1772
+
1773
+ switch (field->type()) {
1774
+ case google::protobuf::FieldDescriptor::TYPE_DOUBLE:
1775
+ return DoubleValue(value.GetDoubleValue());
1776
+ case google::protobuf::FieldDescriptor::TYPE_FLOAT:
1777
+ return DoubleValue(value.GetFloatValue());
1778
+ case google::protobuf::FieldDescriptor::TYPE_SFIXED64:
1779
+ ABSL_FALLTHROUGH_INTENDED;
1780
+ case google::protobuf::FieldDescriptor::TYPE_SINT64:
1781
+ ABSL_FALLTHROUGH_INTENDED;
1782
+ case google::protobuf::FieldDescriptor::TYPE_INT64:
1783
+ return IntValue(value.GetInt64Value());
1784
+ case google::protobuf::FieldDescriptor::TYPE_FIXED64:
1785
+ ABSL_FALLTHROUGH_INTENDED;
1786
+ case google::protobuf::FieldDescriptor::TYPE_UINT64:
1787
+ return UintValue(value.GetUInt64Value());
1788
+ case google::protobuf::FieldDescriptor::TYPE_SFIXED32:
1789
+ ABSL_FALLTHROUGH_INTENDED;
1790
+ case google::protobuf::FieldDescriptor::TYPE_SINT32:
1791
+ ABSL_FALLTHROUGH_INTENDED;
1792
+ case google::protobuf::FieldDescriptor::TYPE_INT32:
1793
+ return IntValue(value.GetInt32Value());
1794
+ case google::protobuf::FieldDescriptor::TYPE_BOOL:
1795
+ return BoolValue(value.GetBoolValue());
1796
+ case google::protobuf::FieldDescriptor::TYPE_STRING:
1797
+ if constexpr (Unsafe::value) {
1798
+ return StringValue::WrapUnsafe(value.GetStringValue());
1799
+ } else {
1800
+ return StringValue(Borrower::Arena(MessageArenaOr(message, arena)),
1801
+ value.GetStringValue());
1802
+ }
1803
+ case google::protobuf::FieldDescriptor::TYPE_GROUP:
1804
+ ABSL_FALLTHROUGH_INTENDED;
1805
+ case google::protobuf::FieldDescriptor::TYPE_MESSAGE:
1806
+ if constexpr (Unsafe::value) {
1807
+ return Value::WrapMessageUnsafe(
1808
+ &value.GetMessageValue(), descriptor_pool, message_factory, arena);
1809
+ } else {
1810
+ return Value::WrapMessage(&value.GetMessageValue(), descriptor_pool,
1811
+ message_factory, arena);
1812
+ }
1813
+ case google::protobuf::FieldDescriptor::TYPE_BYTES:
1814
+ if constexpr (Unsafe::value) {
1815
+ return BytesValue::WrapUnsafe(value.GetStringValue());
1816
+ } else {
1817
+ return BytesValue(Borrower::Arena(MessageArenaOr(message, arena)),
1818
+ value.GetStringValue());
1819
+ }
1820
+ case google::protobuf::FieldDescriptor::TYPE_FIXED32:
1821
+ ABSL_FALLTHROUGH_INTENDED;
1822
+ case google::protobuf::FieldDescriptor::TYPE_UINT32:
1823
+ return UintValue(value.GetUInt32Value());
1824
+ case google::protobuf::FieldDescriptor::TYPE_ENUM:
1825
+ return Value::Enum(field->enum_type(), value.GetEnumValue());
1826
+ default:
1827
+ return ErrorValue(absl::InvalidArgumentError(
1828
+ absl::StrCat("unexpected message field type: ", field->type_name())));
1829
+ }
1830
+ }
1831
+
1832
+ } // namespace
1833
+
1834
+ Value Value::WrapField(
1835
+ ProtoWrapperTypeOptions wrapper_type_options,
1836
+ const google::protobuf::Message* absl_nonnull message ABSL_ATTRIBUTE_LIFETIME_BOUND,
1837
+ const google::protobuf::FieldDescriptor* absl_nonnull field
1838
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1839
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool
1840
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1841
+ google::protobuf::MessageFactory* absl_nonnull message_factory
1842
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1843
+ google::protobuf::Arena* absl_nonnull arena ABSL_ATTRIBUTE_LIFETIME_BOUND) {
1844
+ using Unsafe = std::false_type;
1845
+ return WrapFieldImpl<Unsafe>(wrapper_type_options, message, field,
1846
+ descriptor_pool, message_factory, arena);
1847
+ }
1848
+
1849
+ Value Value::WrapFieldUnsafe(
1850
+ ProtoWrapperTypeOptions wrapper_type_options,
1851
+ const google::protobuf::Message* absl_nonnull message ABSL_ATTRIBUTE_LIFETIME_BOUND,
1852
+ const google::protobuf::FieldDescriptor* absl_nonnull field
1853
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1854
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool
1855
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1856
+ google::protobuf::MessageFactory* absl_nonnull message_factory
1857
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1858
+ google::protobuf::Arena* absl_nonnull arena ABSL_ATTRIBUTE_LIFETIME_BOUND) {
1859
+ using Unsafe = std::true_type;
1860
+ return WrapFieldImpl<Unsafe>(wrapper_type_options, message, field,
1861
+ descriptor_pool, message_factory, arena);
1862
+ }
1863
+
1864
+ Value Value::WrapRepeatedField(
1865
+ int index,
1866
+ const google::protobuf::Message* absl_nonnull message ABSL_ATTRIBUTE_LIFETIME_BOUND,
1867
+ const google::protobuf::FieldDescriptor* absl_nonnull field
1868
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1869
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool
1870
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1871
+ google::protobuf::MessageFactory* absl_nonnull message_factory
1872
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1873
+ google::protobuf::Arena* absl_nonnull arena ABSL_ATTRIBUTE_LIFETIME_BOUND) {
1874
+ using Unsafe = std::false_type;
1875
+ return WrapRepeatedFieldImpl<Unsafe>(index, message, field, descriptor_pool,
1876
+ message_factory, arena);
1877
+ }
1878
+
1879
+ Value Value::WrapRepeatedFieldUnsafe(
1880
+ int index,
1881
+ const google::protobuf::Message* absl_nonnull message ABSL_ATTRIBUTE_LIFETIME_BOUND,
1882
+ const google::protobuf::FieldDescriptor* absl_nonnull field
1883
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1884
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool
1885
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1886
+ google::protobuf::MessageFactory* absl_nonnull message_factory
1887
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1888
+ google::protobuf::Arena* absl_nonnull arena ABSL_ATTRIBUTE_LIFETIME_BOUND) {
1889
+ using Unsafe = std::true_type;
1890
+ return WrapRepeatedFieldImpl<Unsafe>(index, message, field, descriptor_pool,
1891
+ message_factory, arena);
1892
+ }
1893
+
1894
+ StringValue Value::WrapMapFieldKeyString(
1895
+ const google::protobuf::MapKey& key,
1896
+ const google::protobuf::Message* absl_nonnull message ABSL_ATTRIBUTE_LIFETIME_BOUND,
1897
+ google::protobuf::Arena* absl_nonnull arena ABSL_ATTRIBUTE_LIFETIME_BOUND) {
1898
+ ABSL_DCHECK(message != nullptr);
1899
+ ABSL_DCHECK(arena != nullptr);
1900
+ ABSL_DCHECK_EQ(key.type(), google::protobuf::FieldDescriptor::CPPTYPE_STRING);
1901
+
1902
+ #if CEL_INTERNAL_PROTOBUF_OSS_VERSION_PREREQ(5, 30, 0)
1903
+ return StringValue(Borrower::Arena(MessageArenaOr(message, arena)),
1904
+ key.GetStringValue());
1905
+ #else
1906
+ return StringValue(arena, key.GetStringValue());
1907
+ #endif
1908
+ }
1909
+
1910
+ Value Value::WrapMapFieldValue(
1911
+ const google::protobuf::MapValueConstRef& value,
1912
+ const google::protobuf::Message* absl_nonnull message ABSL_ATTRIBUTE_LIFETIME_BOUND,
1913
+ const google::protobuf::FieldDescriptor* absl_nonnull field
1914
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1915
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool
1916
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1917
+ google::protobuf::MessageFactory* absl_nonnull message_factory
1918
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1919
+ google::protobuf::Arena* absl_nonnull arena ABSL_ATTRIBUTE_LIFETIME_BOUND) {
1920
+ using Unsafe = std::false_type;
1921
+ return WrapMapFieldValueImpl<Unsafe>(value, message, field, descriptor_pool,
1922
+ message_factory, arena);
1923
+ }
1924
+
1925
+ Value Value::WrapMapFieldValueUnsafe(
1926
+ const google::protobuf::MapValueConstRef& value,
1927
+ const google::protobuf::Message* absl_nonnull message ABSL_ATTRIBUTE_LIFETIME_BOUND,
1928
+ const google::protobuf::FieldDescriptor* absl_nonnull field
1929
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1930
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool
1931
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1932
+ google::protobuf::MessageFactory* absl_nonnull message_factory
1933
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
1934
+ google::protobuf::Arena* absl_nonnull arena ABSL_ATTRIBUTE_LIFETIME_BOUND) {
1935
+ using Unsafe = std::true_type;
1936
+ return WrapMapFieldValueImpl<Unsafe>(value, message, field, descriptor_pool,
1937
+ message_factory, arena);
1938
+ }
1939
+
1940
+ optional_ref<const BytesValue> Value::AsBytes() const& {
1941
+ if (const auto* alternative = variant_.As<BytesValue>();
1942
+ alternative != nullptr) {
1943
+ return *alternative;
1944
+ }
1945
+ return std::nullopt;
1946
+ }
1947
+
1948
+ absl::optional<BytesValue> Value::AsBytes() && {
1949
+ if (auto* alternative = variant_.As<BytesValue>(); alternative != nullptr) {
1950
+ return std::move(*alternative);
1951
+ }
1952
+ return std::nullopt;
1953
+ }
1954
+
1955
+ absl::optional<DoubleValue> Value::AsDouble() const {
1956
+ if (const auto* alternative = variant_.As<DoubleValue>();
1957
+ alternative != nullptr) {
1958
+ return *alternative;
1959
+ }
1960
+ return std::nullopt;
1961
+ }
1962
+
1963
+ absl::optional<DurationValue> Value::AsDuration() const {
1964
+ if (const auto* alternative = variant_.As<DurationValue>();
1965
+ alternative != nullptr) {
1966
+ return *alternative;
1967
+ }
1968
+ return std::nullopt;
1969
+ }
1970
+
1971
+ optional_ref<const ErrorValue> Value::AsError() const& {
1972
+ if (const auto* alternative = variant_.As<ErrorValue>();
1973
+ alternative != nullptr) {
1974
+ return *alternative;
1975
+ }
1976
+ return std::nullopt;
1977
+ }
1978
+
1979
+ absl::optional<ErrorValue> Value::AsError() && {
1980
+ if (auto* alternative = variant_.As<ErrorValue>(); alternative != nullptr) {
1981
+ return std::move(*alternative);
1982
+ }
1983
+ return std::nullopt;
1984
+ }
1985
+
1986
+ absl::optional<IntValue> Value::AsInt() const {
1987
+ if (const auto* alternative = variant_.As<IntValue>();
1988
+ alternative != nullptr) {
1989
+ return *alternative;
1990
+ }
1991
+ return std::nullopt;
1992
+ }
1993
+
1994
+ absl::optional<ListValue> Value::AsList() const& {
1995
+ if (const auto* alternative = variant_.As<common_internal::LegacyListValue>();
1996
+ alternative != nullptr) {
1997
+ return *alternative;
1998
+ }
1999
+ if (const auto* alternative = variant_.As<CustomListValue>();
2000
+ alternative != nullptr) {
2001
+ return *alternative;
2002
+ }
2003
+ if (const auto* alternative = variant_.As<ParsedRepeatedFieldValue>();
2004
+ alternative != nullptr) {
2005
+ return *alternative;
2006
+ }
2007
+ if (const auto* alternative = variant_.As<ParsedJsonListValue>();
2008
+ alternative != nullptr) {
2009
+ return *alternative;
2010
+ }
2011
+ return std::nullopt;
2012
+ }
2013
+
2014
+ absl::optional<ListValue> Value::AsList() && {
2015
+ if (auto* alternative = variant_.As<common_internal::LegacyListValue>();
2016
+ alternative != nullptr) {
2017
+ return std::move(*alternative);
2018
+ }
2019
+ if (auto* alternative = variant_.As<CustomListValue>();
2020
+ alternative != nullptr) {
2021
+ return std::move(*alternative);
2022
+ }
2023
+ if (auto* alternative = variant_.As<ParsedRepeatedFieldValue>();
2024
+ alternative != nullptr) {
2025
+ return std::move(*alternative);
2026
+ }
2027
+ if (auto* alternative = variant_.As<ParsedJsonListValue>();
2028
+ alternative != nullptr) {
2029
+ return std::move(*alternative);
2030
+ }
2031
+ return std::nullopt;
2032
+ }
2033
+
2034
+ absl::optional<MapValue> Value::AsMap() const& {
2035
+ if (const auto* alternative = variant_.As<common_internal::LegacyMapValue>();
2036
+ alternative != nullptr) {
2037
+ return *alternative;
2038
+ }
2039
+ if (const auto* alternative = variant_.As<CustomMapValue>();
2040
+ alternative != nullptr) {
2041
+ return *alternative;
2042
+ }
2043
+ if (const auto* alternative = variant_.As<ParsedMapFieldValue>();
2044
+ alternative != nullptr) {
2045
+ return *alternative;
2046
+ }
2047
+ if (const auto* alternative = variant_.As<ParsedJsonMapValue>();
2048
+ alternative != nullptr) {
2049
+ return *alternative;
2050
+ }
2051
+ return std::nullopt;
2052
+ }
2053
+
2054
+ absl::optional<MapValue> Value::AsMap() && {
2055
+ if (auto* alternative = variant_.As<common_internal::LegacyMapValue>();
2056
+ alternative != nullptr) {
2057
+ return std::move(*alternative);
2058
+ }
2059
+ if (auto* alternative = variant_.As<CustomMapValue>();
2060
+ alternative != nullptr) {
2061
+ return std::move(*alternative);
2062
+ }
2063
+ if (auto* alternative = variant_.As<ParsedMapFieldValue>();
2064
+ alternative != nullptr) {
2065
+ return std::move(*alternative);
2066
+ }
2067
+ if (auto* alternative = variant_.As<ParsedJsonMapValue>();
2068
+ alternative != nullptr) {
2069
+ return std::move(*alternative);
2070
+ }
2071
+ return std::nullopt;
2072
+ }
2073
+
2074
+ absl::optional<MessageValue> Value::AsMessage() const& {
2075
+ if (const auto* alternative = variant_.As<ParsedMessageValue>();
2076
+ alternative != nullptr) {
2077
+ return *alternative;
2078
+ }
2079
+ return std::nullopt;
2080
+ }
2081
+
2082
+ absl::optional<MessageValue> Value::AsMessage() && {
2083
+ if (auto* alternative = variant_.As<ParsedMessageValue>();
2084
+ alternative != nullptr) {
2085
+ return std::move(*alternative);
2086
+ }
2087
+ return std::nullopt;
2088
+ }
2089
+
2090
+ absl::optional<NullValue> Value::AsNull() const {
2091
+ if (const auto* alternative = variant_.As<NullValue>();
2092
+ alternative != nullptr) {
2093
+ return *alternative;
2094
+ }
2095
+ return std::nullopt;
2096
+ }
2097
+
2098
+ optional_ref<const OpaqueValue> Value::AsOpaque() const& {
2099
+ if (const auto* alternative = variant_.As<OpaqueValue>();
2100
+ alternative != nullptr) {
2101
+ return *alternative;
2102
+ }
2103
+ return std::nullopt;
2104
+ }
2105
+
2106
+ absl::optional<OpaqueValue> Value::AsOpaque() && {
2107
+ if (auto* alternative = variant_.As<OpaqueValue>(); alternative != nullptr) {
2108
+ return std::move(*alternative);
2109
+ }
2110
+ return std::nullopt;
2111
+ }
2112
+
2113
+ optional_ref<const OptionalValue> Value::AsOptional() const& {
2114
+ if (const auto* alternative = variant_.As<OpaqueValue>();
2115
+ alternative != nullptr && alternative->IsOptional()) {
2116
+ return static_cast<const OptionalValue&>(*alternative);
2117
+ }
2118
+ return std::nullopt;
2119
+ }
2120
+
2121
+ absl::optional<OptionalValue> Value::AsOptional() && {
2122
+ if (auto* alternative = variant_.As<OpaqueValue>();
2123
+ alternative != nullptr && alternative->IsOptional()) {
2124
+ return static_cast<OptionalValue&&>(*alternative);
2125
+ }
2126
+ return std::nullopt;
2127
+ }
2128
+
2129
+ optional_ref<const ParsedJsonListValue> Value::AsParsedJsonList() const& {
2130
+ if (const auto* alternative = variant_.As<ParsedJsonListValue>();
2131
+ alternative != nullptr) {
2132
+ return *alternative;
2133
+ }
2134
+ return std::nullopt;
2135
+ }
2136
+
2137
+ absl::optional<ParsedJsonListValue> Value::AsParsedJsonList() && {
2138
+ if (auto* alternative = variant_.As<ParsedJsonListValue>();
2139
+ alternative != nullptr) {
2140
+ return std::move(*alternative);
2141
+ }
2142
+ return std::nullopt;
2143
+ }
2144
+
2145
+ optional_ref<const ParsedJsonMapValue> Value::AsParsedJsonMap() const& {
2146
+ if (const auto* alternative = variant_.As<ParsedJsonMapValue>();
2147
+ alternative != nullptr) {
2148
+ return *alternative;
2149
+ }
2150
+ return std::nullopt;
2151
+ }
2152
+
2153
+ absl::optional<ParsedJsonMapValue> Value::AsParsedJsonMap() && {
2154
+ if (auto* alternative = variant_.As<ParsedJsonMapValue>();
2155
+ alternative != nullptr) {
2156
+ return std::move(*alternative);
2157
+ }
2158
+ return std::nullopt;
2159
+ }
2160
+
2161
+ optional_ref<const CustomListValue> Value::AsCustomList() const& {
2162
+ if (const auto* alternative = variant_.As<CustomListValue>();
2163
+ alternative != nullptr) {
2164
+ return *alternative;
2165
+ }
2166
+ return std::nullopt;
2167
+ }
2168
+
2169
+ absl::optional<CustomListValue> Value::AsCustomList() && {
2170
+ if (auto* alternative = variant_.As<CustomListValue>();
2171
+ alternative != nullptr) {
2172
+ return std::move(*alternative);
2173
+ }
2174
+ return std::nullopt;
2175
+ }
2176
+
2177
+ optional_ref<const CustomMapValue> Value::AsCustomMap() const& {
2178
+ if (const auto* alternative = variant_.As<CustomMapValue>();
2179
+ alternative != nullptr) {
2180
+ return *alternative;
2181
+ }
2182
+ return std::nullopt;
2183
+ }
2184
+
2185
+ absl::optional<CustomMapValue> Value::AsCustomMap() && {
2186
+ if (auto* alternative = variant_.As<CustomMapValue>();
2187
+ alternative != nullptr) {
2188
+ return std::move(*alternative);
2189
+ }
2190
+ return std::nullopt;
2191
+ }
2192
+
2193
+ optional_ref<const ParsedMapFieldValue> Value::AsParsedMapField() const& {
2194
+ if (const auto* alternative = variant_.As<ParsedMapFieldValue>();
2195
+ alternative != nullptr) {
2196
+ return *alternative;
2197
+ }
2198
+ return std::nullopt;
2199
+ }
2200
+
2201
+ absl::optional<ParsedMapFieldValue> Value::AsParsedMapField() && {
2202
+ if (auto* alternative = variant_.As<ParsedMapFieldValue>();
2203
+ alternative != nullptr) {
2204
+ return std::move(*alternative);
2205
+ }
2206
+ return std::nullopt;
2207
+ }
2208
+
2209
+ optional_ref<const ParsedMessageValue> Value::AsParsedMessage() const& {
2210
+ if (const auto* alternative = variant_.As<ParsedMessageValue>();
2211
+ alternative != nullptr) {
2212
+ return *alternative;
2213
+ }
2214
+ return std::nullopt;
2215
+ }
2216
+
2217
+ absl::optional<ParsedMessageValue> Value::AsParsedMessage() && {
2218
+ if (auto* alternative = variant_.As<ParsedMessageValue>();
2219
+ alternative != nullptr) {
2220
+ return std::move(*alternative);
2221
+ }
2222
+ return std::nullopt;
2223
+ }
2224
+
2225
+ optional_ref<const ParsedRepeatedFieldValue> Value::AsParsedRepeatedField()
2226
+ const& {
2227
+ if (const auto* alternative = variant_.As<ParsedRepeatedFieldValue>();
2228
+ alternative != nullptr) {
2229
+ return *alternative;
2230
+ }
2231
+ return std::nullopt;
2232
+ }
2233
+
2234
+ absl::optional<ParsedRepeatedFieldValue> Value::AsParsedRepeatedField() && {
2235
+ if (auto* alternative = variant_.As<ParsedRepeatedFieldValue>();
2236
+ alternative != nullptr) {
2237
+ return std::move(*alternative);
2238
+ }
2239
+ return std::nullopt;
2240
+ }
2241
+
2242
+ optional_ref<const CustomStructValue> Value::AsCustomStruct() const& {
2243
+ if (const auto* alternative = variant_.As<CustomStructValue>();
2244
+ alternative != nullptr) {
2245
+ return *alternative;
2246
+ }
2247
+ return std::nullopt;
2248
+ }
2249
+
2250
+ absl::optional<CustomStructValue> Value::AsCustomStruct() && {
2251
+ if (auto* alternative = variant_.As<CustomStructValue>();
2252
+ alternative != nullptr) {
2253
+ return std::move(*alternative);
2254
+ }
2255
+ return std::nullopt;
2256
+ }
2257
+
2258
+ optional_ref<const StringValue> Value::AsString() const& {
2259
+ if (const auto* alternative = variant_.As<StringValue>();
2260
+ alternative != nullptr) {
2261
+ return *alternative;
2262
+ }
2263
+ return std::nullopt;
2264
+ }
2265
+
2266
+ absl::optional<StringValue> Value::AsString() && {
2267
+ if (auto* alternative = variant_.As<StringValue>(); alternative != nullptr) {
2268
+ return std::move(*alternative);
2269
+ }
2270
+ return std::nullopt;
2271
+ }
2272
+
2273
+ absl::optional<StructValue> Value::AsStruct() const& {
2274
+ if (const auto* alternative =
2275
+ variant_.As<common_internal::LegacyStructValue>();
2276
+ alternative != nullptr) {
2277
+ return *alternative;
2278
+ }
2279
+ if (const auto* alternative = variant_.As<CustomStructValue>();
2280
+ alternative != nullptr) {
2281
+ return *alternative;
2282
+ }
2283
+ if (const auto* alternative = variant_.As<ParsedMessageValue>();
2284
+ alternative != nullptr) {
2285
+ return *alternative;
2286
+ }
2287
+ return std::nullopt;
2288
+ }
2289
+
2290
+ absl::optional<StructValue> Value::AsStruct() && {
2291
+ if (auto* alternative = variant_.As<common_internal::LegacyStructValue>();
2292
+ alternative != nullptr) {
2293
+ return std::move(*alternative);
2294
+ }
2295
+ if (auto* alternative = variant_.As<CustomStructValue>();
2296
+ alternative != nullptr) {
2297
+ return std::move(*alternative);
2298
+ }
2299
+ if (auto* alternative = variant_.As<ParsedMessageValue>();
2300
+ alternative != nullptr) {
2301
+ return std::move(*alternative);
2302
+ }
2303
+ return std::nullopt;
2304
+ }
2305
+
2306
+ absl::optional<TimestampValue> Value::AsTimestamp() const {
2307
+ if (const auto* alternative = variant_.As<TimestampValue>();
2308
+ alternative != nullptr) {
2309
+ return *alternative;
2310
+ }
2311
+ return std::nullopt;
2312
+ }
2313
+
2314
+ optional_ref<const TypeValue> Value::AsType() const& {
2315
+ if (const auto* alternative = variant_.As<TypeValue>();
2316
+ alternative != nullptr) {
2317
+ return *alternative;
2318
+ }
2319
+ return std::nullopt;
2320
+ }
2321
+
2322
+ absl::optional<TypeValue> Value::AsType() && {
2323
+ if (auto* alternative = variant_.As<TypeValue>(); alternative != nullptr) {
2324
+ return std::move(*alternative);
2325
+ }
2326
+ return std::nullopt;
2327
+ }
2328
+
2329
+ absl::optional<UintValue> Value::AsUint() const {
2330
+ if (const auto* alternative = variant_.As<UintValue>();
2331
+ alternative != nullptr) {
2332
+ return *alternative;
2333
+ }
2334
+ return std::nullopt;
2335
+ }
2336
+
2337
+ optional_ref<const UnknownValue> Value::AsUnknown() const& {
2338
+ if (const auto* alternative = variant_.As<UnknownValue>();
2339
+ alternative != nullptr) {
2340
+ return *alternative;
2341
+ }
2342
+ return std::nullopt;
2343
+ }
2344
+
2345
+ absl::optional<UnknownValue> Value::AsUnknown() && {
2346
+ if (auto* alternative = variant_.As<UnknownValue>(); alternative != nullptr) {
2347
+ return std::move(*alternative);
2348
+ }
2349
+ return std::nullopt;
2350
+ }
2351
+
2352
+ const BytesValue& Value::GetBytes() const& {
2353
+ ABSL_DCHECK(IsBytes()) << *this;
2354
+ return variant_.Get<BytesValue>();
2355
+ }
2356
+
2357
+ BytesValue Value::GetBytes() && {
2358
+ ABSL_DCHECK(IsBytes()) << *this;
2359
+ return std::move(variant_).Get<BytesValue>();
2360
+ }
2361
+
2362
+ DoubleValue Value::GetDouble() const {
2363
+ ABSL_DCHECK(IsDouble()) << *this;
2364
+ return variant_.Get<DoubleValue>();
2365
+ }
2366
+
2367
+ DurationValue Value::GetDuration() const {
2368
+ ABSL_DCHECK(IsDuration()) << *this;
2369
+ return variant_.Get<DurationValue>();
2370
+ }
2371
+
2372
+ const ErrorValue& Value::GetError() const& {
2373
+ ABSL_DCHECK(IsError()) << *this;
2374
+ return variant_.Get<ErrorValue>();
2375
+ }
2376
+
2377
+ ErrorValue Value::GetError() && {
2378
+ ABSL_DCHECK(IsError()) << *this;
2379
+ return std::move(variant_).Get<ErrorValue>();
2380
+ }
2381
+
2382
+ IntValue Value::GetInt() const {
2383
+ ABSL_DCHECK(IsInt()) << *this;
2384
+ return variant_.Get<IntValue>();
2385
+ }
2386
+
2387
+ #ifdef ABSL_HAVE_EXCEPTIONS
2388
+ #define CEL_VALUE_THROW_BAD_VARIANT_ACCESS() throw absl::bad_variant_access()
2389
+ #else
2390
+ #define CEL_VALUE_THROW_BAD_VARIANT_ACCESS() \
2391
+ ABSL_LOG(FATAL) << absl::bad_variant_access().what() /* Crash OK */
2392
+ #endif
2393
+
2394
+ ListValue Value::GetList() const& {
2395
+ ABSL_DCHECK(IsList()) << *this;
2396
+ if (const auto* alternative = variant_.As<common_internal::LegacyListValue>();
2397
+ alternative != nullptr) {
2398
+ return *alternative;
2399
+ }
2400
+ if (const auto* alternative = variant_.As<CustomListValue>();
2401
+ alternative != nullptr) {
2402
+ return *alternative;
2403
+ }
2404
+ if (const auto* alternative = variant_.As<ParsedRepeatedFieldValue>();
2405
+ alternative != nullptr) {
2406
+ return *alternative;
2407
+ }
2408
+ if (const auto* alternative = variant_.As<ParsedJsonListValue>();
2409
+ alternative != nullptr) {
2410
+ return *alternative;
2411
+ }
2412
+ CEL_VALUE_THROW_BAD_VARIANT_ACCESS();
2413
+ }
2414
+
2415
+ ListValue Value::GetList() && {
2416
+ ABSL_DCHECK(IsList()) << *this;
2417
+ if (auto* alternative = variant_.As<common_internal::LegacyListValue>();
2418
+ alternative != nullptr) {
2419
+ return std::move(*alternative);
2420
+ }
2421
+ if (auto* alternative = variant_.As<CustomListValue>();
2422
+ alternative != nullptr) {
2423
+ return std::move(*alternative);
2424
+ }
2425
+ if (auto* alternative = variant_.As<ParsedRepeatedFieldValue>();
2426
+ alternative != nullptr) {
2427
+ return std::move(*alternative);
2428
+ }
2429
+ if (auto* alternative = variant_.As<ParsedJsonListValue>();
2430
+ alternative != nullptr) {
2431
+ return std::move(*alternative);
2432
+ }
2433
+ CEL_VALUE_THROW_BAD_VARIANT_ACCESS();
2434
+ }
2435
+
2436
+ MapValue Value::GetMap() const& {
2437
+ ABSL_DCHECK(IsMap()) << *this;
2438
+ if (const auto* alternative = variant_.As<common_internal::LegacyMapValue>();
2439
+ alternative != nullptr) {
2440
+ return *alternative;
2441
+ }
2442
+ if (const auto* alternative = variant_.As<CustomMapValue>();
2443
+ alternative != nullptr) {
2444
+ return *alternative;
2445
+ }
2446
+ if (const auto* alternative = variant_.As<ParsedMapFieldValue>();
2447
+ alternative != nullptr) {
2448
+ return *alternative;
2449
+ }
2450
+ if (const auto* alternative = variant_.As<ParsedJsonMapValue>();
2451
+ alternative != nullptr) {
2452
+ return *alternative;
2453
+ }
2454
+ CEL_VALUE_THROW_BAD_VARIANT_ACCESS();
2455
+ }
2456
+
2457
+ MapValue Value::GetMap() && {
2458
+ ABSL_DCHECK(IsMap()) << *this;
2459
+ if (auto* alternative = variant_.As<common_internal::LegacyMapValue>();
2460
+ alternative != nullptr) {
2461
+ return std::move(*alternative);
2462
+ }
2463
+ if (auto* alternative = variant_.As<CustomMapValue>();
2464
+ alternative != nullptr) {
2465
+ return std::move(*alternative);
2466
+ }
2467
+ if (auto* alternative = variant_.As<ParsedMapFieldValue>();
2468
+ alternative != nullptr) {
2469
+ return std::move(*alternative);
2470
+ }
2471
+ if (auto* alternative = variant_.As<ParsedJsonMapValue>();
2472
+ alternative != nullptr) {
2473
+ return std::move(*alternative);
2474
+ }
2475
+ CEL_VALUE_THROW_BAD_VARIANT_ACCESS();
2476
+ }
2477
+
2478
+ MessageValue Value::GetMessage() const& {
2479
+ ABSL_DCHECK(IsMessage()) << *this;
2480
+ return variant_.Get<ParsedMessageValue>();
2481
+ }
2482
+
2483
+ MessageValue Value::GetMessage() && {
2484
+ ABSL_DCHECK(IsMessage()) << *this;
2485
+ return std::move(variant_).Get<ParsedMessageValue>();
2486
+ }
2487
+
2488
+ NullValue Value::GetNull() const {
2489
+ ABSL_DCHECK(IsNull()) << *this;
2490
+ return variant_.Get<NullValue>();
2491
+ }
2492
+
2493
+ const OpaqueValue& Value::GetOpaque() const& {
2494
+ ABSL_DCHECK(IsOpaque()) << *this;
2495
+ return variant_.Get<OpaqueValue>();
2496
+ }
2497
+
2498
+ OpaqueValue Value::GetOpaque() && {
2499
+ ABSL_DCHECK(IsOpaque()) << *this;
2500
+ return std::move(variant_).Get<OpaqueValue>();
2501
+ }
2502
+
2503
+ const OptionalValue& Value::GetOptional() const& {
2504
+ ABSL_DCHECK(IsOptional()) << *this;
2505
+ return static_cast<const OptionalValue&>(variant_.Get<OpaqueValue>());
2506
+ }
2507
+
2508
+ OptionalValue Value::GetOptional() && {
2509
+ ABSL_DCHECK(IsOptional()) << *this;
2510
+ return static_cast<OptionalValue&&>(std::move(variant_).Get<OpaqueValue>());
2511
+ }
2512
+
2513
+ const ParsedJsonListValue& Value::GetParsedJsonList() const& {
2514
+ ABSL_DCHECK(IsParsedJsonList()) << *this;
2515
+ return variant_.Get<ParsedJsonListValue>();
2516
+ }
2517
+
2518
+ ParsedJsonListValue Value::GetParsedJsonList() && {
2519
+ ABSL_DCHECK(IsParsedJsonList()) << *this;
2520
+ return std::move(variant_).Get<ParsedJsonListValue>();
2521
+ }
2522
+
2523
+ const ParsedJsonMapValue& Value::GetParsedJsonMap() const& {
2524
+ ABSL_DCHECK(IsParsedJsonMap()) << *this;
2525
+ return variant_.Get<ParsedJsonMapValue>();
2526
+ }
2527
+
2528
+ ParsedJsonMapValue Value::GetParsedJsonMap() && {
2529
+ ABSL_DCHECK(IsParsedJsonMap()) << *this;
2530
+ return std::move(variant_).Get<ParsedJsonMapValue>();
2531
+ }
2532
+
2533
+ const CustomListValue& Value::GetCustomList() const& {
2534
+ ABSL_DCHECK(IsCustomList()) << *this;
2535
+ return variant_.Get<CustomListValue>();
2536
+ }
2537
+
2538
+ CustomListValue Value::GetCustomList() && {
2539
+ ABSL_DCHECK(IsCustomList()) << *this;
2540
+ return std::move(variant_).Get<CustomListValue>();
2541
+ }
2542
+
2543
+ const CustomMapValue& Value::GetCustomMap() const& {
2544
+ ABSL_DCHECK(IsCustomMap()) << *this;
2545
+ return variant_.Get<CustomMapValue>();
2546
+ }
2547
+
2548
+ CustomMapValue Value::GetCustomMap() && {
2549
+ ABSL_DCHECK(IsCustomMap()) << *this;
2550
+ return std::move(variant_).Get<CustomMapValue>();
2551
+ }
2552
+
2553
+ const ParsedMapFieldValue& Value::GetParsedMapField() const& {
2554
+ ABSL_DCHECK(IsParsedMapField()) << *this;
2555
+ return variant_.Get<ParsedMapFieldValue>();
2556
+ }
2557
+
2558
+ ParsedMapFieldValue Value::GetParsedMapField() && {
2559
+ ABSL_DCHECK(IsParsedMapField()) << *this;
2560
+ return std::move(variant_).Get<ParsedMapFieldValue>();
2561
+ }
2562
+
2563
+ const ParsedMessageValue& Value::GetParsedMessage() const& {
2564
+ ABSL_DCHECK(IsParsedMessage()) << *this;
2565
+ return variant_.Get<ParsedMessageValue>();
2566
+ }
2567
+
2568
+ ParsedMessageValue Value::GetParsedMessage() && {
2569
+ ABSL_DCHECK(IsParsedMessage()) << *this;
2570
+ return std::move(variant_).Get<ParsedMessageValue>();
2571
+ }
2572
+
2573
+ const ParsedRepeatedFieldValue& Value::GetParsedRepeatedField() const& {
2574
+ ABSL_DCHECK(IsParsedRepeatedField()) << *this;
2575
+ return variant_.Get<ParsedRepeatedFieldValue>();
2576
+ }
2577
+
2578
+ ParsedRepeatedFieldValue Value::GetParsedRepeatedField() && {
2579
+ ABSL_DCHECK(IsParsedRepeatedField()) << *this;
2580
+ return std::move(variant_).Get<ParsedRepeatedFieldValue>();
2581
+ }
2582
+
2583
+ const CustomStructValue& Value::GetCustomStruct() const& {
2584
+ ABSL_DCHECK(IsCustomStruct()) << *this;
2585
+ return variant_.Get<CustomStructValue>();
2586
+ }
2587
+
2588
+ CustomStructValue Value::GetCustomStruct() && {
2589
+ ABSL_DCHECK(IsCustomStruct()) << *this;
2590
+ return std::move(variant_).Get<CustomStructValue>();
2591
+ }
2592
+
2593
+ const StringValue& Value::GetString() const& {
2594
+ ABSL_DCHECK(IsString()) << *this;
2595
+ return variant_.Get<StringValue>();
2596
+ }
2597
+
2598
+ StringValue Value::GetString() && {
2599
+ ABSL_DCHECK(IsString()) << *this;
2600
+ return std::move(variant_).Get<StringValue>();
2601
+ }
2602
+
2603
+ StructValue Value::GetStruct() const& {
2604
+ ABSL_DCHECK(IsStruct()) << *this;
2605
+ if (const auto* alternative =
2606
+ variant_.As<common_internal::LegacyStructValue>();
2607
+ alternative != nullptr) {
2608
+ return *alternative;
2609
+ }
2610
+ if (const auto* alternative = variant_.As<CustomStructValue>();
2611
+ alternative != nullptr) {
2612
+ return *alternative;
2613
+ }
2614
+ if (const auto* alternative = variant_.As<ParsedMessageValue>();
2615
+ alternative != nullptr) {
2616
+ return *alternative;
2617
+ }
2618
+ CEL_VALUE_THROW_BAD_VARIANT_ACCESS();
2619
+ }
2620
+
2621
+ StructValue Value::GetStruct() && {
2622
+ ABSL_DCHECK(IsStruct()) << *this;
2623
+ if (auto* alternative = variant_.As<common_internal::LegacyStructValue>();
2624
+ alternative != nullptr) {
2625
+ return std::move(*alternative);
2626
+ }
2627
+ if (auto* alternative = variant_.As<CustomStructValue>();
2628
+ alternative != nullptr) {
2629
+ return std::move(*alternative);
2630
+ }
2631
+ if (auto* alternative = variant_.As<ParsedMessageValue>();
2632
+ alternative != nullptr) {
2633
+ return std::move(*alternative);
2634
+ }
2635
+ CEL_VALUE_THROW_BAD_VARIANT_ACCESS();
2636
+ }
2637
+
2638
+ TimestampValue Value::GetTimestamp() const {
2639
+ ABSL_DCHECK(IsTimestamp()) << *this;
2640
+ return variant_.Get<TimestampValue>();
2641
+ }
2642
+
2643
+ const TypeValue& Value::GetType() const& {
2644
+ ABSL_DCHECK(IsType()) << *this;
2645
+ return variant_.Get<TypeValue>();
2646
+ }
2647
+
2648
+ TypeValue Value::GetType() && {
2649
+ ABSL_DCHECK(IsType()) << *this;
2650
+ return std::move(variant_).Get<TypeValue>();
2651
+ }
2652
+
2653
+ UintValue Value::GetUint() const {
2654
+ ABSL_DCHECK(IsUint()) << *this;
2655
+ return variant_.Get<UintValue>();
2656
+ }
2657
+
2658
+ const UnknownValue& Value::GetUnknown() const& {
2659
+ ABSL_DCHECK(IsUnknown()) << *this;
2660
+ return variant_.Get<UnknownValue>();
2661
+ }
2662
+
2663
+ UnknownValue Value::GetUnknown() && {
2664
+ ABSL_DCHECK(IsUnknown()) << *this;
2665
+ return std::move(variant_).Get<UnknownValue>();
2666
+ }
2667
+
2668
+ namespace {
2669
+
2670
+ class EmptyValueIterator final : public ValueIterator {
2671
+ public:
2672
+ bool HasNext() override { return false; }
2673
+
2674
+ absl::Status Next(const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
2675
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
2676
+ google::protobuf::Arena* absl_nonnull arena,
2677
+ Value* absl_nonnull result) override {
2678
+ ABSL_DCHECK(descriptor_pool != nullptr);
2679
+ ABSL_DCHECK(message_factory != nullptr);
2680
+ ABSL_DCHECK(arena != nullptr);
2681
+ ABSL_DCHECK(result != nullptr);
2682
+
2683
+ return absl::FailedPreconditionError(
2684
+ "`ValueIterator::Next` called after `ValueIterator::HasNext` returned "
2685
+ "false");
2686
+ }
2687
+
2688
+ absl::StatusOr<bool> Next1(
2689
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
2690
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
2691
+ google::protobuf::Arena* absl_nonnull arena,
2692
+ Value* absl_nonnull key_or_value) override {
2693
+ ABSL_DCHECK(descriptor_pool != nullptr);
2694
+ ABSL_DCHECK(message_factory != nullptr);
2695
+ ABSL_DCHECK(arena != nullptr);
2696
+ ABSL_DCHECK(key_or_value != nullptr);
2697
+
2698
+ return false;
2699
+ }
2700
+
2701
+ absl::StatusOr<bool> Next2(
2702
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
2703
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
2704
+ google::protobuf::Arena* absl_nonnull arena, Value* absl_nonnull key,
2705
+ Value* absl_nullable value) override {
2706
+ ABSL_DCHECK(descriptor_pool != nullptr);
2707
+ ABSL_DCHECK(message_factory != nullptr);
2708
+ ABSL_DCHECK(arena != nullptr);
2709
+ ABSL_DCHECK(key != nullptr);
2710
+
2711
+ return false;
2712
+ }
2713
+ };
2714
+
2715
+ } // namespace
2716
+
2717
+ absl_nonnull std::unique_ptr<ValueIterator> NewEmptyValueIterator() {
2718
+ return std::make_unique<EmptyValueIterator>();
2719
+ }
2720
+
2721
+ absl_nonnull ListValueBuilderPtr
2722
+ NewListValueBuilder(google::protobuf::Arena* absl_nonnull arena) {
2723
+ ABSL_DCHECK(arena != nullptr);
2724
+ return common_internal::NewListValueBuilder(arena);
2725
+ }
2726
+
2727
+ absl_nonnull MapValueBuilderPtr
2728
+ NewMapValueBuilder(google::protobuf::Arena* absl_nonnull arena) {
2729
+ ABSL_DCHECK(arena != nullptr);
2730
+ return common_internal::NewMapValueBuilder(arena);
2731
+ }
2732
+
2733
+ absl_nullable StructValueBuilderPtr NewStructValueBuilder(
2734
+ google::protobuf::Arena* absl_nonnull arena,
2735
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
2736
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
2737
+ absl::string_view name) {
2738
+ ABSL_DCHECK(arena != nullptr);
2739
+ ABSL_DCHECK(descriptor_pool != nullptr);
2740
+ ABSL_DCHECK(message_factory != nullptr);
2741
+ return common_internal::NewStructValueBuilder(arena, descriptor_pool,
2742
+ message_factory, name);
2743
+ }
2744
+
2745
+ bool operator==(IntValue lhs, UintValue rhs) {
2746
+ return internal::Number::FromInt64(lhs.NativeValue()) ==
2747
+ internal::Number::FromUint64(rhs.NativeValue());
2748
+ }
2749
+
2750
+ bool operator==(UintValue lhs, IntValue rhs) {
2751
+ return internal::Number::FromUint64(lhs.NativeValue()) ==
2752
+ internal::Number::FromInt64(rhs.NativeValue());
2753
+ }
2754
+
2755
+ bool operator==(IntValue lhs, DoubleValue rhs) {
2756
+ return internal::Number::FromInt64(lhs.NativeValue()) ==
2757
+ internal::Number::FromDouble(rhs.NativeValue());
2758
+ }
2759
+
2760
+ bool operator==(DoubleValue lhs, IntValue rhs) {
2761
+ return internal::Number::FromDouble(lhs.NativeValue()) ==
2762
+ internal::Number::FromInt64(rhs.NativeValue());
2763
+ }
2764
+
2765
+ bool operator==(UintValue lhs, DoubleValue rhs) {
2766
+ return internal::Number::FromUint64(lhs.NativeValue()) ==
2767
+ internal::Number::FromDouble(rhs.NativeValue());
2768
+ }
2769
+
2770
+ bool operator==(DoubleValue lhs, UintValue rhs) {
2771
+ return internal::Number::FromDouble(lhs.NativeValue()) ==
2772
+ internal::Number::FromUint64(rhs.NativeValue());
2773
+ }
2774
+
2775
+ absl::StatusOr<bool> ValueIterator::Next1(
2776
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
2777
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
2778
+ google::protobuf::Arena* absl_nonnull arena, Value* absl_nonnull value) {
2779
+ ABSL_DCHECK(descriptor_pool != nullptr);
2780
+ ABSL_DCHECK(message_factory != nullptr);
2781
+ ABSL_DCHECK(arena != nullptr);
2782
+ ABSL_DCHECK(value != nullptr);
2783
+
2784
+ if (HasNext()) {
2785
+ CEL_RETURN_IF_ERROR(Next(descriptor_pool, message_factory, arena, value));
2786
+ return true;
2787
+ }
2788
+ return false;
2789
+ }
2790
+
2791
+ } // namespace cel