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,2947 @@
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
+ #ifndef THIRD_PARTY_CEL_CPP_COMMON_VALUE_H_
16
+ #define THIRD_PARTY_CEL_CPP_COMMON_VALUE_H_
17
+
18
+ #include <cstddef>
19
+ #include <cstdint>
20
+ #include <cstring>
21
+ #include <memory>
22
+ #include <ostream>
23
+ #include <string>
24
+ #include <type_traits>
25
+ #include <utility>
26
+
27
+ #include "absl/base/attributes.h"
28
+ #include "absl/base/nullability.h"
29
+ #include "absl/log/absl_check.h"
30
+ #include "absl/meta/type_traits.h"
31
+ #include "absl/status/status.h"
32
+ #include "absl/status/statusor.h"
33
+ #include "absl/strings/string_view.h"
34
+ #include "absl/types/optional.h"
35
+ #include "absl/types/span.h"
36
+ #include "absl/utility/utility.h"
37
+ #include "base/attribute.h"
38
+ #include "common/arena.h"
39
+ #include "common/native_type.h"
40
+ #include "common/optional_ref.h"
41
+ #include "common/type.h"
42
+ #include "common/typeinfo.h"
43
+ #include "common/value_kind.h"
44
+ #include "common/values/bool_value.h" // IWYU pragma: export
45
+ #include "common/values/bytes_value.h" // IWYU pragma: export
46
+ #include "common/values/bytes_value_input_stream.h" // IWYU pragma: export
47
+ #include "common/values/bytes_value_output_stream.h" // IWYU pragma: export
48
+ #include "common/values/custom_list_value.h" // IWYU pragma: export
49
+ #include "common/values/custom_map_value.h" // IWYU pragma: export
50
+ #include "common/values/custom_struct_value.h" // IWYU pragma: export
51
+ #include "common/values/double_value.h" // IWYU pragma: export
52
+ #include "common/values/duration_value.h" // IWYU pragma: export
53
+ #include "common/values/enum_value.h" // IWYU pragma: export
54
+ #include "common/values/error_value.h" // IWYU pragma: export
55
+ #include "common/values/int_value.h" // IWYU pragma: export
56
+ #include "common/values/list_value.h" // IWYU pragma: export
57
+ #include "common/values/map_value.h" // IWYU pragma: export
58
+ #include "common/values/message_value.h" // IWYU pragma: export
59
+ #include "common/values/null_value.h" // IWYU pragma: export
60
+ #include "common/values/opaque_value.h" // IWYU pragma: export
61
+ #include "common/values/optional_value.h" // IWYU pragma: export
62
+ #include "common/values/parsed_json_list_value.h" // IWYU pragma: export
63
+ #include "common/values/parsed_json_map_value.h" // IWYU pragma: export
64
+ #include "common/values/parsed_map_field_value.h" // IWYU pragma: export
65
+ #include "common/values/parsed_message_value.h" // IWYU pragma: export
66
+ #include "common/values/parsed_repeated_field_value.h" // IWYU pragma: export
67
+ #include "common/values/string_value.h" // IWYU pragma: export
68
+ #include "common/values/struct_value.h" // IWYU pragma: export
69
+ #include "common/values/timestamp_value.h" // IWYU pragma: export
70
+ #include "common/values/type_value.h" // IWYU pragma: export
71
+ #include "common/values/uint_value.h" // IWYU pragma: export
72
+ #include "common/values/unknown_value.h" // IWYU pragma: export
73
+ #include "common/values/value_variant.h"
74
+ #include "common/values/values.h"
75
+ #include "internal/status_macros.h"
76
+ #include "runtime/runtime_options.h"
77
+ #include "google/protobuf/arena.h"
78
+ #include "google/protobuf/descriptor.h"
79
+ #include "google/protobuf/generated_enum_reflection.h"
80
+ #include "google/protobuf/io/zero_copy_stream.h"
81
+ #include "google/protobuf/map_field.h"
82
+ #include "google/protobuf/message.h"
83
+
84
+ #pragma push_macro("GetMessage")
85
+ #ifdef GetMessage
86
+ // GetMessage in windows API headers might be defined as a macro. Depending on
87
+ // ordering, might cause issues with Value::GetMessage or
88
+ // google::protobuf::Reflection::GetMessage.
89
+ #undef GetMessage
90
+ #endif
91
+
92
+ namespace cel {
93
+
94
+ // `Value` is a composition type which encompasses all values supported by the
95
+ // Common Expression Language. When default constructed or moved, `Value` is in
96
+ // a known but invalid state. Any attempt to use it from then on, without
97
+ // assigning another type, is undefined behavior. In debug builds, we do our
98
+ // best to fail.
99
+ class Value final : private common_internal::ValueMixin<Value> {
100
+ public:
101
+ // Returns an appropriate `Value` for the dynamic protobuf enum. For open
102
+ // enums, returns `cel::IntValue`. For closed enums, returns `cel::ErrorValue`
103
+ // if the value is not present in the enum otherwise returns `cel::IntValue`.
104
+ static Value Enum(const google::protobuf::EnumValueDescriptor* absl_nonnull value);
105
+ static Value Enum(const google::protobuf::EnumDescriptor* absl_nonnull type,
106
+ int32_t number);
107
+
108
+ // SFINAE overload for generated protobuf enums which are not well-known.
109
+ // Always returns `cel::IntValue`.
110
+ template <typename T>
111
+ static common_internal::EnableIfGeneratedEnum<T, IntValue> Enum(T value) {
112
+ return IntValue(value);
113
+ }
114
+
115
+ // SFINAE overload for google::protobuf::NullValue. Always returns
116
+ // `cel::NullValue`.
117
+ template <typename T>
118
+ static common_internal::EnableIfWellKnownEnum<T, google::protobuf::NullValue,
119
+ NullValue>
120
+ Enum(T) {
121
+ return NullValue();
122
+ }
123
+
124
+ // Returns an appropriate `Value` for the dynamic protobuf message. If
125
+ // `message` is the well known type `google.protobuf.Any`, `descriptor_pool`
126
+ // and `message_factory` will be used to unpack the value. Both must outlive
127
+ // the resulting value and any of its shallow copies. Otherwise the message is
128
+ // copied using `arena`.
129
+ static Value FromMessage(
130
+ const google::protobuf::Message& message,
131
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool
132
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
133
+ google::protobuf::MessageFactory* absl_nonnull message_factory
134
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
135
+ google::protobuf::Arena* absl_nonnull arena ABSL_ATTRIBUTE_LIFETIME_BOUND);
136
+ static Value FromMessage(
137
+ google::protobuf::Message&& message,
138
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool
139
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
140
+ google::protobuf::MessageFactory* absl_nonnull message_factory
141
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
142
+ google::protobuf::Arena* absl_nonnull arena ABSL_ATTRIBUTE_LIFETIME_BOUND);
143
+
144
+ // Returns an appropriate `Value` for the dynamic protobuf message. If
145
+ // `message` is the well known type `google.protobuf.Any`, `descriptor_pool`
146
+ // and `message_factory` will be used to unpack the value. Both must outlive
147
+ // the resulting value and any of its shallow copies. Otherwise the message is
148
+ // borrowed (no copying). If the message is on an arena, that arena will be
149
+ // attributed as the owner. Otherwise `arena` is used.
150
+ static Value WrapMessage(
151
+ const google::protobuf::Message* absl_nonnull message ABSL_ATTRIBUTE_LIFETIME_BOUND,
152
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool
153
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
154
+ google::protobuf::MessageFactory* absl_nonnull message_factory
155
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
156
+ google::protobuf::Arena* absl_nonnull arena ABSL_ATTRIBUTE_LIFETIME_BOUND);
157
+
158
+ // Returns an appropriate `Value` for the dynamic protobuf message. If
159
+ // `message` is the well known type `google.protobuf.Any`, `descriptor_pool`
160
+ // and `message_factory` will be used to unpack the value. Both must outlive
161
+ // the resulting value and any of its shallow copies. Otherwise the message is
162
+ // borrowed (no copying). This function does not attempt to validate arena
163
+ // ownership of a dynamic message that was not unpacked from a well known
164
+ // type. Caller is responsible for ensuring the resulting value and any
165
+ // derived values do not outlive the input message.
166
+ static Value WrapMessageUnsafe(
167
+ const google::protobuf::Message* absl_nonnull message ABSL_ATTRIBUTE_LIFETIME_BOUND,
168
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool
169
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
170
+ google::protobuf::MessageFactory* absl_nonnull message_factory
171
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
172
+ google::protobuf::Arena* absl_nonnull arena ABSL_ATTRIBUTE_LIFETIME_BOUND);
173
+
174
+ // Returns an appropriate `Value` for the dynamic protobuf message field. If
175
+ // `field` in `message` is the well known type `google.protobuf.Any`,
176
+ // `descriptor_pool` and `message_factory` will be used to unpack the value.
177
+ // Both must outlive the resulting value and any of its shallow copies.
178
+ // Otherwise the field is borrowed (no copying). If the message is on an
179
+ // arena, that arena will be attributed as the owner. Otherwise `arena` is
180
+ // used.
181
+ static Value WrapField(
182
+ ProtoWrapperTypeOptions wrapper_type_options,
183
+ const google::protobuf::Message* absl_nonnull message ABSL_ATTRIBUTE_LIFETIME_BOUND,
184
+ const google::protobuf::FieldDescriptor* absl_nonnull field
185
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
186
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool
187
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
188
+ google::protobuf::MessageFactory* absl_nonnull message_factory
189
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
190
+ google::protobuf::Arena* absl_nonnull arena ABSL_ATTRIBUTE_LIFETIME_BOUND);
191
+ static Value WrapField(
192
+ const google::protobuf::Message* absl_nonnull message ABSL_ATTRIBUTE_LIFETIME_BOUND,
193
+ const google::protobuf::FieldDescriptor* absl_nonnull field
194
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
195
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool
196
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
197
+ google::protobuf::MessageFactory* absl_nonnull message_factory
198
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
199
+ google::protobuf::Arena* absl_nonnull arena ABSL_ATTRIBUTE_LIFETIME_BOUND) {
200
+ return WrapField(ProtoWrapperTypeOptions::kUnsetNull, message, field,
201
+ descriptor_pool, message_factory, arena);
202
+ }
203
+
204
+ // Returns an appropriate `Value` for the dynamic protobuf message field. If
205
+ // `field` in `message` is the well known type `google.protobuf.Any`,
206
+ // `descriptor_pool` and `message_factory` will be used to unpack the value.
207
+ // Both must outlive the resulting value and any of its shallow copies.
208
+ // Otherwise the field is borrowed (no copying). Caller is responsible for
209
+ // ensuring the resulting value and any derived values do not outlive the
210
+ // input message.
211
+ static Value WrapFieldUnsafe(
212
+ ProtoWrapperTypeOptions wrapper_type_options,
213
+ const google::protobuf::Message* absl_nonnull message ABSL_ATTRIBUTE_LIFETIME_BOUND,
214
+ const google::protobuf::FieldDescriptor* absl_nonnull field
215
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
216
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool
217
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
218
+ google::protobuf::MessageFactory* absl_nonnull message_factory
219
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
220
+ google::protobuf::Arena* absl_nonnull arena ABSL_ATTRIBUTE_LIFETIME_BOUND);
221
+
222
+ // Returns an appropriate `Value` for the dynamic protobuf message repeated
223
+ // field. If `field` in `message` is the well known type
224
+ // `google.protobuf.Any`, `descriptor_pool` and `message_factory` will be used
225
+ // to unpack the value. Both must outlive the resulting value and any of its
226
+ // shallow copies.
227
+ static Value WrapRepeatedField(
228
+ int index,
229
+ const google::protobuf::Message* absl_nonnull message ABSL_ATTRIBUTE_LIFETIME_BOUND,
230
+ const google::protobuf::FieldDescriptor* absl_nonnull field
231
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
232
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool
233
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
234
+ google::protobuf::MessageFactory* absl_nonnull message_factory
235
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
236
+ google::protobuf::Arena* absl_nonnull arena ABSL_ATTRIBUTE_LIFETIME_BOUND);
237
+
238
+ // Returns an appropriate `Value` for the dynamic protobuf message repeated
239
+ // field. If `field` in `message` is the well known type
240
+ // `google.protobuf.Any`, `descriptor_pool` and `message_factory` will be used
241
+ // to unpack the value. Both must outlive the resulting value and any of its
242
+ // shallow copies.
243
+ static Value WrapRepeatedFieldUnsafe(
244
+ int index,
245
+ const google::protobuf::Message* absl_nonnull message ABSL_ATTRIBUTE_LIFETIME_BOUND,
246
+ const google::protobuf::FieldDescriptor* absl_nonnull field
247
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
248
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool
249
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
250
+ google::protobuf::MessageFactory* absl_nonnull message_factory
251
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
252
+ google::protobuf::Arena* absl_nonnull arena ABSL_ATTRIBUTE_LIFETIME_BOUND);
253
+
254
+ // Returns an appropriate `StringValue` for the dynamic protobuf message map
255
+ // field key. The map field key must be a string or the behavior is undefined.
256
+ static StringValue WrapMapFieldKeyString(
257
+ const google::protobuf::MapKey& key,
258
+ const google::protobuf::Message* absl_nonnull message ABSL_ATTRIBUTE_LIFETIME_BOUND,
259
+ google::protobuf::Arena* absl_nonnull arena ABSL_ATTRIBUTE_LIFETIME_BOUND);
260
+
261
+ // Returns an appropriate `Value` for the dynamic protobuf message map
262
+ // field value. If `field` in `message`, which is `value`, is the well known
263
+ // type `google.protobuf.Any`, `descriptor_pool` and `message_factory` will be
264
+ // used to unpack the value. Both must outlive the resulting value and any of
265
+ // its shallow copies.
266
+ static Value WrapMapFieldValue(
267
+ const google::protobuf::MapValueConstRef& value,
268
+ const google::protobuf::Message* absl_nonnull message ABSL_ATTRIBUTE_LIFETIME_BOUND,
269
+ const google::protobuf::FieldDescriptor* absl_nonnull field
270
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
271
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool
272
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
273
+ google::protobuf::MessageFactory* absl_nonnull message_factory
274
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
275
+ google::protobuf::Arena* absl_nonnull arena ABSL_ATTRIBUTE_LIFETIME_BOUND);
276
+
277
+ // Returns an appropriate `Value` for the dynamic protobuf message map
278
+ // field value. If `field` in `message`, which is `value`, is the well known
279
+ // type `google.protobuf.Any`, `descriptor_pool` and `message_factory` will be
280
+ // used to unpack the value. Both must outlive the resulting value and any of
281
+ // its shallow copies. Caller is responsible for ensuring the resulting value
282
+ // and any derived values do not outlive the input message.
283
+ static Value WrapMapFieldValueUnsafe(
284
+ const google::protobuf::MapValueConstRef& value,
285
+ const google::protobuf::Message* absl_nonnull message ABSL_ATTRIBUTE_LIFETIME_BOUND,
286
+ const google::protobuf::FieldDescriptor* absl_nonnull field
287
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
288
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool
289
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
290
+ google::protobuf::MessageFactory* absl_nonnull message_factory
291
+ ABSL_ATTRIBUTE_LIFETIME_BOUND,
292
+ google::protobuf::Arena* absl_nonnull arena ABSL_ATTRIBUTE_LIFETIME_BOUND);
293
+
294
+ Value() = default;
295
+ Value(const Value&) = default;
296
+ Value& operator=(const Value&) = default;
297
+ Value(Value&& other) = default;
298
+ Value& operator=(Value&&) = default;
299
+
300
+ // NOLINTNEXTLINE(google-explicit-constructor)
301
+ Value(const ListValue& value) : variant_(value.ToValueVariant()) {}
302
+
303
+ // NOLINTNEXTLINE(google-explicit-constructor)
304
+ Value(ListValue&& value) : variant_(std::move(value).ToValueVariant()) {}
305
+
306
+ // NOLINTNEXTLINE(google-explicit-constructor)
307
+ Value& operator=(const ListValue& value) {
308
+ variant_ = value.ToValueVariant();
309
+ return *this;
310
+ }
311
+
312
+ // NOLINTNEXTLINE(google-explicit-constructor)
313
+ Value& operator=(ListValue&& value) {
314
+ variant_ = std::move(value).ToValueVariant();
315
+ return *this;
316
+ }
317
+
318
+ // NOLINTNEXTLINE(google-explicit-constructor)
319
+ Value(const MapValue& value) : variant_(value.ToValueVariant()) {}
320
+
321
+ // NOLINTNEXTLINE(google-explicit-constructor)
322
+ Value(MapValue&& value) : variant_(std::move(value).ToValueVariant()) {}
323
+
324
+ // NOLINTNEXTLINE(google-explicit-constructor)
325
+ Value& operator=(const MapValue& value) {
326
+ variant_ = value.ToValueVariant();
327
+ return *this;
328
+ }
329
+
330
+ // NOLINTNEXTLINE(google-explicit-constructor)
331
+ Value& operator=(MapValue&& value) {
332
+ variant_ = std::move(value).ToValueVariant();
333
+ return *this;
334
+ }
335
+
336
+ // NOLINTNEXTLINE(google-explicit-constructor)
337
+ Value(const StructValue& value) : variant_(value.ToValueVariant()) {}
338
+
339
+ // NOLINTNEXTLINE(google-explicit-constructor)
340
+ Value(StructValue&& value) : variant_(std::move(value).ToValueVariant()) {}
341
+
342
+ // NOLINTNEXTLINE(google-explicit-constructor)
343
+ Value& operator=(const StructValue& value) {
344
+ variant_ = value.ToValueVariant();
345
+ return *this;
346
+ }
347
+
348
+ // NOLINTNEXTLINE(google-explicit-constructor)
349
+ Value& operator=(StructValue&& value) {
350
+ variant_ = std::move(value).ToValueVariant();
351
+ return *this;
352
+ }
353
+
354
+ // NOLINTNEXTLINE(google-explicit-constructor)
355
+ Value(const MessageValue& value) : variant_(value.ToValueVariant()) {}
356
+
357
+ // NOLINTNEXTLINE(google-explicit-constructor)
358
+ Value(MessageValue&& value) : variant_(std::move(value).ToValueVariant()) {}
359
+
360
+ // NOLINTNEXTLINE(google-explicit-constructor)
361
+ Value& operator=(const MessageValue& value) {
362
+ variant_ = value.ToValueVariant();
363
+ return *this;
364
+ }
365
+
366
+ // NOLINTNEXTLINE(google-explicit-constructor)
367
+ Value& operator=(MessageValue&& value) {
368
+ variant_ = std::move(value).ToValueVariant();
369
+ return *this;
370
+ }
371
+
372
+ // NOLINTNEXTLINE(google-explicit-constructor)
373
+ Value(const OptionalValue& value)
374
+ : variant_(absl::in_place_type<OpaqueValue>,
375
+ static_cast<const OpaqueValue&>(value)) {}
376
+
377
+ // NOLINTNEXTLINE(google-explicit-constructor)
378
+ Value(OptionalValue&& value)
379
+ : variant_(absl::in_place_type<OpaqueValue>,
380
+ static_cast<OpaqueValue&&>(value)) {}
381
+
382
+ // NOLINTNEXTLINE(google-explicit-constructor)
383
+ Value& operator=(const OptionalValue& value) {
384
+ variant_.Assign(static_cast<const OpaqueValue&>(value));
385
+ return *this;
386
+ }
387
+
388
+ // NOLINTNEXTLINE(google-explicit-constructor)
389
+ Value& operator=(OptionalValue&& value) {
390
+ variant_.Assign(static_cast<OpaqueValue&&>(value));
391
+ return *this;
392
+ }
393
+
394
+ template <typename T,
395
+ typename = std::enable_if_t<
396
+ common_internal::IsValueAlternativeV<absl::remove_cvref_t<T>>>>
397
+ // NOLINTNEXTLINE(google-explicit-constructor)
398
+ Value(T&& alternative) noexcept
399
+ : variant_(absl::in_place_type<absl::remove_cvref_t<T>>,
400
+ std::forward<T>(alternative)) {}
401
+
402
+ template <typename T,
403
+ typename = std::enable_if_t<
404
+ common_internal::IsValueAlternativeV<absl::remove_cvref_t<T>>>>
405
+ // NOLINTNEXTLINE(google-explicit-constructor)
406
+ Value& operator=(T&& alternative) noexcept {
407
+ variant_.Assign(std::forward<T>(alternative));
408
+ return *this;
409
+ }
410
+
411
+ ValueKind kind() const { return variant_.kind(); }
412
+
413
+ Type GetRuntimeType() const;
414
+
415
+ absl::string_view GetTypeName() const;
416
+
417
+ std::string DebugString() const;
418
+
419
+ // `SerializeTo` serializes this value to `output`. If an error is returned,
420
+ // `output` is in a valid but unspecified state. If this value does not
421
+ // support serialization, `FAILED_PRECONDITION` is returned.
422
+ absl::Status SerializeTo(
423
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
424
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
425
+ google::protobuf::io::ZeroCopyOutputStream* absl_nonnull output) const;
426
+
427
+ // `ConvertToJson` converts this value to its JSON representation. The
428
+ // argument `json` **MUST** be an instance of `google.protobuf.Value` which is
429
+ // can either be the generated message or a dynamic message. The descriptor
430
+ // pool `descriptor_pool` and message factory `message_factory` are used to
431
+ // deal with serialized messages and a few corners cases.
432
+ absl::Status ConvertToJson(
433
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
434
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
435
+ google::protobuf::Message* absl_nonnull json) const;
436
+
437
+ // `ConvertToJsonArray` converts this value to its JSON representation if and
438
+ // only if it can be represented as an array. The argument `json` **MUST** be
439
+ // an instance of `google.protobuf.ListValue` which is can either be the
440
+ // generated message or a dynamic message. The descriptor pool
441
+ // `descriptor_pool` and message factory `message_factory` are used to deal
442
+ // with serialized messages and a few corners cases.
443
+ absl::Status ConvertToJsonArray(
444
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
445
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
446
+ google::protobuf::Message* absl_nonnull json) const;
447
+
448
+ // `ConvertToJsonArray` converts this value to its JSON representation if and
449
+ // only if it can be represented as an object. The argument `json` **MUST** be
450
+ // an instance of `google.protobuf.Struct` which is can either be the
451
+ // generated message or a dynamic message. The descriptor pool
452
+ // `descriptor_pool` and message factory `message_factory` are used to deal
453
+ // with serialized messages and a few corners cases.
454
+ absl::Status ConvertToJsonObject(
455
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
456
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
457
+ google::protobuf::Message* absl_nonnull json) const;
458
+
459
+ absl::Status Equal(const Value& other,
460
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
461
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
462
+ google::protobuf::Arena* absl_nonnull arena,
463
+ Value* absl_nonnull result) const;
464
+ using ValueMixin::Equal;
465
+
466
+ bool IsZeroValue() const;
467
+
468
+ // Clones the value to another arena, if necessary, such that the lifetime of
469
+ // the value is tied to the arena.
470
+ Value Clone(google::protobuf::Arena* absl_nonnull arena) const;
471
+
472
+ friend void swap(Value& lhs, Value& rhs) noexcept {
473
+ using std::swap;
474
+ swap(lhs.variant_, rhs.variant_);
475
+ }
476
+
477
+ friend std::ostream& operator<<(std::ostream& out, const Value& value);
478
+
479
+ ABSL_DEPRECATED("Just use operator.()")
480
+ Value* operator->() { return this; }
481
+
482
+ ABSL_DEPRECATED("Just use operator.()")
483
+ const Value* operator->() const { return this; }
484
+
485
+ // Returns `true` if this value is an instance of a bool value.
486
+ bool IsBool() const { return variant_.Is<BoolValue>(); }
487
+
488
+ // Returns `true` if this value is an instance of a bool value and true.
489
+ bool IsTrue() const { return IsBool() && GetBool().NativeValue(); }
490
+
491
+ // Returns `true` if this value is an instance of a bool value and false.
492
+ bool IsFalse() const { return IsBool() && !GetBool().NativeValue(); }
493
+
494
+ // Returns `true` if this value is an instance of a bytes value.
495
+ bool IsBytes() const { return variant_.Is<BytesValue>(); }
496
+
497
+ // Returns `true` if this value is an instance of a double value.
498
+ bool IsDouble() const { return variant_.Is<DoubleValue>(); }
499
+
500
+ // Returns `true` if this value is an instance of a duration value.
501
+ bool IsDuration() const { return variant_.Is<DurationValue>(); }
502
+
503
+ // Returns `true` if this value is an instance of an error value.
504
+ bool IsError() const { return variant_.Is<ErrorValue>(); }
505
+
506
+ // Returns `true` if this value is an instance of an int value.
507
+ bool IsInt() const { return variant_.Is<IntValue>(); }
508
+
509
+ // Returns `true` if this value is an instance of a list value.
510
+ bool IsList() const {
511
+ return variant_.Is<common_internal::LegacyListValue>() ||
512
+ variant_.Is<CustomListValue>() ||
513
+ variant_.Is<ParsedRepeatedFieldValue>() ||
514
+ variant_.Is<ParsedJsonListValue>();
515
+ }
516
+
517
+ // Returns `true` if this value is an instance of a map value.
518
+ bool IsMap() const {
519
+ return variant_.Is<common_internal::LegacyMapValue>() ||
520
+ variant_.Is<CustomMapValue>() ||
521
+ variant_.Is<ParsedMapFieldValue>() ||
522
+ variant_.Is<ParsedJsonMapValue>();
523
+ }
524
+
525
+ // Returns `true` if this value is an instance of a message value. If `true`
526
+ // is returned, it is implied that `IsStruct()` would also return true.
527
+ bool IsMessage() const { return variant_.Is<ParsedMessageValue>(); }
528
+
529
+ // Returns `true` if this value is an instance of a null value.
530
+ bool IsNull() const { return variant_.Is<NullValue>(); }
531
+
532
+ // Returns `true` if this value is an instance of an opaque value.
533
+ bool IsOpaque() const { return variant_.Is<OpaqueValue>(); }
534
+
535
+ // Returns `true` if this value is an instance of an optional value. If `true`
536
+ // is returned, it is implied that `IsOpaque()` would also return true.
537
+ bool IsOptional() const {
538
+ if (const auto* alternative = variant_.As<OpaqueValue>();
539
+ alternative != nullptr) {
540
+ return alternative->IsOptional();
541
+ }
542
+ return false;
543
+ }
544
+
545
+ // Returns `true` if this value is an instance of a parsed JSON list value. If
546
+ // `true` is returned, it is implied that `IsList()` would also return
547
+ // true.
548
+ bool IsParsedJsonList() const { return variant_.Is<ParsedJsonListValue>(); }
549
+
550
+ // Returns `true` if this value is an instance of a parsed JSON map value. If
551
+ // `true` is returned, it is implied that `IsMap()` would also return
552
+ // true.
553
+ bool IsParsedJsonMap() const { return variant_.Is<ParsedJsonMapValue>(); }
554
+
555
+ // Returns `true` if this value is an instance of a custom list value. If
556
+ // `true` is returned, it is implied that `IsList()` would also return
557
+ // true.
558
+ bool IsCustomList() const { return variant_.Is<CustomListValue>(); }
559
+
560
+ // Returns `true` if this value is an instance of a custom map value. If
561
+ // `true` is returned, it is implied that `IsMap()` would also return
562
+ // true.
563
+ bool IsCustomMap() const { return variant_.Is<CustomMapValue>(); }
564
+
565
+ // Returns `true` if this value is an instance of a parsed map field value. If
566
+ // `true` is returned, it is implied that `IsMap()` would also return
567
+ // true.
568
+ bool IsParsedMapField() const { return variant_.Is<ParsedMapFieldValue>(); }
569
+
570
+ // Returns `true` if this value is an instance of a parsed message value. If
571
+ // `true` is returned, it is implied that `IsMessage()` would also return
572
+ // true.
573
+ bool IsParsedMessage() const { return variant_.Is<ParsedMessageValue>(); }
574
+
575
+ // Returns `true` if this value is an instance of a parsed repeated field
576
+ // value. If `true` is returned, it is implied that `IsList()` would also
577
+ // return true.
578
+ bool IsParsedRepeatedField() const {
579
+ return variant_.Is<ParsedRepeatedFieldValue>();
580
+ }
581
+
582
+ // Returns `true` if this value is an instance of a custom struct value. If
583
+ // `true` is returned, it is implied that `IsStruct()` would also return
584
+ // true.
585
+ bool IsCustomStruct() const { return variant_.Is<CustomStructValue>(); }
586
+
587
+ // Returns `true` if this value is an instance of a string value.
588
+ bool IsString() const { return variant_.Is<StringValue>(); }
589
+
590
+ // Returns `true` if this value is an instance of a struct value.
591
+ bool IsStruct() const {
592
+ return variant_.Is<common_internal::LegacyStructValue>() ||
593
+ variant_.Is<CustomStructValue>() ||
594
+ variant_.Is<ParsedMessageValue>();
595
+ }
596
+
597
+ // Returns `true` if this value is an instance of a timestamp value.
598
+ bool IsTimestamp() const { return variant_.Is<TimestampValue>(); }
599
+
600
+ // Returns `true` if this value is an instance of a type value.
601
+ bool IsType() const { return variant_.Is<TypeValue>(); }
602
+
603
+ // Returns `true` if this value is an instance of a uint value.
604
+ bool IsUint() const { return variant_.Is<UintValue>(); }
605
+
606
+ // Returns `true` if this value is an instance of an unknown value.
607
+ bool IsUnknown() const { return variant_.Is<UnknownValue>(); }
608
+
609
+ // Convenience method for use with template metaprogramming. See
610
+ // `IsBool()`.
611
+ template <typename T>
612
+ std::enable_if_t<std::is_same_v<BoolValue, T>, bool> Is() const {
613
+ return IsBool();
614
+ }
615
+
616
+ // Convenience method for use with template metaprogramming. See
617
+ // `IsBytes()`.
618
+ template <typename T>
619
+ std::enable_if_t<std::is_same_v<BytesValue, T>, bool> Is() const {
620
+ return IsBytes();
621
+ }
622
+
623
+ // Convenience method for use with template metaprogramming. See
624
+ // `IsDouble()`.
625
+ template <typename T>
626
+ std::enable_if_t<std::is_same_v<DoubleValue, T>, bool> Is() const {
627
+ return IsDouble();
628
+ }
629
+
630
+ // Convenience method for use with template metaprogramming. See
631
+ // `IsDuration()`.
632
+ template <typename T>
633
+ std::enable_if_t<std::is_same_v<DurationValue, T>, bool> Is() const {
634
+ return IsDuration();
635
+ }
636
+
637
+ // Convenience method for use with template metaprogramming. See
638
+ // `IsError()`.
639
+ template <typename T>
640
+ std::enable_if_t<std::is_same_v<ErrorValue, T>, bool> Is() const {
641
+ return IsError();
642
+ }
643
+
644
+ // Convenience method for use with template metaprogramming. See
645
+ // `IsInt()`.
646
+ template <typename T>
647
+ std::enable_if_t<std::is_same_v<IntValue, T>, bool> Is() const {
648
+ return IsInt();
649
+ }
650
+
651
+ // Convenience method for use with template metaprogramming. See
652
+ // `IsList()`.
653
+ template <typename T>
654
+ std::enable_if_t<std::is_same_v<ListValue, T>, bool> Is() const {
655
+ return IsList();
656
+ }
657
+
658
+ // Convenience method for use with template metaprogramming. See
659
+ // `IsMap()`.
660
+ template <typename T>
661
+ std::enable_if_t<std::is_same_v<MapValue, T>, bool> Is() const {
662
+ return IsMap();
663
+ }
664
+
665
+ // Convenience method for use with template metaprogramming. See
666
+ // `IsMessage()`.
667
+ template <typename T>
668
+ std::enable_if_t<std::is_same_v<MessageValue, T>, bool> Is() const {
669
+ return IsMessage();
670
+ }
671
+
672
+ // Convenience method for use with template metaprogramming. See
673
+ // `IsNull()`.
674
+ template <typename T>
675
+ std::enable_if_t<std::is_same_v<NullValue, T>, bool> Is() const {
676
+ return IsNull();
677
+ }
678
+
679
+ // Convenience method for use with template metaprogramming. See
680
+ // `IsOpaque()`.
681
+ template <typename T>
682
+ std::enable_if_t<std::is_same_v<OpaqueValue, T>, bool> Is() const {
683
+ return IsOpaque();
684
+ }
685
+
686
+ // Convenience method for use with template metaprogramming. See
687
+ // `IsOptional()`.
688
+ template <typename T>
689
+ std::enable_if_t<std::is_same_v<OptionalValue, T>, bool> Is() const {
690
+ return IsOptional();
691
+ }
692
+
693
+ // Convenience method for use with template metaprogramming. See
694
+ // `IsParsedJsonList()`.
695
+ template <typename T>
696
+ std::enable_if_t<std::is_same_v<ParsedJsonListValue, T>, bool> Is() const {
697
+ return IsParsedJsonList();
698
+ }
699
+
700
+ // Convenience method for use with template metaprogramming. See
701
+ // `IsParsedJsonMap()`.
702
+ template <typename T>
703
+ std::enable_if_t<std::is_same_v<ParsedJsonMapValue, T>, bool> Is() const {
704
+ return IsParsedJsonMap();
705
+ }
706
+
707
+ // Convenience method for use with template metaprogramming. See
708
+ // `IsCustomList()`.
709
+ template <typename T>
710
+ std::enable_if_t<std::is_same_v<CustomListValue, T>, bool> Is() const {
711
+ return IsCustomList();
712
+ }
713
+
714
+ // Convenience method for use with template metaprogramming. See
715
+ // `IsCustomMap()`.
716
+ template <typename T>
717
+ std::enable_if_t<std::is_same_v<CustomMapValue, T>, bool> Is() const {
718
+ return IsCustomMap();
719
+ }
720
+
721
+ // Convenience method for use with template metaprogramming. See
722
+ // `IsParsedMapField()`.
723
+ template <typename T>
724
+ std::enable_if_t<std::is_same_v<ParsedMapFieldValue, T>, bool> Is() const {
725
+ return IsParsedMapField();
726
+ }
727
+
728
+ // Convenience method for use with template metaprogramming. See
729
+ // `IsParsedMessage()`.
730
+ template <typename T>
731
+ std::enable_if_t<std::is_same_v<ParsedMessageValue, T>, bool> Is() const {
732
+ return IsParsedMessage();
733
+ }
734
+
735
+ // Convenience method for use with template metaprogramming. See
736
+ // `IsParsedRepeatedField()`.
737
+ template <typename T>
738
+ std::enable_if_t<std::is_same_v<ParsedRepeatedFieldValue, T>, bool> Is()
739
+ const {
740
+ return IsParsedRepeatedField();
741
+ }
742
+
743
+ // Convenience method for use with template metaprogramming. See
744
+ // `IsParsedStruct()`.
745
+ template <typename T>
746
+ std::enable_if_t<std::is_same_v<CustomStructValue, T>, bool> Is() const {
747
+ return IsCustomStruct();
748
+ }
749
+
750
+ // Convenience method for use with template metaprogramming. See
751
+ // `IsString()`.
752
+ template <typename T>
753
+ std::enable_if_t<std::is_same_v<StringValue, T>, bool> Is() const {
754
+ return IsString();
755
+ }
756
+
757
+ // Convenience method for use with template metaprogramming. See
758
+ // `IsStruct()`.
759
+ template <typename T>
760
+ std::enable_if_t<std::is_same_v<StructValue, T>, bool> Is() const {
761
+ return IsStruct();
762
+ }
763
+
764
+ // Convenience method for use with template metaprogramming. See
765
+ // `IsTimestamp()`.
766
+ template <typename T>
767
+ std::enable_if_t<std::is_same_v<TimestampValue, T>, bool> Is() const {
768
+ return IsTimestamp();
769
+ }
770
+
771
+ // Convenience method for use with template metaprogramming. See
772
+ // `IsType()`.
773
+ template <typename T>
774
+ std::enable_if_t<std::is_same_v<TypeValue, T>, bool> Is() const {
775
+ return IsType();
776
+ }
777
+
778
+ // Convenience method for use with template metaprogramming. See
779
+ // `IsUint()`.
780
+ template <typename T>
781
+ std::enable_if_t<std::is_same_v<UintValue, T>, bool> Is() const {
782
+ return IsUint();
783
+ }
784
+
785
+ // Convenience method for use with template metaprogramming. See
786
+ // `IsUnknown()`.
787
+ template <typename T>
788
+ std::enable_if_t<std::is_same_v<UnknownValue, T>, bool> Is() const {
789
+ return IsUnknown();
790
+ }
791
+
792
+ // Performs a checked cast from a value to a bool value,
793
+ // returning a non-empty optional with either a value or reference to the
794
+ // bool value. Otherwise an empty optional is returned.
795
+ absl::optional<BoolValue> AsBool() const {
796
+ if (const auto* alternative = variant_.As<BoolValue>();
797
+ alternative != nullptr) {
798
+ return *alternative;
799
+ }
800
+ return absl::nullopt;
801
+ }
802
+
803
+ // Performs a checked cast from a value to a bytes value,
804
+ // returning a non-empty optional with either a value or reference to the
805
+ // bytes value. Otherwise an empty optional is returned.
806
+ optional_ref<const BytesValue> AsBytes() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
807
+ return std::as_const(*this).AsBytes();
808
+ }
809
+ optional_ref<const BytesValue> AsBytes() const& ABSL_ATTRIBUTE_LIFETIME_BOUND;
810
+ absl::optional<BytesValue> AsBytes() &&;
811
+ absl::optional<BytesValue> AsBytes() const&& {
812
+ return common_internal::AsOptional(AsBytes());
813
+ }
814
+
815
+ // Performs a checked cast from a value to a double value,
816
+ // returning a non-empty optional with either a value or reference to the
817
+ // double value. Otherwise an empty optional is returned.
818
+ absl::optional<DoubleValue> AsDouble() const;
819
+
820
+ // Performs a checked cast from a value to a duration value,
821
+ // returning a non-empty optional with either a value or reference to the
822
+ // duration value. Otherwise an empty optional is returned.
823
+ absl::optional<DurationValue> AsDuration() const;
824
+
825
+ // Performs a checked cast from a value to an error value,
826
+ // returning a non-empty optional with either a value or reference to the
827
+ // error value. Otherwise an empty optional is returned.
828
+ optional_ref<const ErrorValue> AsError() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
829
+ return std::as_const(*this).AsError();
830
+ }
831
+ optional_ref<const ErrorValue> AsError() const& ABSL_ATTRIBUTE_LIFETIME_BOUND;
832
+ absl::optional<ErrorValue> AsError() &&;
833
+ absl::optional<ErrorValue> AsError() const&& {
834
+ return common_internal::AsOptional(AsError());
835
+ }
836
+
837
+ // Performs a checked cast from a value to an int value,
838
+ // returning a non-empty optional with either a value or reference to the
839
+ // int value. Otherwise an empty optional is returned.
840
+ absl::optional<IntValue> AsInt() const;
841
+
842
+ // Performs a checked cast from a value to a list value,
843
+ // returning a non-empty optional with either a value or reference to the
844
+ // list value. Otherwise an empty optional is returned.
845
+ absl::optional<ListValue> AsList() & { return std::as_const(*this).AsList(); }
846
+ absl::optional<ListValue> AsList() const&;
847
+ absl::optional<ListValue> AsList() &&;
848
+ absl::optional<ListValue> AsList() const&& {
849
+ return common_internal::AsOptional(AsList());
850
+ }
851
+
852
+ // Performs a checked cast from a value to a map value,
853
+ // returning a non-empty optional with either a value or reference to the
854
+ // map value. Otherwise an empty optional is returned.
855
+ absl::optional<MapValue> AsMap() & { return std::as_const(*this).AsMap(); }
856
+ absl::optional<MapValue> AsMap() const&;
857
+ absl::optional<MapValue> AsMap() &&;
858
+ absl::optional<MapValue> AsMap() const&& {
859
+ return common_internal::AsOptional(AsMap());
860
+ }
861
+
862
+ // Performs a checked cast from a value to a message value,
863
+ // returning a non-empty optional with either a value or reference to the
864
+ // message value. Otherwise an empty optional is returned.
865
+ absl::optional<MessageValue> AsMessage() & {
866
+ return std::as_const(*this).AsMessage();
867
+ }
868
+ absl::optional<MessageValue> AsMessage() const&;
869
+ absl::optional<MessageValue> AsMessage() &&;
870
+ absl::optional<MessageValue> AsMessage() const&& {
871
+ return common_internal::AsOptional(AsMessage());
872
+ }
873
+
874
+ // Performs a checked cast from a value to a null value,
875
+ // returning a non-empty optional with either a value or reference to the
876
+ // null value. Otherwise an empty optional is returned.
877
+ absl::optional<NullValue> AsNull() const;
878
+
879
+ // Performs a checked cast from a value to an opaque value,
880
+ // returning a non-empty optional with either a value or reference to the
881
+ // opaque value. Otherwise an empty optional is returned.
882
+ optional_ref<const OpaqueValue> AsOpaque() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
883
+ return std::as_const(*this).AsOpaque();
884
+ }
885
+ optional_ref<const OpaqueValue> AsOpaque()
886
+ const& ABSL_ATTRIBUTE_LIFETIME_BOUND;
887
+ absl::optional<OpaqueValue> AsOpaque() &&;
888
+ absl::optional<OpaqueValue> AsOpaque() const&& {
889
+ return common_internal::AsOptional(AsOpaque());
890
+ }
891
+
892
+ // Performs a checked cast from a value to an optional value,
893
+ // returning a non-empty optional with either a value or reference to the
894
+ // optional value. Otherwise an empty optional is returned.
895
+ optional_ref<const OptionalValue> AsOptional() &
896
+ ABSL_ATTRIBUTE_LIFETIME_BOUND {
897
+ return std::as_const(*this).AsOptional();
898
+ }
899
+ optional_ref<const OptionalValue> AsOptional()
900
+ const& ABSL_ATTRIBUTE_LIFETIME_BOUND;
901
+ absl::optional<OptionalValue> AsOptional() &&;
902
+ absl::optional<OptionalValue> AsOptional() const&& {
903
+ return common_internal::AsOptional(AsOptional());
904
+ }
905
+
906
+ // Performs a checked cast from a value to a parsed JSON list value,
907
+ // returning a non-empty optional with either a value or reference to the
908
+ // parsed message value. Otherwise an empty optional is returned.
909
+ optional_ref<const ParsedJsonListValue> AsParsedJsonList() &
910
+ ABSL_ATTRIBUTE_LIFETIME_BOUND {
911
+ return std::as_const(*this).AsParsedJsonList();
912
+ }
913
+ optional_ref<const ParsedJsonListValue> AsParsedJsonList()
914
+ const& ABSL_ATTRIBUTE_LIFETIME_BOUND;
915
+ absl::optional<ParsedJsonListValue> AsParsedJsonList() &&;
916
+ absl::optional<ParsedJsonListValue> AsParsedJsonList() const&& {
917
+ return common_internal::AsOptional(AsParsedJsonList());
918
+ }
919
+
920
+ // Performs a checked cast from a value to a parsed JSON map value,
921
+ // returning a non-empty optional with either a value or reference to the
922
+ // parsed message value. Otherwise an empty optional is returned.
923
+ optional_ref<const ParsedJsonMapValue> AsParsedJsonMap() &
924
+ ABSL_ATTRIBUTE_LIFETIME_BOUND {
925
+ return std::as_const(*this).AsParsedJsonMap();
926
+ }
927
+ optional_ref<const ParsedJsonMapValue> AsParsedJsonMap()
928
+ const& ABSL_ATTRIBUTE_LIFETIME_BOUND;
929
+ absl::optional<ParsedJsonMapValue> AsParsedJsonMap() &&;
930
+ absl::optional<ParsedJsonMapValue> AsParsedJsonMap() const&& {
931
+ return common_internal::AsOptional(AsParsedJsonMap());
932
+ }
933
+
934
+ // Performs a checked cast from a value to a custom list value,
935
+ // returning a non-empty optional with either a value or reference to the
936
+ // custom list value. Otherwise an empty optional is returned.
937
+ optional_ref<const CustomListValue> AsCustomList() &
938
+ ABSL_ATTRIBUTE_LIFETIME_BOUND {
939
+ return std::as_const(*this).AsCustomList();
940
+ }
941
+ optional_ref<const CustomListValue> AsCustomList()
942
+ const& ABSL_ATTRIBUTE_LIFETIME_BOUND;
943
+ absl::optional<CustomListValue> AsCustomList() &&;
944
+ absl::optional<CustomListValue> AsCustomList() const&& {
945
+ return common_internal::AsOptional(AsCustomList());
946
+ }
947
+
948
+ // Performs a checked cast from a value to a custom map value,
949
+ // returning a non-empty optional with either a value or reference to the
950
+ // custom map value. Otherwise an empty optional is returned.
951
+ optional_ref<const CustomMapValue> AsCustomMap() &
952
+ ABSL_ATTRIBUTE_LIFETIME_BOUND {
953
+ return std::as_const(*this).AsCustomMap();
954
+ }
955
+ optional_ref<const CustomMapValue> AsCustomMap()
956
+ const& ABSL_ATTRIBUTE_LIFETIME_BOUND;
957
+ absl::optional<CustomMapValue> AsCustomMap() &&;
958
+ absl::optional<CustomMapValue> AsCustomMap() const&& {
959
+ return common_internal::AsOptional(AsCustomMap());
960
+ }
961
+
962
+ // Performs a checked cast from a value to a parsed map field value,
963
+ // returning a non-empty optional with either a value or reference to the
964
+ // parsed map field value. Otherwise an empty optional is returned.
965
+ optional_ref<const ParsedMapFieldValue> AsParsedMapField() &
966
+ ABSL_ATTRIBUTE_LIFETIME_BOUND {
967
+ return std::as_const(*this).AsParsedMapField();
968
+ }
969
+ optional_ref<const ParsedMapFieldValue> AsParsedMapField()
970
+ const& ABSL_ATTRIBUTE_LIFETIME_BOUND;
971
+ absl::optional<ParsedMapFieldValue> AsParsedMapField() &&;
972
+ absl::optional<ParsedMapFieldValue> AsParsedMapField() const&& {
973
+ return common_internal::AsOptional(AsParsedMapField());
974
+ }
975
+
976
+ // Performs a checked cast from a value to a parsed message value,
977
+ // returning a non-empty optional with either a value or reference to the
978
+ // parsed message value. Otherwise an empty optional is returned.
979
+ optional_ref<const ParsedMessageValue> AsParsedMessage() &
980
+ ABSL_ATTRIBUTE_LIFETIME_BOUND {
981
+ return std::as_const(*this).AsParsedMessage();
982
+ }
983
+ optional_ref<const ParsedMessageValue> AsParsedMessage()
984
+ const& ABSL_ATTRIBUTE_LIFETIME_BOUND;
985
+ absl::optional<ParsedMessageValue> AsParsedMessage() &&;
986
+ absl::optional<ParsedMessageValue> AsParsedMessage() const&& {
987
+ return common_internal::AsOptional(AsParsedMessage());
988
+ }
989
+
990
+ // Performs a checked cast from a value to a parsed repeated field value,
991
+ // returning a non-empty optional with either a value or reference to the
992
+ // parsed repeated field value. Otherwise an empty optional is returned.
993
+ optional_ref<const ParsedRepeatedFieldValue> AsParsedRepeatedField() &
994
+ ABSL_ATTRIBUTE_LIFETIME_BOUND {
995
+ return std::as_const(*this).AsParsedRepeatedField();
996
+ }
997
+ optional_ref<const ParsedRepeatedFieldValue> AsParsedRepeatedField()
998
+ const& ABSL_ATTRIBUTE_LIFETIME_BOUND;
999
+ absl::optional<ParsedRepeatedFieldValue> AsParsedRepeatedField() &&;
1000
+ absl::optional<ParsedRepeatedFieldValue> AsParsedRepeatedField() const&& {
1001
+ return common_internal::AsOptional(AsParsedRepeatedField());
1002
+ }
1003
+
1004
+ // Performs a checked cast from a value to a custom struct value,
1005
+ // returning a non-empty optional with either a value or reference to the
1006
+ // custom struct value. Otherwise an empty optional is returned.
1007
+ optional_ref<const CustomStructValue> AsCustomStruct() &
1008
+ ABSL_ATTRIBUTE_LIFETIME_BOUND {
1009
+ return std::as_const(*this).AsCustomStruct();
1010
+ }
1011
+ optional_ref<const CustomStructValue> AsCustomStruct()
1012
+ const& ABSL_ATTRIBUTE_LIFETIME_BOUND;
1013
+ absl::optional<CustomStructValue> AsCustomStruct() &&;
1014
+ absl::optional<CustomStructValue> AsCustomStruct() const&& {
1015
+ return common_internal::AsOptional(AsCustomStruct());
1016
+ }
1017
+
1018
+ // Performs a checked cast from a value to a string value,
1019
+ // returning a non-empty optional with either a value or reference to the
1020
+ // string value. Otherwise an empty optional is returned.
1021
+ optional_ref<const StringValue> AsString() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
1022
+ return std::as_const(*this).AsString();
1023
+ }
1024
+ optional_ref<const StringValue> AsString()
1025
+ const& ABSL_ATTRIBUTE_LIFETIME_BOUND;
1026
+ absl::optional<StringValue> AsString() &&;
1027
+ absl::optional<StringValue> AsString() const&& {
1028
+ return common_internal::AsOptional(AsString());
1029
+ }
1030
+
1031
+ // Performs a checked cast from a value to a struct value,
1032
+ // returning a non-empty optional with either a value or reference to the
1033
+ // struct value. Otherwise an empty optional is returned.
1034
+ absl::optional<StructValue> AsStruct() & {
1035
+ return std::as_const(*this).AsStruct();
1036
+ }
1037
+ absl::optional<StructValue> AsStruct() const&;
1038
+ absl::optional<StructValue> AsStruct() &&;
1039
+ absl::optional<StructValue> AsStruct() const&& {
1040
+ return common_internal::AsOptional(AsStruct());
1041
+ }
1042
+
1043
+ // Performs a checked cast from a value to a timestamp value,
1044
+ // returning a non-empty optional with either a value or reference to the
1045
+ // timestamp value. Otherwise an empty optional is returned.
1046
+ absl::optional<TimestampValue> AsTimestamp() const;
1047
+
1048
+ // Performs a checked cast from a value to a type value,
1049
+ // returning a non-empty optional with either a value or reference to the
1050
+ // type value. Otherwise an empty optional is returned.
1051
+ optional_ref<const TypeValue> AsType() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
1052
+ return std::as_const(*this).AsType();
1053
+ }
1054
+ optional_ref<const TypeValue> AsType() const& ABSL_ATTRIBUTE_LIFETIME_BOUND;
1055
+ absl::optional<TypeValue> AsType() &&;
1056
+ absl::optional<TypeValue> AsType() const&& {
1057
+ return common_internal::AsOptional(AsType());
1058
+ }
1059
+
1060
+ // Performs a checked cast from a value to an uint value,
1061
+ // returning a non-empty optional with either a value or reference to the
1062
+ // uint value. Otherwise an empty optional is returned.
1063
+ absl::optional<UintValue> AsUint() const;
1064
+
1065
+ // Performs a checked cast from a value to an unknown value,
1066
+ // returning a non-empty optional with either a value or reference to the
1067
+ // unknown value. Otherwise an empty optional is returned.
1068
+ optional_ref<const UnknownValue> AsUnknown() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
1069
+ return std::as_const(*this).AsUnknown();
1070
+ }
1071
+ optional_ref<const UnknownValue> AsUnknown()
1072
+ const& ABSL_ATTRIBUTE_LIFETIME_BOUND;
1073
+ absl::optional<UnknownValue> AsUnknown() &&;
1074
+ absl::optional<UnknownValue> AsUnknown() const&& {
1075
+ return common_internal::AsOptional(AsUnknown());
1076
+ }
1077
+
1078
+ // Convenience method for use with template metaprogramming. See
1079
+ // `AsBool()`.
1080
+ template <typename T>
1081
+ std::enable_if_t<std::is_same_v<BoolValue, T>, absl::optional<BoolValue>>
1082
+ As() & {
1083
+ return AsBool();
1084
+ }
1085
+ template <typename T>
1086
+ std::enable_if_t<std::is_same_v<BoolValue, T>, absl::optional<BoolValue>> As()
1087
+ const& {
1088
+ return AsBool();
1089
+ }
1090
+ template <typename T>
1091
+ std::enable_if_t<std::is_same_v<BoolValue, T>, absl::optional<BoolValue>>
1092
+ As() && {
1093
+ return AsBool();
1094
+ }
1095
+ template <typename T>
1096
+ std::enable_if_t<std::is_same_v<BoolValue, T>, absl::optional<BoolValue>> As()
1097
+ const&& {
1098
+ return AsBool();
1099
+ }
1100
+
1101
+ // Convenience method for use with template metaprogramming. See
1102
+ // `AsBytes()`.
1103
+ template <typename T>
1104
+ std::enable_if_t<std::is_same_v<BytesValue, T>,
1105
+ optional_ref<const BytesValue>>
1106
+ As() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
1107
+ return AsBytes();
1108
+ }
1109
+ template <typename T>
1110
+ std::enable_if_t<std::is_same_v<BytesValue, T>,
1111
+ optional_ref<const BytesValue>>
1112
+ As() const& ABSL_ATTRIBUTE_LIFETIME_BOUND {
1113
+ return AsBytes();
1114
+ }
1115
+ template <typename T>
1116
+ std::enable_if_t<std::is_same_v<BytesValue, T>, absl::optional<BytesValue>>
1117
+ As() && {
1118
+ return std::move(*this).AsBytes();
1119
+ }
1120
+ template <typename T>
1121
+ std::enable_if_t<std::is_same_v<BytesValue, T>, absl::optional<BytesValue>>
1122
+ As() const&& {
1123
+ return std::move(*this).AsBytes();
1124
+ }
1125
+
1126
+ // Convenience method for use with template metaprogramming. See
1127
+ // `AsDouble()`.
1128
+ template <typename T>
1129
+ std::enable_if_t<std::is_same_v<DoubleValue, T>, absl::optional<DoubleValue>>
1130
+ As() & {
1131
+ return AsDouble();
1132
+ }
1133
+ template <typename T>
1134
+ std::enable_if_t<std::is_same_v<DoubleValue, T>, absl::optional<DoubleValue>>
1135
+ As() const& {
1136
+ return AsDouble();
1137
+ }
1138
+ template <typename T>
1139
+ std::enable_if_t<std::is_same_v<DoubleValue, T>, absl::optional<DoubleValue>>
1140
+ As() && {
1141
+ return AsDouble();
1142
+ }
1143
+ template <typename T>
1144
+ std::enable_if_t<std::is_same_v<DoubleValue, T>, absl::optional<DoubleValue>>
1145
+ As() const&& {
1146
+ return AsDouble();
1147
+ }
1148
+
1149
+ // Convenience method for use with template metaprogramming. See
1150
+ // `AsDuration()`.
1151
+ template <typename T>
1152
+ std::enable_if_t<std::is_same_v<DurationValue, T>,
1153
+ absl::optional<DurationValue>>
1154
+ As() & {
1155
+ return AsDuration();
1156
+ }
1157
+ template <typename T>
1158
+ std::enable_if_t<std::is_same_v<DurationValue, T>,
1159
+ absl::optional<DurationValue>>
1160
+ As() const& {
1161
+ return AsDuration();
1162
+ }
1163
+ template <typename T>
1164
+ std::enable_if_t<std::is_same_v<DurationValue, T>,
1165
+ absl::optional<DurationValue>>
1166
+ As() && {
1167
+ return AsDuration();
1168
+ }
1169
+ template <typename T>
1170
+ std::enable_if_t<std::is_same_v<DurationValue, T>,
1171
+ absl::optional<DurationValue>>
1172
+ As() const&& {
1173
+ return AsDuration();
1174
+ }
1175
+
1176
+ // Convenience method for use with template metaprogramming. See
1177
+ // `AsError()`.
1178
+ template <typename T>
1179
+ std::enable_if_t<std::is_same_v<ErrorValue, T>,
1180
+ optional_ref<const ErrorValue>>
1181
+ As() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
1182
+ return AsError();
1183
+ }
1184
+ template <typename T>
1185
+ std::enable_if_t<std::is_same_v<ErrorValue, T>,
1186
+ optional_ref<const ErrorValue>>
1187
+ As() const& ABSL_ATTRIBUTE_LIFETIME_BOUND {
1188
+ return AsError();
1189
+ }
1190
+ template <typename T>
1191
+ std::enable_if_t<std::is_same_v<ErrorValue, T>, absl::optional<ErrorValue>>
1192
+ As() && {
1193
+ return std::move(*this).AsError();
1194
+ }
1195
+ template <typename T>
1196
+ std::enable_if_t<std::is_same_v<ErrorValue, T>, absl::optional<ErrorValue>>
1197
+ As() const&& {
1198
+ return std::move(*this).AsError();
1199
+ }
1200
+
1201
+ // Convenience method for use with template metaprogramming. See
1202
+ // `AsInt()`.
1203
+ template <typename T>
1204
+ std::enable_if_t<std::is_same_v<IntValue, T>, absl::optional<IntValue>>
1205
+ As() & {
1206
+ return AsInt();
1207
+ }
1208
+ template <typename T>
1209
+ std::enable_if_t<std::is_same_v<IntValue, T>, absl::optional<IntValue>> As()
1210
+ const& {
1211
+ return AsInt();
1212
+ }
1213
+ template <typename T>
1214
+ std::enable_if_t<std::is_same_v<IntValue, T>, absl::optional<IntValue>>
1215
+ As() && {
1216
+ return AsInt();
1217
+ }
1218
+ template <typename T>
1219
+ std::enable_if_t<std::is_same_v<IntValue, T>, absl::optional<IntValue>> As()
1220
+ const&& {
1221
+ return AsInt();
1222
+ }
1223
+
1224
+ // Convenience method for use with template metaprogramming. See
1225
+ // `AsList()`.
1226
+ template <typename T>
1227
+ std::enable_if_t<std::is_same_v<ListValue, T>, absl::optional<ListValue>>
1228
+ As() & {
1229
+ return AsList();
1230
+ }
1231
+ template <typename T>
1232
+ std::enable_if_t<std::is_same_v<ListValue, T>, absl::optional<ListValue>> As()
1233
+ const& {
1234
+ return AsList();
1235
+ }
1236
+ template <typename T>
1237
+ std::enable_if_t<std::is_same_v<ListValue, T>, absl::optional<ListValue>>
1238
+ As() && {
1239
+ return std::move(*this).AsList();
1240
+ }
1241
+ template <typename T>
1242
+ std::enable_if_t<std::is_same_v<ListValue, T>, absl::optional<ListValue>> As()
1243
+ const&& {
1244
+ return std::move(*this).AsList();
1245
+ }
1246
+
1247
+ // Convenience method for use with template metaprogramming. See
1248
+ // `AsMap()`.
1249
+ template <typename T>
1250
+ std::enable_if_t<std::is_same_v<MapValue, T>, absl::optional<MapValue>>
1251
+ As() & {
1252
+ return AsMap();
1253
+ }
1254
+ template <typename T>
1255
+ std::enable_if_t<std::is_same_v<MapValue, T>, absl::optional<MapValue>> As()
1256
+ const& {
1257
+ return AsMap();
1258
+ }
1259
+ template <typename T>
1260
+ std::enable_if_t<std::is_same_v<MapValue, T>, absl::optional<MapValue>>
1261
+ As() && {
1262
+ return std::move(*this).AsMap();
1263
+ }
1264
+ template <typename T>
1265
+ std::enable_if_t<std::is_same_v<MapValue, T>, absl::optional<MapValue>> As()
1266
+ const&& {
1267
+ return std::move(*this).AsMap();
1268
+ }
1269
+
1270
+ // Convenience method for use with template metaprogramming. See
1271
+ // `AsMessage()`.
1272
+ template <typename T>
1273
+ std::enable_if_t<std::is_same_v<MessageValue, T>,
1274
+ absl::optional<MessageValue>>
1275
+ As() & {
1276
+ return AsMessage();
1277
+ }
1278
+ template <typename T>
1279
+ std::enable_if_t<std::is_same_v<MessageValue, T>,
1280
+ absl::optional<MessageValue>>
1281
+ As() const& {
1282
+ return AsMessage();
1283
+ }
1284
+ template <typename T>
1285
+ std::enable_if_t<std::is_same_v<MessageValue, T>,
1286
+ absl::optional<MessageValue>>
1287
+ As() && {
1288
+ return std::move(*this).AsMessage();
1289
+ }
1290
+ template <typename T>
1291
+ std::enable_if_t<std::is_same_v<MessageValue, T>,
1292
+ absl::optional<MessageValue>>
1293
+ As() const&& {
1294
+ return std::move(*this).AsMessage();
1295
+ }
1296
+
1297
+ // Convenience method for use with template metaprogramming. See
1298
+ // `AsNull()`.
1299
+ template <typename T>
1300
+ std::enable_if_t<std::is_same_v<NullValue, T>, absl::optional<NullValue>>
1301
+ As() & {
1302
+ return AsNull();
1303
+ }
1304
+ template <typename T>
1305
+ std::enable_if_t<std::is_same_v<NullValue, T>, absl::optional<NullValue>> As()
1306
+ const& {
1307
+ return AsNull();
1308
+ }
1309
+ template <typename T>
1310
+ std::enable_if_t<std::is_same_v<NullValue, T>, absl::optional<NullValue>>
1311
+ As() && {
1312
+ return AsNull();
1313
+ }
1314
+ template <typename T>
1315
+ std::enable_if_t<std::is_same_v<NullValue, T>, absl::optional<NullValue>> As()
1316
+ const&& {
1317
+ return AsNull();
1318
+ }
1319
+
1320
+ // Convenience method for use with template metaprogramming. See
1321
+ // `AsOpaque()`.
1322
+ template <typename T>
1323
+ std::enable_if_t<std::is_same_v<OpaqueValue, T>,
1324
+ optional_ref<const OpaqueValue>>
1325
+ As() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
1326
+ return AsOpaque();
1327
+ }
1328
+ template <typename T>
1329
+ std::enable_if_t<std::is_same_v<OpaqueValue, T>,
1330
+ optional_ref<const OpaqueValue>>
1331
+ As() const& ABSL_ATTRIBUTE_LIFETIME_BOUND {
1332
+ return AsOpaque();
1333
+ }
1334
+ template <typename T>
1335
+ std::enable_if_t<std::is_same_v<OpaqueValue, T>, absl::optional<OpaqueValue>>
1336
+ As() && {
1337
+ return std::move(*this).AsOpaque();
1338
+ }
1339
+ template <typename T>
1340
+ std::enable_if_t<std::is_same_v<OpaqueValue, T>, absl::optional<OpaqueValue>>
1341
+ As() const&& {
1342
+ return std::move(*this).AsOpaque();
1343
+ }
1344
+
1345
+ // Convenience method for use with template metaprogramming. See
1346
+ // `AsOptional()`.
1347
+ template <typename T>
1348
+ std::enable_if_t<std::is_same_v<OptionalValue, T>,
1349
+ optional_ref<const OptionalValue>>
1350
+ As() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
1351
+ return AsOptional();
1352
+ }
1353
+ template <typename T>
1354
+ std::enable_if_t<std::is_same_v<OptionalValue, T>,
1355
+ optional_ref<const OptionalValue>>
1356
+ As() const& ABSL_ATTRIBUTE_LIFETIME_BOUND {
1357
+ return AsOptional();
1358
+ }
1359
+ template <typename T>
1360
+ std::enable_if_t<std::is_same_v<OptionalValue, T>,
1361
+ absl::optional<OptionalValue>>
1362
+ As() && {
1363
+ return std::move(*this).AsOptional();
1364
+ }
1365
+ template <typename T>
1366
+ std::enable_if_t<std::is_same_v<OptionalValue, T>,
1367
+ absl::optional<OptionalValue>>
1368
+ As() const&& {
1369
+ return std::move(*this).AsOptional();
1370
+ }
1371
+
1372
+ // Convenience method for use with template metaprogramming. See
1373
+ // `AsParsedJsonList()`.
1374
+ template <typename T>
1375
+ std::enable_if_t<std::is_same_v<ParsedJsonListValue, T>,
1376
+ optional_ref<const ParsedJsonListValue>>
1377
+ As() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
1378
+ return AsParsedJsonList();
1379
+ }
1380
+ template <typename T>
1381
+ std::enable_if_t<std::is_same_v<ParsedJsonListValue, T>,
1382
+ optional_ref<const ParsedJsonListValue>>
1383
+ As() const& ABSL_ATTRIBUTE_LIFETIME_BOUND {
1384
+ return AsParsedJsonList();
1385
+ }
1386
+ template <typename T>
1387
+ std::enable_if_t<std::is_same_v<ParsedJsonListValue, T>,
1388
+ absl::optional<ParsedJsonListValue>>
1389
+ As() && {
1390
+ return std::move(*this).AsParsedJsonList();
1391
+ }
1392
+ template <typename T>
1393
+ std::enable_if_t<std::is_same_v<ParsedJsonListValue, T>,
1394
+ absl::optional<ParsedJsonListValue>>
1395
+ As() const&& {
1396
+ return std::move(*this).AsParsedJsonList();
1397
+ }
1398
+
1399
+ // Convenience method for use with template metaprogramming. See
1400
+ // `AsParsedJsonMap()`.
1401
+ template <typename T>
1402
+ std::enable_if_t<std::is_same_v<ParsedJsonMapValue, T>,
1403
+ optional_ref<const ParsedJsonMapValue>>
1404
+ As() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
1405
+ return AsParsedJsonMap();
1406
+ }
1407
+ template <typename T>
1408
+ std::enable_if_t<std::is_same_v<ParsedJsonMapValue, T>,
1409
+ optional_ref<const ParsedJsonMapValue>>
1410
+ As() const& ABSL_ATTRIBUTE_LIFETIME_BOUND {
1411
+ return AsParsedJsonMap();
1412
+ }
1413
+ template <typename T>
1414
+ std::enable_if_t<std::is_same_v<ParsedJsonMapValue, T>,
1415
+ absl::optional<ParsedJsonMapValue>>
1416
+ As() && {
1417
+ return std::move(*this).AsParsedJsonMap();
1418
+ }
1419
+ template <typename T>
1420
+ std::enable_if_t<std::is_same_v<ParsedJsonMapValue, T>,
1421
+ absl::optional<ParsedJsonMapValue>>
1422
+ As() const&& {
1423
+ return std::move(*this).AsParsedJsonMap();
1424
+ }
1425
+
1426
+ // Convenience method for use with template metaprogramming. See
1427
+ // `AsCustomList()`.
1428
+ template <typename T>
1429
+ std::enable_if_t<std::is_same_v<CustomListValue, T>,
1430
+ optional_ref<const CustomListValue>>
1431
+ As() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
1432
+ return AsCustomList();
1433
+ }
1434
+ template <typename T>
1435
+ std::enable_if_t<std::is_same_v<CustomListValue, T>,
1436
+ optional_ref<const CustomListValue>>
1437
+ As() const& ABSL_ATTRIBUTE_LIFETIME_BOUND {
1438
+ return AsCustomList();
1439
+ }
1440
+ template <typename T>
1441
+ std::enable_if_t<std::is_same_v<CustomListValue, T>,
1442
+ absl::optional<CustomListValue>>
1443
+ As() && {
1444
+ return std::move(*this).AsCustomList();
1445
+ }
1446
+ template <typename T>
1447
+ std::enable_if_t<std::is_same_v<CustomListValue, T>,
1448
+ absl::optional<CustomListValue>>
1449
+ As() const&& {
1450
+ return std::move(*this).AsCustomList();
1451
+ }
1452
+
1453
+ // Convenience method for use with template metaprogramming. See
1454
+ // `AsCustomMap()`.
1455
+ template <typename T>
1456
+ std::enable_if_t<std::is_same_v<CustomMapValue, T>,
1457
+ optional_ref<const CustomMapValue>>
1458
+ As() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
1459
+ return AsCustomMap();
1460
+ }
1461
+ template <typename T>
1462
+ std::enable_if_t<std::is_same_v<CustomMapValue, T>,
1463
+ optional_ref<const CustomMapValue>>
1464
+ As() const& ABSL_ATTRIBUTE_LIFETIME_BOUND {
1465
+ return AsCustomMap();
1466
+ }
1467
+ template <typename T>
1468
+ std::enable_if_t<std::is_same_v<CustomMapValue, T>,
1469
+ absl::optional<CustomMapValue>>
1470
+ As() && {
1471
+ return std::move(*this).AsCustomMap();
1472
+ }
1473
+ template <typename T>
1474
+ std::enable_if_t<std::is_same_v<CustomMapValue, T>,
1475
+ absl::optional<CustomMapValue>>
1476
+ As() const&& {
1477
+ return std::move(*this).AsCustomMap();
1478
+ }
1479
+
1480
+ // Convenience method for use with template metaprogramming. See
1481
+ // `AsParsedMapField()`.
1482
+ template <typename T>
1483
+ std::enable_if_t<std::is_same_v<ParsedMapFieldValue, T>,
1484
+ optional_ref<const ParsedMapFieldValue>>
1485
+ As() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
1486
+ return AsParsedMapField();
1487
+ }
1488
+ template <typename T>
1489
+ std::enable_if_t<std::is_same_v<ParsedMapFieldValue, T>,
1490
+ optional_ref<const ParsedMapFieldValue>>
1491
+ As() const& ABSL_ATTRIBUTE_LIFETIME_BOUND {
1492
+ return AsParsedMapField();
1493
+ }
1494
+ template <typename T>
1495
+ std::enable_if_t<std::is_same_v<ParsedMapFieldValue, T>,
1496
+ absl::optional<ParsedMapFieldValue>>
1497
+ As() && {
1498
+ return std::move(*this).AsParsedMapField();
1499
+ }
1500
+ template <typename T>
1501
+ std::enable_if_t<std::is_same_v<ParsedMapFieldValue, T>,
1502
+ absl::optional<ParsedMapFieldValue>>
1503
+ As() const&& {
1504
+ return std::move(*this).AsParsedMapField();
1505
+ }
1506
+
1507
+ // Convenience method for use with template metaprogramming. See
1508
+ // `AsParsedMessage()`.
1509
+ template <typename T>
1510
+ std::enable_if_t<std::is_same_v<ParsedMessageValue, T>,
1511
+ optional_ref<const ParsedMessageValue>>
1512
+ As() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
1513
+ return AsParsedMessage();
1514
+ }
1515
+ template <typename T>
1516
+ std::enable_if_t<std::is_same_v<ParsedMessageValue, T>,
1517
+ optional_ref<const ParsedMessageValue>>
1518
+ As() const& ABSL_ATTRIBUTE_LIFETIME_BOUND {
1519
+ return AsParsedMessage();
1520
+ }
1521
+ template <typename T>
1522
+ std::enable_if_t<std::is_same_v<ParsedMessageValue, T>,
1523
+ absl::optional<ParsedMessageValue>>
1524
+ As() && {
1525
+ return std::move(*this).AsParsedMessage();
1526
+ }
1527
+ template <typename T>
1528
+ std::enable_if_t<std::is_same_v<ParsedMessageValue, T>,
1529
+ absl::optional<ParsedMessageValue>>
1530
+ As() const&& {
1531
+ return std::move(*this).AsParsedMessage();
1532
+ }
1533
+
1534
+ // Convenience method for use with template metaprogramming. See
1535
+ // `AsParsedRepeatedField()`.
1536
+ template <typename T>
1537
+ std::enable_if_t<std::is_same_v<ParsedRepeatedFieldValue, T>,
1538
+ optional_ref<const ParsedRepeatedFieldValue>>
1539
+ As() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
1540
+ return AsParsedRepeatedField();
1541
+ }
1542
+ template <typename T>
1543
+ std::enable_if_t<std::is_same_v<ParsedRepeatedFieldValue, T>,
1544
+ optional_ref<const ParsedRepeatedFieldValue>>
1545
+ As() const& ABSL_ATTRIBUTE_LIFETIME_BOUND {
1546
+ return AsParsedRepeatedField();
1547
+ }
1548
+ template <typename T>
1549
+ std::enable_if_t<std::is_same_v<ParsedRepeatedFieldValue, T>,
1550
+ absl::optional<ParsedRepeatedFieldValue>>
1551
+ As() && {
1552
+ return std::move(*this).AsParsedRepeatedField();
1553
+ }
1554
+ template <typename T>
1555
+ std::enable_if_t<std::is_same_v<ParsedRepeatedFieldValue, T>,
1556
+ absl::optional<ParsedRepeatedFieldValue>>
1557
+ As() const&& {
1558
+ return std::move(*this).AsParsedRepeatedField();
1559
+ }
1560
+
1561
+ // Convenience method for use with template metaprogramming. See
1562
+ // `AsCustomStruct()`.
1563
+ template <typename T>
1564
+ std::enable_if_t<std::is_same_v<CustomStructValue, T>,
1565
+ optional_ref<const CustomStructValue>>
1566
+ As() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
1567
+ return AsCustomStruct();
1568
+ }
1569
+ template <typename T>
1570
+ std::enable_if_t<std::is_same_v<CustomStructValue, T>,
1571
+ optional_ref<const CustomStructValue>>
1572
+ As() const& ABSL_ATTRIBUTE_LIFETIME_BOUND {
1573
+ return AsCustomStruct();
1574
+ }
1575
+ template <typename T>
1576
+ std::enable_if_t<std::is_same_v<CustomStructValue, T>,
1577
+ absl::optional<CustomStructValue>>
1578
+ As() && {
1579
+ return std::move(*this).AsCustomStruct();
1580
+ }
1581
+ template <typename T>
1582
+ std::enable_if_t<std::is_same_v<CustomStructValue, T>,
1583
+ absl::optional<CustomStructValue>>
1584
+ As() const&& {
1585
+ return std::move(*this).AsCustomStruct();
1586
+ }
1587
+
1588
+ // Convenience method for use with template metaprogramming. See
1589
+ // `AsString()`.
1590
+ template <typename T>
1591
+ std::enable_if_t<std::is_same_v<StringValue, T>,
1592
+ optional_ref<const StringValue>>
1593
+ As() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
1594
+ return AsString();
1595
+ }
1596
+ template <typename T>
1597
+ std::enable_if_t<std::is_same_v<StringValue, T>,
1598
+ optional_ref<const StringValue>>
1599
+ As() const& ABSL_ATTRIBUTE_LIFETIME_BOUND {
1600
+ return AsString();
1601
+ }
1602
+ template <typename T>
1603
+ std::enable_if_t<std::is_same_v<StringValue, T>, absl::optional<StringValue>>
1604
+ As() && {
1605
+ return std::move(*this).AsString();
1606
+ }
1607
+ template <typename T>
1608
+ std::enable_if_t<std::is_same_v<StringValue, T>, absl::optional<StringValue>>
1609
+ As() const&& {
1610
+ return std::move(*this).AsString();
1611
+ }
1612
+
1613
+ // Convenience method for use with template metaprogramming. See
1614
+ // `AsStruct()`.
1615
+ template <typename T>
1616
+ std::enable_if_t<std::is_same_v<StructValue, T>, absl::optional<StructValue>>
1617
+ As() & {
1618
+ return AsStruct();
1619
+ }
1620
+ template <typename T>
1621
+ std::enable_if_t<std::is_same_v<StructValue, T>, absl::optional<StructValue>>
1622
+ As() const& {
1623
+ return AsStruct();
1624
+ }
1625
+ template <typename T>
1626
+ std::enable_if_t<std::is_same_v<StructValue, T>, absl::optional<StructValue>>
1627
+ As() && {
1628
+ return std::move(*this).AsStruct();
1629
+ }
1630
+ template <typename T>
1631
+ std::enable_if_t<std::is_same_v<StructValue, T>, absl::optional<StructValue>>
1632
+ As() const&& {
1633
+ return std::move(*this).AsStruct();
1634
+ }
1635
+
1636
+ // Convenience method for use with template metaprogramming. See
1637
+ // `AsTimestamp()`.
1638
+ template <typename T>
1639
+ std::enable_if_t<std::is_same_v<TimestampValue, T>,
1640
+ absl::optional<TimestampValue>>
1641
+ As() & {
1642
+ return AsTimestamp();
1643
+ }
1644
+ template <typename T>
1645
+ std::enable_if_t<std::is_same_v<TimestampValue, T>,
1646
+ absl::optional<TimestampValue>>
1647
+ As() const& {
1648
+ return AsTimestamp();
1649
+ }
1650
+ template <typename T>
1651
+ std::enable_if_t<std::is_same_v<TimestampValue, T>,
1652
+ absl::optional<TimestampValue>>
1653
+ As() && {
1654
+ return AsTimestamp();
1655
+ }
1656
+ template <typename T>
1657
+ std::enable_if_t<std::is_same_v<TimestampValue, T>,
1658
+ absl::optional<TimestampValue>>
1659
+ As() const&& {
1660
+ return AsTimestamp();
1661
+ }
1662
+
1663
+ // Convenience method for use with template metaprogramming. See
1664
+ // `AsType()`.
1665
+ template <typename T>
1666
+ std::enable_if_t<std::is_same_v<TypeValue, T>,
1667
+ optional_ref<const TypeValue>>
1668
+ As() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
1669
+ return AsType();
1670
+ }
1671
+ template <typename T>
1672
+ std::enable_if_t<std::is_same_v<TypeValue, T>, optional_ref<const TypeValue>>
1673
+ As() const& ABSL_ATTRIBUTE_LIFETIME_BOUND {
1674
+ return AsType();
1675
+ }
1676
+ template <typename T>
1677
+ std::enable_if_t<std::is_same_v<TypeValue, T>, absl::optional<TypeValue>>
1678
+ As() && {
1679
+ return std::move(*this).AsType();
1680
+ }
1681
+ template <typename T>
1682
+ std::enable_if_t<std::is_same_v<TypeValue, T>, absl::optional<TypeValue>> As()
1683
+ const&& {
1684
+ return std::move(*this).AsType();
1685
+ }
1686
+
1687
+ // Convenience method for use with template metaprogramming. See
1688
+ // `AsUint()`.
1689
+ template <typename T>
1690
+ std::enable_if_t<std::is_same_v<UintValue, T>, absl::optional<UintValue>>
1691
+ As() & {
1692
+ return AsUint();
1693
+ }
1694
+ template <typename T>
1695
+ std::enable_if_t<std::is_same_v<UintValue, T>, absl::optional<UintValue>> As()
1696
+ const& {
1697
+ return AsUint();
1698
+ }
1699
+ template <typename T>
1700
+ std::enable_if_t<std::is_same_v<UintValue, T>, absl::optional<UintValue>>
1701
+ As() && {
1702
+ return AsUint();
1703
+ }
1704
+ template <typename T>
1705
+ std::enable_if_t<std::is_same_v<UintValue, T>, absl::optional<UintValue>> As()
1706
+ const&& {
1707
+ return AsUint();
1708
+ }
1709
+
1710
+ // Convenience method for use with template metaprogramming. See
1711
+ // `AsUnknown()`.
1712
+ template <typename T>
1713
+ std::enable_if_t<std::is_same_v<UnknownValue, T>,
1714
+ optional_ref<const UnknownValue>>
1715
+ As() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
1716
+ return AsUnknown();
1717
+ }
1718
+ template <typename T>
1719
+ std::enable_if_t<std::is_same_v<UnknownValue, T>,
1720
+ optional_ref<const UnknownValue>>
1721
+ As() const& ABSL_ATTRIBUTE_LIFETIME_BOUND {
1722
+ return AsUnknown();
1723
+ }
1724
+ template <typename T>
1725
+ std::enable_if_t<std::is_same_v<UnknownValue, T>,
1726
+ absl::optional<UnknownValue>>
1727
+ As() && {
1728
+ return std::move(*this).AsUnknown();
1729
+ }
1730
+ template <typename T>
1731
+ std::enable_if_t<std::is_same_v<UnknownValue, T>,
1732
+ absl::optional<UnknownValue>>
1733
+ As() const&& {
1734
+ return std::move(*this).AsUnknown();
1735
+ }
1736
+
1737
+ // Performs an unchecked cast from a value to a bool value. In
1738
+ // debug builds a best effort is made to crash. If `IsBool()` would return
1739
+ // false, calling this method is undefined behavior.
1740
+ BoolValue GetBool() const {
1741
+ ABSL_DCHECK(IsBool()) << *this;
1742
+ return variant_.Get<BoolValue>();
1743
+ }
1744
+
1745
+ // Performs an unchecked cast from a value to a bytes value. In
1746
+ // debug builds a best effort is made to crash. If `IsBytes()` would return
1747
+ // false, calling this method is undefined behavior.
1748
+ const BytesValue& GetBytes() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
1749
+ return std::as_const(*this).GetBytes();
1750
+ }
1751
+ const BytesValue& GetBytes() const& ABSL_ATTRIBUTE_LIFETIME_BOUND;
1752
+ BytesValue GetBytes() &&;
1753
+ BytesValue GetBytes() const&& { return GetBytes(); }
1754
+
1755
+ // Performs an unchecked cast from a value to a double value. In
1756
+ // debug builds a best effort is made to crash. If `IsDouble()` would return
1757
+ // false, calling this method is undefined behavior.
1758
+ DoubleValue GetDouble() const;
1759
+
1760
+ // Performs an unchecked cast from a value to a duration value. In
1761
+ // debug builds a best effort is made to crash. If `IsDuration()` would return
1762
+ // false, calling this method is undefined behavior.
1763
+ DurationValue GetDuration() const;
1764
+
1765
+ // Performs an unchecked cast from a value to an error value. In
1766
+ // debug builds a best effort is made to crash. If `IsError()` would return
1767
+ // false, calling this method is undefined behavior.
1768
+ const ErrorValue& GetError() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
1769
+ return std::as_const(*this).GetError();
1770
+ }
1771
+ const ErrorValue& GetError() const& ABSL_ATTRIBUTE_LIFETIME_BOUND;
1772
+ ErrorValue GetError() &&;
1773
+ ErrorValue GetError() const&& { return GetError(); }
1774
+
1775
+ // Performs an unchecked cast from a value to an int value. In
1776
+ // debug builds a best effort is made to crash. If `IsInt()` would return
1777
+ // false, calling this method is undefined behavior.
1778
+ IntValue GetInt() const;
1779
+
1780
+ // Performs an unchecked cast from a value to a list value. In
1781
+ // debug builds a best effort is made to crash. If `IsList()` would return
1782
+ // false, calling this method is undefined behavior.
1783
+ ListValue GetList() & { return std::as_const(*this).GetList(); }
1784
+ ListValue GetList() const&;
1785
+ ListValue GetList() &&;
1786
+ ListValue GetList() const&& { return GetList(); }
1787
+
1788
+ // Performs an unchecked cast from a value to a map value. In
1789
+ // debug builds a best effort is made to crash. If `IsMap()` would return
1790
+ // false, calling this method is undefined behavior.
1791
+ MapValue GetMap() & { return std::as_const(*this).GetMap(); }
1792
+ MapValue GetMap() const&;
1793
+ MapValue GetMap() &&;
1794
+ MapValue GetMap() const&& { return GetMap(); }
1795
+
1796
+ // Performs an unchecked cast from a value to a message value. In
1797
+ // debug builds a best effort is made to crash. If `IsMessage()` would return
1798
+ // false, calling this method is undefined behavior.
1799
+ MessageValue GetMessage() & { return std::as_const(*this).GetMessage(); }
1800
+ MessageValue GetMessage() const&;
1801
+ MessageValue GetMessage() &&;
1802
+ MessageValue GetMessage() const&& { return GetMessage(); }
1803
+
1804
+ // Performs an unchecked cast from a value to a null value. In
1805
+ // debug builds a best effort is made to crash. If `IsNull()` would return
1806
+ // false, calling this method is undefined behavior.
1807
+ NullValue GetNull() const;
1808
+
1809
+ // Performs an unchecked cast from a value to an opaque value. In
1810
+ // debug builds a best effort is made to crash. If `IsOpaque()` would return
1811
+ // false, calling this method is undefined behavior.
1812
+ const OpaqueValue& GetOpaque() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
1813
+ return std::as_const(*this).GetOpaque();
1814
+ }
1815
+ const OpaqueValue& GetOpaque() const& ABSL_ATTRIBUTE_LIFETIME_BOUND;
1816
+ OpaqueValue GetOpaque() &&;
1817
+ OpaqueValue GetOpaque() const&& { return GetOpaque(); }
1818
+
1819
+ // Performs an unchecked cast from a value to an optional value. In
1820
+ // debug builds a best effort is made to crash. If `IsOptional()` would return
1821
+ // false, calling this method is undefined behavior.
1822
+ const OptionalValue& GetOptional() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
1823
+ return std::as_const(*this).GetOptional();
1824
+ }
1825
+ const OptionalValue& GetOptional() const& ABSL_ATTRIBUTE_LIFETIME_BOUND;
1826
+ OptionalValue GetOptional() &&;
1827
+ OptionalValue GetOptional() const&& { return GetOptional(); }
1828
+
1829
+ // Performs an unchecked cast from a value to a parsed message value. In
1830
+ // debug builds a best effort is made to crash. If `IsParsedJsonList()` would
1831
+ // return false, calling this method is undefined behavior.
1832
+ const ParsedJsonListValue& GetParsedJsonList() &
1833
+ ABSL_ATTRIBUTE_LIFETIME_BOUND {
1834
+ return std::as_const(*this).GetParsedJsonList();
1835
+ }
1836
+ const ParsedJsonListValue& GetParsedJsonList()
1837
+ const& ABSL_ATTRIBUTE_LIFETIME_BOUND;
1838
+ ParsedJsonListValue GetParsedJsonList() &&;
1839
+ ParsedJsonListValue GetParsedJsonList() const&& {
1840
+ return GetParsedJsonList();
1841
+ }
1842
+
1843
+ // Performs an unchecked cast from a value to a parsed message value. In
1844
+ // debug builds a best effort is made to crash. If `IsParsedJsonMap()` would
1845
+ // return false, calling this method is undefined behavior.
1846
+ const ParsedJsonMapValue& GetParsedJsonMap() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
1847
+ return std::as_const(*this).GetParsedJsonMap();
1848
+ }
1849
+ const ParsedJsonMapValue& GetParsedJsonMap()
1850
+ const& ABSL_ATTRIBUTE_LIFETIME_BOUND;
1851
+ ParsedJsonMapValue GetParsedJsonMap() &&;
1852
+ ParsedJsonMapValue GetParsedJsonMap() const&& { return GetParsedJsonMap(); }
1853
+
1854
+ // Performs an unchecked cast from a value to a custom list value. In
1855
+ // debug builds a best effort is made to crash. If `IsCustomList()` would
1856
+ // return false, calling this method is undefined behavior.
1857
+ const CustomListValue& GetCustomList() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
1858
+ return std::as_const(*this).GetCustomList();
1859
+ }
1860
+ const CustomListValue& GetCustomList() const& ABSL_ATTRIBUTE_LIFETIME_BOUND;
1861
+ CustomListValue GetCustomList() &&;
1862
+ CustomListValue GetCustomList() const&& { return GetCustomList(); }
1863
+
1864
+ // Performs an unchecked cast from a value to a custom map value. In
1865
+ // debug builds a best effort is made to crash. If `IsCustomMap()` would
1866
+ // return false, calling this method is undefined behavior.
1867
+ const CustomMapValue& GetCustomMap() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
1868
+ return std::as_const(*this).GetCustomMap();
1869
+ }
1870
+ const CustomMapValue& GetCustomMap() const& ABSL_ATTRIBUTE_LIFETIME_BOUND;
1871
+ CustomMapValue GetCustomMap() &&;
1872
+ CustomMapValue GetCustomMap() const&& { return GetCustomMap(); }
1873
+
1874
+ // Performs an unchecked cast from a value to a parsed map field value. In
1875
+ // debug builds a best effort is made to crash. If `IsParsedMapField()` would
1876
+ // return false, calling this method is undefined behavior.
1877
+ const ParsedMapFieldValue& GetParsedMapField() &
1878
+ ABSL_ATTRIBUTE_LIFETIME_BOUND {
1879
+ return std::as_const(*this).GetParsedMapField();
1880
+ }
1881
+ const ParsedMapFieldValue& GetParsedMapField()
1882
+ const& ABSL_ATTRIBUTE_LIFETIME_BOUND;
1883
+ ParsedMapFieldValue GetParsedMapField() &&;
1884
+ ParsedMapFieldValue GetParsedMapField() const&& {
1885
+ return GetParsedMapField();
1886
+ }
1887
+
1888
+ // Performs an unchecked cast from a value to a parsed message value. In
1889
+ // debug builds a best effort is made to crash. If `IsParsedMessage()` would
1890
+ // return false, calling this method is undefined behavior.
1891
+ const ParsedMessageValue& GetParsedMessage() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
1892
+ return std::as_const(*this).GetParsedMessage();
1893
+ }
1894
+ const ParsedMessageValue& GetParsedMessage()
1895
+ const& ABSL_ATTRIBUTE_LIFETIME_BOUND;
1896
+ ParsedMessageValue GetParsedMessage() &&;
1897
+ ParsedMessageValue GetParsedMessage() const&& { return GetParsedMessage(); }
1898
+
1899
+ // Performs an unchecked cast from a value to a parsed repeated field value.
1900
+ // In debug builds a best effort is made to crash. If
1901
+ // `IsParsedRepeatedField()` would return false, calling this method is
1902
+ // undefined behavior.
1903
+ const ParsedRepeatedFieldValue& GetParsedRepeatedField() &
1904
+ ABSL_ATTRIBUTE_LIFETIME_BOUND {
1905
+ return std::as_const(*this).GetParsedRepeatedField();
1906
+ }
1907
+ const ParsedRepeatedFieldValue& GetParsedRepeatedField()
1908
+ const& ABSL_ATTRIBUTE_LIFETIME_BOUND;
1909
+ ParsedRepeatedFieldValue GetParsedRepeatedField() &&;
1910
+ ParsedRepeatedFieldValue GetParsedRepeatedField() const&& {
1911
+ return GetParsedRepeatedField();
1912
+ }
1913
+
1914
+ // Performs an unchecked cast from a value to a custom struct value. In
1915
+ // debug builds a best effort is made to crash. If `IsCustomStruct()` would
1916
+ // return false, calling this method is undefined behavior.
1917
+ const CustomStructValue& GetCustomStruct() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
1918
+ return std::as_const(*this).GetCustomStruct();
1919
+ }
1920
+ const CustomStructValue& GetCustomStruct()
1921
+ const& ABSL_ATTRIBUTE_LIFETIME_BOUND;
1922
+ CustomStructValue GetCustomStruct() &&;
1923
+ CustomStructValue GetCustomStruct() const&& { return GetCustomStruct(); }
1924
+
1925
+ // Performs an unchecked cast from a value to a string value. In
1926
+ // debug builds a best effort is made to crash. If `IsString()` would return
1927
+ // false, calling this method is undefined behavior.
1928
+ const StringValue& GetString() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
1929
+ return std::as_const(*this).GetString();
1930
+ }
1931
+ const StringValue& GetString() const& ABSL_ATTRIBUTE_LIFETIME_BOUND;
1932
+ StringValue GetString() &&;
1933
+ StringValue GetString() const&& { return GetString(); }
1934
+
1935
+ // Performs an unchecked cast from a value to a struct value. In
1936
+ // debug builds a best effort is made to crash. If `IsStruct()` would return
1937
+ // false, calling this method is undefined behavior.
1938
+ StructValue GetStruct() & { return std::as_const(*this).GetStruct(); }
1939
+ StructValue GetStruct() const&;
1940
+ StructValue GetStruct() &&;
1941
+ StructValue GetStruct() const&& { return GetStruct(); }
1942
+
1943
+ // Performs an unchecked cast from a value to a timestamp value. In
1944
+ // debug builds a best effort is made to crash. If `IsTimestamp()` would
1945
+ // return false, calling this method is undefined behavior.
1946
+ TimestampValue GetTimestamp() const;
1947
+
1948
+ // Performs an unchecked cast from a value to a type value. In
1949
+ // debug builds a best effort is made to crash. If `IsType()` would return
1950
+ // false, calling this method is undefined behavior.
1951
+ const TypeValue& GetType() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
1952
+ return std::as_const(*this).GetType();
1953
+ }
1954
+ const TypeValue& GetType() const& ABSL_ATTRIBUTE_LIFETIME_BOUND;
1955
+ TypeValue GetType() &&;
1956
+ TypeValue GetType() const&& { return GetType(); }
1957
+
1958
+ // Performs an unchecked cast from a value to an uint value. In
1959
+ // debug builds a best effort is made to crash. If `IsUint()` would return
1960
+ // false, calling this method is undefined behavior.
1961
+ UintValue GetUint() const;
1962
+
1963
+ // Performs an unchecked cast from a value to an unknown value. In
1964
+ // debug builds a best effort is made to crash. If `IsUnknown()` would return
1965
+ // false, calling this method is undefined behavior.
1966
+ const UnknownValue& GetUnknown() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
1967
+ return std::as_const(*this).GetUnknown();
1968
+ }
1969
+ const UnknownValue& GetUnknown() const& ABSL_ATTRIBUTE_LIFETIME_BOUND;
1970
+ UnknownValue GetUnknown() &&;
1971
+ UnknownValue GetUnknown() const&& { return GetUnknown(); }
1972
+
1973
+ // Convenience method for use with template metaprogramming. See
1974
+ // `GetBool()`.
1975
+ template <typename T>
1976
+ std::enable_if_t<std::is_same_v<BoolValue, T>, BoolValue> Get() & {
1977
+ return GetBool();
1978
+ }
1979
+ template <typename T>
1980
+ std::enable_if_t<std::is_same_v<BoolValue, T>, BoolValue> Get() const& {
1981
+ return GetBool();
1982
+ }
1983
+ template <typename T>
1984
+ std::enable_if_t<std::is_same_v<BoolValue, T>, BoolValue> Get() && {
1985
+ return GetBool();
1986
+ }
1987
+ template <typename T>
1988
+ std::enable_if_t<std::is_same_v<BoolValue, T>, BoolValue> Get() const&& {
1989
+ return GetBool();
1990
+ }
1991
+
1992
+ // Convenience method for use with template metaprogramming. See
1993
+ // `GetBytes()`.
1994
+ template <typename T>
1995
+ std::enable_if_t<std::is_same_v<BytesValue, T>, const BytesValue&> Get() &
1996
+ ABSL_ATTRIBUTE_LIFETIME_BOUND {
1997
+ return GetBytes();
1998
+ }
1999
+ template <typename T>
2000
+ std::enable_if_t<std::is_same_v<BytesValue, T>, const BytesValue&> Get()
2001
+ const& ABSL_ATTRIBUTE_LIFETIME_BOUND {
2002
+ return GetBytes();
2003
+ }
2004
+ template <typename T>
2005
+ std::enable_if_t<std::is_same_v<BytesValue, T>, BytesValue> Get() && {
2006
+ return std::move(*this).GetBytes();
2007
+ }
2008
+ template <typename T>
2009
+ std::enable_if_t<std::is_same_v<BytesValue, T>, BytesValue> Get() const&& {
2010
+ return std::move(*this).GetBytes();
2011
+ }
2012
+
2013
+ // Convenience method for use with template metaprogramming. See
2014
+ // `GetDouble()`.
2015
+ template <typename T>
2016
+ std::enable_if_t<std::is_same_v<DoubleValue, T>, DoubleValue> Get() & {
2017
+ return GetDouble();
2018
+ }
2019
+ template <typename T>
2020
+ std::enable_if_t<std::is_same_v<DoubleValue, T>, DoubleValue> Get() const& {
2021
+ return GetDouble();
2022
+ }
2023
+ template <typename T>
2024
+ std::enable_if_t<std::is_same_v<DoubleValue, T>, DoubleValue> Get() && {
2025
+ return GetDouble();
2026
+ }
2027
+ template <typename T>
2028
+ std::enable_if_t<std::is_same_v<DoubleValue, T>, DoubleValue> Get() const&& {
2029
+ return GetDouble();
2030
+ }
2031
+
2032
+ // Convenience method for use with template metaprogramming. See
2033
+ // `GetDuration()`.
2034
+ template <typename T>
2035
+ std::enable_if_t<std::is_same_v<DurationValue, T>, DurationValue> Get() & {
2036
+ return GetDuration();
2037
+ }
2038
+ template <typename T>
2039
+ std::enable_if_t<std::is_same_v<DurationValue, T>, DurationValue> Get()
2040
+ const& {
2041
+ return GetDuration();
2042
+ }
2043
+ template <typename T>
2044
+ std::enable_if_t<std::is_same_v<DurationValue, T>, DurationValue> Get() && {
2045
+ return GetDuration();
2046
+ }
2047
+ template <typename T>
2048
+ std::enable_if_t<std::is_same_v<DurationValue, T>, DurationValue> Get()
2049
+ const&& {
2050
+ return GetDuration();
2051
+ }
2052
+
2053
+ // Convenience method for use with template metaprogramming. See
2054
+ // `GetError()`.
2055
+ template <typename T>
2056
+ std::enable_if_t<std::is_same_v<ErrorValue, T>, const ErrorValue&> Get() &
2057
+ ABSL_ATTRIBUTE_LIFETIME_BOUND {
2058
+ return GetError();
2059
+ }
2060
+ template <typename T>
2061
+ std::enable_if_t<std::is_same_v<ErrorValue, T>, const ErrorValue&> Get()
2062
+ const& ABSL_ATTRIBUTE_LIFETIME_BOUND {
2063
+ return GetError();
2064
+ }
2065
+ template <typename T>
2066
+ std::enable_if_t<std::is_same_v<ErrorValue, T>, ErrorValue> Get() && {
2067
+ return std::move(*this).GetError();
2068
+ }
2069
+ template <typename T>
2070
+ std::enable_if_t<std::is_same_v<ErrorValue, T>, ErrorValue> Get() const&& {
2071
+ return std::move(*this).GetError();
2072
+ }
2073
+
2074
+ // Convenience method for use with template metaprogramming. See
2075
+ // `GetInt()`.
2076
+ template <typename T>
2077
+ std::enable_if_t<std::is_same_v<IntValue, T>, IntValue> Get() & {
2078
+ return GetInt();
2079
+ }
2080
+ template <typename T>
2081
+ std::enable_if_t<std::is_same_v<IntValue, T>, IntValue> Get() const& {
2082
+ return GetInt();
2083
+ }
2084
+ template <typename T>
2085
+ std::enable_if_t<std::is_same_v<IntValue, T>, IntValue> Get() && {
2086
+ return GetInt();
2087
+ }
2088
+ template <typename T>
2089
+ std::enable_if_t<std::is_same_v<IntValue, T>, IntValue> Get() const&& {
2090
+ return GetInt();
2091
+ }
2092
+
2093
+ // Convenience method for use with template metaprogramming. See
2094
+ // `GetList()`.
2095
+ template <typename T>
2096
+ std::enable_if_t<std::is_same_v<ListValue, T>, ListValue> Get() & {
2097
+ return GetList();
2098
+ }
2099
+ template <typename T>
2100
+ std::enable_if_t<std::is_same_v<ListValue, T>, ListValue> Get() const& {
2101
+ return GetList();
2102
+ }
2103
+ template <typename T>
2104
+ std::enable_if_t<std::is_same_v<ListValue, T>, ListValue> Get() && {
2105
+ return std::move(*this).GetList();
2106
+ }
2107
+ template <typename T>
2108
+ std::enable_if_t<std::is_same_v<ListValue, T>, ListValue> Get() const&& {
2109
+ return std::move(*this).GetList();
2110
+ }
2111
+
2112
+ // Convenience method for use with template metaprogramming. See
2113
+ // `GetMap()`.
2114
+ template <typename T>
2115
+ std::enable_if_t<std::is_same_v<MapValue, T>, MapValue> Get() & {
2116
+ return GetMap();
2117
+ }
2118
+ template <typename T>
2119
+ std::enable_if_t<std::is_same_v<MapValue, T>, MapValue> Get() const& {
2120
+ return GetMap();
2121
+ }
2122
+ template <typename T>
2123
+ std::enable_if_t<std::is_same_v<MapValue, T>, MapValue> Get() && {
2124
+ return std::move(*this).GetMap();
2125
+ }
2126
+ template <typename T>
2127
+ std::enable_if_t<std::is_same_v<MapValue, T>, MapValue> Get() const&& {
2128
+ return std::move(*this).GetMap();
2129
+ }
2130
+
2131
+ // Convenience method for use with template metaprogramming. See
2132
+ // `GetMessage()`.
2133
+ template <typename T>
2134
+ std::enable_if_t<std::is_same_v<MessageValue, T>, MessageValue> Get() & {
2135
+ return GetMessage();
2136
+ }
2137
+ template <typename T>
2138
+ std::enable_if_t<std::is_same_v<MessageValue, T>, MessageValue> Get() const& {
2139
+ return GetMessage();
2140
+ }
2141
+ template <typename T>
2142
+ std::enable_if_t<std::is_same_v<MessageValue, T>, MessageValue> Get() && {
2143
+ return std::move(*this).GetMessage();
2144
+ }
2145
+ template <typename T>
2146
+ std::enable_if_t<std::is_same_v<MessageValue, T>, MessageValue> Get()
2147
+ const&& {
2148
+ return std::move(*this).GetMessage();
2149
+ }
2150
+
2151
+ // Convenience method for use with template metaprogramming. See
2152
+ // `GetNull()`.
2153
+ template <typename T>
2154
+ std::enable_if_t<std::is_same_v<NullValue, T>, NullValue> Get() & {
2155
+ return GetNull();
2156
+ }
2157
+ template <typename T>
2158
+ std::enable_if_t<std::is_same_v<NullValue, T>, NullValue> Get() const& {
2159
+ return GetNull();
2160
+ }
2161
+ template <typename T>
2162
+ std::enable_if_t<std::is_same_v<NullValue, T>, NullValue> Get() && {
2163
+ return GetNull();
2164
+ }
2165
+ template <typename T>
2166
+ std::enable_if_t<std::is_same_v<NullValue, T>, NullValue> Get() const&& {
2167
+ return GetNull();
2168
+ }
2169
+
2170
+ // Convenience method for use with template metaprogramming. See
2171
+ // `GetOpaque()`.
2172
+ template <typename T>
2173
+ std::enable_if_t<std::is_same_v<OpaqueValue, T>, const OpaqueValue&>
2174
+ Get() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
2175
+ return GetOpaque();
2176
+ }
2177
+ template <typename T>
2178
+ std::enable_if_t<std::is_same_v<OpaqueValue, T>, const OpaqueValue&> Get()
2179
+ const& ABSL_ATTRIBUTE_LIFETIME_BOUND {
2180
+ return GetOpaque();
2181
+ }
2182
+ template <typename T>
2183
+ std::enable_if_t<std::is_same_v<OpaqueValue, T>, OpaqueValue> Get() && {
2184
+ return std::move(*this).GetOpaque();
2185
+ }
2186
+ template <typename T>
2187
+ std::enable_if_t<std::is_same_v<OpaqueValue, T>, OpaqueValue> Get() const&& {
2188
+ return std::move(*this).GetOpaque();
2189
+ }
2190
+
2191
+ // Convenience method for use with template metaprogramming. See
2192
+ // `GetOptional()`.
2193
+ template <typename T>
2194
+ std::enable_if_t<std::is_same_v<OptionalValue, T>, const OptionalValue&>
2195
+ Get() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
2196
+ return GetOptional();
2197
+ }
2198
+ template <typename T>
2199
+ std::enable_if_t<std::is_same_v<OptionalValue, T>, const OptionalValue&> Get()
2200
+ const& ABSL_ATTRIBUTE_LIFETIME_BOUND {
2201
+ return GetOptional();
2202
+ }
2203
+ template <typename T>
2204
+ std::enable_if_t<std::is_same_v<OptionalValue, T>, OptionalValue> Get() && {
2205
+ return std::move(*this).GetOptional();
2206
+ }
2207
+ template <typename T>
2208
+ std::enable_if_t<std::is_same_v<OptionalValue, T>, OptionalValue> Get()
2209
+ const&& {
2210
+ return std::move(*this).GetOptional();
2211
+ }
2212
+
2213
+ // Convenience method for use with template metaprogramming. See
2214
+ // `GetParsedJsonList()`.
2215
+ template <typename T>
2216
+ std::enable_if_t<std::is_same_v<ParsedJsonListValue, T>,
2217
+ const ParsedJsonListValue&>
2218
+ Get() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
2219
+ return GetParsedJsonList();
2220
+ }
2221
+ template <typename T>
2222
+ std::enable_if_t<std::is_same_v<ParsedJsonListValue, T>,
2223
+ const ParsedJsonListValue&>
2224
+ Get() const& ABSL_ATTRIBUTE_LIFETIME_BOUND {
2225
+ return GetParsedJsonList();
2226
+ }
2227
+ template <typename T>
2228
+ std::enable_if_t<std::is_same_v<ParsedJsonListValue, T>, ParsedJsonListValue>
2229
+ Get() && {
2230
+ return std::move(*this).GetParsedJsonList();
2231
+ }
2232
+ template <typename T>
2233
+ std::enable_if_t<std::is_same_v<ParsedJsonListValue, T>, ParsedJsonListValue>
2234
+ Get() const&& {
2235
+ return std::move(*this).GetParsedJsonList();
2236
+ }
2237
+
2238
+ // Convenience method for use with template metaprogramming. See
2239
+ // `GetParsedJsonMap()`.
2240
+ template <typename T>
2241
+ std::enable_if_t<std::is_same_v<ParsedJsonMapValue, T>,
2242
+ const ParsedJsonMapValue&>
2243
+ Get() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
2244
+ return GetParsedJsonMap();
2245
+ }
2246
+ template <typename T>
2247
+ std::enable_if_t<std::is_same_v<ParsedJsonMapValue, T>,
2248
+ const ParsedJsonMapValue&>
2249
+ Get() const& ABSL_ATTRIBUTE_LIFETIME_BOUND {
2250
+ return GetParsedJsonMap();
2251
+ }
2252
+ template <typename T>
2253
+ std::enable_if_t<std::is_same_v<ParsedJsonMapValue, T>, ParsedJsonMapValue>
2254
+ Get() && {
2255
+ return std::move(*this).GetParsedJsonMap();
2256
+ }
2257
+ template <typename T>
2258
+ std::enable_if_t<std::is_same_v<ParsedJsonMapValue, T>, ParsedJsonMapValue>
2259
+ Get() const&& {
2260
+ return std::move(*this).GetParsedJsonMap();
2261
+ }
2262
+
2263
+ // Convenience method for use with template metaprogramming. See
2264
+ // `GetCustomList()`.
2265
+ template <typename T>
2266
+ std::enable_if_t<std::is_same_v<CustomListValue, T>,
2267
+ const CustomListValue&>
2268
+ Get() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
2269
+ return GetCustomList();
2270
+ }
2271
+ template <typename T>
2272
+ std::enable_if_t<std::is_same_v<CustomListValue, T>, const CustomListValue&>
2273
+ Get() const& ABSL_ATTRIBUTE_LIFETIME_BOUND {
2274
+ return GetCustomList();
2275
+ }
2276
+ template <typename T>
2277
+ std::enable_if_t<std::is_same_v<CustomListValue, T>, CustomListValue>
2278
+ Get() && {
2279
+ return std::move(*this).GetCustomList();
2280
+ }
2281
+ template <typename T>
2282
+ std::enable_if_t<std::is_same_v<CustomListValue, T>, CustomListValue> Get()
2283
+ const&& {
2284
+ return std::move(*this).GetCustomList();
2285
+ }
2286
+
2287
+ // Convenience method for use with template metaprogramming. See
2288
+ // `GetCustomMap()`.
2289
+ template <typename T>
2290
+ std::enable_if_t<std::is_same_v<CustomMapValue, T>, const CustomMapValue&>
2291
+ Get() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
2292
+ return GetCustomMap();
2293
+ }
2294
+ template <typename T>
2295
+ std::enable_if_t<std::is_same_v<CustomMapValue, T>, const CustomMapValue&>
2296
+ Get() const& ABSL_ATTRIBUTE_LIFETIME_BOUND {
2297
+ return GetCustomMap();
2298
+ }
2299
+ template <typename T>
2300
+ std::enable_if_t<std::is_same_v<CustomMapValue, T>, CustomMapValue> Get() && {
2301
+ return std::move(*this).GetCustomMap();
2302
+ }
2303
+ template <typename T>
2304
+ std::enable_if_t<std::is_same_v<CustomMapValue, T>, CustomMapValue> Get()
2305
+ const&& {
2306
+ return std::move(*this).GetCustomMap();
2307
+ }
2308
+
2309
+ // Convenience method for use with template metaprogramming. See
2310
+ // `GetParsedMapField()`.
2311
+ template <typename T>
2312
+ std::enable_if_t<std::is_same_v<ParsedMapFieldValue, T>,
2313
+ const ParsedMapFieldValue&>
2314
+ Get() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
2315
+ return GetParsedMapField();
2316
+ }
2317
+ template <typename T>
2318
+ std::enable_if_t<std::is_same_v<ParsedMapFieldValue, T>,
2319
+ const ParsedMapFieldValue&>
2320
+ Get() const& ABSL_ATTRIBUTE_LIFETIME_BOUND {
2321
+ return GetParsedMapField();
2322
+ }
2323
+ template <typename T>
2324
+ std::enable_if_t<std::is_same_v<ParsedMapFieldValue, T>, ParsedMapFieldValue>
2325
+ Get() && {
2326
+ return std::move(*this).GetParsedMapField();
2327
+ }
2328
+ template <typename T>
2329
+ std::enable_if_t<std::is_same_v<ParsedMapFieldValue, T>, ParsedMapFieldValue>
2330
+ Get() const&& {
2331
+ return std::move(*this).GetParsedMapField();
2332
+ }
2333
+
2334
+ // Convenience method for use with template metaprogramming. See
2335
+ // `GetParsedMessage()`.
2336
+ template <typename T>
2337
+ std::enable_if_t<std::is_same_v<ParsedMessageValue, T>,
2338
+ const ParsedMessageValue&>
2339
+ Get() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
2340
+ return GetParsedMessage();
2341
+ }
2342
+ template <typename T>
2343
+ std::enable_if_t<std::is_same_v<ParsedMessageValue, T>,
2344
+ const ParsedMessageValue&>
2345
+ Get() const& ABSL_ATTRIBUTE_LIFETIME_BOUND {
2346
+ return GetParsedMessage();
2347
+ }
2348
+ template <typename T>
2349
+ std::enable_if_t<std::is_same_v<ParsedMessageValue, T>, ParsedMessageValue>
2350
+ Get() && {
2351
+ return std::move(*this).GetParsedMessage();
2352
+ }
2353
+ template <typename T>
2354
+ std::enable_if_t<std::is_same_v<ParsedMessageValue, T>, ParsedMessageValue>
2355
+ Get() const&& {
2356
+ return std::move(*this).GetParsedMessage();
2357
+ }
2358
+
2359
+ // Convenience method for use with template metaprogramming. See
2360
+ // `GetParsedRepeatedField()`.
2361
+ template <typename T>
2362
+ std::enable_if_t<std::is_same_v<ParsedRepeatedFieldValue, T>,
2363
+ const ParsedRepeatedFieldValue&>
2364
+ Get() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
2365
+ return GetParsedRepeatedField();
2366
+ }
2367
+ template <typename T>
2368
+ std::enable_if_t<std::is_same_v<ParsedRepeatedFieldValue, T>,
2369
+ const ParsedRepeatedFieldValue&>
2370
+ Get() const& ABSL_ATTRIBUTE_LIFETIME_BOUND {
2371
+ return GetParsedRepeatedField();
2372
+ }
2373
+ template <typename T>
2374
+ std::enable_if_t<std::is_same_v<ParsedRepeatedFieldValue, T>,
2375
+ ParsedRepeatedFieldValue>
2376
+ Get() && {
2377
+ return std::move(*this).GetParsedRepeatedField();
2378
+ }
2379
+ template <typename T>
2380
+ std::enable_if_t<std::is_same_v<ParsedRepeatedFieldValue, T>,
2381
+ ParsedRepeatedFieldValue>
2382
+ Get() const&& {
2383
+ return std::move(*this).GetParsedRepeatedField();
2384
+ }
2385
+
2386
+ // Convenience method for use with template metaprogramming. See
2387
+ // `GetCustomStruct()`.
2388
+ template <typename T>
2389
+ std::enable_if_t<std::is_same_v<CustomStructValue, T>,
2390
+ const CustomStructValue&>
2391
+ Get() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
2392
+ return GetCustomStruct();
2393
+ }
2394
+ template <typename T>
2395
+ std::enable_if_t<std::is_same_v<CustomStructValue, T>,
2396
+ const CustomStructValue&>
2397
+ Get() const& ABSL_ATTRIBUTE_LIFETIME_BOUND {
2398
+ return GetCustomStruct();
2399
+ }
2400
+ template <typename T>
2401
+ std::enable_if_t<std::is_same_v<CustomStructValue, T>, CustomStructValue>
2402
+ Get() && {
2403
+ return std::move(*this).GetCustomStruct();
2404
+ }
2405
+ template <typename T>
2406
+ std::enable_if_t<std::is_same_v<CustomStructValue, T>, CustomStructValue>
2407
+ Get() const&& {
2408
+ return std::move(*this).GetCustomStruct();
2409
+ }
2410
+
2411
+ // Convenience method for use with template metaprogramming. See
2412
+ // `GetString()`.
2413
+ template <typename T>
2414
+ std::enable_if_t<std::is_same_v<StringValue, T>, const StringValue&>
2415
+ Get() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
2416
+ return GetString();
2417
+ }
2418
+ template <typename T>
2419
+ std::enable_if_t<std::is_same_v<StringValue, T>, const StringValue&> Get()
2420
+ const& ABSL_ATTRIBUTE_LIFETIME_BOUND {
2421
+ return GetString();
2422
+ }
2423
+ template <typename T>
2424
+ std::enable_if_t<std::is_same_v<StringValue, T>, StringValue> Get() && {
2425
+ return std::move(*this).GetString();
2426
+ }
2427
+ template <typename T>
2428
+ std::enable_if_t<std::is_same_v<StringValue, T>, StringValue> Get() const&& {
2429
+ return std::move(*this).GetString();
2430
+ }
2431
+
2432
+ // Convenience method for use with template metaprogramming. See
2433
+ // `GetStruct()`.
2434
+ template <typename T>
2435
+ std::enable_if_t<std::is_same_v<StructValue, T>, StructValue> Get() & {
2436
+ return GetStruct();
2437
+ }
2438
+ template <typename T>
2439
+ std::enable_if_t<std::is_same_v<StructValue, T>, StructValue> Get() const& {
2440
+ return GetStruct();
2441
+ }
2442
+ template <typename T>
2443
+ std::enable_if_t<std::is_same_v<StructValue, T>, StructValue> Get() && {
2444
+ return std::move(*this).GetStruct();
2445
+ }
2446
+ template <typename T>
2447
+ std::enable_if_t<std::is_same_v<StructValue, T>, StructValue> Get() const&& {
2448
+ return std::move(*this).GetStruct();
2449
+ }
2450
+
2451
+ // Convenience method for use with template metaprogramming. See
2452
+ // `GetTimestamp()`.
2453
+ template <typename T>
2454
+ std::enable_if_t<std::is_same_v<TimestampValue, T>, TimestampValue> Get() & {
2455
+ return GetTimestamp();
2456
+ }
2457
+ template <typename T>
2458
+ std::enable_if_t<std::is_same_v<TimestampValue, T>, TimestampValue> Get()
2459
+ const& {
2460
+ return GetTimestamp();
2461
+ }
2462
+ template <typename T>
2463
+ std::enable_if_t<std::is_same_v<TimestampValue, T>, TimestampValue> Get() && {
2464
+ return GetTimestamp();
2465
+ }
2466
+ template <typename T>
2467
+ std::enable_if_t<std::is_same_v<TimestampValue, T>, TimestampValue> Get()
2468
+ const&& {
2469
+ return GetTimestamp();
2470
+ }
2471
+
2472
+ // Convenience method for use with template metaprogramming. See
2473
+ // `GetType()`.
2474
+ template <typename T>
2475
+ std::enable_if_t<std::is_same_v<TypeValue, T>, const TypeValue&> Get() &
2476
+ ABSL_ATTRIBUTE_LIFETIME_BOUND {
2477
+ return GetType();
2478
+ }
2479
+ template <typename T>
2480
+ std::enable_if_t<std::is_same_v<TypeValue, T>, const TypeValue&> Get()
2481
+ const& ABSL_ATTRIBUTE_LIFETIME_BOUND {
2482
+ return GetType();
2483
+ }
2484
+ template <typename T>
2485
+ std::enable_if_t<std::is_same_v<TypeValue, T>, TypeValue> Get() && {
2486
+ return std::move(*this).GetType();
2487
+ }
2488
+ template <typename T>
2489
+ std::enable_if_t<std::is_same_v<TypeValue, T>, TypeValue> Get() const&& {
2490
+ return std::move(*this).GetType();
2491
+ }
2492
+
2493
+ // Convenience method for use with template metaprogramming. See
2494
+ // `GetUint()`.
2495
+ template <typename T>
2496
+ std::enable_if_t<std::is_same_v<UintValue, T>, UintValue> Get() & {
2497
+ return GetUint();
2498
+ }
2499
+ template <typename T>
2500
+ std::enable_if_t<std::is_same_v<UintValue, T>, UintValue> Get() const& {
2501
+ return GetUint();
2502
+ }
2503
+ template <typename T>
2504
+ std::enable_if_t<std::is_same_v<UintValue, T>, UintValue> Get() && {
2505
+ return GetUint();
2506
+ }
2507
+ template <typename T>
2508
+ std::enable_if_t<std::is_same_v<UintValue, T>, UintValue> Get() const&& {
2509
+ return GetUint();
2510
+ }
2511
+
2512
+ // Convenience method for use with template metaprogramming. See
2513
+ // `GetUnknown()`.
2514
+ template <typename T>
2515
+ std::enable_if_t<std::is_same_v<UnknownValue, T>, const UnknownValue&>
2516
+ Get() & ABSL_ATTRIBUTE_LIFETIME_BOUND {
2517
+ return GetUnknown();
2518
+ }
2519
+ template <typename T>
2520
+ std::enable_if_t<std::is_same_v<UnknownValue, T>, const UnknownValue&> Get()
2521
+ const& ABSL_ATTRIBUTE_LIFETIME_BOUND {
2522
+ return GetUnknown();
2523
+ }
2524
+ template <typename T>
2525
+ std::enable_if_t<std::is_same_v<UnknownValue, T>, UnknownValue> Get() && {
2526
+ return std::move(*this).GetUnknown();
2527
+ }
2528
+ template <typename T>
2529
+ std::enable_if_t<std::is_same_v<UnknownValue, T>, UnknownValue> Get()
2530
+ const&& {
2531
+ return std::move(*this).GetUnknown();
2532
+ }
2533
+
2534
+ // When `Value` is default constructed, it is in a valid but undefined state.
2535
+ // Any attempt to use it invokes undefined behavior. This mention can be used
2536
+ // to test whether this value is valid.
2537
+ explicit operator bool() const { return true; }
2538
+
2539
+ private:
2540
+ friend struct NativeTypeTraits<Value>;
2541
+ friend bool common_internal::IsLegacyListValue(const Value& value);
2542
+ friend common_internal::LegacyListValue common_internal::GetLegacyListValue(
2543
+ const Value& value);
2544
+ friend bool common_internal::IsLegacyMapValue(const Value& value);
2545
+ friend common_internal::LegacyMapValue common_internal::GetLegacyMapValue(
2546
+ const Value& value);
2547
+ friend bool common_internal::IsLegacyStructValue(const Value& value);
2548
+ friend common_internal::LegacyStructValue
2549
+ common_internal::GetLegacyStructValue(const Value& value);
2550
+ friend class common_internal::ValueMixin<Value>;
2551
+ friend struct ArenaTraits<Value>;
2552
+
2553
+ common_internal::ValueVariant variant_;
2554
+ };
2555
+
2556
+ // Overloads for heterogeneous equality of numeric values.
2557
+ bool operator==(IntValue lhs, UintValue rhs);
2558
+ bool operator==(UintValue lhs, IntValue rhs);
2559
+ bool operator==(IntValue lhs, DoubleValue rhs);
2560
+ bool operator==(DoubleValue lhs, IntValue rhs);
2561
+ bool operator==(UintValue lhs, DoubleValue rhs);
2562
+ bool operator==(DoubleValue lhs, UintValue rhs);
2563
+ inline bool operator!=(IntValue lhs, UintValue rhs) {
2564
+ return !operator==(lhs, rhs);
2565
+ }
2566
+ inline bool operator!=(UintValue lhs, IntValue rhs) {
2567
+ return !operator==(lhs, rhs);
2568
+ }
2569
+ inline bool operator!=(IntValue lhs, DoubleValue rhs) {
2570
+ return !operator==(lhs, rhs);
2571
+ }
2572
+ inline bool operator!=(DoubleValue lhs, IntValue rhs) {
2573
+ return !operator==(lhs, rhs);
2574
+ }
2575
+ inline bool operator!=(UintValue lhs, DoubleValue rhs) {
2576
+ return !operator==(lhs, rhs);
2577
+ }
2578
+ inline bool operator!=(DoubleValue lhs, UintValue rhs) {
2579
+ return !operator==(lhs, rhs);
2580
+ }
2581
+
2582
+ template <>
2583
+ struct NativeTypeTraits<Value> final {
2584
+ static NativeTypeId Id(const Value& value) {
2585
+ return value.variant_.Visit([](const auto& alternative) -> NativeTypeId {
2586
+ return NativeTypeId::Of(alternative);
2587
+ });
2588
+ }
2589
+ };
2590
+
2591
+ template <>
2592
+ struct ArenaTraits<Value> {
2593
+ static bool trivially_destructible(const Value& value) {
2594
+ return value.variant_.Visit([](const auto& alternative) -> bool {
2595
+ return ArenaTraits<>::trivially_destructible(alternative);
2596
+ });
2597
+ }
2598
+ };
2599
+
2600
+ // Statically assert some expectations.
2601
+ static_assert(sizeof(Value) <= 32);
2602
+ static_assert(alignof(Value) <= alignof(std::max_align_t));
2603
+ static_assert(std::is_default_constructible_v<Value>);
2604
+ static_assert(std::is_copy_constructible_v<Value>);
2605
+ static_assert(std::is_copy_assignable_v<Value>);
2606
+ static_assert(std::is_nothrow_move_constructible_v<Value>);
2607
+ static_assert(std::is_nothrow_move_assignable_v<Value>);
2608
+ static_assert(std::is_nothrow_swappable_v<Value>);
2609
+
2610
+ inline common_internal::ImplicitlyConvertibleStatus
2611
+ ErrorValueAssign::operator()(absl::Status status) const {
2612
+ *value_ = ErrorValue(std::move(status));
2613
+ return common_internal::ImplicitlyConvertibleStatus();
2614
+ }
2615
+
2616
+ namespace common_internal {
2617
+
2618
+ template <typename Base>
2619
+ absl::StatusOr<Value> ValueMixin<Base>::Equal(
2620
+ const Value& other,
2621
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
2622
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
2623
+ google::protobuf::Arena* absl_nonnull arena) const {
2624
+ ABSL_DCHECK(descriptor_pool != nullptr);
2625
+ ABSL_DCHECK(message_factory != nullptr);
2626
+ ABSL_DCHECK(arena != nullptr);
2627
+
2628
+ Value result;
2629
+ CEL_RETURN_IF_ERROR(static_cast<const Base*>(this)->Equal(
2630
+ other, descriptor_pool, message_factory, arena, &result));
2631
+ return result;
2632
+ }
2633
+
2634
+ template <typename Base>
2635
+ absl::StatusOr<Value> ListValueMixin<Base>::Get(
2636
+ size_t index, const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
2637
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
2638
+ google::protobuf::Arena* absl_nonnull arena) const {
2639
+ ABSL_DCHECK(descriptor_pool != nullptr);
2640
+ ABSL_DCHECK(message_factory != nullptr);
2641
+ ABSL_DCHECK(arena != nullptr);
2642
+
2643
+ Value result;
2644
+ CEL_RETURN_IF_ERROR(static_cast<const Base*>(this)->Get(
2645
+ index, descriptor_pool, message_factory, arena, &result));
2646
+ return result;
2647
+ }
2648
+
2649
+ template <typename Base>
2650
+ absl::StatusOr<Value> ListValueMixin<Base>::Contains(
2651
+ const Value& other,
2652
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
2653
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
2654
+ google::protobuf::Arena* absl_nonnull arena) const {
2655
+ ABSL_DCHECK(descriptor_pool != nullptr);
2656
+ ABSL_DCHECK(message_factory != nullptr);
2657
+ ABSL_DCHECK(arena != nullptr);
2658
+
2659
+ Value result;
2660
+ CEL_RETURN_IF_ERROR(static_cast<const Base*>(this)->Contains(
2661
+ other, descriptor_pool, message_factory, arena, &result));
2662
+ return result;
2663
+ }
2664
+
2665
+ template <typename Base>
2666
+ absl::StatusOr<Value> MapValueMixin<Base>::Get(
2667
+ const Value& key,
2668
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
2669
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
2670
+ google::protobuf::Arena* absl_nonnull arena) const {
2671
+ ABSL_DCHECK(descriptor_pool != nullptr);
2672
+ ABSL_DCHECK(message_factory != nullptr);
2673
+ ABSL_DCHECK(arena != nullptr);
2674
+
2675
+ Value result;
2676
+ CEL_RETURN_IF_ERROR(static_cast<const Base*>(this)->Get(
2677
+ key, descriptor_pool, message_factory, arena, &result));
2678
+ return result;
2679
+ }
2680
+
2681
+ template <typename Base>
2682
+ absl::StatusOr<absl::optional<Value>> MapValueMixin<Base>::Find(
2683
+ const Value& other,
2684
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
2685
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
2686
+ google::protobuf::Arena* absl_nonnull arena) const {
2687
+ ABSL_DCHECK(descriptor_pool != nullptr);
2688
+ ABSL_DCHECK(message_factory != nullptr);
2689
+ ABSL_DCHECK(arena != nullptr);
2690
+
2691
+ Value result;
2692
+ CEL_ASSIGN_OR_RETURN(
2693
+ bool found, static_cast<const Base*>(this)->Find(
2694
+ other, descriptor_pool, message_factory, arena, &result));
2695
+ if (found) {
2696
+ return result;
2697
+ }
2698
+ return absl::nullopt;
2699
+ }
2700
+
2701
+ template <typename Base>
2702
+ absl::StatusOr<Value> MapValueMixin<Base>::Has(
2703
+ const Value& key,
2704
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
2705
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
2706
+ google::protobuf::Arena* absl_nonnull arena) const {
2707
+ ABSL_DCHECK(descriptor_pool != nullptr);
2708
+ ABSL_DCHECK(message_factory != nullptr);
2709
+ ABSL_DCHECK(arena != nullptr);
2710
+
2711
+ Value result;
2712
+ CEL_RETURN_IF_ERROR(static_cast<const Base*>(this)->Has(
2713
+ key, descriptor_pool, message_factory, arena, &result));
2714
+ return result;
2715
+ }
2716
+
2717
+ template <typename Base>
2718
+ absl::StatusOr<ListValue> MapValueMixin<Base>::ListKeys(
2719
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
2720
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
2721
+ google::protobuf::Arena* absl_nonnull arena) const {
2722
+ ABSL_DCHECK(descriptor_pool != nullptr);
2723
+ ABSL_DCHECK(message_factory != nullptr);
2724
+ ABSL_DCHECK(arena != nullptr);
2725
+
2726
+ ListValue result;
2727
+ CEL_RETURN_IF_ERROR(static_cast<const Base*>(this)->ListKeys(
2728
+ descriptor_pool, message_factory, arena, &result));
2729
+ return result;
2730
+ }
2731
+
2732
+ template <typename Base>
2733
+ absl::StatusOr<Value> StructValueMixin<Base>::GetFieldByName(
2734
+ absl::string_view name,
2735
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
2736
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
2737
+ google::protobuf::Arena* absl_nonnull arena) const {
2738
+ ABSL_DCHECK(descriptor_pool != nullptr);
2739
+ ABSL_DCHECK(message_factory != nullptr);
2740
+ ABSL_DCHECK(arena != nullptr);
2741
+
2742
+ Value result;
2743
+ CEL_RETURN_IF_ERROR(static_cast<const Base*>(this)->GetFieldByName(
2744
+ name, ProtoWrapperTypeOptions::kUnsetNull, descriptor_pool,
2745
+ message_factory, arena, &result));
2746
+ return result;
2747
+ }
2748
+
2749
+ template <typename Base>
2750
+ absl::StatusOr<Value> StructValueMixin<Base>::GetFieldByName(
2751
+ absl::string_view name, ProtoWrapperTypeOptions unboxing_options,
2752
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
2753
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
2754
+ google::protobuf::Arena* absl_nonnull arena) const {
2755
+ ABSL_DCHECK(descriptor_pool != nullptr);
2756
+ ABSL_DCHECK(message_factory != nullptr);
2757
+ ABSL_DCHECK(arena != nullptr);
2758
+
2759
+ Value result;
2760
+ CEL_RETURN_IF_ERROR(static_cast<const Base*>(this)->GetFieldByName(
2761
+ name, unboxing_options, descriptor_pool, message_factory, arena,
2762
+ &result));
2763
+ return result;
2764
+ }
2765
+
2766
+ template <typename Base>
2767
+ absl::StatusOr<Value> StructValueMixin<Base>::GetFieldByNumber(
2768
+ int64_t number, const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
2769
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
2770
+ google::protobuf::Arena* absl_nonnull arena) const {
2771
+ ABSL_DCHECK(descriptor_pool != nullptr);
2772
+ ABSL_DCHECK(message_factory != nullptr);
2773
+ ABSL_DCHECK(arena != nullptr);
2774
+
2775
+ Value result;
2776
+ CEL_RETURN_IF_ERROR(static_cast<const Base*>(this)->GetFieldByNumber(
2777
+ number, ProtoWrapperTypeOptions::kUnsetNull, descriptor_pool,
2778
+ message_factory, arena, &result));
2779
+ return result;
2780
+ }
2781
+
2782
+ template <typename Base>
2783
+ absl::StatusOr<Value> StructValueMixin<Base>::GetFieldByNumber(
2784
+ int64_t number, ProtoWrapperTypeOptions unboxing_options,
2785
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
2786
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
2787
+ google::protobuf::Arena* absl_nonnull arena) const {
2788
+ ABSL_DCHECK(descriptor_pool != nullptr);
2789
+ ABSL_DCHECK(message_factory != nullptr);
2790
+ ABSL_DCHECK(arena != nullptr);
2791
+
2792
+ Value result;
2793
+ CEL_RETURN_IF_ERROR(static_cast<const Base*>(this)->GetFieldByNumber(
2794
+ number, unboxing_options, descriptor_pool, message_factory, arena,
2795
+ &result));
2796
+ return result;
2797
+ }
2798
+
2799
+ template <typename Base>
2800
+ absl::StatusOr<std::pair<Value, int>> StructValueMixin<Base>::Qualify(
2801
+ absl::Span<const SelectQualifier> qualifiers, bool presence_test,
2802
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
2803
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
2804
+ google::protobuf::Arena* absl_nonnull arena) const {
2805
+ ABSL_DCHECK_GT(qualifiers.size(), 0);
2806
+ ABSL_DCHECK(descriptor_pool != nullptr);
2807
+ ABSL_DCHECK(message_factory != nullptr);
2808
+ ABSL_DCHECK(arena != nullptr);
2809
+
2810
+ Value result;
2811
+ int count;
2812
+ CEL_RETURN_IF_ERROR(static_cast<const Base*>(this)->Qualify(
2813
+ qualifiers, presence_test, descriptor_pool, message_factory, arena,
2814
+ &result, &count));
2815
+ return std::pair{std::move(result), count};
2816
+ }
2817
+
2818
+ } // namespace common_internal
2819
+
2820
+ using ValueIteratorPtr = std::unique_ptr<ValueIterator>;
2821
+
2822
+ inline absl::StatusOr<Value> ValueIterator::Next(
2823
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
2824
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
2825
+ google::protobuf::Arena* absl_nonnull arena) {
2826
+ ABSL_DCHECK(descriptor_pool != nullptr);
2827
+ ABSL_DCHECK(message_factory != nullptr);
2828
+ ABSL_DCHECK(arena != nullptr);
2829
+
2830
+ Value result;
2831
+ CEL_RETURN_IF_ERROR(Next(descriptor_pool, message_factory, arena, &result));
2832
+ return result;
2833
+ }
2834
+
2835
+ inline absl::StatusOr<absl::optional<Value>> ValueIterator::Next1(
2836
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
2837
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
2838
+ google::protobuf::Arena* absl_nonnull arena) {
2839
+ ABSL_DCHECK(descriptor_pool != nullptr);
2840
+ ABSL_DCHECK(message_factory != nullptr);
2841
+ ABSL_DCHECK(arena != nullptr);
2842
+
2843
+ Value key_or_value;
2844
+ CEL_ASSIGN_OR_RETURN(
2845
+ bool ok, Next1(descriptor_pool, message_factory, arena, &key_or_value));
2846
+ if (!ok) {
2847
+ return absl::nullopt;
2848
+ }
2849
+ return key_or_value;
2850
+ }
2851
+
2852
+ inline absl::StatusOr<absl::optional<std::pair<Value, Value>>>
2853
+ ValueIterator::Next2(const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
2854
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
2855
+ google::protobuf::Arena* absl_nonnull arena) {
2856
+ ABSL_DCHECK(descriptor_pool != nullptr);
2857
+ ABSL_DCHECK(message_factory != nullptr);
2858
+ ABSL_DCHECK(arena != nullptr);
2859
+
2860
+ Value key;
2861
+ Value value;
2862
+ CEL_ASSIGN_OR_RETURN(
2863
+ bool ok, Next2(descriptor_pool, message_factory, arena, &key, &value));
2864
+ if (!ok) {
2865
+ return absl::nullopt;
2866
+ }
2867
+ return std::pair{std::move(key), std::move(value)};
2868
+ }
2869
+
2870
+ absl_nonnull std::unique_ptr<ValueIterator> NewEmptyValueIterator();
2871
+
2872
+ class ValueBuilder {
2873
+ public:
2874
+ virtual ~ValueBuilder() = default;
2875
+
2876
+ virtual absl::StatusOr<absl::optional<ErrorValue>> SetFieldByName(
2877
+ absl::string_view name, Value value) = 0;
2878
+
2879
+ virtual absl::StatusOr<absl::optional<ErrorValue>> SetFieldByNumber(
2880
+ int64_t number, Value value) = 0;
2881
+
2882
+ virtual absl::StatusOr<Value> Build() && = 0;
2883
+ };
2884
+
2885
+ using ValueBuilderPtr = std::unique_ptr<ValueBuilder>;
2886
+
2887
+ absl_nonnull ListValueBuilderPtr
2888
+ NewListValueBuilder(google::protobuf::Arena* absl_nonnull arena);
2889
+
2890
+ absl_nonnull MapValueBuilderPtr
2891
+ NewMapValueBuilder(google::protobuf::Arena* absl_nonnull arena);
2892
+
2893
+ // Returns a new `StructValueBuilder`. Returns `nullptr` if there is no such
2894
+ // message type with the name `name` in `descriptor_pool`. Returns an error if
2895
+ // `message_factory` is unable to provide a prototype for the descriptor
2896
+ // returned from `descriptor_pool`.
2897
+ absl_nullable StructValueBuilderPtr NewStructValueBuilder(
2898
+ google::protobuf::Arena* absl_nonnull arena,
2899
+ const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
2900
+ google::protobuf::MessageFactory* absl_nonnull message_factory,
2901
+ absl::string_view name);
2902
+
2903
+ using ListValueBuilderInterface = ListValueBuilder;
2904
+ using MapValueBuilderInterface = MapValueBuilder;
2905
+ using StructValueBuilderInterface = StructValueBuilder;
2906
+
2907
+ // Now that Value is complete, we can define various parts of list, map, opaque,
2908
+ // and struct which depend on Value.
2909
+
2910
+ namespace common_internal {
2911
+
2912
+ using MapFieldKeyAccessor = void (*)(const google::protobuf::MapKey&,
2913
+ const google::protobuf::Message* absl_nonnull,
2914
+ google::protobuf::Arena* absl_nonnull,
2915
+ Value* absl_nonnull);
2916
+
2917
+ absl::StatusOr<MapFieldKeyAccessor> MapFieldKeyAccessorFor(
2918
+ const google::protobuf::FieldDescriptor* absl_nonnull field);
2919
+
2920
+ using MapFieldValueAccessor = void (*)(
2921
+ const google::protobuf::MapValueConstRef&, const google::protobuf::Message* absl_nonnull,
2922
+ const google::protobuf::FieldDescriptor* absl_nonnull,
2923
+ const google::protobuf::DescriptorPool* absl_nonnull,
2924
+ google::protobuf::MessageFactory* absl_nonnull, google::protobuf::Arena* absl_nonnull,
2925
+ Value* absl_nonnull);
2926
+
2927
+ absl::StatusOr<MapFieldValueAccessor> MapFieldValueAccessorFor(
2928
+ const google::protobuf::FieldDescriptor* absl_nonnull field);
2929
+
2930
+ using RepeatedFieldAccessor =
2931
+ void (*)(int, const google::protobuf::Message* absl_nonnull,
2932
+ const google::protobuf::FieldDescriptor* absl_nonnull,
2933
+ const google::protobuf::Reflection* absl_nonnull,
2934
+ const google::protobuf::DescriptorPool* absl_nonnull,
2935
+ google::protobuf::MessageFactory* absl_nonnull, google::protobuf::Arena* absl_nonnull,
2936
+ Value* absl_nonnull);
2937
+
2938
+ absl::StatusOr<RepeatedFieldAccessor> RepeatedFieldAccessorFor(
2939
+ const google::protobuf::FieldDescriptor* absl_nonnull field);
2940
+
2941
+ } // namespace common_internal
2942
+
2943
+ } // namespace cel
2944
+
2945
+ #pragma pop_macro("GetMessage")
2946
+
2947
+ #endif // THIRD_PARTY_CEL_CPP_COMMON_VALUE_H_