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.
- checksums.yaml +7 -0
- data/.yardopts +8 -0
- data/CHANGELOG.md +5 -0
- data/LICENSE.txt +201 -0
- data/NOTICE.md +30 -0
- data/README.md +93 -0
- data/Rakefile +32 -0
- data/ext/protovalidate/Cargo.lock +342 -0
- data/ext/protovalidate/Cargo.toml +27 -0
- data/ext/protovalidate/build.rs +4 -0
- data/ext/protovalidate/extconf.rb +8 -0
- data/ext/protovalidate/src/lib.rs +161 -0
- data/ext/protovalidate/sys/Cargo.toml +11 -0
- data/ext/protovalidate/sys/build.rs +218 -0
- data/ext/protovalidate/sys/filelists/absl.txt +126 -0
- data/ext/protovalidate/sys/filelists/antlr4.txt +139 -0
- data/ext/protovalidate/sys/filelists/celcpp.txt +199 -0
- data/ext/protovalidate/sys/filelists/protobuf.txt +83 -0
- data/ext/protovalidate/sys/filelists/protovalidate.txt +14 -0
- data/ext/protovalidate/sys/filelists/re2.txt +25 -0
- data/ext/protovalidate/sys/gen/buf/validate/validate.pb.cc +23621 -0
- data/ext/protovalidate/sys/gen/buf/validate/validate.pb.h +27800 -0
- data/ext/protovalidate/sys/gen/cel/expr/checked.pb.cc +6286 -0
- data/ext/protovalidate/sys/gen/cel/expr/checked.pb.h +6412 -0
- data/ext/protovalidate/sys/gen/cel/expr/syntax.pb.cc +7423 -0
- data/ext/protovalidate/sys/gen/cel/expr/syntax.pb.h +7510 -0
- data/ext/protovalidate/sys/gen/cel/expr/value.pb.cc +2512 -0
- data/ext/protovalidate/sys/gen/cel/expr/value.pb.h +2589 -0
- data/ext/protovalidate/sys/gen/internal/empty_descriptor_set_embed.inc +1 -0
- data/ext/protovalidate/sys/gen/parser/internal/CelBaseVisitor.cpp +9 -0
- data/ext/protovalidate/sys/gen/parser/internal/CelBaseVisitor.h +167 -0
- data/ext/protovalidate/sys/gen/parser/internal/CelLexer.cpp +308 -0
- data/ext/protovalidate/sys/gen/parser/internal/CelLexer.h +57 -0
- data/ext/protovalidate/sys/gen/parser/internal/CelParser.cpp +2484 -0
- data/ext/protovalidate/sys/gen/parser/internal/CelParser.h +697 -0
- data/ext/protovalidate/sys/gen/parser/internal/CelVisitor.cpp +9 -0
- data/ext/protovalidate/sys/gen/parser/internal/CelVisitor.h +98 -0
- data/ext/protovalidate/sys/shim/pv_shim.cc +260 -0
- data/ext/protovalidate/sys/shim/pv_shim.h +84 -0
- data/ext/protovalidate/sys/src/lib.rs +176 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/LICENSE +203 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/algorithm/algorithm.h +96 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/algorithm/container.h +2011 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/attributes.h +1100 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/call_once.h +228 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/casts.cc +61 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/casts.h +313 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/config.h +898 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/const_init.h +76 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/dynamic_annotations.h +480 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/fast_type_id.h +73 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/atomic_hook.h +200 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/atomic_hook_test_helper.h +34 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/cycleclock.cc +72 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/cycleclock.h +144 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/cycleclock_config.h +55 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +170 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/dynamic_annotations.h +398 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/endian.h +279 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/errno_saver.h +43 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/exception_safety_testing.h +1112 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/exception_testing.h +42 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/hardening.h +136 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/hide_ptr.h +51 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/iterator_traits.h +75 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/iterator_traits_test_helper.h +97 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +667 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +133 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +196 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/nullability_traits.h +71 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/per_thread_tls.h +52 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/poison.h +59 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/pretty_function.h +33 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +279 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/raw_logging.h +217 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/scheduling_mode.h +58 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/scoped_set_env.h +45 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/spinlock.cc +225 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/spinlock.h +310 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +35 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +71 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +46 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/spinlock_wait.cc +81 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +95 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +40 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/strerror.cc +88 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/strerror.h +39 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +493 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/sysinfo.h +74 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +163 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/thread_identity.h +325 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/tracing.cc +39 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/tracing.h +81 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/tsan_mutex_interface.h +68 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +89 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +134 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +118 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +62 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/log_severity.cc +56 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/log_severity.h +185 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/macros.h +259 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/no_destructor.h +191 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/nullability.h +318 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/optimization.h +311 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/options.h +212 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/policy_checks.h +115 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/port.h +25 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/prefetch.h +209 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/thread_annotations.h +333 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/throw_delegate.cc +205 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/base/throw_delegate.h +65 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/cleanup/cleanup.h +143 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +100 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/btree_map.h +941 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/btree_set.h +872 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/chunked_queue.h +757 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/fixed_array.h +548 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/flat_hash_map.h +714 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/flat_hash_set.h +604 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/hash_container_defaults.h +45 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/inlined_vector.h +1025 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/btree.h +3157 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/btree_container.h +875 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/chunked_queue.h +173 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/common.h +302 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +151 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +275 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/container_memory.h +571 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +281 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/hash_generator_testing.h +172 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/hash_policy_testing.h +173 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +195 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +527 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/hashtable_debug.h +102 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/hashtable_debug_hooks.h +85 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +316 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +294 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +31 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/heterogeneous_lookup_testing.h +80 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +1094 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/layout.h +828 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/node_slot_policy.h +95 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +380 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +2110 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +4056 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl.h +79 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/test_allocator.h +387 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/test_instance_tracker.h +274 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/internal/tracked.h +83 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/linked_hash_map.h +666 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/linked_hash_set.h +527 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/node_hash_map.h +710 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/container/node_hash_set.h +603 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/crc32c.cc +95 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/crc32c.h +192 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/cpu_detect.cc +359 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/cpu_detect.h +69 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/crc.cc +435 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/crc.h +83 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +319 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/crc32c.h +39 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/crc32c_inline.h +72 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.cc +131 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.h +159 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/crc_internal.h +161 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/crc_memcpy.h +122 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_fallback.cc +78 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc +459 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc +93 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +824 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/non_temporal_arm_intrinsics.h +81 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/crc/internal/non_temporal_memcpy.h +195 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/failure_signal_handler.h +121 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +98 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.h +32 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/addresses.h +57 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/bounded_utf8_length_sequence.h +126 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc +258 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.h +55 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +2958 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/demangle.h +76 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.cc +925 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.h +50 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +413 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +141 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc +334 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/examine_stack.h +70 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/stack_consumption.h +50 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +299 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +148 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +96 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +121 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +121 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +270 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +208 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +25 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +81 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +410 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +163 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/utf8_for_code_point.cc +70 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/utf8_for_code_point.h +47 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +209 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/internal/vdso_support.h +158 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/leak_check.cc +73 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/leak_check.h +150 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/stacktrace.cc +204 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/stacktrace.h +259 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/symbolize.cc +62 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/symbolize.h +99 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +102 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +1708 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +63 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +40 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +99 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/commandlineflag.h +220 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/config.h +68 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/declare.h +77 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/flag.h +307 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +68 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/internal/flag.h +969 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/internal/parse.h +70 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/internal/path_util.h +62 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.h +64 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/internal/program_name.h +50 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/internal/registry.h +98 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/internal/sequence_lock.h +187 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/internal/usage.h +106 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/marshalling.h +335 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/parse.h +130 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/reflection.h +90 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/usage.h +43 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/flags/usage_config.h +135 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/functional/any_invocable.h +335 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/functional/bind_back.h +79 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/functional/bind_front.h +200 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/functional/function_ref.h +249 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +787 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/functional/internal/back_binder.h +95 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/functional/internal/front_binder.h +93 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/functional/internal/function_ref.h +151 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/functional/overload.h +72 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/hash/hash.h +466 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/hash/hash_testing.h +382 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/hash/internal/city.cc +337 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/hash/internal/city.h +78 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/hash/internal/hash.cc +430 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/hash/internal/hash.h +1619 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/hash/internal/spy_hash_state.h +289 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/hash/internal/weakly_mixed_integer.h +38 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/absl_check.h +117 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/absl_log.h +115 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/absl_vlog_is_on.h +93 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/check.h +210 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/check_test_impl.inc +1035 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/die_if_null.cc +34 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/die_if_null.h +97 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/flags.h +43 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/globals.cc +178 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/globals.h +230 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/initialize.h +45 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/append_truncated.h +75 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/check_impl.h +151 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/check_op.cc +147 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/check_op.h +565 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/conditions.cc +85 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/conditions.h +247 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/config.h +45 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/container.h +312 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/flags.h +59 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/fnmatch.cc +73 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/fnmatch.h +35 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/globals.cc +145 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/globals.h +101 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/log_format.cc +205 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/log_format.h +78 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/log_impl.h +280 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/log_message.cc +788 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/log_message.h +469 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/log_sink_set.cc +296 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/log_sink_set.h +54 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/nullguard.cc +35 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/nullguard.h +88 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/nullstream.h +128 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/proto.cc +231 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/proto.h +298 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/strip.h +99 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/structured.h +160 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/structured_proto.cc +115 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/structured_proto.h +108 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/test_actions.h +90 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/test_helpers.h +71 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/test_matchers.h +94 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/vlog_config.cc +347 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/vlog_config.h +164 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/internal/voidify.h +50 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/log.h +378 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/log_basic_test_impl.inc +654 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/log_entry.cc +263 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/log_entry.h +223 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/log_sink.cc +23 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/log_sink.h +71 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/log_sink_registry.h +64 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/log_streamer.h +208 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/scoped_mock_log.h +203 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/structured.h +75 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/log/vlog_is_on.h +72 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/memory/memory.h +328 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/meta/internal/constexpr_testing.h +73 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/meta/internal/requires.h +67 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/meta/type_traits.h +646 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/numeric/bits.h +262 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/numeric/int128.cc +344 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/numeric/int128.h +1224 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +303 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +347 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/numeric/internal/bits.h +394 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/profiling/hashtable.h +40 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/profiling/internal/exponential_biased.cc +93 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/profiling/internal/exponential_biased.h +130 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/profiling/internal/periodic_sampler.h +211 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/profiling/internal/profile_builder.h +161 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +253 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/bernoulli_distribution.h +202 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/beta_distribution.h +429 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/bit_gen_ref.h +160 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/discrete_distribution.h +249 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/distributions.h +450 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/exponential_distribution.h +166 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/gaussian_distribution.h +276 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/chi_square.h +89 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +83 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/distribution_test_util.h +113 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/entropy_pool.h +35 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/explicit_seed_seq.h +92 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +271 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/fastmath.h +57 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/generate_real.h +144 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h +248 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/mock_helpers.h +134 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/mock_overload_set.h +122 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/mock_validators.h +98 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/nanobenchmark.h +172 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +160 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +287 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/platform.h +158 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/randen.h +96 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/randen_detect.h +33 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/randen_engine.h +265 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/randen_hwaes.h +50 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/randen_slow.h +40 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/randen_traits.h +88 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +166 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/seed_material.h +105 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/sequence_urbg.h +60 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/traits.h +170 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +244 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/internal/wide_multiply.h +95 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h +253 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/mock_distributions.h +269 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/mocking_access.h +74 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/mocking_bit_gen.h +227 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/poisson_distribution.h +262 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/random.h +224 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/seed_gen_exception.h +55 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/seed_sequences.h +112 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/uniform_int_distribution.h +276 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +204 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/random/zipf_distribution.h +273 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/status/internal/status_internal.cc +296 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/status/internal/status_internal.h +157 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/status/internal/status_matchers.h +260 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +657 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/status/status.cc +413 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/status/status.h +1174 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/status/status_builder.h +978 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/status/status_macros.h +484 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/status/status_matchers.h +167 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/status/status_payload_printer.cc +36 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/status/status_payload_printer.h +53 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/status/statusor.cc +106 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/status/statusor.h +776 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/ascii.cc +296 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/ascii.h +288 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/charconv.cc +1442 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/charconv.h +123 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/charset.h +163 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/cord.cc +1601 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/cord.h +1773 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/cord_analysis.cc +196 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/cord_analysis.h +63 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/cord_buffer.h +574 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/cord_test_helpers.h +122 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/cordz_test_helpers.h +152 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/escaping.cc +1183 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/escaping.h +195 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/has_absl_stringify.h +64 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/has_ostream_operator.h +42 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/append_and_overwrite.h +93 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +357 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +433 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +504 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/charconv_parse.h +99 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cord_data_edge.h +63 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +70 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +942 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +1237 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +944 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +187 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h +267 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc +69 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h +212 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +64 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.h +47 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.cc +56 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.h +103 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +195 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cord_rep_test_util.h +205 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc +102 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cordz_functions.h +87 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +165 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cordz_handle.h +98 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +424 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +295 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cordz_sample_token.h +97 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +88 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cordz_update_scope.h +71 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker.h +123 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc +99 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.h +35 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/escaping.cc +68 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/escaping.h +35 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/escaping_test_common.h +133 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/generic_printer.h +115 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/generic_printer_internal.h +444 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/memutil.cc +48 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/memutil.h +40 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/numbers_test_common.h +184 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/ostringstream.cc +43 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/ostringstream.h +114 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/pow10_helper.h +40 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h +114 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/stl_type_traits.h +248 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +615 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +653 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +275 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +237 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +98 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/str_format/constexpr_parser.h +357 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +53 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +456 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +2148 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +37 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/str_format/output.cc +74 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +97 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +140 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +271 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +340 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +524 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/string_constant.h +67 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/stringify_sink.cc +28 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/stringify_sink.h +69 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/stringify_stream.h +119 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/utf8.cc +148 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/internal/utf8.h +64 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/match.cc +133 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/match.h +129 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/numbers.cc +1636 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/numbers.h +363 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/resize_and_overwrite.h +198 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/str_cat.cc +247 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/str_cat.h +668 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/str_format.h +887 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/str_join.h +301 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/str_replace.cc +91 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/str_replace.h +222 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/str_split.cc +144 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/str_split.h +587 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/string_view.h +60 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/strip.h +99 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/substitute.cc +187 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/strings/substitute.h +769 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/barrier.cc +52 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/barrier.h +79 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +73 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +107 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +173 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.h +56 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/futex.h +177 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/futex_waiter.cc +107 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/futex_waiter.h +63 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +714 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.h +146 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc +220 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +178 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +106 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +124 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/pthread_waiter.cc +163 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/pthread_waiter.h +60 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/sem_waiter.cc +118 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/sem_waiter.h +65 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc +87 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.h +56 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/thread_pool.h +96 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +69 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/waiter_base.cc +38 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/waiter_base.h +90 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/win32_waiter.cc +147 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/internal/win32_waiter.h +72 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/mutex.cc +2833 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/mutex.h +1352 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/notification.cc +85 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/synchronization/notification.h +133 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/civil_time.cc +200 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/civil_time.h +589 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/clock.cc +603 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/clock.h +81 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/clock_interface.h +93 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/duration.cc +918 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/format.cc +155 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time.h +332 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +644 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +460 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +102 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc +94 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/test_time_zone_names.h +33 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +140 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.h +52 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +1069 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc +47 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +80 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +115 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +97 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +1070 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +128 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +333 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h +60 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +217 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.cc +185 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.h +37 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc +159 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.h +132 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +115 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +116 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/get_current_time_chrono.inc +31 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/get_current_time_posix.inc +24 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/internal/test_util.h +33 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/simulated_clock.h +109 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/time.cc +507 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/time/time.h +1926 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/types/any.h +66 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/types/any_span.h +1067 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/types/compare.h +506 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/types/internal/any_span.h +477 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/types/internal/span.h +140 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/types/optional.h +68 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/types/optional_ref.h +295 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/types/source_location.cc +18 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/types/source_location.h +172 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/types/span.h +827 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/types/variant.h +139 -0
- data/ext/protovalidate/sys/third_party/abseil-cpp/absl/utility/utility.h +151 -0
- data/ext/protovalidate/sys/third_party/antlr4/LICENSE.txt +28 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRErrorListener.cpp +10 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRErrorListener.h +167 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRErrorStrategy.cpp +10 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRErrorStrategy.h +121 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRFileStream.cpp +23 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRFileStream.h +30 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRInputStream.cpp +180 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRInputStream.h +79 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/BailErrorStrategy.cpp +61 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/BailErrorStrategy.h +59 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/BaseErrorListener.cpp +25 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/BaseErrorListener.h +36 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/BufferedTokenStream.cpp +414 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/BufferedTokenStream.h +200 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/CharStream.cpp +11 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/CharStream.h +37 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/CommonToken.cpp +193 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/CommonToken.h +158 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/CommonTokenFactory.cpp +39 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/CommonTokenFactory.h +74 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/CommonTokenStream.cpp +78 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/CommonTokenStream.h +79 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ConsoleErrorListener.cpp +15 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ConsoleErrorListener.h +35 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/DefaultErrorStrategy.cpp +336 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/DefaultErrorStrategy.h +466 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/DiagnosticErrorListener.cpp +84 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/DiagnosticErrorListener.h +80 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/Exceptions.cpp +64 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/Exceptions.h +99 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/FailedPredicateException.cpp +52 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/FailedPredicateException.h +32 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/FlatHashMap.h +57 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/FlatHashSet.h +57 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/InputMismatchException.cpp +18 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/InputMismatchException.h +24 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/IntStream.cpp +12 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/IntStream.h +218 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/InterpreterRuleContext.cpp +19 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/InterpreterRuleContext.h +45 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/Lexer.cpp +294 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/Lexer.h +196 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/LexerInterpreter.cpp +60 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/LexerInterpreter.h +46 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/LexerNoViableAltException.cpp +36 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/LexerNoViableAltException.h +31 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ListTokenSource.cpp +92 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ListTokenSource.h +88 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/NoViableAltException.cpp +46 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/NoViableAltException.h +42 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/Parser.cpp +670 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/Parser.h +461 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ParserInterpreter.cpp +294 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ParserInterpreter.h +173 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ParserRuleContext.cpp +138 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ParserRuleContext.h +147 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ProxyErrorListener.cpp +53 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/ProxyErrorListener.h +38 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/RecognitionException.cpp +65 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/RecognitionException.h +98 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/Recognizer.cpp +157 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/Recognizer.h +160 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/RuleContext.cpp +144 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/RuleContext.h +141 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/RuleContextWithAltNum.cpp +27 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/RuleContextWithAltNum.h +32 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/RuntimeMetaData.cpp +54 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/RuntimeMetaData.h +155 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/Token.cpp +9 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/Token.h +92 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/TokenFactory.h +30 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/TokenSource.cpp +9 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/TokenSource.h +85 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/TokenStream.cpp +11 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/TokenStream.h +137 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/TokenStreamRewriter.cpp +428 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/TokenStreamRewriter.h +295 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/UnbufferedCharStream.cpp +208 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/UnbufferedCharStream.h +117 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/UnbufferedTokenStream.cpp +270 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/UnbufferedTokenStream.h +115 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/Version.h +42 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/Vocabulary.cpp +64 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/Vocabulary.h +177 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/WritableToken.cpp +9 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/WritableToken.h +23 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/antlr4-common.h +101 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/antlr4-runtime.h +168 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATN.cpp +159 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATN.h +133 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNConfig.cpp +106 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNConfig.h +157 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNConfigSet.cpp +233 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNConfigSet.h +157 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.cpp +39 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.h +48 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNDeserializer.cpp +628 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNDeserializer.h +32 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNSimulator.cpp +33 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNSimulator.h +71 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNState.cpp +56 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNState.h +139 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNStateType.cpp +33 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNStateType.h +36 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNType.h +20 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ActionTransition.cpp +29 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ActionTransition.h +35 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/AmbiguityInfo.cpp +16 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/AmbiguityInfo.h +68 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.cpp +129 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.h +51 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/AtomTransition.cpp +27 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/AtomTransition.h +33 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/BasicBlockStartState.h +24 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/BasicState.h +23 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/BlockEndState.h +26 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/BlockStartState.h +30 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.cpp +14 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.h +47 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/DecisionEventInfo.cpp +14 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/DecisionEventInfo.h +70 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/DecisionInfo.cpp +25 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/DecisionInfo.h +227 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/DecisionState.cpp +12 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/DecisionState.h +34 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/EpsilonTransition.cpp +31 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/EpsilonTransition.h +42 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ErrorInfo.cpp +15 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ErrorInfo.h +43 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/HashUtils.h +18 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LL1Analyzer.cpp +189 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LL1Analyzer.h +76 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerATNConfig.cpp +67 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerATNConfig.h +44 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerATNSimulator.cpp +621 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerATNSimulator.h +199 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerAction.cpp +15 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerAction.h +100 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerActionExecutor.cpp +108 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerActionExecutor.h +128 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerActionType.h +57 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerChannelAction.cpp +43 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerChannelAction.h +59 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerCustomAction.cpp +45 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerCustomAction.h +75 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.cpp +50 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.h +76 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerModeAction.cpp +43 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerModeAction.h +57 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerMoreAction.cpp +36 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerMoreAction.h +53 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerPopModeAction.cpp +36 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerPopModeAction.h +53 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerPushModeAction.cpp +43 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerPushModeAction.h +57 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerSkipAction.cpp +36 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerSkipAction.h +51 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerTypeAction.cpp +43 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerTypeAction.h +51 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.cpp +16 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.h +42 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/LoopEndState.h +26 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/NotSetTransition.cpp +22 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/NotSetTransition.h +27 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.cpp +16 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.h +25 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ParseInfo.cpp +102 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ParseInfo.h +102 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ParserATNSimulator.cpp +1413 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ParserATNSimulator.h +911 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ParserATNSimulatorOptions.h +50 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PlusBlockStartState.h +29 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PlusLoopbackState.h +25 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.cpp +23 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.h +35 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.cpp +17 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.h +62 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredicateTransition.cpp +24 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredicateTransition.h +50 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredictionContext.cpp +601 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredictionContext.h +225 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredictionContextCache.cpp +56 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredictionContextCache.h +63 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredictionContextMergeCache.cpp +167 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredictionContextMergeCache.h +101 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredictionContextMergeCacheOptions.h +71 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredictionContextType.h +21 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredictionMode.cpp +202 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredictionMode.h +436 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.cpp +179 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.h +60 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/RangeTransition.cpp +26 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/RangeTransition.h +31 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/RuleStartState.h +26 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/RuleStopState.h +27 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/RuleTransition.cpp +33 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/RuleTransition.h +42 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/SemanticContext.cpp +418 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/SemanticContext.h +237 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/SemanticContextType.h +23 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/SerializedATNView.h +101 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/SetTransition.cpp +28 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/SetTransition.h +38 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.cpp +79 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.h +43 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/StarBlockStartState.h +24 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/StarLoopEntryState.h +37 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/StarLoopbackState.cpp +19 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/StarLoopbackState.h +25 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/TokensStartState.h +24 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/Transition.cpp +36 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/Transition.h +65 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/TransitionType.cpp +27 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/TransitionType.h +33 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/WildcardTransition.cpp +21 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/atn/WildcardTransition.h +27 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/dfa/DFA.cpp +115 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/dfa/DFA.h +96 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/dfa/DFASerializer.cpp +60 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/dfa/DFASerializer.h +32 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/dfa/DFAState.cpp +59 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/dfa/DFAState.h +154 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.cpp +17 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.h +22 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/internal/Synchronization.cpp +100 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/internal/Synchronization.h +154 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/misc/InterpreterDataReader.cpp +124 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/misc/InterpreterDataReader.h +33 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/misc/Interval.cpp +61 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/misc/Interval.h +84 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/misc/IntervalSet.cpp +508 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/misc/IntervalSet.h +190 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/misc/MurmurHash.cpp +120 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/misc/MurmurHash.h +102 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/misc/Predicate.cpp +4 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/misc/Predicate.h +21 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/support/Any.cpp +8 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/support/Any.h +16 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/support/Arrays.cpp +43 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/support/Arrays.h +149 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/support/BitSet.h +76 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/support/CPPUtils.cpp +207 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/support/CPPUtils.h +65 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/support/Casts.h +34 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/support/Declarations.h +161 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/support/StringUtils.cpp +38 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/support/StringUtils.h +16 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/support/Unicode.h +28 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/support/Utf8.cpp +242 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/support/Utf8.h +54 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/AbstractParseTreeVisitor.h +129 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/ErrorNode.h +24 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.cpp +54 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.h +43 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.cpp +66 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.h +53 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTree.cpp +12 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTree.h +111 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTreeListener.cpp +9 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTreeListener.h +39 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTreeProperty.h +50 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTreeType.h +22 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.cpp +9 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.h +57 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTreeWalker.cpp +48 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTreeWalker.h +55 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/TerminalNode.h +40 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.cpp +54 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.h +32 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/Trees.cpp +241 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/Trees.h +78 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/Chunk.cpp +9 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/Chunk.h +44 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.cpp +69 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.h +132 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.cpp +64 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.h +105 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.cpp +370 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.h +185 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.cpp +77 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.h +117 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/TagChunk.cpp +39 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/TagChunk.h +86 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/TextChunk.cpp +28 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/TextChunk.h +51 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.cpp +36 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.h +80 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPath.cpp +154 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPath.h +86 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathElement.cpp +31 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathElement.h +40 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.cpp +180 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.h +53 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.cpp +13 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.h +22 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.cpp +20 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.h +27 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.cpp +30 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.h +26 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.cpp +20 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.h +25 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.cpp +33 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.h +26 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.cpp +23 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.h +23 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.cpp +24 -0
- data/ext/protovalidate/sys/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.h +23 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/LICENSE +202 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/base/ast.h +20 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/base/attribute.cc +330 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/base/attribute.h +278 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/base/attribute_set.h +108 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/base/builtins.h +106 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/base/function.h +20 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/base/function_adapter.h +19 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/base/function_descriptor.h +20 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/base/function_result.h +70 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/base/function_result_set.cc +28 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/base/function_result_set.h +105 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/base/internal/memory_manager_testing.h +54 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/base/internal/message_wrapper.h +30 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/base/internal/operators.h +91 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/base/internal/unknown_set.cc +31 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/base/internal/unknown_set.h +131 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/base/kind.h +25 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/base/operators.h +507 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/base/type_provider.h +26 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/checker/checker_options.h +110 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/checker/internal/builtins_arena.cc +28 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/checker/internal/builtins_arena.h +29 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/checker/internal/field_path.h +77 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/checker/internal/namespace_generator.h +120 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/checker/internal/proto_type_mask.h +111 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/checker/internal/proto_type_mask_registry.h +83 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/checker/internal/test_ast_helpers.h +31 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/checker/internal/type_check_env.h +249 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/checker/internal/type_checker_builder_impl.h +170 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/checker/internal/type_checker_impl.h +58 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/checker/internal/type_inference_context.h +229 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/checker/optional.h +30 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/checker/standard_library.h +26 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/checker/type_check_issue.cc +59 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/checker/type_check_issue.h +69 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/checker/type_checker.cc +36 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/checker/type_checker.h +65 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/checker/type_checker_builder.h +186 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/checker/type_checker_builder_factory.h +59 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/checker/type_checker_subset_factory.h +45 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/checker/validation_result.cc +32 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/checker/validation_result.h +117 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/codelab/checked_expr_conversion_example.h +59 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/codelab/exercise1.h +32 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/codelab/exercise10.h +46 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/codelab/exercise2.h +40 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/codelab/exercise4.h +34 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/codelab/network_functions.h +197 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/allocator.h +606 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/any.cc +38 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/any.h +90 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/arena.h +110 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/arena_string.h +365 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/arena_string_pool.h +86 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/arena_string_view.h +239 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/ast/constant_proto.cc +123 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/ast/constant_proto.h +37 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/ast/expr_proto.cc +514 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/ast/expr_proto.h +32 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/ast/metadata.cc +262 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/ast/metadata.h +920 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/ast/navigable_ast_internal.h +311 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/ast/navigable_ast_kinds.cc +80 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/ast/navigable_ast_kinds.h +74 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/ast/source_info_proto.cc +90 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/ast/source_info_proto.h +32 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/ast.cc +98 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/ast.h +157 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/ast_proto.cc +547 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/ast_proto.h +52 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/ast_rewrite.cc +389 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/ast_rewrite.h +146 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/ast_traverse.cc +380 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/ast_traverse.h +105 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/ast_visitor.h +118 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/ast_visitor_base.h +88 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/casting.h +75 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/constant.cc +101 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/constant.h +491 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/container.cc +171 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/container.h +138 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/data.h +120 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/decl.cc +221 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/decl.h +446 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/decl_proto.h +50 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/decl_proto_v1alpha1.h +55 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/descriptor_pool_type_introspector.cc +244 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/descriptor_pool_type_introspector.h +106 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/expr.cc +320 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/expr.h +1720 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/expr_factory.h +402 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/expr_printer.h +57 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/format_type_name.h +30 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/function_descriptor.cc +98 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/function_descriptor.h +124 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/internal/byte_string.cc +1074 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/internal/byte_string.h +688 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/internal/casting.h +237 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/internal/metadata.h +41 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/internal/reference_count.cc +118 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/internal/reference_count.h +406 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/internal/value_conversion.h +115 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/json.h +35 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/kind.cc +80 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/kind.h +76 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/legacy_value.cc +1324 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/legacy_value.h +131 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/memory.cc +83 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/memory.h +1505 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/memory_testing.h +71 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/minimal_descriptor_database.h +32 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/minimal_descriptor_pool.h +36 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/native_type.h +26 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/navigable_ast.cc +202 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/navigable_ast.h +168 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/operators.cc +233 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/operators.h +87 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/optional_ref.h +163 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/reference.h +269 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/reference_count.h +26 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/signature.cc +640 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/signature.h +101 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/source.cc +679 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/source.h +261 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/standard_definitions.h +349 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/type.cc +737 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/type.h +1303 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/type_introspector.cc +277 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/type_introspector.h +157 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/type_kind.h +113 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/type_proto.h +39 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/type_reflector.h +43 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/type_spec_resolver.cc +324 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/type_spec_resolver.h +46 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/type_testing.h +24 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/typeinfo.cc +73 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/typeinfo.h +221 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/any_type.h +74 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/basic_struct_type.cc +53 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/basic_struct_type.h +119 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/bool_type.h +73 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/bool_wrapper_type.h +79 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/bytes_type.h +73 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/bytes_wrapper_type.h +79 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/double_type.h +73 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/double_wrapper_type.h +79 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/duration_type.h +73 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/dyn_type.h +73 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/enum_type.cc +43 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/enum_type.h +128 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/error_type.h +75 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/function_type.cc +89 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/function_type.h +91 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/function_type_pool.cc +29 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/function_type_pool.h +102 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/int_type.h +72 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/int_wrapper_type.h +78 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/legacy_type_introspector.h +34 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/list_type.cc +77 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/list_type.h +115 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/list_type_pool.cc +29 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/list_type_pool.h +80 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/map_type.cc +122 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/map_type.h +124 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/map_type_pool.cc +30 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/map_type_pool.h +93 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/message_type.cc +95 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/message_type.h +209 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/null_type.h +73 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/opaque_type.cc +109 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/opaque_type.h +118 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/opaque_type_pool.cc +33 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/opaque_type_pool.h +99 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/optional_type.cc +68 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/optional_type.h +114 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/string_type.h +73 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/string_wrapper_type.h +86 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/struct_type.cc +87 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/struct_type.h +158 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/timestamp_type.h +73 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/type_param_type.h +78 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/type_pool.cc +96 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/type_pool.h +99 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/type_type.cc +74 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/type_type.h +92 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/type_type_pool.cc +26 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/type_type_pool.h +86 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/types.h +99 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/uint_type.h +73 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/uint_wrapper_type.h +79 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/types/unknown_type.h +74 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/unknown.h +27 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/value.cc +2791 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/value.h +2947 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/value_kind.h +104 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/value_testing.h +307 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/bool_value.cc +97 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/bool_value.h +111 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/bytes_value.cc +194 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/bytes_value.h +338 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/bytes_value_input_stream.h +133 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/bytes_value_output_stream.h +176 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/custom_list_value.cc +614 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/custom_list_value.h +423 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/custom_map_value.cc +823 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/custom_map_value.h +469 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/custom_struct_value.cc +385 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/custom_struct_value.h +459 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/custom_value.h +84 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/double_value.cc +137 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/double_value.h +101 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/duration_value.cc +105 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/duration_value.h +147 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/enum_value.h +49 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/error_value.cc +194 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/error_value.h +276 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/int_value.cc +111 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/int_value.h +117 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/legacy_list_value.cc +76 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/legacy_list_value.h +167 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/legacy_map_value.cc +76 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/legacy_map_value.h +185 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/legacy_struct_value.cc +43 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/legacy_struct_value.h +183 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/list_value.cc +304 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/list_value.h +284 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/list_value_builder.h +110 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/list_value_variant.h +214 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/map_value.cc +378 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/map_value.h +323 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/map_value_builder.h +110 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/map_value_variant.h +212 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/message_value.cc +306 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/message_value.h +268 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/null_value.cc +78 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/null_value.h +96 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/opaque_value.cc +194 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/opaque_value.h +338 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/optional_value.cc +435 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/optional_value.h +207 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/parsed_json_list_value.cc +486 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/parsed_json_list_value.h +229 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/parsed_json_map_value.cc +439 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/parsed_json_map_value.h +250 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/parsed_json_value.cc +103 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/parsed_json_value.h +40 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/parsed_map_field_value.cc +583 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/parsed_map_field_value.h +242 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/parsed_message_value.cc +411 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/parsed_message_value.h +249 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/parsed_repeated_field_value.cc +365 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/parsed_repeated_field_value.h +220 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/string_value.cc +1518 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/string_value.h +489 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/struct_value.cc +390 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/struct_value.h +373 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/struct_value_builder.cc +1552 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/struct_value_builder.h +35 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/struct_value_variant.h +205 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/timestamp_value.cc +105 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/timestamp_value.h +146 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/type_value.cc +72 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/type_value.h +108 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/uint_value.cc +110 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/uint_value.h +119 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/unknown_value.cc +66 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/unknown_value.h +121 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/value_builder.cc +1432 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/value_builder.h +36 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/value_variant.cc +537 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/value_variant.h +831 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/common/values/values.h +351 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/compiler/compiler.h +195 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/compiler/compiler_factory.h +70 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/compiler/compiler_library_subset_factory.h +80 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/compiler/optional.h +28 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/compiler/standard_library.h +27 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/env/config.h +173 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/env/env.h +76 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/env/env_runtime.h +85 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/env/env_std_extensions.h +42 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/env/env_yaml.h +74 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/env/internal/ext_registry.h +74 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/env/internal/runtime_ext_registry.h +84 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/env/runtime_std_extensions.h +46 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/env/type_info.h +42 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/cel_expression_builder_flat_impl.cc +111 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/cel_expression_builder_flat_impl.h +108 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/check_ast_extensions.cc +58 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/check_ast_extensions.h +34 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/comprehension_vulnerability_check.cc +275 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/comprehension_vulnerability_check.h +51 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/constant_folding.cc +280 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/constant_folding.h +42 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/flat_expr_builder.cc +2667 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/flat_expr_builder.h +104 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/flat_expr_builder_extensions.cc +474 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/flat_expr_builder_extensions.h +481 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/instrumentation.h +60 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/qualified_reference_resolver.cc +359 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/qualified_reference_resolver.h +53 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/regex_precompilation_optimization.cc +274 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/regex_precompilation_optimization.h +29 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/resolver.cc +222 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/compiler/resolver.h +127 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/attribute_trail.cc +28 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/attribute_trail.h +65 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/attribute_utility.cc +260 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/attribute_utility.h +179 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/cel_expression_flat_impl.cc +147 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/cel_expression_flat_impl.h +175 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/compiler_constant_step.cc +37 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/compiler_constant_step.h +76 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/comprehension_slots.h +153 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/comprehension_step.cc +685 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/comprehension_step.h +119 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/const_value_step.h +31 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/container_access_step.cc +370 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/container_access_step.h +26 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/create_list_step.cc +283 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/create_list_step.h +40 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/create_map_step.cc +289 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/create_map_step.h +59 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/create_struct_step.cc +270 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/create_struct_step.h +44 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/direct_expression_step.cc +34 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/direct_expression_step.h +99 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/equality_steps.cc +293 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/equality_steps.h +45 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/evaluator_core.cc +178 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/evaluator_core.h +516 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/evaluator_stack.cc +92 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/evaluator_stack.h +327 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/expression_step_base.h +12 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/function_step.cc +529 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/function_step.h +48 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/ident_step.cc +174 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/ident_step.h +31 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/iterator_stack.h +77 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/jump_step.cc +172 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/jump_step.h +74 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/lazy_init_step.cc +236 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/lazy_init_step.h +87 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/logic_step.cc +487 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/logic_step.h +49 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/optional_or_step.cc +305 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/optional_or_step.h +51 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/regex_match_step.cc +135 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/regex_match_step.h +37 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/select_step.cc +581 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/select_step.h +33 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/shadowable_value_step.cc +98 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/shadowable_value_step.h +26 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/ternary_step.cc +194 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/ternary_step.h +26 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/eval/trace_step.h +73 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/internal/adapter_activation_impl.cc +87 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/internal/adapter_activation_impl.h +68 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/internal/cel_value_equal.cc +242 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/internal/cel_value_equal.h +34 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/internal/errors.cc +64 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/internal/errors.h +54 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/internal/interop.h +20 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/activation.cc +119 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/activation.h +170 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/activation_bind_helper.h +60 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/ast_rewrite.h +175 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/ast_traverse.h +110 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/ast_visitor.h +185 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/ast_visitor_base.h +109 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/base_activation.h +75 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/builtin_func_registrar.cc +65 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/builtin_func_registrar.h +30 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_attribute.cc +90 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_attribute.h +64 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_builtins.h +19 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_expr_builder_factory.cc +146 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_expr_builder_factory.h +43 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_expression.h +144 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_function.cc +76 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_function.h +80 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_function_adapter.h +121 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_function_adapter_impl.h +407 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_function_registry.cc +122 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_function_registry.h +146 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_number.cc +31 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_number.h +36 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_options.cc +51 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_options.h +233 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_type_registry.cc +64 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_type_registry.h +145 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_value.cc +412 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_value.h +770 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_value_internal.h +103 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/cel_value_producer.h +25 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/comparison_functions.h +36 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/container_function_registrar.h +36 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/containers/container_backed_list_impl.h +44 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/containers/container_backed_map_impl.cc +131 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/containers/container_backed_map_impl.h +70 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/containers/field_access.cc +85 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/containers/field_access.h +70 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/containers/field_backed_list_impl.h +33 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/containers/field_backed_map_impl.h +35 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/containers/internal_field_backed_list_impl.cc +36 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/containers/internal_field_backed_list_impl.h +59 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/containers/internal_field_backed_map_impl.cc +298 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/containers/internal_field_backed_map_impl.h +77 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/equality_function_registrar.h +44 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/extension_func_registrar.h +20 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/logical_function_registrar.h +36 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/message_wrapper.h +139 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/portable_cel_function_adapter.h +72 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/set_util.h +43 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/source_position.h +65 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/string_extension_func_registrar.cc +29 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/string_extension_func_registrar.h +31 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/cel_proto_descriptor_pool_builder.h +40 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/cel_proto_wrap_util.cc +1479 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/cel_proto_wrap_util.h +45 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/cel_proto_wrapper.cc +60 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/cel_proto_wrapper.h +53 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/field_access_impl.cc +746 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/field_access_impl.h +80 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/legacy_type_adapter.h +177 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/legacy_type_info_apis.h +108 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/legacy_type_provider.cc +232 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/legacy_type_provider.h +79 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/proto_message_type_adapter.cc +708 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/proto_message_type_adapter.h +137 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/protobuf_descriptor_type_provider.cc +70 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/protobuf_descriptor_type_provider.h +67 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/protobuf_value_factory.h +36 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/structs/trivial_legacy_type_info.h +54 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/transform_utility.h +39 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/unknown_attribute_set.h +20 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/unknown_function_result_set.cc +1 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/unknown_function_result_set.h +27 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/unknown_set.h +22 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/eval/public/value_export_util.h +28 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/extensions/bindings_ext.h +46 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/extensions/comprehensions_v2.h +39 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/extensions/comprehensions_v2_functions.h +35 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/extensions/comprehensions_v2_macros.h +34 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/extensions/encoders.h +45 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/extensions/formatting.cc +570 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/extensions/formatting.h +39 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/extensions/lists_functions.h +138 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/extensions/math_ext.h +39 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/extensions/math_ext_decls.h +33 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/extensions/math_ext_macros.h +38 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/extensions/proto_ext.h +42 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/extensions/protobuf/ast_converters.h +56 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/extensions/protobuf/bind_proto_to_activation.h +38 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/extensions/protobuf/enum_adapter.h +30 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/extensions/protobuf/internal/map_reflection.cc +132 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/extensions/protobuf/internal/map_reflection.h +67 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/extensions/protobuf/internal/qualify.cc +457 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/extensions/protobuf/internal/qualify.h +117 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/extensions/protobuf/memory_manager.cc +37 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/extensions/protobuf/memory_manager.h +56 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/extensions/protobuf/runtime_adapter.h +51 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/extensions/protobuf/value.h +98 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/extensions/protobuf/value_testing.h +78 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/extensions/regex_ext.h +131 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/extensions/regex_functions.h +52 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/extensions/select_optimization.cc +958 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/extensions/select_optimization.h +90 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/extensions/sets_functions.h +45 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/extensions/strings.cc +432 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/extensions/strings.h +73 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/align.h +95 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/benchmark.h +20 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/casts.h +50 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/empty_descriptors.cc +73 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/empty_descriptors.h +31 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/equals_text_proto.h +65 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/exceptions.h +35 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/json.cc +2041 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/json.h +141 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/lexis.cc +79 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/lexis.h +32 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/manual.h +91 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/message_equality.cc +1490 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/message_equality.h +54 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/message_type_name.h +56 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/minimal_descriptor_database.h +32 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/minimal_descriptor_pool.h +40 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/names.h +26 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/new.cc +142 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/new.h +61 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/noop_delete.h +53 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/number.h +299 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/overflow.cc +339 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/overflow.h +178 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/parse_text_proto.h +121 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/proto_file_util.h +73 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/proto_matchers.h +140 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/proto_time_encoding.cc +103 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/proto_time_encoding.h +49 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/proto_util.h +87 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/protobuf_runtime_version.h +32 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/re2_options.h +61 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/runfiles.h +36 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/status_builder.h +114 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/status_macros.h +152 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/string_pool.cc +79 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/string_pool.h +59 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/strings.cc +693 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/strings.h +90 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/testing.h +44 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/testing_descriptor_pool.h +35 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/testing_message_factory.h +31 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/time.cc +198 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/time.h +65 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/to_address.h +68 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/unicode.h +28 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/utf8.cc +526 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/utf8.h +82 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/well_known_types.cc +2181 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/internal/well_known_types.h +1593 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/parser/internal/ast_factory.cc +320 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/parser/internal/ast_factory.h +174 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/parser/internal/ast_factory_interface.h +130 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/parser/internal/lexer.cc +711 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/parser/internal/lexer.h +286 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/parser/internal/options.h +29 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/parser/internal/pratt_parser.cc +226 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/parser/internal/pratt_parser.h +110 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/parser/internal/pratt_parser_worker.cc +261 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/parser/internal/pratt_parser_worker.h +1143 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/parser/macro.cc +561 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/parser/macro.h +229 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/parser/macro_expr_factory.cc +128 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/parser/macro_expr_factory.h +333 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/parser/macro_registry.cc +87 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/parser/macro_registry.h +59 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/parser/options.h +115 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/parser/parser.cc +1995 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/parser/parser.h +102 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/parser/parser_interface.h +160 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/parser/parser_subset_factory.h +41 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/parser/source_factory.h +47 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/parser/standard_macros.h +31 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/policy/cel_policy.h +333 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/policy/cel_policy_parse_context.h +65 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/policy/cel_policy_parse_result.h +105 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/policy/cel_policy_parser.h +40 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/policy/cel_policy_validation_result.h +84 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/policy/compiler.h +50 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/policy/internal/issue_reporter.h +57 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/policy/internal/optimizer_expr_factory.h +419 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/policy/internal/yaml_string_element_scanner.h +40 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/policy/test_util.h +33 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/policy/yaml_policy_parser.h +135 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/activation.cc +141 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/activation.h +184 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/activation_interface.h +109 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/bind_proto_to_activation.h +174 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/comprehension_vulnerability_check.h +35 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/constant_folding.h +69 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/embedder_context.h +147 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/function.h +115 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/function_adapter.h +830 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/function_overload_reference.h +34 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/function_provider.h +46 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/function_registry.cc +263 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/function_registry.h +160 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/activation_attribute_matcher_access.cc +61 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/activation_attribute_matcher_access.h +60 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/attribute_matcher.h +48 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/convert_constant.cc +78 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/convert_constant.h +39 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/errors.cc +69 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/errors.h +71 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/function_adapter.h +232 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/issue_collector.h +64 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/legacy_runtime_type_provider.h +37 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/runtime_env.cc +73 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/runtime_env.h +134 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/runtime_env_testing.h +60 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/runtime_friend_access.h +45 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/runtime_impl.cc +159 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/runtime_impl.h +125 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/runtime_type_provider.cc +96 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/internal/runtime_type_provider.h +66 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/optional_types.h +152 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/reference_resolver.h +46 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/regex_precompilation.h +32 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/register_function_helper.h +99 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/runtime.h +229 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/runtime_builder.h +101 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/runtime_builder_factory.h +65 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/runtime_issue.h +88 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/runtime_options.h +209 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/arithmetic_functions.cc +233 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/arithmetic_functions.h +35 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/comparison_functions.cc +272 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/comparison_functions.h +36 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/container_functions.cc +136 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/container_functions.h +36 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/container_membership_functions.cc +331 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/container_membership_functions.h +34 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/equality_functions.cc +612 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/equality_functions.h +60 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/logical_functions.cc +66 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/logical_functions.h +36 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/regex_functions.cc +56 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/regex_functions.h +38 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/string_functions.cc +140 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/string_functions.h +34 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/time_functions.cc +499 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/time_functions.h +56 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/type_conversion_functions.cc +470 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard/type_conversion_functions.h +34 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard_functions.h +33 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/standard_runtime_builder_factory.h +43 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/type_registry.cc +84 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/runtime/type_registry.h +155 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/tools/branch_coverage.h +68 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/tools/cel_field_extractor.h +70 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/tools/cel_unparser.h +60 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/tools/descriptor_pool_builder.h +93 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/tools/flatbuffers_backed_impl.h +58 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/tools/navigable_ast.h +169 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/tools/proto_to_predicate.h +48 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/validator/ast_depth_validator.h +27 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/validator/comprehension_nesting_validator.h +31 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/validator/homogeneous_literal_validator.h +38 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/validator/regex_validator.h +53 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/validator/timestamp_literal_validator.h +29 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/validator/validator.cc +85 -0
- data/ext/protovalidate/sys/third_party/cel-cpp/validator/validator.h +151 -0
- data/ext/protovalidate/sys/third_party/protobuf/LICENSE +32 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/any.cc +65 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/any.h +161 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/any.pb.cc +528 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/any.pb.h +516 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/any_lite.cc +95 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/api.pb.cc +1959 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/api.pb.h +1985 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/arena.cc +1004 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/arena.h +1238 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/arena_align.cc +21 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/arena_align.h +199 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/arena_allocation_policy.h +102 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/arena_cleanup.h +108 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/arena_test_util.h +91 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/arenastring.cc +290 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/arenastring.h +545 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/arenaz_sampler.cc +227 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/arenaz_sampler.h +238 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/annotation_test_util.h +105 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/code_generator.h +256 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/code_generator_lite.h +77 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/command_line_interface.h +517 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/command_line_interface_tester.h +162 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/importer.cc +594 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/importer.h +338 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/mock_code_generator.h +144 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/notices.h +242 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/package_info.h +40 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/parser.cc +2716 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/parser.h +642 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/plugin.h +73 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/plugin.pb.h +2320 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/retention.h +70 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/scc.h +155 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/subprocess.h +91 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/versions.h +78 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/compiler/zip_writer.h +45 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/cpp_edition_defaults.h +12 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/cpp_features.pb.cc +539 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/cpp_features.pb.h +630 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/descriptor.cc +10801 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/descriptor.h +3417 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/descriptor.pb.cc +18982 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/descriptor.pb.h +23170 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/descriptor_database.cc +1102 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/descriptor_database.h +423 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/descriptor_legacy.h +32 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/descriptor_lite.h +110 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/descriptor_test_utils.h +129 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/descriptor_visitor.h +187 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/duration.pb.cc +481 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/duration.pb.h +367 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/dynamic_message.cc +1104 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/dynamic_message.h +217 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/empty.pb.cc +285 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/empty.pb.h +245 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/endian.h +192 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/explicitly_constructed.h +71 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/extension_set.cc +1925 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/extension_set.h +1886 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/extension_set_heavy.cc +459 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/extension_set_inl.h +274 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/feature_resolver.cc +637 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/feature_resolver.h +108 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/field_access_listener.h +166 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/field_mask.pb.cc +472 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/field_mask.pb.h +396 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/field_with_arena.h +110 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/generated_enum_reflection.h +187 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/generated_enum_util.cc +223 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/generated_enum_util.h +185 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/generated_message_bases.cc +88 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/generated_message_bases.h +68 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/generated_message_reflection.cc +4185 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/generated_message_reflection.h +372 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/generated_message_tctable_decl.h +615 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/generated_message_tctable_full.cc +105 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/generated_message_tctable_gen.cc +960 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/generated_message_tctable_gen.h +193 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/generated_message_tctable_impl.h +1229 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/generated_message_tctable_lite.cc +3308 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/generated_message_util.cc +434 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/generated_message_util.h +445 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/has_bits.h +138 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/implicit_weak_message.cc +139 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/implicit_weak_message.h +266 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/inlined_string_field.cc +144 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/inlined_string_field.h +379 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/internal_feature_helper.cc +28 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/internal_feature_helper.h +130 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/internal_metadata_locator.h +291 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/internal_visibility.h +55 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/internal_visibility_for_testing.h +27 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/coded_stream.cc +1045 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/coded_stream.h +1885 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/gzip_stream.cc +333 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/gzip_stream.h +189 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/io_win32.cc +450 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/io_win32.h +118 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/package_info.h +30 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/printer.cc +842 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/printer.h +1183 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/strtod.cc +260 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/strtod.h +57 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/test_zero_copy_stream.h +185 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/tokenizer.cc +1262 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/tokenizer.h +441 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/zero_copy_sink.cc +45 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/zero_copy_sink.h +59 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/zero_copy_stream.cc +128 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/zero_copy_stream.h +269 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl.cc +354 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl.h +319 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.cc +699 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.h +533 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/descriptor_traits.h +510 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/lexer.cc +512 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/lexer.h +341 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/message_path.cc +46 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/message_path.h +61 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/parser.cc +1437 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/parser.h +37 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/parser_traits.h +400 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/unparser.cc +915 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/unparser.h +38 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/unparser_traits.h +414 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/untyped_message.cc +577 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/untyped_message.h +246 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/writer.cc +307 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/writer.h +214 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/zero_copy_buffered_stream.cc +152 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/internal/zero_copy_buffered_stream.h +338 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/json.cc +137 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/json/json.h +200 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/map.cc +297 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/map.h +1787 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/map_entry.h +139 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/map_field.cc +597 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/map_field.h +925 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/map_field_lite.h +124 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/map_test.inc +4427 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/map_test_util.h +617 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/map_type_handler.h +374 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/message.cc +745 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/message.h +1936 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/message_lite.cc +807 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/message_lite.h +1861 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/message_unittest.inc +2302 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/message_unittest_legacy_apis.inc +98 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/metadata.h +13 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/metadata_lite.h +271 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/micro_string.cc +376 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/micro_string.h +649 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/os_macros_restore.inc +97 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/os_macros_undef.inc +166 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/package_info.h +43 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/parse_context.cc +850 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/parse_context.h +1883 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/port.cc +131 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/port.h +908 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/port_def.inc +820 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/port_undef.inc +97 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/proto3_lite_unittest.inc +127 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/raw_ptr.cc +29 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/raw_ptr.h +64 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/reflection.h +603 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/reflection_internal.h +313 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/reflection_mode.cc +36 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/reflection_mode.h +144 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/reflection_ops.cc +456 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/reflection_ops.h +67 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/reflection_tester.h +127 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/reflection_visit_field_info.h +1378 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/reflection_visit_fields.h +511 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/repeated_field.cc +76 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/repeated_field.h +1814 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/repeated_field_proxy.h +697 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/repeated_field_proxy_iterator.h +236 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/repeated_field_proxy_traits.h +100 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/repeated_field_reflection_unittest.inc +687 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/repeated_ptr_field.cc +251 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/repeated_ptr_field.h +2706 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/runtime_version.h +27 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/serial_arena.h +447 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/service.cc +22 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/service.h +271 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/source_context.pb.cc +463 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/source_context.pb.h +376 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/string_block.h +181 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/string_member_robber.h +17 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/struct.pb.cc +1663 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/struct.pb.h +1426 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/stubs/callback.h +584 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/stubs/common.cc +121 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/stubs/common.h +94 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/stubs/platform_macros.h +115 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/stubs/port.h +228 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/stubs/status_macros.h +72 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/symbol_checker.cc +219 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/symbol_checker.h +142 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/test_textproto.h +54 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/test_util.h +3897 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/test_util2.h +70 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/test_util_lite.h +86 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/text_format.cc +3324 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/text_format.h +925 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/thread_safe_arena.h +297 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/timestamp.pb.cc +481 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/timestamp.pb.h +367 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/type.pb.cc +3129 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/type.pb.h +3343 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/unknown_field_set.cc +351 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/unknown_field_set.h +464 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/delimited_message_util.cc +107 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/delimited_message_util.h +85 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/field_comparator.cc +237 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/field_comparator.h +256 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/field_mask_util.cc +754 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/field_mask_util.h +242 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/internal_timeval.h +28 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/json_util.h +34 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/message_differencer.cc +2372 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/message_differencer.h +1002 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/package_info.h +23 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/python/field_mask_util_clif_aux.h +32 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/time_util.cc +563 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/time_util.h +297 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/type_resolver.h +56 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/type_resolver_util.cc +436 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/util/type_resolver_util.h +45 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/varint_shuffle.h +165 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/wire_format.cc +1785 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/wire_format.h +374 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/wire_format_lite.cc +901 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/wire_format_lite.h +1720 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/wire_format_unittest.h +1726 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/wrappers.pb.cc +3203 -0
- data/ext/protovalidate/sys/third_party/protobuf/src/google/protobuf/wrappers.pb.h +2317 -0
- data/ext/protovalidate/sys/third_party/protobuf/third_party/utf8_range/utf8_range.c +207 -0
- data/ext/protovalidate/sys/third_party/protobuf/third_party/utf8_range/utf8_range.h +23 -0
- data/ext/protovalidate/sys/third_party/protobuf/third_party/utf8_range/utf8_range_neon.inc +117 -0
- data/ext/protovalidate/sys/third_party/protobuf/third_party/utf8_range/utf8_range_sse.inc +272 -0
- data/ext/protovalidate/sys/third_party/protobuf/third_party/utf8_range/utf8_validity.h +30 -0
- data/ext/protovalidate/sys/third_party/protovalidate-cc/LICENSE +201 -0
- data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/cel_rules.h +116 -0
- data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/cel_validation_rules.cc +166 -0
- data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/cel_validation_rules.h +72 -0
- data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/extra_func.cc +482 -0
- data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/extra_func.h +31 -0
- data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/field_rules.cc +388 -0
- data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/field_rules.h +92 -0
- data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/lib/ipv4.cc +69 -0
- data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/lib/ipv4.h +58 -0
- data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/lib/ipv6.cc +143 -0
- data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/lib/ipv6.h +51 -0
- data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/lib/parser_common.h +256 -0
- data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/lib/uri.cc +469 -0
- data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/lib/uri.h +25 -0
- data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/message_factory.cc +31 -0
- data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/message_factory.h +43 -0
- data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/message_rules.cc +114 -0
- data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/message_rules.h +39 -0
- data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/proto_field.h +155 -0
- data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/rules.cc +437 -0
- data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/rules.h +221 -0
- data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/internal/validation_rules.h +153 -0
- data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/validator.cc +190 -0
- data/ext/protovalidate/sys/third_party/protovalidate-cc/buf/validate/validator.h +156 -0
- data/ext/protovalidate/sys/third_party/re2/LICENSE +27 -0
- data/ext/protovalidate/sys/third_party/re2/re2/bitmap256.cc +43 -0
- data/ext/protovalidate/sys/third_party/re2/re2/bitmap256.h +88 -0
- data/ext/protovalidate/sys/third_party/re2/re2/bitstate.cc +389 -0
- data/ext/protovalidate/sys/third_party/re2/re2/compile.cc +1265 -0
- data/ext/protovalidate/sys/third_party/re2/re2/dfa.cc +2135 -0
- data/ext/protovalidate/sys/third_party/re2/re2/filtered_re2.cc +138 -0
- data/ext/protovalidate/sys/third_party/re2/re2/filtered_re2.h +115 -0
- data/ext/protovalidate/sys/third_party/re2/re2/mimics_pcre.cc +196 -0
- data/ext/protovalidate/sys/third_party/re2/re2/nfa.cc +714 -0
- data/ext/protovalidate/sys/third_party/re2/re2/onepass.cc +623 -0
- data/ext/protovalidate/sys/third_party/re2/re2/parse.cc +2529 -0
- data/ext/protovalidate/sys/third_party/re2/re2/perl_groups.cc +119 -0
- data/ext/protovalidate/sys/third_party/re2/re2/pod_array.h +55 -0
- data/ext/protovalidate/sys/third_party/re2/re2/prefilter.cc +711 -0
- data/ext/protovalidate/sys/third_party/re2/re2/prefilter.h +168 -0
- data/ext/protovalidate/sys/third_party/re2/re2/prefilter_tree.cc +376 -0
- data/ext/protovalidate/sys/third_party/re2/re2/prefilter_tree.h +153 -0
- data/ext/protovalidate/sys/third_party/re2/re2/prog.cc +1181 -0
- data/ext/protovalidate/sys/third_party/re2/re2/prog.h +493 -0
- data/ext/protovalidate/sys/third_party/re2/re2/re2.cc +1355 -0
- data/ext/protovalidate/sys/third_party/re2/re2/re2.h +1074 -0
- data/ext/protovalidate/sys/third_party/re2/re2/regexp.cc +1004 -0
- data/ext/protovalidate/sys/third_party/re2/re2/regexp.h +693 -0
- data/ext/protovalidate/sys/third_party/re2/re2/set.cc +185 -0
- data/ext/protovalidate/sys/third_party/re2/re2/set.h +91 -0
- data/ext/protovalidate/sys/third_party/re2/re2/simplify.cc +689 -0
- data/ext/protovalidate/sys/third_party/re2/re2/sparse_array.h +394 -0
- data/ext/protovalidate/sys/third_party/re2/re2/sparse_set.h +266 -0
- data/ext/protovalidate/sys/third_party/re2/re2/stringpiece.h +18 -0
- data/ext/protovalidate/sys/third_party/re2/re2/tostring.cc +351 -0
- data/ext/protovalidate/sys/third_party/re2/re2/unicode_casefold.cc +604 -0
- data/ext/protovalidate/sys/third_party/re2/re2/unicode_casefold.h +77 -0
- data/ext/protovalidate/sys/third_party/re2/re2/unicode_groups.cc +6517 -0
- data/ext/protovalidate/sys/third_party/re2/re2/unicode_groups.h +66 -0
- data/ext/protovalidate/sys/third_party/re2/re2/walker-inl.h +249 -0
- data/ext/protovalidate/sys/third_party/re2/util/malloc_counter.h +19 -0
- data/ext/protovalidate/sys/third_party/re2/util/pcre.h +671 -0
- data/ext/protovalidate/sys/third_party/re2/util/rune.cc +260 -0
- data/ext/protovalidate/sys/third_party/re2/util/strutil.cc +26 -0
- data/ext/protovalidate/sys/third_party/re2/util/strutil.h +16 -0
- data/ext/protovalidate/sys/third_party/re2/util/utf.h +44 -0
- data/ext/protovalidate/sys/versions.json +15 -0
- data/lib/buf/validate/validate_pb.rb +55 -0
- data/lib/protovalidate/errors.rb +32 -0
- data/lib/protovalidate/native.rb +30 -0
- data/lib/protovalidate/validator.rb +96 -0
- data/lib/protovalidate/version.rb +10 -0
- data/lib/protovalidate/violation.rb +115 -0
- data/lib/protovalidate.rb +48 -0
- data/sig/buf/validate/validate_pb.rbs +64 -0
- data/sig/protovalidate/native.rbs +14 -0
- data/sig/protovalidate.rbs +90 -0
- metadata +1900 -0
|
@@ -0,0 +1,1883 @@
|
|
|
1
|
+
// Protocol Buffers - Google's data interchange format
|
|
2
|
+
// Copyright 2008 Google Inc. All rights reserved.
|
|
3
|
+
//
|
|
4
|
+
// Use of this source code is governed by a BSD-style
|
|
5
|
+
// license that can be found in the LICENSE file or at
|
|
6
|
+
// https://developers.google.com/open-source/licenses/bsd
|
|
7
|
+
|
|
8
|
+
#ifndef GOOGLE_PROTOBUF_PARSE_CONTEXT_H__
|
|
9
|
+
#define GOOGLE_PROTOBUF_PARSE_CONTEXT_H__
|
|
10
|
+
|
|
11
|
+
#include <algorithm>
|
|
12
|
+
#include <climits>
|
|
13
|
+
#include <cstddef>
|
|
14
|
+
#include <cstdint>
|
|
15
|
+
#include <cstring>
|
|
16
|
+
#include <limits>
|
|
17
|
+
#include <string>
|
|
18
|
+
#include <type_traits>
|
|
19
|
+
#include <utility>
|
|
20
|
+
|
|
21
|
+
#include "absl/base/casts.h"
|
|
22
|
+
#include "absl/base/config.h"
|
|
23
|
+
#include "absl/base/prefetch.h"
|
|
24
|
+
#include "absl/log/absl_check.h"
|
|
25
|
+
#include "absl/log/absl_log.h"
|
|
26
|
+
#include "absl/strings/cord.h"
|
|
27
|
+
#include "absl/strings/internal/resize_uninitialized.h"
|
|
28
|
+
#include "absl/strings/string_view.h"
|
|
29
|
+
#include "absl/types/span.h"
|
|
30
|
+
#include "google/protobuf/arena.h"
|
|
31
|
+
#include "google/protobuf/arenastring.h"
|
|
32
|
+
#include "google/protobuf/endian.h"
|
|
33
|
+
#include "google/protobuf/inlined_string_field.h"
|
|
34
|
+
#include "google/protobuf/io/coded_stream.h"
|
|
35
|
+
#include "google/protobuf/io/zero_copy_stream.h"
|
|
36
|
+
#include "google/protobuf/message_lite.h"
|
|
37
|
+
#include "google/protobuf/metadata_lite.h"
|
|
38
|
+
#include "google/protobuf/micro_string.h"
|
|
39
|
+
#include "google/protobuf/port.h"
|
|
40
|
+
#include "google/protobuf/repeated_field.h"
|
|
41
|
+
#include "google/protobuf/repeated_ptr_field.h"
|
|
42
|
+
#include "google/protobuf/wire_format_lite.h"
|
|
43
|
+
#include "utf8_validity.h"
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
// Must be included last.
|
|
47
|
+
#include "google/protobuf/port_def.inc"
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
namespace google {
|
|
51
|
+
namespace protobuf {
|
|
52
|
+
|
|
53
|
+
class UnknownFieldSet;
|
|
54
|
+
class DescriptorPool;
|
|
55
|
+
class MessageFactory;
|
|
56
|
+
|
|
57
|
+
namespace internal {
|
|
58
|
+
|
|
59
|
+
class LazyField;
|
|
60
|
+
|
|
61
|
+
// Template code below needs to know about the existence of these functions.
|
|
62
|
+
PROTOBUF_EXPORT void WriteVarint(uint32_t num, uint64_t val, std::string* s);
|
|
63
|
+
PROTOBUF_EXPORT void WriteLengthDelimited(uint32_t num, absl::string_view val,
|
|
64
|
+
std::string* s);
|
|
65
|
+
// Inline because it is just forwarding to s->WriteVarint
|
|
66
|
+
inline void WriteVarint(uint32_t num, uint64_t val, UnknownFieldSet* unknown);
|
|
67
|
+
inline void WriteLengthDelimited(uint32_t num, absl::string_view val,
|
|
68
|
+
UnknownFieldSet* unknown);
|
|
69
|
+
|
|
70
|
+
// Counts the number of varints in the array, assuming that end - ptr >= 8.
|
|
71
|
+
// If varints are valid only up to some point, then returns at least the number
|
|
72
|
+
// of valid varints.
|
|
73
|
+
int CountVarintsAssumingLargeArray(const char* ptr, const char* end);
|
|
74
|
+
|
|
75
|
+
// Checks if each byte in the array is a valid representation for a bool, i.e.
|
|
76
|
+
// 0 or 1, assuming that end - ptr >= 8. Optimized for the result being true.
|
|
77
|
+
bool VerifyBoolsAssumingLargeArray(const char* ptr, const char* end);
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
// The basic abstraction the parser is designed for is a slight modification
|
|
81
|
+
// of the ZeroCopyInputStream (ZCIS) abstraction. A ZCIS presents a serialized
|
|
82
|
+
// stream as a series of buffers that concatenate to the full stream.
|
|
83
|
+
// Pictorially a ZCIS presents a stream in chunks like so
|
|
84
|
+
// [---------------------------------------------------------------]
|
|
85
|
+
// [---------------------] chunk 1
|
|
86
|
+
// [----------------------------] chunk 2
|
|
87
|
+
// chunk 3 [--------------]
|
|
88
|
+
//
|
|
89
|
+
// Where the '-' represent the bytes which are vertically lined up with the
|
|
90
|
+
// bytes of the stream. The proto parser requires its input to be presented
|
|
91
|
+
// similarly with the extra
|
|
92
|
+
// property that each chunk has kSlopBytes past its end that overlaps with the
|
|
93
|
+
// first kSlopBytes of the next chunk, or if there is no next chunk at least its
|
|
94
|
+
// still valid to read those bytes. Again, pictorially, we now have
|
|
95
|
+
//
|
|
96
|
+
// [---------------------------------------------------------------]
|
|
97
|
+
// [-------------------....] chunk 1
|
|
98
|
+
// [------------------------....] chunk 2
|
|
99
|
+
// chunk 3 [------------------..**]
|
|
100
|
+
// chunk 4 [--****]
|
|
101
|
+
// Here '-' mean the bytes of the stream or chunk and '.' means bytes past the
|
|
102
|
+
// chunk that match up with the start of the next chunk. Above each chunk has
|
|
103
|
+
// 4 '.' after the chunk. In the case these 'overflow' bytes represents bytes
|
|
104
|
+
// past the stream, indicated by '*' above, their values are unspecified. It is
|
|
105
|
+
// still legal to read them (ie. should not segfault). Reading past the
|
|
106
|
+
// end should be detected by the user and indicated as an error.
|
|
107
|
+
//
|
|
108
|
+
// The reason for this, admittedly, unconventional invariant is to ruthlessly
|
|
109
|
+
// optimize the protobuf parser. Having an overlap helps in two important ways.
|
|
110
|
+
// Firstly it alleviates having to performing bounds checks if a piece of code
|
|
111
|
+
// is guaranteed to not read more than kSlopBytes. Secondly, and more
|
|
112
|
+
// importantly, the protobuf wireformat is such that reading a key/value pair is
|
|
113
|
+
// always less than 16 bytes. This removes the need to change to next buffer in
|
|
114
|
+
// the middle of reading primitive values. Hence there is no need to store and
|
|
115
|
+
// load the current position.
|
|
116
|
+
|
|
117
|
+
class PROTOBUF_EXPORT EpsCopyInputStream {
|
|
118
|
+
public:
|
|
119
|
+
enum { kMaxCordBytesToCopy = 512 };
|
|
120
|
+
explicit EpsCopyInputStream(bool enable_aliasing)
|
|
121
|
+
: aliasing_(enable_aliasing ? kOnPatch : kNoAliasing) {}
|
|
122
|
+
|
|
123
|
+
void BackUp(const char* ptr) {
|
|
124
|
+
ABSL_DCHECK(ptr <= buffer_end_ + kSlopBytes);
|
|
125
|
+
int count;
|
|
126
|
+
if (next_chunk_ == patch_buffer_) {
|
|
127
|
+
count = BytesAvailable(ptr);
|
|
128
|
+
} else {
|
|
129
|
+
count = size_ + static_cast<int>(buffer_end_ - ptr);
|
|
130
|
+
}
|
|
131
|
+
if (count > 0) StreamBackUp(count);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// In sanitizer mode we use memory poisoning to guarantee that:
|
|
135
|
+
// - We do not read an uninitialized token.
|
|
136
|
+
// - We would like to verify that this token was consumed, but unfortunately
|
|
137
|
+
// __asan_address_is_poisoned is allowed to have false negatives.
|
|
138
|
+
class PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED LimitToken {
|
|
139
|
+
public:
|
|
140
|
+
LimitToken() { internal::PoisonMemoryRegion(&token_, sizeof(token_)); }
|
|
141
|
+
|
|
142
|
+
explicit LimitToken(int token) : token_(token) {
|
|
143
|
+
internal::UnpoisonMemoryRegion(&token_, sizeof(token_));
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
LimitToken(const LimitToken&) = delete;
|
|
147
|
+
LimitToken& operator=(const LimitToken&) = delete;
|
|
148
|
+
|
|
149
|
+
LimitToken(LimitToken&& other) { *this = std::move(other); }
|
|
150
|
+
|
|
151
|
+
LimitToken& operator=(LimitToken&& other) {
|
|
152
|
+
internal::UnpoisonMemoryRegion(&token_, sizeof(token_));
|
|
153
|
+
token_ = other.token_;
|
|
154
|
+
internal::PoisonMemoryRegion(&other.token_, sizeof(token_));
|
|
155
|
+
return *this;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
~LimitToken() { internal::UnpoisonMemoryRegion(&token_, sizeof(token_)); }
|
|
159
|
+
|
|
160
|
+
int token() && {
|
|
161
|
+
int t = token_;
|
|
162
|
+
internal::PoisonMemoryRegion(&token_, sizeof(token_));
|
|
163
|
+
return t;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
private:
|
|
167
|
+
int token_;
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
// If return value is negative it's an error
|
|
171
|
+
[[nodiscard]] LimitToken PushLimit(const char* ptr, int limit) {
|
|
172
|
+
ABSL_DCHECK(limit >= 0 && limit <= INT_MAX - kSlopBytes);
|
|
173
|
+
// This add is safe due to the invariant above, because
|
|
174
|
+
// ptr - buffer_end_ <= kSlopBytes.
|
|
175
|
+
limit += static_cast<int>(ptr - buffer_end_);
|
|
176
|
+
limit_end_ = buffer_end_ + (std::min)(0, limit);
|
|
177
|
+
auto old_limit = limit_;
|
|
178
|
+
limit_ = limit;
|
|
179
|
+
return LimitToken(old_limit - limit);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
[[nodiscard]] bool PopLimit(LimitToken delta) {
|
|
183
|
+
// We must update the limit first before the early return. Otherwise, we can
|
|
184
|
+
// end up with an invalid limit and it can lead to integer overflows.
|
|
185
|
+
limit_ = limit_ + std::move(delta).token();
|
|
186
|
+
if (ABSL_PREDICT_FALSE(!EndedAtLimit())) return false;
|
|
187
|
+
// TODO We could remove this line and hoist the code to
|
|
188
|
+
// DoneFallback. Study the perf/bin-size effects.
|
|
189
|
+
limit_end_ = buffer_end_ + (std::min)(0, limit_);
|
|
190
|
+
return true;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
[[nodiscard]] const char* Skip(const char* ptr, int size) {
|
|
194
|
+
if (CanReadFromPtr(size, ptr)) {
|
|
195
|
+
return ptr + size;
|
|
196
|
+
}
|
|
197
|
+
return SkipFallback(ptr, size);
|
|
198
|
+
}
|
|
199
|
+
[[nodiscard]] const char* ReadString(const char* ptr, int size,
|
|
200
|
+
std::string* s) {
|
|
201
|
+
if (CanReadFromPtr(size, ptr)) {
|
|
202
|
+
// Fundamentally we just want to do assign to the string.
|
|
203
|
+
// However micro-benchmarks regress on string reading cases. So we copy
|
|
204
|
+
// the same logic from the old CodedInputStream ReadString. Note: as of
|
|
205
|
+
// Apr 2021, this is still a significant win over `assign()`.
|
|
206
|
+
absl::strings_internal::STLStringResizeUninitialized(s, size);
|
|
207
|
+
char* z = &(*s)[0];
|
|
208
|
+
memcpy(z, ptr, size);
|
|
209
|
+
return ptr + size;
|
|
210
|
+
}
|
|
211
|
+
return ReadStringFallback(ptr, size, s);
|
|
212
|
+
}
|
|
213
|
+
[[nodiscard]] const char* AppendString(const char* ptr, int size,
|
|
214
|
+
std::string* s) {
|
|
215
|
+
if (CanReadFromPtr(size, ptr)) {
|
|
216
|
+
s->append(ptr, size);
|
|
217
|
+
return ptr + size;
|
|
218
|
+
}
|
|
219
|
+
return AppendStringFallback(ptr, size, s);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
[[nodiscard]] const char* ReadArray(const char* ptr, absl::Span<char> out);
|
|
223
|
+
[[nodiscard]] const char* VerifyUTF8(const char* ptr, size_t size);
|
|
224
|
+
|
|
225
|
+
[[nodiscard]] const char* ReadMicroString(const char* ptr, MicroString& str,
|
|
226
|
+
Arena* arena);
|
|
227
|
+
[[nodiscard]] const char* ReadMicroStringWithSize(const char* ptr, int size,
|
|
228
|
+
MicroString& str,
|
|
229
|
+
Arena* arena);
|
|
230
|
+
[[nodiscard]] const char* ReadMicroStringFallback(const char* ptr, int size,
|
|
231
|
+
MicroString& str,
|
|
232
|
+
Arena* arena);
|
|
233
|
+
|
|
234
|
+
// Implemented in arenastring.cc
|
|
235
|
+
[[nodiscard]] const char* ReadArenaString(const char* ptr, ArenaStringPtr* s,
|
|
236
|
+
Arena* arena);
|
|
237
|
+
|
|
238
|
+
[[nodiscard]] const char* ReadCord(const char* ptr, int size,
|
|
239
|
+
::absl::Cord* cord) {
|
|
240
|
+
if (IsRequestedLessThanOrEqualTo(
|
|
241
|
+
size, std::min<int>(BytesAvailable(ptr), kMaxCordBytesToCopy))) {
|
|
242
|
+
*cord = absl::string_view(ptr, size);
|
|
243
|
+
return ptr + size;
|
|
244
|
+
}
|
|
245
|
+
return ReadCordFallback(ptr, size, cord);
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
template <typename FuncT>
|
|
250
|
+
[[nodiscard]] const char* ReadChunkAndCallback(const char* ptr, int size,
|
|
251
|
+
FuncT&& callback) {
|
|
252
|
+
if (CanReadFromPtr(size, ptr)) {
|
|
253
|
+
callback(ptr, size);
|
|
254
|
+
return ptr + size;
|
|
255
|
+
}
|
|
256
|
+
return AppendSize(ptr, size, callback);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
template <typename Tag, typename T>
|
|
260
|
+
[[nodiscard]] const char* ReadRepeatedFixed(const char* ptr, Arena* arena,
|
|
261
|
+
Tag expected_tag,
|
|
262
|
+
RepeatedField<T>* out);
|
|
263
|
+
|
|
264
|
+
template <typename T>
|
|
265
|
+
[[nodiscard]] const char* ReadPackedFixed(const char* ptr, Arena* arena,
|
|
266
|
+
int size, RepeatedField<T>* out);
|
|
267
|
+
// Helpers for ReadPackedVarint and ReadPackedVarintWithField.
|
|
268
|
+
template <typename Add>
|
|
269
|
+
static const char* ReadPackedVarintArray(const char* ptr, const char* end,
|
|
270
|
+
Add add);
|
|
271
|
+
template <typename Convert, typename T>
|
|
272
|
+
static const char* ReadPackedVarintArrayWithField(const char* ptr,
|
|
273
|
+
const char* end,
|
|
274
|
+
Arena* arena, Convert conv,
|
|
275
|
+
RepeatedField<T>& out);
|
|
276
|
+
template <typename Add>
|
|
277
|
+
[[nodiscard]] const char* ReadPackedVarint(const char* ptr, Add add) {
|
|
278
|
+
return ReadPackedVarint(ptr, add, [](int) {});
|
|
279
|
+
}
|
|
280
|
+
template <typename Add, typename SizeCb>
|
|
281
|
+
[[nodiscard]] const char* ReadPackedVarint(const char* ptr, Add add,
|
|
282
|
+
SizeCb size_callback);
|
|
283
|
+
// Same as above, but pass the field directly , so we can preallocate.
|
|
284
|
+
template <typename Convert, typename T>
|
|
285
|
+
[[nodiscard]] const char* ReadPackedVarintWithField(const char* ptr,
|
|
286
|
+
Arena* arena,
|
|
287
|
+
Convert conv,
|
|
288
|
+
RepeatedField<T>& out);
|
|
289
|
+
|
|
290
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD uint32_t LastTag() const {
|
|
291
|
+
return last_tag_minus_1_ + 1;
|
|
292
|
+
}
|
|
293
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD bool ConsumeEndGroup(uint32_t start_tag) {
|
|
294
|
+
bool res = last_tag_minus_1_ == start_tag;
|
|
295
|
+
last_tag_minus_1_ = 0;
|
|
296
|
+
return res;
|
|
297
|
+
}
|
|
298
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD bool EndedAtLimit() const {
|
|
299
|
+
return last_tag_minus_1_ == 0;
|
|
300
|
+
}
|
|
301
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD bool EndedAtEndOfStream() const {
|
|
302
|
+
return last_tag_minus_1_ == 1;
|
|
303
|
+
}
|
|
304
|
+
void SetLastTag(uint32_t tag) { last_tag_minus_1_ = tag - 1; }
|
|
305
|
+
void SetEndOfStream() { last_tag_minus_1_ = 1; }
|
|
306
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD bool IsExceedingLimit(const char* ptr) {
|
|
307
|
+
return ptr > limit_end_ &&
|
|
308
|
+
(next_chunk_ == nullptr || ptr - buffer_end_ > limit_);
|
|
309
|
+
}
|
|
310
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD bool AliasingEnabled() const {
|
|
311
|
+
return aliasing_ != kNoAliasing;
|
|
312
|
+
}
|
|
313
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD int BytesUntilLimit(
|
|
314
|
+
const char* ptr) const {
|
|
315
|
+
return limit_ + static_cast<int>(buffer_end_ - ptr);
|
|
316
|
+
}
|
|
317
|
+
// Maximum number of sequential bytes that can be read starting from `ptr`.
|
|
318
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD int MaximumReadSize(
|
|
319
|
+
const char* ptr) const {
|
|
320
|
+
return static_cast<int>(limit_end_ - ptr) + kSlopBytes;
|
|
321
|
+
}
|
|
322
|
+
// Returns true if more data is available, if false is returned one has to
|
|
323
|
+
// call Done for further checks.
|
|
324
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD bool DataAvailable(const char* ptr) {
|
|
325
|
+
return ptr < limit_end_;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD int BytesAvailable(
|
|
329
|
+
const char* ptr) const {
|
|
330
|
+
ABSL_DCHECK_NE(ptr, nullptr);
|
|
331
|
+
ptrdiff_t available = buffer_end_ + kSlopBytes - ptr;
|
|
332
|
+
ABSL_DCHECK_GE(available, 0);
|
|
333
|
+
ABSL_DCHECK_LE(available, INT_MAX);
|
|
334
|
+
return static_cast<int>(available);
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
template <typename SinkT>
|
|
338
|
+
[[nodiscard]] const char* SkipMaybeFlush(const char* ptr, int64_t size,
|
|
339
|
+
SinkT& sink) {
|
|
340
|
+
if (size <= BytesAvailable(ptr)) {
|
|
341
|
+
return ptr + size;
|
|
342
|
+
}
|
|
343
|
+
return AdvancePtrMaybeFlush<char>(ptr, size, sink,
|
|
344
|
+
[](absl::string_view) { return true; });
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
template <typename SinkT>
|
|
348
|
+
[[nodiscard]] const char* ReadArrayMaybeFlush(const char* ptr,
|
|
349
|
+
absl::Span<char> out,
|
|
350
|
+
SinkT& sink);
|
|
351
|
+
|
|
352
|
+
// Advances "ptr" by "size" bytes and calls "peek_func" with the contiguous
|
|
353
|
+
// "view" of the data. Adjusts the size of the "view" if sizeof(DataT) > 1 to
|
|
354
|
+
// allow users to read `DataT` without worrying about fragmented input.
|
|
355
|
+
//
|
|
356
|
+
// If the current buffer is exhausted, update "ptr" accordingly after reading
|
|
357
|
+
// next buffers. Flush previous buffers to the sink if needed. Callers are
|
|
358
|
+
// responsible for the final `Flush`.
|
|
359
|
+
//
|
|
360
|
+
// The sink object must provide the following methods:
|
|
361
|
+
// // Called when data is flushed from a buffer. `p` is the pointer up to
|
|
362
|
+
// // which data is flushed. "sink" must track start pointer.
|
|
363
|
+
// void Flush(const char* p);
|
|
364
|
+
//
|
|
365
|
+
// // Called to append a view of data. "sink" must update its start pointer
|
|
366
|
+
// // accordingly.
|
|
367
|
+
// void Append(absl::string_view view);
|
|
368
|
+
//
|
|
369
|
+
// // Called after advancing to new data, `p` is the new start pointer.
|
|
370
|
+
// void Reset(const char* p);
|
|
371
|
+
template <typename DataT, typename SinkT, typename PeekFunc>
|
|
372
|
+
[[nodiscard]] const char* AdvancePtrMaybeFlush(const char* ptr, int64_t count,
|
|
373
|
+
SinkT& sink,
|
|
374
|
+
PeekFunc&& peek_func) {
|
|
375
|
+
// "end" points to the end of the current buffer (including the slop
|
|
376
|
+
// region). "buffer_end_" is set to guarantee that kSlopBytes can be read.
|
|
377
|
+
const char* end = buffer_end_ + kSlopBytes;
|
|
378
|
+
int64_t size = count * sizeof(DataT);
|
|
379
|
+
ABSL_DCHECK_NE(ptr, nullptr);
|
|
380
|
+
ABSL_DCHECK_LE(ptr, end);
|
|
381
|
+
|
|
382
|
+
// In common cases, we can just advance the pointer.
|
|
383
|
+
int64_t available = end - ptr;
|
|
384
|
+
if (ABSL_PREDICT_TRUE(available >= size)) {
|
|
385
|
+
// Size is always aligned (= count * sizeof(DataT)). So we can just peek
|
|
386
|
+
// the entire size.
|
|
387
|
+
if (!peek_func(absl::string_view(ptr, size))) return nullptr;
|
|
388
|
+
return ptr + size;
|
|
389
|
+
}
|
|
390
|
+
int64_t round_down_size = available / sizeof(DataT) * sizeof(DataT);
|
|
391
|
+
|
|
392
|
+
if (!peek_func(absl::string_view(ptr, round_down_size))) return nullptr;
|
|
393
|
+
ptr += round_down_size;
|
|
394
|
+
// TODO: b/496023113 - Remove hexagon once hexagon-clang handles it
|
|
395
|
+
// properly.
|
|
396
|
+
#if !defined(__APPLE__) && !defined(__hexagon__)
|
|
397
|
+
// Working around clang issue on Apple and Hexagon.
|
|
398
|
+
PROTOBUF_ALWAYS_INLINE_CALL
|
|
399
|
+
#endif // !__APPLE__ && !__hexagon__
|
|
400
|
+
sink.Flush(ptr);
|
|
401
|
+
size -= round_down_size;
|
|
402
|
+
|
|
403
|
+
// After exhausting the current buffer, we need to read from the next
|
|
404
|
+
// buffer.
|
|
405
|
+
// TODO: b/434084966 - revisit this to avoid redundancy around seams.
|
|
406
|
+
do {
|
|
407
|
+
int overrun = static_cast<int>(ptr - buffer_end_);
|
|
408
|
+
ABSL_DCHECK_GE(overrun, 0);
|
|
409
|
+
ABSL_DCHECK_LE(overrun, kSlopBytes);
|
|
410
|
+
|
|
411
|
+
ptr = NextBuffer(overrun, /*depth=*/-1);
|
|
412
|
+
if (ABSL_PREDICT_FALSE(ptr == nullptr)) return nullptr;
|
|
413
|
+
limit_ -= buffer_end_ - ptr; // Adjust limit_ relative to new anchor
|
|
414
|
+
ptr += overrun;
|
|
415
|
+
limit_end_ = buffer_end_ + std::min(0, limit_);
|
|
416
|
+
|
|
417
|
+
int64_t chunk_round_down_size =
|
|
418
|
+
BytesAvailable(ptr) / sizeof(DataT) * sizeof(DataT);
|
|
419
|
+
// In case `append_size == 0`, we will continue calling NextBuffer() till
|
|
420
|
+
// we get enough data or reach the end of the stream.
|
|
421
|
+
int64_t append_size = std::min(size, chunk_round_down_size);
|
|
422
|
+
|
|
423
|
+
absl::string_view view(ptr, static_cast<size_t>(append_size));
|
|
424
|
+
if (!peek_func(view)) return nullptr;
|
|
425
|
+
// TODO: b/496023113 - Remove hexagon once hexagon-clang handles it
|
|
426
|
+
// properly.
|
|
427
|
+
#if !defined(__APPLE__) && !defined(__hexagon__)
|
|
428
|
+
// Working around clang issue on Apple and Hexagon.
|
|
429
|
+
PROTOBUF_ALWAYS_INLINE_CALL
|
|
430
|
+
#endif // !__APPLE__ && !__hexagon__
|
|
431
|
+
sink.Append(view);
|
|
432
|
+
|
|
433
|
+
ptr += append_size;
|
|
434
|
+
size -= append_size;
|
|
435
|
+
} while (size > 0);
|
|
436
|
+
|
|
437
|
+
sink.Reset(ptr);
|
|
438
|
+
return ptr;
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
struct WireFormatNoOpSink {
|
|
442
|
+
static constexpr bool kIsLazySink = false;
|
|
443
|
+
void Flush(const char* p) {}
|
|
444
|
+
void Append(absl::string_view view) {}
|
|
445
|
+
void Reset(const char* p) {}
|
|
446
|
+
};
|
|
447
|
+
|
|
448
|
+
protected:
|
|
449
|
+
// Returns true if limit (either an explicit limit or end of stream) is
|
|
450
|
+
// reached. It aligns *ptr across buffer seams.
|
|
451
|
+
// If limit is exceeded, it returns true and ptr is set to null.
|
|
452
|
+
template <typename SinkT>
|
|
453
|
+
bool DoneWithCheck(const char** ptr, int d, SinkT& sink) {
|
|
454
|
+
ABSL_DCHECK(*ptr);
|
|
455
|
+
if (ABSL_PREDICT_TRUE(*ptr < limit_end_)) return false;
|
|
456
|
+
int overrun = static_cast<int>(*ptr - buffer_end_);
|
|
457
|
+
ABSL_DCHECK_LE(overrun, kSlopBytes); // Guaranteed by parse loop.
|
|
458
|
+
if (overrun ==
|
|
459
|
+
limit_) { // No need to flip buffers if we ended on a limit.
|
|
460
|
+
// Flush up to *ptr since we're done with it.
|
|
461
|
+
sink.Flush(*ptr);
|
|
462
|
+
sink.Reset(*ptr);
|
|
463
|
+
// If we actually overrun the buffer and next_chunk_ is null, it means
|
|
464
|
+
// the stream ended and we passed the stream end.
|
|
465
|
+
if (overrun > 0 && next_chunk_ == nullptr) *ptr = nullptr;
|
|
466
|
+
return true;
|
|
467
|
+
}
|
|
468
|
+
// Flush up to *ptr before updating it.
|
|
469
|
+
sink.Flush(*ptr);
|
|
470
|
+
auto res = DoneFallback(overrun, d);
|
|
471
|
+
*ptr = res.first;
|
|
472
|
+
// Reset the sink to the new start pointer.
|
|
473
|
+
sink.Reset(res.first);
|
|
474
|
+
return res.second;
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
const char* InitFrom(absl::string_view flat) {
|
|
478
|
+
overall_limit_ = 0;
|
|
479
|
+
if (flat.size() > kSlopBytes) {
|
|
480
|
+
limit_ = kSlopBytes;
|
|
481
|
+
limit_end_ = buffer_end_ = flat.data() + flat.size() - kSlopBytes;
|
|
482
|
+
next_chunk_ = patch_buffer_;
|
|
483
|
+
if (aliasing_ == kOnPatch) aliasing_ = kNoDelta;
|
|
484
|
+
return flat.data();
|
|
485
|
+
} else {
|
|
486
|
+
if (!flat.empty()) {
|
|
487
|
+
std::memcpy(patch_buffer_, flat.data(), flat.size());
|
|
488
|
+
}
|
|
489
|
+
limit_ = 0;
|
|
490
|
+
limit_end_ = buffer_end_ = patch_buffer_ + flat.size();
|
|
491
|
+
next_chunk_ = nullptr;
|
|
492
|
+
if (aliasing_ == kOnPatch) {
|
|
493
|
+
aliasing_ = reinterpret_cast<std::uintptr_t>(flat.data()) -
|
|
494
|
+
reinterpret_cast<std::uintptr_t>(patch_buffer_);
|
|
495
|
+
}
|
|
496
|
+
return patch_buffer_;
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
const char* InitFrom(io::ZeroCopyInputStream* zcis);
|
|
501
|
+
|
|
502
|
+
const char* InitFrom(io::ZeroCopyInputStream* zcis, int limit) {
|
|
503
|
+
if (limit == -1) return InitFrom(zcis);
|
|
504
|
+
overall_limit_ = limit;
|
|
505
|
+
auto res = InitFrom(zcis);
|
|
506
|
+
limit_ = limit - static_cast<int>(buffer_end_ - res);
|
|
507
|
+
limit_end_ = buffer_end_ + (std::min)(0, limit_);
|
|
508
|
+
return res;
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
// TODO Can V1 enjoy a code deduplication benefit by using this?
|
|
512
|
+
const char* InitFrom(const BoundedZCIS& bounded_zcis) {
|
|
513
|
+
return InitFrom(bounded_zcis.zcis, bounded_zcis.limit);
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
protected:
|
|
517
|
+
enum { kSlopBytes = 16, kPatchBufferSize = 32 };
|
|
518
|
+
static_assert(kPatchBufferSize >= kSlopBytes * 2,
|
|
519
|
+
"Patch buffer needs to be at least large enough to hold all "
|
|
520
|
+
"the slop bytes from the previous buffer, plus the first "
|
|
521
|
+
"kSlopBytes from the next buffer.");
|
|
522
|
+
|
|
523
|
+
private:
|
|
524
|
+
const char* limit_end_; // buffer_end_ + min(limit_, 0)
|
|
525
|
+
const char* buffer_end_;
|
|
526
|
+
const char* next_chunk_;
|
|
527
|
+
int size_;
|
|
528
|
+
int limit_; // relative to buffer_end_;
|
|
529
|
+
io::ZeroCopyInputStream* zcis_ = nullptr;
|
|
530
|
+
char patch_buffer_[kPatchBufferSize] = {};
|
|
531
|
+
enum { kNoAliasing = 0, kOnPatch = 1, kNoDelta = 2 };
|
|
532
|
+
std::uintptr_t aliasing_ = kNoAliasing;
|
|
533
|
+
// This variable is used to communicate how the parse ended, in order to
|
|
534
|
+
// completely verify the parsed data. A wire-format parse can end because of
|
|
535
|
+
// one of the following conditions:
|
|
536
|
+
// 1) A parse can end on a pushed limit.
|
|
537
|
+
// 2) A parse can end on End Of Stream (EOS).
|
|
538
|
+
// 3) A parse can end on 0 tag (only valid for toplevel message).
|
|
539
|
+
// 4) A parse can end on an end-group tag.
|
|
540
|
+
// This variable should always be set to 0, which indicates case 1. If the
|
|
541
|
+
// parse terminated due to EOS (case 2), it's set to 1. In case the parse
|
|
542
|
+
// ended due to a terminating tag (case 3 and 4) it's set to (tag - 1).
|
|
543
|
+
// This var doesn't really belong in EpsCopyInputStream and should be part of
|
|
544
|
+
// the ParseContext, but case 2 is most easily and optimally implemented in
|
|
545
|
+
// DoneFallback.
|
|
546
|
+
uint32_t last_tag_minus_1_ = 0;
|
|
547
|
+
int overall_limit_ = INT_MAX; // Overall limit independent of pushed limits.
|
|
548
|
+
|
|
549
|
+
// Returns true if it has enough available data given requested. Note that
|
|
550
|
+
// "available" can be negative but "requested" must not. Casting is done to
|
|
551
|
+
// preserve sign bit for the latter only.
|
|
552
|
+
bool IsRequestedLessThanOrEqualTo(int requested, int available);
|
|
553
|
+
|
|
554
|
+
// Returns true if "requested" bytes can be read contiguously from "ptr". Note
|
|
555
|
+
// that negative "requested" is converted to uint32_t before comparison, which
|
|
556
|
+
// will cause failure.
|
|
557
|
+
bool CanReadFromPtr(int requested, const char* ptr);
|
|
558
|
+
|
|
559
|
+
// Returns true if "requested" bytes are avilable till limit. Note that
|
|
560
|
+
// negative "requested" is converted to uint32_t before comparison.
|
|
561
|
+
bool HasEnoughTillLimit(int requested, const char* ptr);
|
|
562
|
+
|
|
563
|
+
// Advances to next buffer chunk returns a pointer to the same logical place
|
|
564
|
+
// in the stream as set by overrun. Overrun indicates the position in the slop
|
|
565
|
+
// region the parse was left (0 <= overrun <= kSlopBytes). Returns true if at
|
|
566
|
+
// limit, at which point the returned pointer maybe null if there was an
|
|
567
|
+
// error. The invariant of this function is that it's guaranteed that
|
|
568
|
+
// kSlopBytes bytes can be accessed from the returned ptr. This function might
|
|
569
|
+
// advance more buffers than one in the underlying ZeroCopyInputStream.
|
|
570
|
+
std::pair<const char*, bool> DoneFallback(int overrun, int depth);
|
|
571
|
+
// Advances to the next buffer, at most one call to Next() on the underlying
|
|
572
|
+
// ZeroCopyInputStream is made. This function DOES NOT match the returned
|
|
573
|
+
// pointer to where in the slop region the parse ends, hence no overrun
|
|
574
|
+
// parameter. This is useful for string operations where you always copy
|
|
575
|
+
// to the end of the buffer (including the slop region).
|
|
576
|
+
const char* Next();
|
|
577
|
+
// overrun is the location in the slop region the stream currently is
|
|
578
|
+
// (0 <= overrun <= kSlopBytes). To prevent flipping to the next buffer of
|
|
579
|
+
// the ZeroCopyInputStream in the case the parse will end in the last
|
|
580
|
+
// kSlopBytes of the current buffer. depth is the current depth of nested
|
|
581
|
+
// groups (or negative if the use case does not need careful tracking).
|
|
582
|
+
const char* NextBuffer(int overrun, int depth);
|
|
583
|
+
const char* SkipFallback(const char* ptr, int size);
|
|
584
|
+
const char* AppendStringFallback(const char* ptr, int size, std::string* str);
|
|
585
|
+
const char* VerifyUTF8Fallback(const char* ptr, size_t size);
|
|
586
|
+
const char* ReadStringFallback(const char* ptr, int size, std::string* str);
|
|
587
|
+
const char* ReadArrayFallback(const char* ptr, absl::Span<char> out);
|
|
588
|
+
const char* ReadCordFallback(const char* ptr, int size, absl::Cord* cord);
|
|
589
|
+
static bool ParseEndsInSlopRegion(const char* begin, int overrun, int depth);
|
|
590
|
+
bool StreamNext(const void** data) {
|
|
591
|
+
bool res = zcis_->Next(data, &size_);
|
|
592
|
+
if (res) overall_limit_ -= size_;
|
|
593
|
+
return res;
|
|
594
|
+
}
|
|
595
|
+
void StreamBackUp(int count) {
|
|
596
|
+
zcis_->BackUp(count);
|
|
597
|
+
overall_limit_ += count;
|
|
598
|
+
}
|
|
599
|
+
|
|
600
|
+
template <typename A>
|
|
601
|
+
const char* AppendSize(const char* ptr, uint32_t size, const A& append) {
|
|
602
|
+
// Some append functions may return false to bail out early.
|
|
603
|
+
constexpr bool kCheckReturn =
|
|
604
|
+
std::is_invocable_r_v<bool, decltype(append), const char*, int>;
|
|
605
|
+
|
|
606
|
+
ABSL_DCHECK_GE(BytesAvailable(ptr), 0);
|
|
607
|
+
uint32_t chunk_size = static_cast<uint32_t>(BytesAvailable(ptr));
|
|
608
|
+
do {
|
|
609
|
+
ABSL_DCHECK_GT(size, chunk_size);
|
|
610
|
+
if (next_chunk_ == nullptr) return nullptr;
|
|
611
|
+
if constexpr (kCheckReturn) {
|
|
612
|
+
if (!append(ptr, chunk_size)) return nullptr;
|
|
613
|
+
} else {
|
|
614
|
+
append(ptr, chunk_size);
|
|
615
|
+
}
|
|
616
|
+
ptr += chunk_size;
|
|
617
|
+
size -= chunk_size;
|
|
618
|
+
// TODO Next calls NextBuffer which generates buffers with
|
|
619
|
+
// overlap and thus incurs cost of copying the slop regions. This is not
|
|
620
|
+
// necessary for reading strings. We should just call Next buffers.
|
|
621
|
+
if (limit_ <= kSlopBytes) return nullptr;
|
|
622
|
+
ptr = Next();
|
|
623
|
+
if (ptr == nullptr) return nullptr; // passed the limit
|
|
624
|
+
ptr += kSlopBytes;
|
|
625
|
+
chunk_size = BytesAvailable(ptr);
|
|
626
|
+
} while (size > chunk_size);
|
|
627
|
+
|
|
628
|
+
if constexpr (kCheckReturn) {
|
|
629
|
+
if (!append(ptr, size)) return nullptr;
|
|
630
|
+
} else {
|
|
631
|
+
append(ptr, size);
|
|
632
|
+
}
|
|
633
|
+
return ptr + size;
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
// AppendUntilEnd appends data until a limit (either a PushLimit or end of
|
|
637
|
+
// stream. Normal payloads are from length delimited fields which have an
|
|
638
|
+
// explicit size. Reading until limit only comes when the string takes
|
|
639
|
+
// the place of a protobuf, ie RawMessage, lazy fields and implicit weak
|
|
640
|
+
// messages. We keep these methods private and friend them.
|
|
641
|
+
template <typename A>
|
|
642
|
+
const char* AppendUntilEnd(const char* ptr, const A& append) {
|
|
643
|
+
if (ptr - buffer_end_ > limit_) return nullptr;
|
|
644
|
+
while (limit_ > kSlopBytes) {
|
|
645
|
+
size_t chunk_size = BytesAvailable(ptr);
|
|
646
|
+
append(ptr, chunk_size);
|
|
647
|
+
ptr = Next();
|
|
648
|
+
if (ptr == nullptr) return limit_end_;
|
|
649
|
+
ptr += kSlopBytes;
|
|
650
|
+
}
|
|
651
|
+
auto end = buffer_end_ + limit_;
|
|
652
|
+
ABSL_DCHECK(end >= ptr);
|
|
653
|
+
append(ptr, end - ptr);
|
|
654
|
+
return end;
|
|
655
|
+
}
|
|
656
|
+
|
|
657
|
+
[[nodiscard]] const char* AppendString(const char* ptr, std::string* str) {
|
|
658
|
+
return AppendUntilEnd(
|
|
659
|
+
ptr, [str](const char* p, ptrdiff_t s) { str->append(p, s); });
|
|
660
|
+
}
|
|
661
|
+
friend class ImplicitWeakMessage;
|
|
662
|
+
|
|
663
|
+
// Needs access to kSlopBytes.
|
|
664
|
+
friend PROTOBUF_EXPORT std::pair<const char*, int32_t> ReadSizeFallback(
|
|
665
|
+
const char* p, uint32_t res);
|
|
666
|
+
};
|
|
667
|
+
|
|
668
|
+
using LazyEagerVerifyFnType = const char* (*)(const char* ptr,
|
|
669
|
+
ParseContext* ctx);
|
|
670
|
+
using LazyEagerVerifyFnRef = std::remove_pointer<LazyEagerVerifyFnType>::type&;
|
|
671
|
+
|
|
672
|
+
// ParseContext holds all data that is global to the entire parse. Most
|
|
673
|
+
// importantly it contains the input stream, but also recursion depth and also
|
|
674
|
+
// stores the end group tag, in case a parser ended on a endgroup, to verify
|
|
675
|
+
// matching start/end group tags.
|
|
676
|
+
class PROTOBUF_EXPORT ParseContext : public EpsCopyInputStream {
|
|
677
|
+
public:
|
|
678
|
+
struct Data {
|
|
679
|
+
const DescriptorPool* pool = nullptr;
|
|
680
|
+
MessageFactory* factory = nullptr;
|
|
681
|
+
};
|
|
682
|
+
|
|
683
|
+
template <typename... T>
|
|
684
|
+
ParseContext(int depth, bool aliasing, const char** start, T&&... args)
|
|
685
|
+
: EpsCopyInputStream(aliasing), depth_(depth) {
|
|
686
|
+
*start = InitFrom(std::forward<T>(args)...);
|
|
687
|
+
}
|
|
688
|
+
|
|
689
|
+
struct Spawn {};
|
|
690
|
+
static constexpr Spawn kSpawn = {};
|
|
691
|
+
|
|
692
|
+
// Creates a new context from a given "ctx" to inherit a few attributes to
|
|
693
|
+
// emulate continued parsing. For example, recursion depth or descriptor pools
|
|
694
|
+
// must be passed down to a new "spawned" context to maintain the same parse
|
|
695
|
+
// context. Note that the spawned context always disables aliasing (different
|
|
696
|
+
// input).
|
|
697
|
+
template <typename... T>
|
|
698
|
+
ParseContext(Spawn, const ParseContext& ctx, const char** start, T&&... args)
|
|
699
|
+
: EpsCopyInputStream(false),
|
|
700
|
+
depth_(ctx.depth_),
|
|
701
|
+
data_(ctx.data_)
|
|
702
|
+
{
|
|
703
|
+
*start = InitFrom(std::forward<T>(args)...);
|
|
704
|
+
}
|
|
705
|
+
|
|
706
|
+
// Move constructor and assignment operator are not supported because "ptr"
|
|
707
|
+
// for parsing may have pointed to an inlined buffer (patch_buffer_) which can
|
|
708
|
+
// be invalid afterwards.
|
|
709
|
+
ParseContext(ParseContext&&) = delete;
|
|
710
|
+
ParseContext& operator=(ParseContext&&) = delete;
|
|
711
|
+
ParseContext& operator=(const ParseContext&) = delete;
|
|
712
|
+
|
|
713
|
+
void TrackCorrectEnding() { group_depth_ = 0; }
|
|
714
|
+
|
|
715
|
+
// Done should only be called when the parsing pointer is pointing to the
|
|
716
|
+
// beginning of field data - that is, at a tag. Or if it is NULL.
|
|
717
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD bool Done(const char** ptr) {
|
|
718
|
+
WireFormatNoOpSink sink;
|
|
719
|
+
return DoneWithCheck(ptr, group_depth_, sink);
|
|
720
|
+
}
|
|
721
|
+
|
|
722
|
+
template <typename SinkT>
|
|
723
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD const char* VerifyUTF8MaybeFlush(
|
|
724
|
+
const char* ptr, int64_t size, SinkT& sink) {
|
|
725
|
+
if (size <= BytesAvailable(ptr)) {
|
|
726
|
+
return utf8_range::IsStructurallyValid({ptr, static_cast<size_t>(size)})
|
|
727
|
+
? ptr + size
|
|
728
|
+
: nullptr;
|
|
729
|
+
}
|
|
730
|
+
return VerifyUTF8MaybeFlushFallback(ptr, size, sink);
|
|
731
|
+
}
|
|
732
|
+
template <typename SinkT>
|
|
733
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD const char* VerifyUTF8MaybeFlushFallback(
|
|
734
|
+
const char* ptr, int64_t size, SinkT& sink);
|
|
735
|
+
|
|
736
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD int depth() const { return depth_; }
|
|
737
|
+
|
|
738
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD Data& data() { return data_; }
|
|
739
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD const Data& data() const { return data_; }
|
|
740
|
+
|
|
741
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD const char* ParseMessage(MessageLite* msg,
|
|
742
|
+
const char* ptr);
|
|
743
|
+
|
|
744
|
+
// Read the length prefix, push the new limit, call the func(ptr), and then
|
|
745
|
+
// pop the limit. Useful for situations that don't have an actual message.
|
|
746
|
+
template <typename Func>
|
|
747
|
+
[[nodiscard]] const char* ParseLengthDelimitedInlined(const char*,
|
|
748
|
+
const Func& func);
|
|
749
|
+
|
|
750
|
+
// Push the recursion depth, call the func(ptr), and then pop depth. Useful
|
|
751
|
+
// for situations that don't have an actual message.
|
|
752
|
+
template <typename Func>
|
|
753
|
+
[[nodiscard]] const char* ParseGroupInlined(const char* ptr,
|
|
754
|
+
uint32_t start_tag,
|
|
755
|
+
const Func& func);
|
|
756
|
+
|
|
757
|
+
// Use a template to avoid the strong dep into TcParser. All callers will have
|
|
758
|
+
// the dep.
|
|
759
|
+
template <typename Parser = TcParser>
|
|
760
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD PROTOBUF_ALWAYS_INLINE const char*
|
|
761
|
+
ParseMessage(MessageLite* msg, const TcParseTableBase* tc_table,
|
|
762
|
+
const char* ptr) {
|
|
763
|
+
return ParseLengthDelimitedInlined(ptr, [&](const char* ptr) {
|
|
764
|
+
return Parser::ParseLoop(msg, ptr, this, tc_table);
|
|
765
|
+
});
|
|
766
|
+
}
|
|
767
|
+
template <typename Parser = TcParser>
|
|
768
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD PROTOBUF_ALWAYS_INLINE const char*
|
|
769
|
+
ParseGroup(MessageLite* msg, const TcParseTableBase* tc_table,
|
|
770
|
+
const char* ptr, uint32_t start_tag) {
|
|
771
|
+
return ParseGroupInlined(ptr, start_tag, [&](const char* ptr) {
|
|
772
|
+
return Parser::ParseLoop(msg, ptr, this, tc_table);
|
|
773
|
+
});
|
|
774
|
+
}
|
|
775
|
+
|
|
776
|
+
[[nodiscard]] PROTOBUF_NDEBUG_INLINE const char* ParseGroup(MessageLite* msg,
|
|
777
|
+
const char* ptr,
|
|
778
|
+
uint32_t tag) {
|
|
779
|
+
if (--depth_ < 0) return nullptr;
|
|
780
|
+
group_depth_++;
|
|
781
|
+
auto old_depth = depth_;
|
|
782
|
+
auto old_group_depth = group_depth_;
|
|
783
|
+
ptr = msg->_InternalParse(ptr, this);
|
|
784
|
+
if (ptr != nullptr) {
|
|
785
|
+
ABSL_DCHECK_EQ(old_depth, depth_);
|
|
786
|
+
ABSL_DCHECK_EQ(old_group_depth, group_depth_);
|
|
787
|
+
}
|
|
788
|
+
group_depth_--;
|
|
789
|
+
depth_++;
|
|
790
|
+
if (ABSL_PREDICT_FALSE(!ConsumeEndGroup(tag))) return nullptr;
|
|
791
|
+
return ptr;
|
|
792
|
+
}
|
|
793
|
+
template <typename Func>
|
|
794
|
+
[[nodiscard]] PROTOBUF_ALWAYS_INLINE const char* ParseWithLengthInlined(
|
|
795
|
+
const char* ptr, uint32_t length, const Func& func);
|
|
796
|
+
|
|
797
|
+
private:
|
|
798
|
+
// Out-of-line routine to save space in ParseContext::ParseMessage<T>
|
|
799
|
+
// LimitToken old;
|
|
800
|
+
// ptr = ReadSizeAndPushLimitAndDepth(ptr, &old)
|
|
801
|
+
// is equivalent to:
|
|
802
|
+
// int size = ReadSize(&ptr);
|
|
803
|
+
// if (!ptr) return nullptr;
|
|
804
|
+
// LimitToken old = PushLimit(ptr, size);
|
|
805
|
+
// if (--depth_ < 0) return nullptr;
|
|
806
|
+
[[nodiscard]] const char* ReadSizeAndPushLimitAndDepth(const char* ptr,
|
|
807
|
+
LimitToken* old_limit);
|
|
808
|
+
|
|
809
|
+
// As above, but fully inlined for the cases where we care about performance
|
|
810
|
+
// more than size. eg TcParser.
|
|
811
|
+
[[nodiscard]] PROTOBUF_ALWAYS_INLINE const char*
|
|
812
|
+
ReadSizeAndPushLimitAndDepthInlined(const char* ptr, LimitToken* old_limit);
|
|
813
|
+
|
|
814
|
+
// The context keeps an internal stack to keep track of the recursive
|
|
815
|
+
// part of the parse state.
|
|
816
|
+
// Current depth of the active parser, depth counts down.
|
|
817
|
+
// This is used to limit recursion depth (to prevent overflow on malicious
|
|
818
|
+
// data), but is also used to index in stack_ to store the current state.
|
|
819
|
+
int depth_;
|
|
820
|
+
// Unfortunately necessary for the fringe case of ending on 0 or end-group tag
|
|
821
|
+
// in the last kSlopBytes of a ZeroCopyInputStream chunk. Note that INT16_MIN
|
|
822
|
+
// is intentionally used to avoid decrementing INT_MIN, which is UB.
|
|
823
|
+
int group_depth_ = std::numeric_limits<int16_t>::min();
|
|
824
|
+
Data data_;
|
|
825
|
+
};
|
|
826
|
+
|
|
827
|
+
// Sink types for AdvancePtrMaybeFlush.
|
|
828
|
+
struct WireFormatStringSink {
|
|
829
|
+
static constexpr bool kIsLazySink = false;
|
|
830
|
+
explicit WireFormatStringSink(const char* ptr) : prev(ptr) {}
|
|
831
|
+
|
|
832
|
+
void Flush(const char* ptr);
|
|
833
|
+
void Append(absl::string_view view);
|
|
834
|
+
void Reset(const char* ptr) { prev = ptr; }
|
|
835
|
+
|
|
836
|
+
// For testing only.
|
|
837
|
+
std::string FlattenedDataForTesting() const { return data; }
|
|
838
|
+
|
|
839
|
+
// The previous pointer to a contiguous buffer to flush from. Tracking the
|
|
840
|
+
// start pointer allows us to prematurely flush.
|
|
841
|
+
const char* prev;
|
|
842
|
+
std::string data;
|
|
843
|
+
};
|
|
844
|
+
|
|
845
|
+
// Explicit template instantiation is required to avoid undefined reference
|
|
846
|
+
// errors.
|
|
847
|
+
extern template const char* EpsCopyInputStream::ReadArrayMaybeFlush(
|
|
848
|
+
const char* ptr, absl::Span<char> out, WireFormatNoOpSink& sink);
|
|
849
|
+
extern template const char* EpsCopyInputStream::ReadArrayMaybeFlush(
|
|
850
|
+
const char* ptr, absl::Span<char> out, WireFormatStringSink& sink);
|
|
851
|
+
|
|
852
|
+
extern template const char* ParseContext::VerifyUTF8MaybeFlushFallback(
|
|
853
|
+
const char* ptr, int64_t size, WireFormatNoOpSink& sink);
|
|
854
|
+
extern template const char* ParseContext::VerifyUTF8MaybeFlushFallback(
|
|
855
|
+
const char* ptr, int64_t size, WireFormatStringSink& sink);
|
|
856
|
+
|
|
857
|
+
template <int>
|
|
858
|
+
struct EndianHelper;
|
|
859
|
+
|
|
860
|
+
template <>
|
|
861
|
+
struct EndianHelper<1> {
|
|
862
|
+
static uint8_t Load(const void* p) { return *static_cast<const uint8_t*>(p); }
|
|
863
|
+
};
|
|
864
|
+
|
|
865
|
+
template <>
|
|
866
|
+
struct EndianHelper<2> {
|
|
867
|
+
static uint16_t Load(const void* p) {
|
|
868
|
+
uint16_t tmp;
|
|
869
|
+
std::memcpy(&tmp, p, 2);
|
|
870
|
+
return little_endian::ToHost(tmp);
|
|
871
|
+
}
|
|
872
|
+
};
|
|
873
|
+
|
|
874
|
+
template <>
|
|
875
|
+
struct EndianHelper<4> {
|
|
876
|
+
static uint32_t Load(const void* p) {
|
|
877
|
+
uint32_t tmp;
|
|
878
|
+
std::memcpy(&tmp, p, 4);
|
|
879
|
+
return little_endian::ToHost(tmp);
|
|
880
|
+
}
|
|
881
|
+
};
|
|
882
|
+
|
|
883
|
+
template <>
|
|
884
|
+
struct EndianHelper<8> {
|
|
885
|
+
static uint64_t Load(const void* p) {
|
|
886
|
+
uint64_t tmp;
|
|
887
|
+
std::memcpy(&tmp, p, 8);
|
|
888
|
+
return little_endian::ToHost(tmp);
|
|
889
|
+
}
|
|
890
|
+
};
|
|
891
|
+
|
|
892
|
+
template <typename T>
|
|
893
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD T UnalignedLoad(const char* p) {
|
|
894
|
+
auto tmp = EndianHelper<sizeof(T)>::Load(p);
|
|
895
|
+
T res;
|
|
896
|
+
memcpy(&res, &tmp, sizeof(T));
|
|
897
|
+
return res;
|
|
898
|
+
}
|
|
899
|
+
template <typename T, typename Void,
|
|
900
|
+
typename = std::enable_if_t<std::is_same<Void, void>::value>>
|
|
901
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD T UnalignedLoad(const Void* p) {
|
|
902
|
+
return UnalignedLoad<T>(reinterpret_cast<const char*>(p));
|
|
903
|
+
}
|
|
904
|
+
|
|
905
|
+
template <typename T>
|
|
906
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD T
|
|
907
|
+
UnalignedLoadAndIncrement(const char** ptr) {
|
|
908
|
+
T value = UnalignedLoad<T>(*ptr);
|
|
909
|
+
*ptr += sizeof(T);
|
|
910
|
+
return value;
|
|
911
|
+
}
|
|
912
|
+
|
|
913
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD
|
|
914
|
+
PROTOBUF_EXPORT
|
|
915
|
+
std::pair<const char*, uint32_t> VarintParseSlow32(const char* p, uint32_t res);
|
|
916
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD
|
|
917
|
+
PROTOBUF_EXPORT
|
|
918
|
+
std::pair<const char*, uint64_t> VarintParseSlow64(const char* p, uint32_t res);
|
|
919
|
+
|
|
920
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD
|
|
921
|
+
inline const char* VarintParseSlow(const char* p, uint32_t res, uint32_t* out) {
|
|
922
|
+
auto tmp = VarintParseSlow32(p, res);
|
|
923
|
+
*out = tmp.second;
|
|
924
|
+
return tmp.first;
|
|
925
|
+
}
|
|
926
|
+
|
|
927
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD
|
|
928
|
+
inline const char* VarintParseSlow(const char* p, uint32_t res, uint64_t* out) {
|
|
929
|
+
auto tmp = VarintParseSlow64(p, res);
|
|
930
|
+
*out = tmp.second;
|
|
931
|
+
return tmp.first;
|
|
932
|
+
}
|
|
933
|
+
|
|
934
|
+
#if defined(__aarch64__) && !defined(_MSC_VER)
|
|
935
|
+
// Generally, speaking, the ARM-optimized Varint decode algorithm is to extract
|
|
936
|
+
// and concatenate all potentially valid data bits, compute the actual length
|
|
937
|
+
// of the Varint, and mask off the data bits which are not actually part of the
|
|
938
|
+
// result. More detail on the two main parts is shown below.
|
|
939
|
+
//
|
|
940
|
+
// 1) Extract and concatenate all potentially valid data bits.
|
|
941
|
+
// Two ARM-specific features help significantly:
|
|
942
|
+
// a) Efficient and non-destructive bit extraction (UBFX)
|
|
943
|
+
// b) A single instruction can perform both an OR with a shifted
|
|
944
|
+
// second operand in one cycle. E.g., the following two lines do the same
|
|
945
|
+
// thing
|
|
946
|
+
// ```result = operand_1 | (operand2 << 7);```
|
|
947
|
+
// ```ORR %[result], %[operand_1], %[operand_2], LSL #7```
|
|
948
|
+
// The figure below shows the implementation for handling four chunks.
|
|
949
|
+
//
|
|
950
|
+
// Bits 32 31-24 23 22-16 15 14-8 7 6-0
|
|
951
|
+
// +----+---------+----+---------+----+---------+----+---------+
|
|
952
|
+
// |CB 3| Chunk 3 |CB 2| Chunk 2 |CB 1| Chunk 1 |CB 0| Chunk 0 |
|
|
953
|
+
// +----+---------+----+---------+----+---------+----+---------+
|
|
954
|
+
// | | | |
|
|
955
|
+
// UBFX UBFX UBFX UBFX -- cycle 1
|
|
956
|
+
// | | | |
|
|
957
|
+
// V V V V
|
|
958
|
+
// Combined LSL #7 and ORR Combined LSL #7 and ORR -- cycle 2
|
|
959
|
+
// | |
|
|
960
|
+
// V V
|
|
961
|
+
// Combined LSL #14 and ORR -- cycle 3
|
|
962
|
+
// |
|
|
963
|
+
// V
|
|
964
|
+
// Parsed bits 0-27
|
|
965
|
+
//
|
|
966
|
+
//
|
|
967
|
+
// 2) Calculate the index of the cleared continuation bit in order to determine
|
|
968
|
+
// where the encoded Varint ends and the size of the decoded value. The
|
|
969
|
+
// easiest way to do this is mask off all data bits, leaving just the
|
|
970
|
+
// continuation bits. We actually need to do the masking on an inverted
|
|
971
|
+
// copy of the data, which leaves a 1 in all continuation bits which were
|
|
972
|
+
// originally clear. The number of trailing zeroes in this value indicates
|
|
973
|
+
// the size of the Varint.
|
|
974
|
+
//
|
|
975
|
+
// AND 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80
|
|
976
|
+
//
|
|
977
|
+
// Bits 63 55 47 39 31 23 15 7
|
|
978
|
+
// +----+--+----+--+----+--+----+--+----+--+----+--+----+--+----+--+
|
|
979
|
+
// ~ |CB 7| |CB 6| |CB 5| |CB 4| |CB 3| |CB 2| |CB 1| |CB 0| |
|
|
980
|
+
// +----+--+----+--+----+--+----+--+----+--+----+--+----+--+----+--+
|
|
981
|
+
// | | | | | | | |
|
|
982
|
+
// V V V V V V V V
|
|
983
|
+
// Bits 63 55 47 39 31 23 15 7
|
|
984
|
+
// +----+--+----+--+----+--+----+--+----+--+----+--+----+--+----+--+
|
|
985
|
+
// |~CB 7|0|~CB 6|0|~CB 5|0|~CB 4|0|~CB 3|0|~CB 2|0|~CB 1|0|~CB 0|0|
|
|
986
|
+
// +----+--+----+--+----+--+----+--+----+--+----+--+----+--+----+--+
|
|
987
|
+
// |
|
|
988
|
+
// CTZ
|
|
989
|
+
// V
|
|
990
|
+
// Index of first cleared continuation bit
|
|
991
|
+
//
|
|
992
|
+
//
|
|
993
|
+
// While this is implemented in C++ significant care has been taken to ensure
|
|
994
|
+
// the compiler emits the best instruction sequence. In some cases we use the
|
|
995
|
+
// following two functions to manipulate the compiler's scheduling decisions.
|
|
996
|
+
//
|
|
997
|
+
// Controls compiler scheduling by telling it that the first value is modified
|
|
998
|
+
// by the second value the callsite. This is useful if non-critical path
|
|
999
|
+
// instructions are too aggressively scheduled, resulting in a slowdown of the
|
|
1000
|
+
// actual critical path due to opportunity costs. An example usage is shown
|
|
1001
|
+
// where a false dependence of num_bits on result is added to prevent checking
|
|
1002
|
+
// for a very unlikely error until all critical path instructions have been
|
|
1003
|
+
// fetched.
|
|
1004
|
+
//
|
|
1005
|
+
// ```
|
|
1006
|
+
// num_bits = <multiple operations to calculate new num_bits value>
|
|
1007
|
+
// result = <multiple operations to calculate result>
|
|
1008
|
+
// num_bits = ValueBarrier(num_bits, result);
|
|
1009
|
+
// if (num_bits == 63) {
|
|
1010
|
+
// ABSL_LOG(FATAL) << "Invalid num_bits value";
|
|
1011
|
+
// }
|
|
1012
|
+
// ```
|
|
1013
|
+
// Falsely indicate that the specific value is modified at this location. This
|
|
1014
|
+
// prevents code which depends on this value from being scheduled earlier.
|
|
1015
|
+
template <typename V1Type>
|
|
1016
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD PROTOBUF_ALWAYS_INLINE V1Type
|
|
1017
|
+
ValueBarrier(V1Type value1) {
|
|
1018
|
+
asm("" : "+r"(value1));
|
|
1019
|
+
return value1;
|
|
1020
|
+
}
|
|
1021
|
+
|
|
1022
|
+
template <typename V1Type, typename V2Type>
|
|
1023
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD PROTOBUF_ALWAYS_INLINE V1Type
|
|
1024
|
+
ValueBarrier(V1Type value1, V2Type value2) {
|
|
1025
|
+
asm("" : "+r"(value1) : "r"(value2));
|
|
1026
|
+
return value1;
|
|
1027
|
+
}
|
|
1028
|
+
|
|
1029
|
+
// Performs a 7 bit UBFX (Unsigned Bit Extract) starting at the indicated bit.
|
|
1030
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD
|
|
1031
|
+
static PROTOBUF_ALWAYS_INLINE uint64_t Ubfx7(uint64_t data, uint64_t start) {
|
|
1032
|
+
return ValueBarrier((data >> start) & 0x7f);
|
|
1033
|
+
}
|
|
1034
|
+
|
|
1035
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD
|
|
1036
|
+
PROTOBUF_ALWAYS_INLINE uint64_t ExtractAndMergeTwoChunks(uint64_t data,
|
|
1037
|
+
uint64_t first_byte) {
|
|
1038
|
+
ABSL_DCHECK_LE(first_byte, 6U);
|
|
1039
|
+
uint64_t first = Ubfx7(data, first_byte * 8);
|
|
1040
|
+
uint64_t second = Ubfx7(data, (first_byte + 1) * 8);
|
|
1041
|
+
return ValueBarrier(first | (second << 7));
|
|
1042
|
+
}
|
|
1043
|
+
|
|
1044
|
+
struct SlowPathEncodedInfo {
|
|
1045
|
+
const char* p;
|
|
1046
|
+
uint64_t last8;
|
|
1047
|
+
uint64_t valid_bits;
|
|
1048
|
+
uint64_t valid_chunk_bits;
|
|
1049
|
+
uint64_t masked_cont_bits;
|
|
1050
|
+
};
|
|
1051
|
+
|
|
1052
|
+
// Performs multiple actions which are identical between 32 and 64 bit Varints
|
|
1053
|
+
// in order to compute the length of the encoded Varint and compute the new
|
|
1054
|
+
// of p.
|
|
1055
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD
|
|
1056
|
+
PROTOBUF_ALWAYS_INLINE SlowPathEncodedInfo
|
|
1057
|
+
ComputeLengthAndUpdateP(const char* p) {
|
|
1058
|
+
SlowPathEncodedInfo result;
|
|
1059
|
+
// Load the last two bytes of the encoded Varint.
|
|
1060
|
+
std::memcpy(&result.last8, p + 2, sizeof(result.last8));
|
|
1061
|
+
uint64_t mask = ValueBarrier(0x8080808080808080);
|
|
1062
|
+
// Only set continuation bits remain
|
|
1063
|
+
result.masked_cont_bits = ValueBarrier(mask & ~result.last8);
|
|
1064
|
+
// The first cleared continuation bit is the most significant 1 in the
|
|
1065
|
+
// reversed value. Result is undefined for an input of 0 and we handle that
|
|
1066
|
+
// case below.
|
|
1067
|
+
result.valid_bits = absl::countr_zero(result.masked_cont_bits);
|
|
1068
|
+
// Calculates the number of chunks in the encoded Varint. This value is low
|
|
1069
|
+
// by three as neither the cleared continuation chunk nor the first two chunks
|
|
1070
|
+
// are counted.
|
|
1071
|
+
uint64_t set_continuation_bits = result.valid_bits >> 3;
|
|
1072
|
+
// Update p to point past the encoded Varint.
|
|
1073
|
+
result.p = p + set_continuation_bits + 3;
|
|
1074
|
+
// Calculate number of valid data bits in the decoded value so invalid bits
|
|
1075
|
+
// can be masked off. Value is too low by 14 but we account for that when
|
|
1076
|
+
// calculating the mask.
|
|
1077
|
+
result.valid_chunk_bits = result.valid_bits - set_continuation_bits;
|
|
1078
|
+
return result;
|
|
1079
|
+
}
|
|
1080
|
+
|
|
1081
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD
|
|
1082
|
+
PROTOBUF_ALWAYS_INLINE std::pair<const char*, uint64_t> VarintParseSlowArm64(
|
|
1083
|
+
const char* p, uint64_t first8) {
|
|
1084
|
+
constexpr uint64_t kResultMaskUnshifted = 0xffffffffffffc000ULL;
|
|
1085
|
+
constexpr uint64_t kFirstResultBitChunk2 = 2 * 7;
|
|
1086
|
+
constexpr uint64_t kFirstResultBitChunk4 = 4 * 7;
|
|
1087
|
+
constexpr uint64_t kFirstResultBitChunk6 = 6 * 7;
|
|
1088
|
+
constexpr uint64_t kFirstResultBitChunk8 = 8 * 7;
|
|
1089
|
+
|
|
1090
|
+
SlowPathEncodedInfo info = ComputeLengthAndUpdateP(p);
|
|
1091
|
+
// Extract data bits from the low six chunks. This includes chunks zero and
|
|
1092
|
+
// one which we already know are valid.
|
|
1093
|
+
uint64_t merged_01 = ExtractAndMergeTwoChunks(first8, /*first_chunk=*/0);
|
|
1094
|
+
uint64_t merged_23 = ExtractAndMergeTwoChunks(first8, /*first_chunk=*/2);
|
|
1095
|
+
uint64_t merged_45 = ExtractAndMergeTwoChunks(first8, /*first_chunk=*/4);
|
|
1096
|
+
// Low 42 bits of decoded value.
|
|
1097
|
+
uint64_t result = merged_01 | (merged_23 << kFirstResultBitChunk2) |
|
|
1098
|
+
(merged_45 << kFirstResultBitChunk4);
|
|
1099
|
+
// This immediate ends in 14 zeroes since valid_chunk_bits is too low by 14.
|
|
1100
|
+
uint64_t result_mask = kResultMaskUnshifted << info.valid_chunk_bits;
|
|
1101
|
+
// iff the Varint i invalid.
|
|
1102
|
+
if (ABSL_PREDICT_FALSE(info.masked_cont_bits == 0)) {
|
|
1103
|
+
return {nullptr, 0};
|
|
1104
|
+
}
|
|
1105
|
+
// Test for early exit if Varint does not exceed 6 chunks. Branching on one
|
|
1106
|
+
// bit is faster on ARM than via a compare and branch.
|
|
1107
|
+
if (ABSL_PREDICT_FALSE((info.valid_bits & 0x20) != 0)) {
|
|
1108
|
+
// Extract data bits from high four chunks.
|
|
1109
|
+
uint64_t merged_67 = ExtractAndMergeTwoChunks(first8, /*first_chunk=*/6);
|
|
1110
|
+
// Last two chunks come from last two bytes of info.last8.
|
|
1111
|
+
uint64_t merged_89 =
|
|
1112
|
+
ExtractAndMergeTwoChunks(info.last8, /*first_chunk=*/6);
|
|
1113
|
+
result |= merged_67 << kFirstResultBitChunk6;
|
|
1114
|
+
result |= merged_89 << kFirstResultBitChunk8;
|
|
1115
|
+
// Handle an invalid Varint with all 10 continuation bits set.
|
|
1116
|
+
}
|
|
1117
|
+
// Mask off invalid data bytes.
|
|
1118
|
+
result &= ~result_mask;
|
|
1119
|
+
return {info.p, result};
|
|
1120
|
+
}
|
|
1121
|
+
|
|
1122
|
+
// See comments in VarintParseSlowArm64 for a description of the algorithm.
|
|
1123
|
+
// Differences in the 32 bit version are noted below.
|
|
1124
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD
|
|
1125
|
+
PROTOBUF_ALWAYS_INLINE std::pair<const char*, uint32_t> VarintParseSlowArm32(
|
|
1126
|
+
const char* p, uint64_t first8) {
|
|
1127
|
+
constexpr uint64_t kResultMaskUnshifted = 0xffffffffffffc000ULL;
|
|
1128
|
+
constexpr uint64_t kFirstResultBitChunk1 = 1 * 7;
|
|
1129
|
+
constexpr uint64_t kFirstResultBitChunk3 = 3 * 7;
|
|
1130
|
+
|
|
1131
|
+
// This also skips the slop bytes.
|
|
1132
|
+
SlowPathEncodedInfo info = ComputeLengthAndUpdateP(p);
|
|
1133
|
+
// Extract data bits from chunks 1-4. Chunk zero is merged in below.
|
|
1134
|
+
uint64_t merged_12 = ExtractAndMergeTwoChunks(first8, /*first_chunk=*/1);
|
|
1135
|
+
uint64_t merged_34 = ExtractAndMergeTwoChunks(first8, /*first_chunk=*/3);
|
|
1136
|
+
first8 = ValueBarrier(first8, p);
|
|
1137
|
+
uint64_t result = Ubfx7(first8, /*start=*/0);
|
|
1138
|
+
result = ValueBarrier(result | merged_12 << kFirstResultBitChunk1);
|
|
1139
|
+
result = ValueBarrier(result | merged_34 << kFirstResultBitChunk3);
|
|
1140
|
+
uint64_t result_mask = kResultMaskUnshifted << info.valid_chunk_bits;
|
|
1141
|
+
result &= ~result_mask;
|
|
1142
|
+
// It is extremely unlikely that a Varint is invalid so checking that
|
|
1143
|
+
// condition isn't on the critical path. Here we make sure that we don't do so
|
|
1144
|
+
// until result has been computed.
|
|
1145
|
+
info.masked_cont_bits = ValueBarrier(info.masked_cont_bits, result);
|
|
1146
|
+
if (ABSL_PREDICT_FALSE(info.masked_cont_bits == 0)) {
|
|
1147
|
+
return {nullptr, 0};
|
|
1148
|
+
}
|
|
1149
|
+
return {info.p, result};
|
|
1150
|
+
}
|
|
1151
|
+
|
|
1152
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD
|
|
1153
|
+
static const char* VarintParseSlowArm(const char* p, uint32_t* out,
|
|
1154
|
+
uint64_t first8) {
|
|
1155
|
+
auto tmp = VarintParseSlowArm32(p, first8);
|
|
1156
|
+
*out = tmp.second;
|
|
1157
|
+
return tmp.first;
|
|
1158
|
+
}
|
|
1159
|
+
|
|
1160
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD
|
|
1161
|
+
static const char* VarintParseSlowArm(const char* p, uint64_t* out,
|
|
1162
|
+
|
|
1163
|
+
uint64_t first8) {
|
|
1164
|
+
auto tmp = VarintParseSlowArm64(p, first8);
|
|
1165
|
+
*out = tmp.second;
|
|
1166
|
+
return tmp.first;
|
|
1167
|
+
}
|
|
1168
|
+
#endif
|
|
1169
|
+
|
|
1170
|
+
// The caller must ensure that p points to at least 10 valid bytes.
|
|
1171
|
+
template <typename T>
|
|
1172
|
+
[[nodiscard]] const char* VarintParse(const char* p, T* out) {
|
|
1173
|
+
AssertBytesAreReadable(p, 10);
|
|
1174
|
+
#if defined(__aarch64__) && defined(ABSL_IS_LITTLE_ENDIAN) && !defined(_MSC_VER)
|
|
1175
|
+
// This optimization is not supported in big endian mode
|
|
1176
|
+
uint64_t first8;
|
|
1177
|
+
std::memcpy(&first8, p, sizeof(first8));
|
|
1178
|
+
if (ABSL_PREDICT_TRUE((first8 & 0x80) == 0)) {
|
|
1179
|
+
*out = static_cast<uint8_t>(first8);
|
|
1180
|
+
return p + 1;
|
|
1181
|
+
}
|
|
1182
|
+
if (ABSL_PREDICT_TRUE((first8 & 0x8000) == 0)) {
|
|
1183
|
+
uint64_t chunk1;
|
|
1184
|
+
uint64_t chunk2;
|
|
1185
|
+
// Extracting the two chunks this way gives a speedup for this path.
|
|
1186
|
+
chunk1 = Ubfx7(first8, 0);
|
|
1187
|
+
chunk2 = Ubfx7(first8, 8);
|
|
1188
|
+
*out = chunk1 | (chunk2 << 7);
|
|
1189
|
+
return p + 2;
|
|
1190
|
+
}
|
|
1191
|
+
return VarintParseSlowArm(p, out, first8);
|
|
1192
|
+
#else // __aarch64__
|
|
1193
|
+
auto ptr = reinterpret_cast<const uint8_t*>(p);
|
|
1194
|
+
uint32_t res = ptr[0];
|
|
1195
|
+
if ((res & 0x80) == 0) {
|
|
1196
|
+
*out = res;
|
|
1197
|
+
return p + 1;
|
|
1198
|
+
}
|
|
1199
|
+
return VarintParseSlow(p, res, out);
|
|
1200
|
+
#endif // __aarch64__
|
|
1201
|
+
}
|
|
1202
|
+
|
|
1203
|
+
// Used for tags, could read up to 5 bytes which must be available.
|
|
1204
|
+
// Caller must ensure it's safe to call.
|
|
1205
|
+
|
|
1206
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD
|
|
1207
|
+
PROTOBUF_EXPORT
|
|
1208
|
+
std::pair<const char*, uint32_t> ReadTagFallback(const char* p, uint32_t res);
|
|
1209
|
+
|
|
1210
|
+
// Same as ParseVarint but only accept 5 bytes at most.
|
|
1211
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD
|
|
1212
|
+
inline const char* ReadTag(const char* p, uint32_t* out,
|
|
1213
|
+
uint32_t /*max_tag*/ = 0) {
|
|
1214
|
+
uint32_t res = static_cast<uint8_t>(p[0]);
|
|
1215
|
+
if (res < 128) {
|
|
1216
|
+
*out = res;
|
|
1217
|
+
return p + 1;
|
|
1218
|
+
}
|
|
1219
|
+
uint32_t second = static_cast<uint8_t>(p[1]);
|
|
1220
|
+
res += (second - 1) << 7;
|
|
1221
|
+
if (second < 128) {
|
|
1222
|
+
*out = res;
|
|
1223
|
+
return p + 2;
|
|
1224
|
+
}
|
|
1225
|
+
auto tmp = ReadTagFallback(p, res);
|
|
1226
|
+
*out = tmp.second;
|
|
1227
|
+
return tmp.first;
|
|
1228
|
+
}
|
|
1229
|
+
|
|
1230
|
+
// As above, but optimized to consume very few registers while still being fast,
|
|
1231
|
+
// ReadTagInlined is useful for callers that don't mind the extra code but would
|
|
1232
|
+
// like to avoid an extern function call causing spills into the stack.
|
|
1233
|
+
//
|
|
1234
|
+
// Two support routines for ReadTagInlined come first...
|
|
1235
|
+
template <class T>
|
|
1236
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD
|
|
1237
|
+
[[nodiscard]] PROTOBUF_ALWAYS_INLINE constexpr T
|
|
1238
|
+
RotateLeft(T x, int s) noexcept {
|
|
1239
|
+
return static_cast<T>(x << (s & (std::numeric_limits<T>::digits - 1))) |
|
|
1240
|
+
static_cast<T>(x >> ((-s) & (std::numeric_limits<T>::digits - 1)));
|
|
1241
|
+
}
|
|
1242
|
+
|
|
1243
|
+
[[nodiscard]] PROTOBUF_ALWAYS_INLINE uint64_t
|
|
1244
|
+
RotRight7AndReplaceLowByte(uint64_t res, const char byte) {
|
|
1245
|
+
// TODO: remove the inline assembly
|
|
1246
|
+
#if defined(__x86_64__) && defined(__GNUC__)
|
|
1247
|
+
// This will only use one register for `res`.
|
|
1248
|
+
// `byte` comes as a reference to allow the compiler to generate code like:
|
|
1249
|
+
//
|
|
1250
|
+
// rorq $7, %rcx
|
|
1251
|
+
// movb 1(%rax), %cl
|
|
1252
|
+
//
|
|
1253
|
+
// which avoids loading the incoming bytes into a separate register first.
|
|
1254
|
+
asm("ror $7,%0\n\t"
|
|
1255
|
+
"movb %1,%b0"
|
|
1256
|
+
: "+r"(res)
|
|
1257
|
+
: "m"(byte));
|
|
1258
|
+
#else
|
|
1259
|
+
res = RotateLeft(res, -7);
|
|
1260
|
+
res = res & ~0xFF;
|
|
1261
|
+
res |= 0xFF & byte;
|
|
1262
|
+
#endif
|
|
1263
|
+
return res;
|
|
1264
|
+
}
|
|
1265
|
+
|
|
1266
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD
|
|
1267
|
+
PROTOBUF_ALWAYS_INLINE const char* ReadTagInlined(const char* ptr,
|
|
1268
|
+
uint32_t* out) {
|
|
1269
|
+
uint64_t res = 0xFF & ptr[0];
|
|
1270
|
+
if (ABSL_PREDICT_FALSE(res >= 128)) {
|
|
1271
|
+
res = RotRight7AndReplaceLowByte(res, ptr[1]);
|
|
1272
|
+
if (ABSL_PREDICT_FALSE(res & 0x80)) {
|
|
1273
|
+
res = RotRight7AndReplaceLowByte(res, ptr[2]);
|
|
1274
|
+
if (ABSL_PREDICT_FALSE(res & 0x80)) {
|
|
1275
|
+
res = RotRight7AndReplaceLowByte(res, ptr[3]);
|
|
1276
|
+
if (ABSL_PREDICT_FALSE(res & 0x80)) {
|
|
1277
|
+
// Note: this wouldn't work if res were 32-bit,
|
|
1278
|
+
// because then replacing the low byte would overwrite
|
|
1279
|
+
// the bottom 4 bits of the result.
|
|
1280
|
+
res = RotRight7AndReplaceLowByte(res, ptr[4]);
|
|
1281
|
+
if (ABSL_PREDICT_FALSE(res & 0x80)) {
|
|
1282
|
+
// The proto format does not permit longer than 5-byte encodings for
|
|
1283
|
+
// tags.
|
|
1284
|
+
*out = 0;
|
|
1285
|
+
return nullptr;
|
|
1286
|
+
}
|
|
1287
|
+
*out = static_cast<uint32_t>(RotateLeft(res, 28));
|
|
1288
|
+
#if defined(__GNUC__)
|
|
1289
|
+
// Note: this asm statement prevents the compiler from
|
|
1290
|
+
// trying to share the "return ptr + constant" among all
|
|
1291
|
+
// branches.
|
|
1292
|
+
asm("" : "+r"(ptr));
|
|
1293
|
+
#endif
|
|
1294
|
+
return ptr + 5;
|
|
1295
|
+
}
|
|
1296
|
+
*out = static_cast<uint32_t>(RotateLeft(res, 21));
|
|
1297
|
+
return ptr + 4;
|
|
1298
|
+
}
|
|
1299
|
+
*out = static_cast<uint32_t>(RotateLeft(res, 14));
|
|
1300
|
+
return ptr + 3;
|
|
1301
|
+
}
|
|
1302
|
+
*out = static_cast<uint32_t>(RotateLeft(res, 7));
|
|
1303
|
+
return ptr + 2;
|
|
1304
|
+
}
|
|
1305
|
+
*out = static_cast<uint32_t>(res);
|
|
1306
|
+
return ptr + 1;
|
|
1307
|
+
}
|
|
1308
|
+
|
|
1309
|
+
// Decode 2 consecutive bytes of a varint and returns the value, shifted left
|
|
1310
|
+
// by 1. It simultaneous updates *ptr to *ptr + 1 or *ptr + 2 depending if the
|
|
1311
|
+
// first byte's continuation bit is set.
|
|
1312
|
+
// If bit 15 of return value is set (equivalent to the continuation bits of both
|
|
1313
|
+
// bytes being set) the varint continues, otherwise the parse is done. On x86
|
|
1314
|
+
// movsx eax, dil
|
|
1315
|
+
// and edi, eax
|
|
1316
|
+
// add eax, edi
|
|
1317
|
+
// adc [rsi], 1
|
|
1318
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD
|
|
1319
|
+
inline uint32_t DecodeTwoBytes(const char** ptr) {
|
|
1320
|
+
uint32_t value = UnalignedLoad<uint16_t>(*ptr);
|
|
1321
|
+
// Sign extend the low byte continuation bit
|
|
1322
|
+
uint32_t x = static_cast<int8_t>(value);
|
|
1323
|
+
value &= x; // Mask out the high byte iff no continuation
|
|
1324
|
+
// This add is an amazing operation, it cancels the low byte continuation bit
|
|
1325
|
+
// from y transferring it to the carry. Simultaneously it also shifts the 7
|
|
1326
|
+
// LSB left by one tightly against high byte varint bits. Hence value now
|
|
1327
|
+
// contains the unpacked value shifted left by 1.
|
|
1328
|
+
value += x;
|
|
1329
|
+
// Use the carry to update the ptr appropriately.
|
|
1330
|
+
*ptr += value < x ? 2 : 1;
|
|
1331
|
+
return value;
|
|
1332
|
+
}
|
|
1333
|
+
|
|
1334
|
+
// More efficient varint parsing for big varints
|
|
1335
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD
|
|
1336
|
+
inline const char* ParseBigVarint(const char* p, uint64_t* out) {
|
|
1337
|
+
auto pnew = p;
|
|
1338
|
+
auto tmp = DecodeTwoBytes(&pnew);
|
|
1339
|
+
uint64_t res = tmp >> 1;
|
|
1340
|
+
if (ABSL_PREDICT_TRUE(static_cast<std::int16_t>(tmp) >= 0)) {
|
|
1341
|
+
*out = res;
|
|
1342
|
+
return pnew;
|
|
1343
|
+
}
|
|
1344
|
+
for (std::uint32_t i = 1; i < 5; i++) {
|
|
1345
|
+
pnew = p + 2 * i;
|
|
1346
|
+
tmp = DecodeTwoBytes(&pnew);
|
|
1347
|
+
res += (static_cast<std::uint64_t>(tmp) - 2) << (14 * i - 1);
|
|
1348
|
+
if (ABSL_PREDICT_TRUE(static_cast<std::int16_t>(tmp) >= 0)) {
|
|
1349
|
+
*out = res;
|
|
1350
|
+
return pnew;
|
|
1351
|
+
}
|
|
1352
|
+
}
|
|
1353
|
+
return nullptr;
|
|
1354
|
+
}
|
|
1355
|
+
|
|
1356
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD
|
|
1357
|
+
PROTOBUF_EXPORT
|
|
1358
|
+
std::pair<const char*, int32_t> ReadSizeFallback(const char* p, uint32_t res);
|
|
1359
|
+
|
|
1360
|
+
// Used for length prefixes. Could read up to 5 bytes, but no more than
|
|
1361
|
+
// necessary for a single varint. The caller must ensure enough bytes are
|
|
1362
|
+
// available. Additionally it makes sure the unsigned value fits in an int32_t,
|
|
1363
|
+
// otherwise returns nullptr. Caller must ensure it is safe to call.
|
|
1364
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD
|
|
1365
|
+
inline uint32_t ReadSize(const char** pp) {
|
|
1366
|
+
auto p = *pp;
|
|
1367
|
+
uint32_t res = static_cast<uint8_t>(p[0]);
|
|
1368
|
+
if (res < 128) {
|
|
1369
|
+
*pp = p + 1;
|
|
1370
|
+
return res;
|
|
1371
|
+
}
|
|
1372
|
+
auto x = ReadSizeFallback(p, res);
|
|
1373
|
+
*pp = x.first;
|
|
1374
|
+
return x.second;
|
|
1375
|
+
}
|
|
1376
|
+
|
|
1377
|
+
// Some convenience functions to simplify the generated parse loop code.
|
|
1378
|
+
// Returning the value and updating the buffer pointer allows for nicer
|
|
1379
|
+
// function composition. We rely on the compiler to inline this.
|
|
1380
|
+
// Also in debug compiles having local scoped variables tend to generated
|
|
1381
|
+
// stack frames that scale as O(num fields).
|
|
1382
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD
|
|
1383
|
+
inline uint64_t ReadVarint64(const char** p) {
|
|
1384
|
+
uint64_t tmp;
|
|
1385
|
+
*p = VarintParse(*p, &tmp);
|
|
1386
|
+
return tmp;
|
|
1387
|
+
}
|
|
1388
|
+
|
|
1389
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD
|
|
1390
|
+
inline uint32_t ReadVarint32(const char** p) {
|
|
1391
|
+
uint32_t tmp;
|
|
1392
|
+
*p = VarintParse(*p, &tmp);
|
|
1393
|
+
return tmp;
|
|
1394
|
+
}
|
|
1395
|
+
|
|
1396
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD
|
|
1397
|
+
inline int64_t ReadVarintZigZag64(const char** p) {
|
|
1398
|
+
uint64_t tmp;
|
|
1399
|
+
*p = VarintParse(*p, &tmp);
|
|
1400
|
+
return WireFormatLite::ZigZagDecode64(tmp);
|
|
1401
|
+
}
|
|
1402
|
+
|
|
1403
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD
|
|
1404
|
+
inline int32_t ReadVarintZigZag32(const char** p) {
|
|
1405
|
+
uint64_t tmp;
|
|
1406
|
+
*p = VarintParse(*p, &tmp);
|
|
1407
|
+
return WireFormatLite::ZigZagDecode32(static_cast<uint32_t>(tmp));
|
|
1408
|
+
}
|
|
1409
|
+
|
|
1410
|
+
template <typename Func>
|
|
1411
|
+
[[nodiscard]] PROTOBUF_ALWAYS_INLINE const char*
|
|
1412
|
+
ParseContext::ParseLengthDelimitedInlined(const char* ptr, const Func& func) {
|
|
1413
|
+
LimitToken old;
|
|
1414
|
+
ptr = ReadSizeAndPushLimitAndDepthInlined(ptr, &old);
|
|
1415
|
+
if (ptr == nullptr) return ptr;
|
|
1416
|
+
auto old_depth = depth_;
|
|
1417
|
+
PROTOBUF_ALWAYS_INLINE_CALL ptr = func(ptr);
|
|
1418
|
+
if (ptr != nullptr) ABSL_DCHECK_EQ(old_depth, depth_);
|
|
1419
|
+
depth_++;
|
|
1420
|
+
if (!PopLimit(std::move(old))) return nullptr;
|
|
1421
|
+
return ptr;
|
|
1422
|
+
}
|
|
1423
|
+
|
|
1424
|
+
template <typename Func>
|
|
1425
|
+
[[nodiscard]] PROTOBUF_ALWAYS_INLINE const char*
|
|
1426
|
+
ParseContext::ParseGroupInlined(const char* ptr, uint32_t start_tag,
|
|
1427
|
+
const Func& func) {
|
|
1428
|
+
if (--depth_ < 0) return nullptr;
|
|
1429
|
+
group_depth_++;
|
|
1430
|
+
auto old_depth = depth_;
|
|
1431
|
+
auto old_group_depth = group_depth_;
|
|
1432
|
+
PROTOBUF_ALWAYS_INLINE_CALL ptr = func(ptr);
|
|
1433
|
+
if (ptr != nullptr) {
|
|
1434
|
+
ABSL_DCHECK_EQ(old_depth, depth_);
|
|
1435
|
+
ABSL_DCHECK_EQ(old_group_depth, group_depth_);
|
|
1436
|
+
}
|
|
1437
|
+
group_depth_--;
|
|
1438
|
+
depth_++;
|
|
1439
|
+
if (ABSL_PREDICT_FALSE(!ConsumeEndGroup(start_tag))) return nullptr;
|
|
1440
|
+
return ptr;
|
|
1441
|
+
}
|
|
1442
|
+
|
|
1443
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD
|
|
1444
|
+
inline const char* ParseContext::ReadSizeAndPushLimitAndDepthInlined(
|
|
1445
|
+
const char* ptr, LimitToken* old_limit) {
|
|
1446
|
+
int size = ReadSize(&ptr);
|
|
1447
|
+
if (ABSL_PREDICT_FALSE(!ptr) || depth_ <= 0) {
|
|
1448
|
+
return nullptr;
|
|
1449
|
+
}
|
|
1450
|
+
*old_limit = PushLimit(ptr, size);
|
|
1451
|
+
--depth_;
|
|
1452
|
+
return ptr;
|
|
1453
|
+
}
|
|
1454
|
+
|
|
1455
|
+
// Note that "length" is read outside of this function.
|
|
1456
|
+
template <typename Func>
|
|
1457
|
+
[[nodiscard]] PROTOBUF_ALWAYS_INLINE const char*
|
|
1458
|
+
ParseContext::ParseWithLengthInlined(const char* ptr, uint32_t length,
|
|
1459
|
+
const Func& func) {
|
|
1460
|
+
ABSL_DCHECK_NE(ptr, nullptr);
|
|
1461
|
+
LimitToken old;
|
|
1462
|
+
old = PushLimit(ptr, length);
|
|
1463
|
+
--depth_;
|
|
1464
|
+
auto old_depth = depth_;
|
|
1465
|
+
PROTOBUF_ALWAYS_INLINE_CALL ptr = func(ptr);
|
|
1466
|
+
if (ptr != nullptr) ABSL_DCHECK_EQ(old_depth, depth_);
|
|
1467
|
+
depth_++;
|
|
1468
|
+
if (!PopLimit(std::move(old))) return nullptr;
|
|
1469
|
+
return ptr;
|
|
1470
|
+
}
|
|
1471
|
+
|
|
1472
|
+
inline const char* EpsCopyInputStream::ReadMicroString(const char* ptr,
|
|
1473
|
+
MicroString& str,
|
|
1474
|
+
Arena* arena) {
|
|
1475
|
+
int size = ReadSize(&ptr);
|
|
1476
|
+
if (!ptr) return nullptr;
|
|
1477
|
+
|
|
1478
|
+
return ReadMicroStringWithSize(ptr, size, str, arena);
|
|
1479
|
+
}
|
|
1480
|
+
|
|
1481
|
+
inline const char* EpsCopyInputStream::ReadMicroStringWithSize(const char* ptr,
|
|
1482
|
+
int size,
|
|
1483
|
+
MicroString& str,
|
|
1484
|
+
Arena* arena) {
|
|
1485
|
+
if (size <= BytesAvailable(ptr)) {
|
|
1486
|
+
str.Set(absl::string_view(ptr, size), arena);
|
|
1487
|
+
return ptr + size;
|
|
1488
|
+
}
|
|
1489
|
+
return ReadMicroStringFallback(ptr, size, str, arena);
|
|
1490
|
+
}
|
|
1491
|
+
|
|
1492
|
+
template <typename Tag, typename T>
|
|
1493
|
+
const char* EpsCopyInputStream::ReadRepeatedFixed(const char* ptr, Arena* arena,
|
|
1494
|
+
Tag expected_tag,
|
|
1495
|
+
RepeatedField<T>* out) {
|
|
1496
|
+
do {
|
|
1497
|
+
out->AddWithArena(arena, UnalignedLoad<T>(ptr));
|
|
1498
|
+
ptr += sizeof(T);
|
|
1499
|
+
if (ABSL_PREDICT_FALSE(ptr >= limit_end_)) return ptr;
|
|
1500
|
+
} while (UnalignedLoad<Tag>(ptr) == expected_tag && (ptr += sizeof(Tag)));
|
|
1501
|
+
return ptr;
|
|
1502
|
+
}
|
|
1503
|
+
|
|
1504
|
+
// Add any of the following lines to debug which parse function is failing.
|
|
1505
|
+
|
|
1506
|
+
#define GOOGLE_PROTOBUF_ASSERT_RETURN(predicate, ret) \
|
|
1507
|
+
if (!(predicate)) { \
|
|
1508
|
+
/* ::raise(SIGINT); */ \
|
|
1509
|
+
/* ABSL_LOG(ERROR) << "Parse failure"; */ \
|
|
1510
|
+
return ret; \
|
|
1511
|
+
}
|
|
1512
|
+
|
|
1513
|
+
#define GOOGLE_PROTOBUF_PARSER_ASSERT(predicate) \
|
|
1514
|
+
GOOGLE_PROTOBUF_ASSERT_RETURN(predicate, nullptr)
|
|
1515
|
+
|
|
1516
|
+
template <typename T>
|
|
1517
|
+
const char* EpsCopyInputStream::ReadPackedFixed(const char* ptr, Arena* arena,
|
|
1518
|
+
int size,
|
|
1519
|
+
RepeatedField<T>* out) {
|
|
1520
|
+
ABSL_DCHECK_EQ(arena, out->GetArena());
|
|
1521
|
+
GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
|
|
1522
|
+
int nbytes = BytesAvailable(ptr);
|
|
1523
|
+
while (size > nbytes) {
|
|
1524
|
+
int num = nbytes / sizeof(T);
|
|
1525
|
+
int old_entries = out->size();
|
|
1526
|
+
out->ReserveWithArena(arena, old_entries + num);
|
|
1527
|
+
int block_size = num * sizeof(T);
|
|
1528
|
+
auto dst = out->AddNAlreadyReserved(num);
|
|
1529
|
+
#ifdef ABSL_IS_LITTLE_ENDIAN
|
|
1530
|
+
std::memcpy(dst, ptr, block_size);
|
|
1531
|
+
#else
|
|
1532
|
+
for (int i = 0; i < num; i++)
|
|
1533
|
+
dst[i] = UnalignedLoad<T>(ptr + i * sizeof(T));
|
|
1534
|
+
#endif
|
|
1535
|
+
size -= block_size;
|
|
1536
|
+
if (limit_ <= kSlopBytes) return nullptr;
|
|
1537
|
+
ptr = Next();
|
|
1538
|
+
if (ptr == nullptr) return nullptr;
|
|
1539
|
+
ptr += kSlopBytes - (nbytes - block_size);
|
|
1540
|
+
nbytes = BytesAvailable(ptr);
|
|
1541
|
+
}
|
|
1542
|
+
int num = size / sizeof(T);
|
|
1543
|
+
int block_size = num * sizeof(T);
|
|
1544
|
+
if (num == 0) return size == block_size ? ptr : nullptr;
|
|
1545
|
+
int old_entries = out->size();
|
|
1546
|
+
out->ReserveWithArena(arena, old_entries + num);
|
|
1547
|
+
auto dst = out->AddNAlreadyReserved(num);
|
|
1548
|
+
#ifdef ABSL_IS_LITTLE_ENDIAN
|
|
1549
|
+
ABSL_CHECK(dst != nullptr) << out << "," << num;
|
|
1550
|
+
std::memcpy(dst, ptr, block_size);
|
|
1551
|
+
#else
|
|
1552
|
+
for (int i = 0; i < num; i++) dst[i] = UnalignedLoad<T>(ptr + i * sizeof(T));
|
|
1553
|
+
#endif
|
|
1554
|
+
ptr += block_size;
|
|
1555
|
+
if (size != block_size) return nullptr;
|
|
1556
|
+
return ptr;
|
|
1557
|
+
}
|
|
1558
|
+
|
|
1559
|
+
template <typename Add>
|
|
1560
|
+
const char* EpsCopyInputStream::ReadPackedVarintArray(const char* ptr,
|
|
1561
|
+
const char* end,
|
|
1562
|
+
Add add) {
|
|
1563
|
+
while (ptr < end) {
|
|
1564
|
+
uint64_t varint;
|
|
1565
|
+
ptr = VarintParse(ptr, &varint);
|
|
1566
|
+
if (ptr == nullptr) return nullptr;
|
|
1567
|
+
add(varint);
|
|
1568
|
+
}
|
|
1569
|
+
return ptr;
|
|
1570
|
+
}
|
|
1571
|
+
|
|
1572
|
+
template <typename Convert, typename T>
|
|
1573
|
+
const char* EpsCopyInputStream::ReadPackedVarintArrayWithField(
|
|
1574
|
+
const char* ptr, const char* end, Arena* arena, Convert conv,
|
|
1575
|
+
RepeatedField<T>& out) {
|
|
1576
|
+
ABSL_DCHECK_EQ(arena, out.GetArena());
|
|
1577
|
+
|
|
1578
|
+
// If we have enough bytes, we will spend more cpu cycles growing repeated
|
|
1579
|
+
// field, than parsing, so count the number of ints first and preallocate.
|
|
1580
|
+
// Assume that varint are valid and just count the number of bytes with
|
|
1581
|
+
// continuation bit not set. In a valid varint there is only 1 such byte.
|
|
1582
|
+
if (end - ptr >= 16) {
|
|
1583
|
+
if constexpr (std::is_same_v<T, bool> && sizeof(bool) == sizeof(uint8_t)) {
|
|
1584
|
+
if (absl::bit_cast<uint8_t>(false) == 0 && // Not constexpr on MSVC.
|
|
1585
|
+
absl::bit_cast<uint8_t>(true) == 1) {
|
|
1586
|
+
if (VerifyBoolsAssumingLargeArray(ptr, end)) {
|
|
1587
|
+
// Each byte is 0 or 1.
|
|
1588
|
+
const int count = end - ptr;
|
|
1589
|
+
out.ReserveWithArena(arena, out.size() + count);
|
|
1590
|
+
T* x = out.AddNAlreadyReserved(count);
|
|
1591
|
+
// For T being bool, conv must be equivalent to a conversion to bool
|
|
1592
|
+
// (zigzag encoding is not applicable), so it can be skipped.
|
|
1593
|
+
std::memcpy(x, ptr, count);
|
|
1594
|
+
return end;
|
|
1595
|
+
}
|
|
1596
|
+
}
|
|
1597
|
+
}
|
|
1598
|
+
int count = CountVarintsAssumingLargeArray(ptr, end);
|
|
1599
|
+
if (count == end - ptr) {
|
|
1600
|
+
// We have exactly one element per byte, so avoid the costly varint
|
|
1601
|
+
// parsing.
|
|
1602
|
+
out.ReserveWithArena(arena, out.size() + count);
|
|
1603
|
+
T* x = out.AddNAlreadyReserved(count);
|
|
1604
|
+
for (; ptr != end; ++ptr) {
|
|
1605
|
+
*x = conv(static_cast<uint8_t>(*ptr));
|
|
1606
|
+
++x;
|
|
1607
|
+
}
|
|
1608
|
+
} else {
|
|
1609
|
+
// We can overread, so if the last byte has a continuation bit set,
|
|
1610
|
+
// we need to account for that.
|
|
1611
|
+
if (end[-1] & 0x80) count++;
|
|
1612
|
+
int old_size = out.size();
|
|
1613
|
+
out.ReserveWithArena(arena, old_size + count);
|
|
1614
|
+
T* x = out.AddNAlreadyReserved(count);
|
|
1615
|
+
ptr = ReadPackedVarintArray(ptr, end, [&](uint64_t varint) {
|
|
1616
|
+
*x = conv(varint);
|
|
1617
|
+
++x;
|
|
1618
|
+
});
|
|
1619
|
+
int new_size = x - out.data();
|
|
1620
|
+
ABSL_DCHECK_LE(new_size, old_size + count);
|
|
1621
|
+
// We may have overreserved if the data are truncated or malformed,
|
|
1622
|
+
// so set the actual size to avoid exposing uninitialized memory.
|
|
1623
|
+
out.Truncate(new_size);
|
|
1624
|
+
}
|
|
1625
|
+
return ptr;
|
|
1626
|
+
} else {
|
|
1627
|
+
return ReadPackedVarintArray(ptr, end, [&](uint64_t varint) {
|
|
1628
|
+
out.AddWithArena(arena, conv(varint));
|
|
1629
|
+
});
|
|
1630
|
+
}
|
|
1631
|
+
}
|
|
1632
|
+
|
|
1633
|
+
template <typename Convert, typename T>
|
|
1634
|
+
const char* EpsCopyInputStream::ReadPackedVarintWithField(
|
|
1635
|
+
const char* ptr, Arena* arena, Convert conv, RepeatedField<T>& out) {
|
|
1636
|
+
int size = ReadSize(&ptr);
|
|
1637
|
+
|
|
1638
|
+
GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
|
|
1639
|
+
int chunk_size = static_cast<int>(buffer_end_ - ptr);
|
|
1640
|
+
while (size > chunk_size) {
|
|
1641
|
+
ptr = ReadPackedVarintArrayWithField(ptr, buffer_end_, arena, conv, out);
|
|
1642
|
+
if (ptr == nullptr) return nullptr;
|
|
1643
|
+
int overrun = static_cast<int>(ptr - buffer_end_);
|
|
1644
|
+
ABSL_DCHECK(overrun >= 0 && overrun <= kSlopBytes);
|
|
1645
|
+
if (size - chunk_size <= kSlopBytes) {
|
|
1646
|
+
// The current buffer contains all the information needed, we don't need
|
|
1647
|
+
// to flip buffers. However we must parse from a buffer with enough space
|
|
1648
|
+
// so we are not prone to a buffer overflow.
|
|
1649
|
+
char buf[kSlopBytes + 10] = {};
|
|
1650
|
+
std::memcpy(buf, buffer_end_, kSlopBytes);
|
|
1651
|
+
ABSL_CHECK_LE(size - chunk_size, kSlopBytes);
|
|
1652
|
+
auto end = buf + (size - chunk_size);
|
|
1653
|
+
auto result = ReadPackedVarintArray(
|
|
1654
|
+
buf + overrun, end,
|
|
1655
|
+
[&](uint64_t varint) { out.AddWithArena(arena, conv(varint)); });
|
|
1656
|
+
if (result == nullptr || result != end) return nullptr;
|
|
1657
|
+
return buffer_end_ + (result - buf);
|
|
1658
|
+
}
|
|
1659
|
+
size -= overrun + chunk_size;
|
|
1660
|
+
ABSL_DCHECK_GT(size, 0);
|
|
1661
|
+
// We must flip buffers
|
|
1662
|
+
if (limit_ <= kSlopBytes) return nullptr;
|
|
1663
|
+
ptr = Next();
|
|
1664
|
+
if (ptr == nullptr) return nullptr;
|
|
1665
|
+
ptr += overrun;
|
|
1666
|
+
chunk_size = static_cast<int>(buffer_end_ - ptr);
|
|
1667
|
+
}
|
|
1668
|
+
auto end = ptr + size;
|
|
1669
|
+
ptr = ReadPackedVarintArrayWithField(ptr, end, arena, conv, out);
|
|
1670
|
+
return end == ptr ? ptr : nullptr;
|
|
1671
|
+
}
|
|
1672
|
+
|
|
1673
|
+
template <typename Add, typename SizeCb>
|
|
1674
|
+
const char* EpsCopyInputStream::ReadPackedVarint(const char* ptr, Add add,
|
|
1675
|
+
SizeCb size_callback) {
|
|
1676
|
+
int size = ReadSize(&ptr);
|
|
1677
|
+
size_callback(size);
|
|
1678
|
+
|
|
1679
|
+
GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
|
|
1680
|
+
int chunk_size = static_cast<int>(buffer_end_ - ptr);
|
|
1681
|
+
while (size > chunk_size) {
|
|
1682
|
+
ptr = ReadPackedVarintArray(ptr, buffer_end_, add);
|
|
1683
|
+
if (ptr == nullptr) return nullptr;
|
|
1684
|
+
int overrun = static_cast<int>(ptr - buffer_end_);
|
|
1685
|
+
ABSL_DCHECK(overrun >= 0 && overrun <= kSlopBytes);
|
|
1686
|
+
if (size - chunk_size <= kSlopBytes) {
|
|
1687
|
+
// The current buffer contains all the information needed, we don't need
|
|
1688
|
+
// to flip buffers. However we must parse from a buffer with enough space
|
|
1689
|
+
// so we are not prone to a buffer overflow.
|
|
1690
|
+
char buf[kSlopBytes + 10] = {};
|
|
1691
|
+
std::memcpy(buf, buffer_end_, kSlopBytes);
|
|
1692
|
+
ABSL_CHECK_LE(size - chunk_size, kSlopBytes);
|
|
1693
|
+
auto end = buf + (size - chunk_size);
|
|
1694
|
+
auto res = ReadPackedVarintArray(buf + overrun, end, add);
|
|
1695
|
+
if (res == nullptr || res != end) return nullptr;
|
|
1696
|
+
return buffer_end_ + (res - buf);
|
|
1697
|
+
}
|
|
1698
|
+
size -= overrun + chunk_size;
|
|
1699
|
+
ABSL_DCHECK_GT(size, 0);
|
|
1700
|
+
// We must flip buffers
|
|
1701
|
+
if (limit_ <= kSlopBytes) return nullptr;
|
|
1702
|
+
ptr = Next();
|
|
1703
|
+
if (ptr == nullptr) return nullptr;
|
|
1704
|
+
ptr += overrun;
|
|
1705
|
+
chunk_size = static_cast<int>(buffer_end_ - ptr);
|
|
1706
|
+
}
|
|
1707
|
+
auto end = ptr + size;
|
|
1708
|
+
ptr = ReadPackedVarintArray(ptr, end, add);
|
|
1709
|
+
return end == ptr ? ptr : nullptr;
|
|
1710
|
+
}
|
|
1711
|
+
|
|
1712
|
+
// Helper for verification of utf8
|
|
1713
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD
|
|
1714
|
+
PROTOBUF_EXPORT
|
|
1715
|
+
bool VerifyUTF8(absl::string_view s, const char* field_name);
|
|
1716
|
+
|
|
1717
|
+
PROTOBUF_FUTURE_ADD_EARLY_NODISCARD
|
|
1718
|
+
inline bool VerifyUTF8(const std::string* s, const char* field_name) {
|
|
1719
|
+
return VerifyUTF8(*s, field_name);
|
|
1720
|
+
}
|
|
1721
|
+
|
|
1722
|
+
// All the string parsers with or without UTF checking and for all CTypes.
|
|
1723
|
+
[[nodiscard]] PROTOBUF_EXPORT const char* InlineGreedyStringParser(
|
|
1724
|
+
std::string* s, const char* ptr, ParseContext* ctx);
|
|
1725
|
+
|
|
1726
|
+
[[nodiscard]] inline const char* InlineCordParser(::absl::Cord* cord,
|
|
1727
|
+
const char* ptr,
|
|
1728
|
+
ParseContext* ctx) {
|
|
1729
|
+
int size = ReadSize(&ptr);
|
|
1730
|
+
if (!ptr) return nullptr;
|
|
1731
|
+
return ctx->ReadCord(ptr, size, cord);
|
|
1732
|
+
}
|
|
1733
|
+
|
|
1734
|
+
|
|
1735
|
+
template <typename T>
|
|
1736
|
+
[[nodiscard]] const char* FieldParser(uint64_t tag, T& field_parser,
|
|
1737
|
+
const char* ptr, ParseContext* ctx) {
|
|
1738
|
+
uint32_t number = tag >> 3;
|
|
1739
|
+
GOOGLE_PROTOBUF_PARSER_ASSERT(number != 0);
|
|
1740
|
+
using WireType = internal::WireFormatLite::WireType;
|
|
1741
|
+
switch (tag & 7) {
|
|
1742
|
+
case WireType::WIRETYPE_VARINT: {
|
|
1743
|
+
uint64_t value;
|
|
1744
|
+
ptr = VarintParse(ptr, &value);
|
|
1745
|
+
GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
|
|
1746
|
+
field_parser.AddVarint(number, value);
|
|
1747
|
+
break;
|
|
1748
|
+
}
|
|
1749
|
+
case WireType::WIRETYPE_FIXED64: {
|
|
1750
|
+
uint64_t value = UnalignedLoad<uint64_t>(ptr);
|
|
1751
|
+
ptr += 8;
|
|
1752
|
+
field_parser.AddFixed64(number, value);
|
|
1753
|
+
break;
|
|
1754
|
+
}
|
|
1755
|
+
case WireType::WIRETYPE_LENGTH_DELIMITED: {
|
|
1756
|
+
ptr = field_parser.ParseLengthDelimited(number, ptr, ctx);
|
|
1757
|
+
GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
|
|
1758
|
+
break;
|
|
1759
|
+
}
|
|
1760
|
+
case WireType::WIRETYPE_START_GROUP: {
|
|
1761
|
+
ptr = field_parser.ParseGroup(number, ptr, ctx);
|
|
1762
|
+
GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
|
|
1763
|
+
break;
|
|
1764
|
+
}
|
|
1765
|
+
case WireType::WIRETYPE_END_GROUP: {
|
|
1766
|
+
ABSL_LOG(FATAL) << "Can't happen";
|
|
1767
|
+
break;
|
|
1768
|
+
}
|
|
1769
|
+
case WireType::WIRETYPE_FIXED32: {
|
|
1770
|
+
uint32_t value = UnalignedLoad<uint32_t>(ptr);
|
|
1771
|
+
ptr += 4;
|
|
1772
|
+
field_parser.AddFixed32(number, value);
|
|
1773
|
+
break;
|
|
1774
|
+
}
|
|
1775
|
+
default:
|
|
1776
|
+
return nullptr;
|
|
1777
|
+
}
|
|
1778
|
+
return ptr;
|
|
1779
|
+
}
|
|
1780
|
+
|
|
1781
|
+
template <typename T>
|
|
1782
|
+
[[nodiscard]] const char* WireFormatParser(T& field_parser, const char* ptr,
|
|
1783
|
+
ParseContext* ctx) {
|
|
1784
|
+
while (!ctx->Done(&ptr)) {
|
|
1785
|
+
uint32_t tag;
|
|
1786
|
+
ptr = ReadTag(ptr, &tag);
|
|
1787
|
+
GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
|
|
1788
|
+
if (tag == 0 || (tag & 7) == 4) {
|
|
1789
|
+
ctx->SetLastTag(tag);
|
|
1790
|
+
return ptr;
|
|
1791
|
+
}
|
|
1792
|
+
ptr = FieldParser(tag, field_parser, ptr, ctx);
|
|
1793
|
+
GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
|
|
1794
|
+
}
|
|
1795
|
+
return ptr;
|
|
1796
|
+
}
|
|
1797
|
+
|
|
1798
|
+
// The packed parsers parse repeated numeric primitives directly into the
|
|
1799
|
+
// corresponding field
|
|
1800
|
+
|
|
1801
|
+
// These are packed varints
|
|
1802
|
+
[[nodiscard]] PROTOBUF_EXPORT const char* PackedInt32Parser(void* object,
|
|
1803
|
+
Arena* arena,
|
|
1804
|
+
const char* ptr,
|
|
1805
|
+
ParseContext* ctx);
|
|
1806
|
+
[[nodiscard]] PROTOBUF_EXPORT const char* PackedUInt32Parser(void* object,
|
|
1807
|
+
Arena* arena,
|
|
1808
|
+
const char* ptr,
|
|
1809
|
+
ParseContext* ctx);
|
|
1810
|
+
[[nodiscard]] PROTOBUF_EXPORT const char* PackedInt64Parser(void* object,
|
|
1811
|
+
Arena* arena,
|
|
1812
|
+
const char* ptr,
|
|
1813
|
+
ParseContext* ctx);
|
|
1814
|
+
[[nodiscard]] PROTOBUF_EXPORT const char* PackedUInt64Parser(void* object,
|
|
1815
|
+
Arena* arena,
|
|
1816
|
+
const char* ptr,
|
|
1817
|
+
ParseContext* ctx);
|
|
1818
|
+
[[nodiscard]] PROTOBUF_EXPORT const char* PackedSInt32Parser(void* object,
|
|
1819
|
+
Arena* arena,
|
|
1820
|
+
const char* ptr,
|
|
1821
|
+
ParseContext* ctx);
|
|
1822
|
+
[[nodiscard]] PROTOBUF_EXPORT const char* PackedSInt64Parser(void* object,
|
|
1823
|
+
Arena* arena,
|
|
1824
|
+
const char* ptr,
|
|
1825
|
+
ParseContext* ctx);
|
|
1826
|
+
[[nodiscard]] PROTOBUF_EXPORT const char* PackedEnumParser(void* object,
|
|
1827
|
+
Arena* arena,
|
|
1828
|
+
const char* ptr,
|
|
1829
|
+
ParseContext* ctx);
|
|
1830
|
+
|
|
1831
|
+
template <typename T, typename Validator>
|
|
1832
|
+
[[nodiscard]] const char* PackedEnumParserArg(void* object, const char* ptr,
|
|
1833
|
+
ParseContext* ctx,
|
|
1834
|
+
Validator validator,
|
|
1835
|
+
InternalMetadata* metadata,
|
|
1836
|
+
int field_num) {
|
|
1837
|
+
return ctx->ReadPackedVarint(
|
|
1838
|
+
ptr, [object, validator, metadata, field_num](int32_t val) {
|
|
1839
|
+
if (validator.IsValid(val)) {
|
|
1840
|
+
static_cast<RepeatedField<int>*>(object)->Add(val);
|
|
1841
|
+
} else {
|
|
1842
|
+
WriteVarint(field_num, val, metadata->mutable_unknown_fields<T>());
|
|
1843
|
+
}
|
|
1844
|
+
});
|
|
1845
|
+
}
|
|
1846
|
+
|
|
1847
|
+
[[nodiscard]] PROTOBUF_EXPORT const char* PackedBoolParser(void* object,
|
|
1848
|
+
Arena* arena,
|
|
1849
|
+
const char* ptr,
|
|
1850
|
+
ParseContext* ctx);
|
|
1851
|
+
[[nodiscard]] PROTOBUF_EXPORT const char* PackedFixed32Parser(
|
|
1852
|
+
void* object, Arena* arena, const char* ptr, ParseContext* ctx);
|
|
1853
|
+
[[nodiscard]] PROTOBUF_EXPORT const char* PackedSFixed32Parser(
|
|
1854
|
+
void* object, Arena* arena, const char* ptr, ParseContext* ctx);
|
|
1855
|
+
[[nodiscard]] PROTOBUF_EXPORT const char* PackedFixed64Parser(
|
|
1856
|
+
void* object, Arena* arena, const char* ptr, ParseContext* ctx);
|
|
1857
|
+
[[nodiscard]] PROTOBUF_EXPORT const char* PackedSFixed64Parser(
|
|
1858
|
+
void* object, Arena* arena, const char* ptr, ParseContext* ctx);
|
|
1859
|
+
[[nodiscard]] PROTOBUF_EXPORT const char* PackedFloatParser(void* object,
|
|
1860
|
+
Arena* arena,
|
|
1861
|
+
const char* ptr,
|
|
1862
|
+
ParseContext* ctx);
|
|
1863
|
+
[[nodiscard]] PROTOBUF_EXPORT const char* PackedDoubleParser(void* object,
|
|
1864
|
+
Arena* arena,
|
|
1865
|
+
const char* ptr,
|
|
1866
|
+
ParseContext* ctx);
|
|
1867
|
+
|
|
1868
|
+
// This is the only recursive parser.
|
|
1869
|
+
[[nodiscard]] PROTOBUF_EXPORT const char* UnknownGroupLiteParse(
|
|
1870
|
+
std::string* unknown, const char* ptr, ParseContext* ctx);
|
|
1871
|
+
// This is a helper to for the UnknownGroupLiteParse but is actually also
|
|
1872
|
+
// useful in the generated code. It uses overload on std::string* vs
|
|
1873
|
+
// UnknownFieldSet* to make the generated code isomorphic between full and lite.
|
|
1874
|
+
[[nodiscard]] PROTOBUF_EXPORT const char* UnknownFieldParse(
|
|
1875
|
+
uint32_t tag, std::string* unknown, const char* ptr, ParseContext* ctx);
|
|
1876
|
+
|
|
1877
|
+
} // namespace internal
|
|
1878
|
+
} // namespace protobuf
|
|
1879
|
+
} // namespace google
|
|
1880
|
+
|
|
1881
|
+
#include "google/protobuf/port_undef.inc"
|
|
1882
|
+
|
|
1883
|
+
#endif // GOOGLE_PROTOBUF_PARSE_CONTEXT_H__
|