diff --git a/.github/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md index 3e38e722ecdfe..8c4362915e2fe 100644 --- a/.github/ISSUE_TEMPLATE/question.md +++ b/.github/ISSUE_TEMPLATE/question.md @@ -8,8 +8,6 @@ labels: kind/question, priority/P3, untriaged PLEASE DO NOT POST A QUESTION HERE. This form is for bug reports and feature requests ONLY! -For general questions and troubleshooting, please ask/look for answers at StackOverflow, with "grpc" tag: https://stackoverflow.com/questions/tagged/grpc - For questions that specifically need to be answered by gRPC team members, please ask/look for answers at grpc.io mailing list: https://groups.google.com/forum/#!forum/grpc-io This issue will be closed down once seen by the repo managers. diff --git a/.github/workflows/pr-auto-fix.yaml b/.github/workflows/pr-auto-fix.yaml index 051f97d24407b..423d4354eaf32 100644 --- a/.github/workflows/pr-auto-fix.yaml +++ b/.github/workflows/pr-auto-fix.yaml @@ -22,7 +22,7 @@ jobs: with: format: YYYYWWd - name: Cache bazel - uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1 + uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3 env: cache-name: bazel-cache with: @@ -38,7 +38,7 @@ jobs: # Cancel current runs if they're still running # (saves processing on fast pushes) - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # 0.12.1 + uses: styfle/cancel-workflow-action@3155a141048f8f89c06b4cdae32e7853e97536bc # 0.13.0 with: access_token: ${{ github.token }} # Allow opt-out for some users @@ -89,7 +89,7 @@ jobs: run: ANDROID_NDK_HOME= ${{ github.workspace }}/tools/distrib/sanitize.sh # Report back with a PR if things are broken - name: Create Pull Request - uses: peter-evans/create-pull-request@98357b18bf14b5342f975ff684046ec3b2a07725 # v8.0.0 + uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 # v8.1.0 with: delete-branch: true branch-suffix: short-commit-hash diff --git a/.gitmodules b/.gitmodules index 9b16a02148d33..a159d0188a71d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -50,3 +50,6 @@ [submodule "third_party/opentelemetry-cpp"] path = third_party/opentelemetry-cpp url = https://github.com/open-telemetry/opentelemetry-cpp +[submodule "third_party/cel-spec"] + path = third_party/cel-spec + url = https://github.com/google/cel-spec diff --git a/BUILD b/BUILD index 9d76923a50574..bbee4af2c448b 100644 --- a/BUILD +++ b/BUILD @@ -41,6 +41,8 @@ package( exports_files([ "LICENSE", "etc/roots.pem", + "copy.bara.sky", + "copybara.METADATA", ]) exports_files( @@ -3992,6 +3994,7 @@ grpc_cc_library( "//src/core:client_channel/retry_filter_legacy_call_data.cc", "//src/core:client_channel/subchannel.cc", "//src/core:client_channel/subchannel_stream_client.cc", + "//src/core:client_channel/subchannel_stream_limiter.cc", ], hdrs = [ "//src/core:client_channel/buffered_call.h", @@ -4007,6 +4010,7 @@ grpc_cc_library( "//src/core:client_channel/subchannel.h", "//src/core:client_channel/subchannel_interface_internal.h", "//src/core:client_channel/subchannel_stream_client.h", + "//src/core:client_channel/subchannel_stream_limiter.h", ], external_deps = [ "absl/base:core_headers", @@ -4076,6 +4080,7 @@ grpc_cc_library( "//src/core:error_utils", "//src/core:exec_ctx_wakeup_scheduler", "//src/core:experiments", + "//src/core:filter_chain", "//src/core:gpr_manual_constructor", "//src/core:grpc_backend_metric_data", "//src/core:grpc_channel_idle_filter", @@ -5082,6 +5087,7 @@ grpc_cc_library( "//src/core:channel_args", "//src/core:channelz_property_list", "//src/core:chttp2_flow_control", + "//src/core:client_channel_internal_header", "//src/core:closure", "//src/core:connectivity_state", "//src/core:context_list_entry", @@ -5106,6 +5112,7 @@ grpc_cc_library( "//src/core:json", "//src/core:match", "//src/core:memory_quota", + "//src/core:metadata", "//src/core:metadata_batch", "//src/core:metadata_info", "//src/core:notification", diff --git a/CMakeLists.txt b/CMakeLists.txt index 2e932218fc753..132f88703c2b1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -406,6 +406,25 @@ if(gRPC_BUILD_GRPCPP_OTEL_PLUGIN) include(cmake/opentelemetry-cpp.cmake) endif() +# Setup external proto library at third_party/cel-spec with 2 download URLs +if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/cel-spec AND gRPC_DOWNLOAD_ARCHIVES) + # Download the archive via HTTP, validate the checksum, and extract to third_party/cel-spec. + download_archive( + ${CMAKE_CURRENT_SOURCE_DIR}/third_party/cel-spec + https://storage.googleapis.com/grpc-bazel-mirror/github.com/google/cel-spec/archive/9f069b3ee58b02d6f6736c5ebd6587075c1a1b22.tar.gz + d6cb6b4ed272500d16546c672a65a7452b241462a200dda3f62a7de413883344 + cel-spec-9f069b3ee58b02d6f6736c5ebd6587075c1a1b22 + ) +endif() +if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/cel-spec AND gRPC_DOWNLOAD_ARCHIVES) + # Download the archive via HTTP, validate the checksum, and extract to third_party/cel-spec. + download_archive( + ${CMAKE_CURRENT_SOURCE_DIR}/third_party/cel-spec + https://github.com/google/cel-spec/archive/9f069b3ee58b02d6f6736c5ebd6587075c1a1b22.tar.gz + d6cb6b4ed272500d16546c672a65a7452b241462a200dda3f62a7de413883344 + cel-spec-9f069b3ee58b02d6f6736c5ebd6587075c1a1b22 + ) +endif() # Setup external proto library at third_party/envoy-api with 2 download URLs if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/envoy-api AND gRPC_DOWNLOAD_ARCHIVES) # Download the archive via HTTP, validate the checksum, and extract to third_party/envoy-api. @@ -487,18 +506,18 @@ if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/xds AND gRPC_DOWNLOAD_ARC # Download the archive via HTTP, validate the checksum, and extract to third_party/xds. download_archive( ${CMAKE_CURRENT_SOURCE_DIR}/third_party/xds - https://storage.googleapis.com/grpc-bazel-mirror/github.com/cncf/xds/archive/3a472e524827f72d1ad621c4983dd5af54c46776.tar.gz - dc305e20c9fa80822322271b50aa2ffa917bf4fd3973bcec52bfc28dc32c5927 - xds-3a472e524827f72d1ad621c4983dd5af54c46776 + https://storage.googleapis.com/grpc-bazel-mirror/github.com/cncf/xds/archive/ee656c7534f5d7dc23d44dd611689568f72017a6.tar.gz + 49535f3c3370004309da50194c09bbfc528d4702424dd46e7d56a278a3dfc15d + xds-ee656c7534f5d7dc23d44dd611689568f72017a6 ) endif() if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/xds AND gRPC_DOWNLOAD_ARCHIVES) # Download the archive via HTTP, validate the checksum, and extract to third_party/xds. download_archive( ${CMAKE_CURRENT_SOURCE_DIR}/third_party/xds - https://github.com/cncf/xds/archive/3a472e524827f72d1ad621c4983dd5af54c46776.tar.gz - dc305e20c9fa80822322271b50aa2ffa917bf4fd3973bcec52bfc28dc32c5927 - xds-3a472e524827f72d1ad621c4983dd5af54c46776 + https://github.com/cncf/xds/archive/ee656c7534f5d7dc23d44dd611689568f72017a6.tar.gz + 49535f3c3370004309da50194c09bbfc528d4702424dd46e7d56a278a3dfc15d + xds-ee656c7534f5d7dc23d44dd611689568f72017a6 ) endif() @@ -803,6 +822,12 @@ protobuf_generate_grpc_cpp_with_import_path_correction( protobuf_generate_grpc_cpp_with_import_path_correction( test/core/tsi/alts/fake_handshaker/transport_security_common.proto test/core/tsi/alts/fake_handshaker/transport_security_common.proto ) +protobuf_generate_grpc_cpp_with_import_path_correction( + third_party/cel-spec/proto/cel/expr/checked.proto cel/expr/checked.proto +) +protobuf_generate_grpc_cpp_with_import_path_correction( + third_party/cel-spec/proto/cel/expr/syntax.proto cel/expr/syntax.proto +) protobuf_generate_grpc_cpp_with_import_path_correction( third_party/envoy-api/envoy/admin/v3/certs.proto envoy/admin/v3/certs.proto ) @@ -1822,6 +1847,7 @@ if(gRPC_BUILD_TESTS) add_dependencies(buildtests_cxx string_ref_test) add_dependencies(buildtests_cxx string_test) add_dependencies(buildtests_cxx subchannel_args_test) + add_dependencies(buildtests_cxx subchannel_stream_limiter_test) add_dependencies(buildtests_cxx switch_test) add_dependencies(buildtests_cxx sync_test) add_dependencies(buildtests_cxx system_roots_test) @@ -2265,6 +2291,7 @@ add_library(grpc src/core/client_channel/subchannel.cc src/core/client_channel/subchannel_pool_interface.cc src/core/client_channel/subchannel_stream_client.cc + src/core/client_channel/subchannel_stream_limiter.cc src/core/config/core_configuration.cc src/core/credentials/call/call_creds_registry_init.cc src/core/credentials/call/call_creds_util.cc @@ -2385,6 +2412,8 @@ add_library(grpc src/core/ext/transport/chttp2/transport/writing.cc src/core/ext/transport/inproc/inproc_transport.cc src/core/ext/transport/inproc/legacy_inproc_transport.cc + src/core/ext/upb-gen/cel/expr/checked.upb_minitable.c + src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.c src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.c src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.c @@ -2559,6 +2588,8 @@ add_library(grpc src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.c src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.c + src/core/ext/upbdefs-gen/cel/expr/checked.upbdefs.c + src/core/ext/upbdefs-gen/cel/expr/syntax.upbdefs.c src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.c src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.c src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.c @@ -3435,6 +3466,7 @@ add_library(grpc_unsecure src/core/client_channel/subchannel.cc src/core/client_channel/subchannel_pool_interface.cc src/core/client_channel/subchannel_stream_client.cc + src/core/client_channel/subchannel_stream_limiter.cc src/core/config/core_configuration.cc src/core/credentials/call/call_creds_util.cc src/core/credentials/call/composite/composite_call_credentials.cc @@ -3513,7 +3545,6 @@ add_library(grpc_unsecure src/core/ext/transport/chttp2/transport/writing.cc src/core/ext/transport/inproc/inproc_transport.cc src/core/ext/transport/inproc/legacy_inproc_transport.cc - src/core/ext/upb-gen/google/api/annotations.upb_minitable.c src/core/ext/upb-gen/google/api/http.upb_minitable.c src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c @@ -4736,10 +4767,6 @@ add_library(benchmark_helpers ${_gRPC_STATIC_WIN32} ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -6920,6 +6947,14 @@ endif() if(gRPC_BUILD_TESTS) add_executable(admin_services_end2end_test + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/envoy/admin/v3/certs.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/admin/v3/certs.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/admin/v3/certs.pb.h @@ -8416,10 +8451,6 @@ add_executable(async_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -10485,6 +10516,8 @@ endif() if(gRPC_BUILD_TESTS) add_executable(cel_authorization_engine_test + src/core/ext/upb-gen/cel/expr/checked.upb_minitable.c + src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.c src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.c src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.c src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb_minitable.c @@ -10810,10 +10843,6 @@ add_executable(cfstream_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -11233,10 +11262,6 @@ add_executable(channelz_service_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -11483,10 +11508,6 @@ add_executable(channelz_v2_service_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -11817,10 +11838,6 @@ add_executable(cli_call_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -12002,10 +12019,6 @@ add_executable(client_callback_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -12169,10 +12182,6 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -12247,10 +12256,6 @@ add_executable(client_interceptors_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -12313,6 +12318,14 @@ if(gRPC_BUILD_TESTS) if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(client_lb_end2end_test + ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/channelz/v2/channelz.pb.cc + ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/channelz/v2/channelz.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/channelz/v2/channelz.pb.h + ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/channelz/v2/channelz.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/channelz/v2/property_list.pb.cc + ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/channelz/v2/property_list.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/channelz/v2/property_list.pb.h + ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/channelz/v2/property_list.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/health/v1/health.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/health/v1/health.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/health/v1/health.pb.h @@ -12333,10 +12346,6 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -12362,6 +12371,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) test/cpp/end2end/client_lb_end2end_test.cc test/cpp/end2end/connection_attempt_injector.cc test/cpp/end2end/test_service_impl.cc + test/cpp/util/channelz_util.cc ) if(WIN32 AND MSVC) if(BUILD_SHARED_LIBS) @@ -13076,10 +13086,6 @@ add_executable(context_allocator_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -13380,10 +13386,6 @@ add_executable(crl_provider_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -13543,10 +13545,6 @@ add_executable(delegating_channel_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -14155,6 +14153,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) test/core/end2end/tests/channelz.cc test/core/end2end/tests/client_streaming.cc test/core/end2end/tests/compressed_payload.cc + test/core/end2end/tests/connection_scaling.cc test/core/end2end/tests/connectivity.cc test/core/end2end/tests/default_host.cc test/core/end2end/tests/disappearing_server.cc @@ -14553,6 +14552,7 @@ add_executable(end2end_http2_security_test test/core/end2end/tests/channelz.cc test/core/end2end/tests/client_streaming.cc test/core/end2end/tests/compressed_payload.cc + test/core/end2end/tests/connection_scaling.cc test/core/end2end/tests/connectivity.cc test/core/end2end/tests/default_host.cc test/core/end2end/tests/disappearing_server.cc @@ -14744,6 +14744,7 @@ add_executable(end2end_http2_test test/core/end2end/tests/channelz.cc test/core/end2end/tests/client_streaming.cc test/core/end2end/tests/compressed_payload.cc + test/core/end2end/tests/connection_scaling.cc test/core/end2end/tests/connectivity.cc test/core/end2end/tests/default_host.cc test/core/end2end/tests/disappearing_server.cc @@ -15038,6 +15039,7 @@ add_executable(end2end_inproc_test test/core/end2end/tests/channelz.cc test/core/end2end/tests/client_streaming.cc test/core/end2end/tests/compressed_payload.cc + test/core/end2end/tests/connection_scaling.cc test/core/end2end/tests/connectivity.cc test/core/end2end/tests/default_host.cc test/core/end2end/tests/disappearing_server.cc @@ -15332,6 +15334,7 @@ add_executable(end2end_ph2_test test/core/end2end/tests/channelz.cc test/core/end2end/tests/client_streaming.cc test/core/end2end/tests/compressed_payload.cc + test/core/end2end/tests/connection_scaling.cc test/core/end2end/tests/connectivity.cc test/core/end2end/tests/default_host.cc test/core/end2end/tests/disappearing_server.cc @@ -15626,6 +15629,7 @@ add_executable(end2end_posix_test test/core/end2end/tests/channelz.cc test/core/end2end/tests/client_streaming.cc test/core/end2end/tests/compressed_payload.cc + test/core/end2end/tests/connection_scaling.cc test/core/end2end/tests/connectivity.cc test/core/end2end/tests/default_host.cc test/core/end2end/tests/disappearing_server.cc @@ -15772,10 +15776,6 @@ add_executable(end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -16033,10 +16033,6 @@ add_executable(error_details_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -16411,10 +16407,6 @@ add_executable(exception_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -17322,10 +17314,6 @@ add_executable(flaky_network_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -18238,10 +18226,6 @@ add_executable(generic_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -18740,10 +18724,6 @@ add_executable(grpc_authz_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -19577,10 +19557,6 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX) ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -19769,10 +19745,6 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -20255,10 +20227,6 @@ add_executable(health_service_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -21106,10 +21074,6 @@ add_executable(hybrid_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -24497,10 +24461,6 @@ add_executable(message_allocator_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -24860,10 +24820,6 @@ add_executable(mock_stream_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -24939,10 +24895,6 @@ add_executable(mock_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -25135,10 +25087,6 @@ add_executable(nonblocking_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -25450,10 +25398,6 @@ add_executable(orca_service_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_service.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_service.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_service.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -25645,10 +25589,6 @@ add_executable(otel_npc_metrics_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -25728,10 +25668,6 @@ add_executable(otel_plugin_option_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -25811,10 +25747,6 @@ add_executable(otel_plugin_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -25895,10 +25827,6 @@ add_executable(otel_tracing_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -26954,10 +26882,6 @@ add_executable(port_sharing_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -27329,6 +27253,14 @@ add_executable(pre_stop_hook_server_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/test.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/test.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/test.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/envoy/admin/v3/certs.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/admin/v3/certs.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/admin/v3/certs.pb.h @@ -28681,10 +28613,6 @@ add_executable(proto_server_reflection_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -29310,10 +29238,6 @@ add_executable(raw_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -29916,10 +29840,6 @@ add_executable(resource_quota_end2end_stress_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -30245,10 +30165,6 @@ add_executable(rls_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -30748,10 +30664,6 @@ add_executable(server_builder_plugin_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -30825,10 +30737,6 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -30905,10 +30813,6 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -31152,10 +31056,6 @@ add_executable(server_early_return_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -31227,10 +31127,6 @@ add_executable(server_interceptors_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -31349,10 +31245,6 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -31517,10 +31409,6 @@ add_executable(service_config_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -31766,10 +31654,6 @@ add_executable(shutdown_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -32179,10 +32063,6 @@ add_executable(spiffe_bundle_map_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -33057,10 +32937,6 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -33288,6 +33164,48 @@ target_link_libraries(subchannel_args_test ) +endif() +if(gRPC_BUILD_TESTS) + +add_executable(subchannel_stream_limiter_test + test/core/client_channel/subchannel_stream_limiter_test.cc +) +if(WIN32 AND MSVC) + if(BUILD_SHARED_LIBS) + target_compile_definitions(subchannel_stream_limiter_test + PRIVATE + "GPR_DLL_IMPORTS" + "GRPC_DLL_IMPORTS" + ) + endif() +endif() +target_compile_features(subchannel_stream_limiter_test PUBLIC cxx_std_17) +target_include_directories(subchannel_stream_limiter_test + PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/include + ${_gRPC_ADDRESS_SORTING_INCLUDE_DIR} + ${_gRPC_RE2_INCLUDE_DIR} + ${_gRPC_SSL_INCLUDE_DIR} + ${_gRPC_UPB_GENERATED_DIR} + ${_gRPC_UPB_GRPC_GENERATED_DIR} + ${_gRPC_UPB_INCLUDE_DIR} + ${_gRPC_XXHASH_INCLUDE_DIR} + ${_gRPC_ZLIB_INCLUDE_DIR} + third_party/googletest/googletest/include + third_party/googletest/googletest + third_party/googletest/googlemock/include + third_party/googletest/googlemock + ${_gRPC_PROTO_GENS_DIR} +) + +target_link_libraries(subchannel_stream_limiter_test + ${_gRPC_ALLTARGETS_LIBRARIES} + gtest + grpc_test_util +) + + endif() if(gRPC_BUILD_TESTS) @@ -34292,10 +34210,6 @@ add_executable(test_cpp_end2end_ssl_credentials_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -34368,10 +34282,6 @@ add_executable(test_cpp_end2end_tls_credentials_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -34865,10 +34775,6 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -35301,10 +35207,6 @@ add_executable(tls_key_export_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -37304,10 +37206,6 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.h ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -37375,6 +37273,14 @@ add_executable(xds_audit_logger_registry_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.h @@ -37865,6 +37771,14 @@ add_executable(xds_client_test ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.h ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/envoy/admin/v3/certs.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/admin/v3/certs.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/admin/v3/certs.pb.h @@ -38468,6 +38382,14 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.h @@ -38991,6 +38913,14 @@ endif() if(gRPC_BUILD_TESTS) add_executable(xds_cluster_resource_type_test + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.h @@ -39535,6 +39465,14 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.h @@ -40065,6 +40003,14 @@ add_executable(xds_common_types_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.h @@ -40516,6 +40462,14 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.h @@ -41050,10 +41004,6 @@ add_executable(xds_credentials_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.pb.h - ${_gRPC_PROTO_GENS_DIR}/google/api/annotations.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/google/api/http.pb.h @@ -41173,6 +41123,14 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/envoy/admin/v3/certs.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/admin/v3/certs.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/admin/v3/certs.pb.h @@ -41804,6 +41762,14 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.h @@ -42665,6 +42631,14 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.h @@ -43203,6 +43177,14 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX) ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.h @@ -43749,6 +43731,14 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.h @@ -44291,6 +44281,14 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.h @@ -44821,6 +44819,14 @@ add_executable(xds_http_filters_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.h @@ -45306,6 +45312,14 @@ add_executable(xds_lb_policy_registry_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.h @@ -45751,6 +45765,14 @@ add_executable(xds_listener_resource_type_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.h @@ -46260,6 +46282,14 @@ endif() if(gRPC_BUILD_TESTS) add_executable(xds_matcher_parse_test + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.h @@ -46600,7 +46630,8 @@ add_executable(xds_matcher_parse_test ${_gRPC_PROTO_GENS_DIR}/xds/type/v3/typed_struct.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/xds/type/v3/typed_struct.pb.h ${_gRPC_PROTO_GENS_DIR}/xds/type/v3/typed_struct.grpc.pb.h - src/core/ext/upb-gen/google/api/annotations.upb_minitable.c + src/core/ext/upb-gen/cel/expr/checked.upb_minitable.c + src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.c src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c src/core/ext/upb-gen/google/api/http.upb_minitable.c @@ -47046,6 +47077,14 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.h @@ -47592,6 +47631,14 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.h @@ -48229,6 +48276,14 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.h @@ -48776,6 +48831,14 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.h @@ -49327,6 +49390,14 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.h @@ -49857,6 +49928,14 @@ add_executable(xds_route_config_resource_type_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.h @@ -50279,6 +50358,14 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.h @@ -50825,6 +50912,14 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.h @@ -51389,6 +51484,14 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.h @@ -51948,6 +52051,14 @@ add_executable(xds_stats_watcher_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/test.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/test.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/test.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/envoy/admin/v3/certs.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/admin/v3/certs.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/admin/v3/certs.pb.h @@ -52539,6 +52650,14 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.pb.h + ${_gRPC_PROTO_GENS_DIR}/cel/expr/syntax.grpc.pb.h ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/envoy/annotations/deprecation.pb.h diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5cca44f708ac5..43efe784c3ea5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -124,15 +124,14 @@ How to get your contributions merged smoothly and quickly. ## Obtaining Commit Access -We grant Commit Access to contributors based on the following criteria: * -Sustained contribution to the gRPC project. * Deep understanding of the areas -contributed to, and good consideration of various reliability, usability and -performance tradeoffs. * Contributions demonstrate that obtaining Commit Access -will significantly reduce friction for the contributors or others. - -In addition to submitting PRs, a Contributor with Commit Access can: * Review -PRs and merge once other checks and criteria pass. * Triage bugs and PRs and -assign appropriate labels and reviewers. +We grant Commit Access to contributors based on the following criteria: +- Sustained contribution to the gRPC project. +- Deep understanding of the areas contributed to, and good consideration of various reliability, usability and performance tradeoffs. +- Contributions demonstrate that obtaining Commit Access will significantly reduce friction for the contributors or others. + +In addition to submitting PRs, a Contributor with Commit Access can: +- Review PRs and merge once other checks and criteria pass. +- Triage bugs and PRs and assign appropriate labels and reviewers. ### Obtaining Commit Access without Code Contributions diff --git a/LICENSE b/LICENSE index 0e09a3e90900c..98352651c8f92 100644 --- a/LICENSE +++ b/LICENSE @@ -203,6 +203,16 @@ ----------------------------------------------------------- +Following applies to: +./src/objective-c/!ProtoCompiler-gRPCCppPlugin.podspec +./src/objective-c/!ProtoCompiler-gRPCPlugin.podspec +./src/objective-c/!ProtoCompiler.podspec +./src/objective-c/BoringSSL-GRPC.podspec +./templates/src/objective-c/!ProtoCompiler-gRPCCppPlugin.podspec.inja +./templates/src/objective-c/!ProtoCompiler-gRPCPlugin.podspec.inja +./templates/src/objective-c/!ProtoCompiler.podspec.inja +./templates/src/objective-c/BoringSSL-GRPC.podspec.template + BSD 3-Clause License Copyright 2016, Google Inc. @@ -235,6 +245,9 @@ THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------- +Following applies to: +./etc/roots.pem + Mozilla Public License Version 2.0 ================================== diff --git a/MODULE.bazel b/MODULE.bazel index dbb69536c05f0..fd7fc55495e4d 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -22,13 +22,19 @@ module( # Regular dependencies # ==================== +# -- Abseil library. +# Pinning version to be consistent with third_party/abseil-cpp bazel_dep(name = "abseil-cpp", version = "20250512.1", repo_name = "com_google_absl") +single_version_override( + module_name = "abseil-cpp", + version = "20250512.1", +) + bazel_dep(name = "apple_support", version = "1.17.1", repo_name = "build_bazel_apple_support") bazel_dep(name = "bazel_skylib", version = "1.8.1") bazel_dep(name = "boringssl", version = "0.20241024.0") # mistmatched 20241211 bazel_dep(name = "c-ares", version = "1.19.1", repo_name = "com_github_cares_cares") bazel_dep(name = "envoy_api", version = "0.0.0-20251216-6ef568c") -bazel_dep(name = "googleapis", version = "0.0.0-20251003-2193a2bf", repo_name = "com_google_googleapis") bazel_dep(name = "googleapis-cc", version = "1.0.0") bazel_dep(name = "googleapis-grpc-cc", version = "1.0.0") bazel_dep(name = "googleapis-python", version = "1.0.0") @@ -37,13 +43,21 @@ bazel_dep(name = "opencensus-cpp", version = "0.0.0-20230502-50eb5de.bcr.2", rep bazel_dep(name = "openssl", version = "3.3.1.bcr.1") bazel_dep(name = "opentelemetry-cpp", version = "1.19.0", repo_name = "io_opentelemetry_cpp") bazel_dep(name = "platforms", version = "0.0.11") + +# --- Protobuf related packages. +# Pinning to 31.1 to avoid xDs breakage until we can upgrade to Protobuf >= 33.0 bazel_dep(name = "protobuf", version = "31.1", repo_name = "com_google_protobuf") +single_version_override( + module_name = "protobuf", + version = "31.1", +) + bazel_dep(name = "protoc-gen-validate", version = "1.2.1.bcr.1", repo_name = "com_envoyproxy_protoc_gen_validate") # Not needed directly bazel_dep(name = "re2", version = "2024-07-02.bcr.1", repo_name = "com_googlesource_code_re2") # mistmached 2022-04-01 bazel_dep(name = "rules_apple", version = "3.16.0", repo_name = "build_bazel_rules_apple") bazel_dep(name = "rules_cc", version = "0.1.1") bazel_dep(name = "rules_proto", version = "7.0.2") -bazel_dep(name = "xds", version = "0.0.0-20240423-555b57e", repo_name = "com_github_cncf_xds") # mismatched 20231116 +bazel_dep(name = "xds", version = "0.0.0-20251210-ee656c7", repo_name = "com_github_cncf_xds") bazel_dep(name = "zlib", version = "1.3.1.bcr.5") # Development dependencies @@ -105,3 +119,32 @@ include("//bazel:com_google_fuzztest.MODULE.bazel") # Provides repo @grpc_custom_exec_properties. include("//bazel:grpc_custom_exec_properties.MODULE.bazel") + +# -- google_cloud_cpp 2.35.0 related repos, which requires a modified version of googleapis, hence the version pinning. +bazel_dep(name = "googleapis", version = "0.0.0-20251003-2193a2bf", repo_name = "com_google_googleapis") +single_version_override( + module_name = "googleapis", + patch_strip = 1, + patches = [ + "//bazel:googleapis/patches/fix_google_cloud_cpp.patch", + ], + version = "0.0.0-20251003-2193a2bf", +) + +bazel_dep(name = "google_cloud_cpp", version = "2.35.0", dev_dependency = True) +archive_override( + module_name = "google_cloud_cpp", + integrity = "sha256-geooz55bsDLTVrAYdAnzCxA1+OpbUwZ16iSMimwAcKo=", + strip_prefix = "google-cloud-cpp-2.35.0", + urls = [ + "https://storage.googleapis.com/grpc-bazel-mirror/github.com/googleapis/google-cloud-cpp/archive/refs/tags/v2.35.0.tar.gz", + "https://github.com/googleapis/google-cloud-cpp/archive/refs/tags/v2.35.0.tar.gz", + ], +) + +# --- Python headers +# TODO(weizheyuan): Maybe replace this with python header exposed by rules_python. +# See also https://github.com/grpc/grpc/issues/24665 +python_configure = use_repo_rule("//third_party/py:python_configure.bzl", "python_configure") + +python_configure(name = "local_config_python") diff --git a/Makefile b/Makefile index 4a7fa5333f6dc..4d3df85cfea86 100644 --- a/Makefile +++ b/Makefile @@ -710,6 +710,7 @@ LIBGRPC_SRC = \ src/core/client_channel/subchannel.cc \ src/core/client_channel/subchannel_pool_interface.cc \ src/core/client_channel/subchannel_stream_client.cc \ + src/core/client_channel/subchannel_stream_limiter.cc \ src/core/config/config_vars.cc \ src/core/config/config_vars_non_generated.cc \ src/core/config/core_configuration.cc \ @@ -833,6 +834,8 @@ LIBGRPC_SRC = \ src/core/ext/transport/chttp2/transport/writing.cc \ src/core/ext/transport/inproc/inproc_transport.cc \ src/core/ext/transport/inproc/legacy_inproc_transport.cc \ + src/core/ext/upb-gen/cel/expr/checked.upb_minitable.c \ + src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.c \ src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.c \ src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c \ src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.c \ @@ -1007,6 +1010,8 @@ LIBGRPC_SRC = \ src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c \ src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.c \ src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.c \ + src/core/ext/upbdefs-gen/cel/expr/checked.upbdefs.c \ + src/core/ext/upbdefs-gen/cel/expr/syntax.upbdefs.c \ src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.c \ src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.c \ src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.c \ diff --git a/Package.swift b/Package.swift index 68f8451d1e191..82d085166339f 100644 --- a/Package.swift +++ b/Package.swift @@ -221,6 +221,8 @@ let package = Package( "src/core/client_channel/subchannel_pool_interface.h", "src/core/client_channel/subchannel_stream_client.cc", "src/core/client_channel/subchannel_stream_client.h", + "src/core/client_channel/subchannel_stream_limiter.cc", + "src/core/client_channel/subchannel_stream_limiter.h", "src/core/config/config_vars.cc", "src/core/config/config_vars.h", "src/core/config/config_vars_non_generated.cc", @@ -471,6 +473,12 @@ let package = Package( "src/core/ext/transport/inproc/inproc_transport.h", "src/core/ext/transport/inproc/legacy_inproc_transport.cc", "src/core/ext/transport/inproc/legacy_inproc_transport.h", + "src/core/ext/upb-gen/cel/expr/checked.upb.h", + "src/core/ext/upb-gen/cel/expr/checked.upb_minitable.c", + "src/core/ext/upb-gen/cel/expr/checked.upb_minitable.h", + "src/core/ext/upb-gen/cel/expr/syntax.upb.h", + "src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.c", + "src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.h", "src/core/ext/upb-gen/envoy/admin/v3/certs.upb.h", "src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.c", "src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.h", @@ -993,6 +1001,10 @@ let package = Package( "src/core/ext/upb-gen/xds/type/v3/typed_struct.upb.h", "src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.c", "src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.h", + "src/core/ext/upbdefs-gen/cel/expr/checked.upbdefs.c", + "src/core/ext/upbdefs-gen/cel/expr/checked.upbdefs.h", + "src/core/ext/upbdefs-gen/cel/expr/syntax.upbdefs.c", + "src/core/ext/upbdefs-gen/cel/expr/syntax.upbdefs.h", "src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.c", "src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.h", "src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.c", @@ -1321,6 +1333,7 @@ let package = Package( "src/core/filter/blackboard.cc", "src/core/filter/blackboard.h", "src/core/filter/filter_args.h", + "src/core/filter/filter_chain.h", "src/core/filter/fused_filters.cc", "src/core/handshaker/endpoint_info/endpoint_info_handshaker.cc", "src/core/handshaker/endpoint_info/endpoint_info_handshaker.h", diff --git a/Rakefile b/Rakefile index 140e8080367e5..8aaaa32ea7a5e 100755 --- a/Rakefile +++ b/Rakefile @@ -143,7 +143,7 @@ task 'gem:native', [:plat] do |t, args| verbose = ENV['V'] || '0' grpc_config = ENV['GRPC_CONFIG'] || 'opt' - target_ruby_minor_versions = ['3.4', '3.3', '3.2', '3.1'] + target_ruby_minor_versions = ['4.0', '3.4', '3.3', '3.2', '3.1'] selected_plat = "#{args[:plat]}" # use env variable to set artifact build paralellism @@ -190,7 +190,7 @@ task 'gem:native', [:plat] do |t, args| run_rake_compiler(plat, <<~EOT) #{prepare_ccache_cmd} && \ gem update --system --no-document && \ - bundle update && \ + bundle update --all && \ bundle exec rake clean && \ bundle exec rake native:#{plat} pkg/#{spec.full_name}-#{plat}.gem pkg/#{spec.full_name}.gem \ RUBY_CC_VERSION=#{RakeCompilerDock.ruby_cc_version(*target_ruby_minor_versions)} \ @@ -232,7 +232,7 @@ task 'gem:native', [:plat] do |t, args| run_rake_compiler(plat, <<~EOT) #{prepare_ccache_cmd} && \ gem update --system --no-document && \ - bundle update && \ + bundle update --all && \ bundle exec rake clean && \ export GRPC_RUBY_DEBUG_SYMBOLS_OUTPUT_DIR=#{debug_symbols_dir} && \ bundle exec rake native:#{plat} pkg/#{spec.full_name}-#{plat}.gem pkg/#{spec.full_name}.gem \ @@ -247,7 +247,8 @@ task 'gem:native', [:plat] do |t, args| unix_platforms.each do |plat| unless unix_platforms_without_debug_symbols.include?(plat) `bash src/ruby/nativedebug/build_package.sh #{plat}` - `cp src/ruby/nativedebug/pkg/*.gem pkg/` + # Native debug gems uploaded to GCS, skip pkg/ to avoid RubyGems upload + # `cp src/ruby/nativedebug/pkg/*.gem pkg/` end end end diff --git a/bazel/BUILD b/bazel/BUILD index babba51b71a06..2852feee39af6 100644 --- a/bazel/BUILD +++ b/bazel/BUILD @@ -92,6 +92,11 @@ package_group( packages = [], ) +package_group( + name = "client_channel_internal_header", + packages = [], +) + package_group( name = "core_credentials", packages = [], diff --git a/bazel/cc_grpc_library.bzl b/bazel/cc_grpc_library.bzl index 3f4f5347fbab3..9f7e21be00d22 100644 --- a/bazel/cc_grpc_library.bzl +++ b/bazel/cc_grpc_library.bzl @@ -14,6 +14,7 @@ """Generates and compiles C++ grpc stubs from proto_library rules.""" load("@com_google_protobuf//bazel:cc_proto_library.bzl", "cc_proto_library") +load("@rules_cc//cc:cc_library.bzl", "cc_library") load("@rules_proto//proto:defs.bzl", "proto_library") load("//bazel:generate_cc.bzl", "generate_cc") load("//bazel:protobuf.bzl", "well_known_proto_libs") @@ -112,7 +113,7 @@ def cc_grpc_library( **kwargs ) - native.cc_library( + cc_library( name = name, srcs = [":" + codegen_grpc_target], hdrs = [":" + codegen_grpc_target], diff --git a/bazel/cython_library.bzl b/bazel/cython_library.bzl index ed6ccc34acb7b..dc7f518e1105a 100644 --- a/bazel/cython_library.bzl +++ b/bazel/cython_library.bzl @@ -13,6 +13,7 @@ # limitations under the License. """Custom rules for gRPC Python""" +load("@rules_cc//cc:cc_binary.bzl", "cc_binary") load("@rules_python//python:defs.bzl", "py_library") # Adapted with modifications from @@ -71,7 +72,7 @@ def pyx_library(name, deps = [], py_deps = [], srcs = [], **kwargs): for src in pyx_srcs: stem = src.split(".")[0] shared_object_name = stem + ".so" - native.cc_binary( + cc_binary( name = shared_object_name, srcs = [stem + ".cpp"], deps = deps + ["@local_config_python//:python_headers"], diff --git a/bazel/experiments.bzl b/bazel/experiments.bzl index 002d7adecc931..aeeb547b78d80 100644 --- a/bazel/experiments.bzl +++ b/bazel/experiments.bzl @@ -20,11 +20,9 @@ EXPERIMENT_ENABLES = { "buffer_list_deletion_prep": "buffer_list_deletion_prep", "call_tracer_in_transport": "call_tracer_in_transport", "call_tracer_send_initial_metadata_is_an_annotation": "call_tracer_send_initial_metadata_is_an_annotation", - "channelz_use_v2_for_v1_api": "channelz_use_v2_for_v1_api", - "channelz_use_v2_for_v1_service": "channelz_use_v2_for_v1_service", + "call_tracer_send_trailing_metadata_is_an_annotation": "call_tracer_send_trailing_metadata_is_an_annotation", "chaotic_good_connect_deadline": "chaotic_good_connect_deadline", "chaotic_good_framing_layer": "chaotic_good_framing_layer", - "chttp2_bound_write_size": "chttp2_bound_write_size", "error_flatten": "error_flatten", "event_engine_client": "event_engine_client", "event_engine_dns": "event_engine_dns", @@ -71,6 +69,7 @@ EXPERIMENT_ENABLES = { "track_zero_copy_allocations_in_resource_quota": "track_zero_copy_allocations_in_resource_quota", "tsi_frame_protector_without_locks": "tsi_frame_protector_without_locks", "unconstrained_max_quota_buffer_size": "unconstrained_max_quota_buffer_size", + "use_call_event_engine_in_completion_queue": "use_call_event_engine_in_completion_queue", } EXPERIMENT_POLLERS = [ @@ -90,16 +89,11 @@ EXPERIMENTS = { "dbg": { }, "off": { - "channelz_test": [ - "channelz_use_v2_for_v1_api", - "channelz_use_v2_for_v1_service", - ], "chttp2_keepalive_tests": [ "subchannel_connection_scaling", ], "core_end2end_test": [ "buffer_list_deletion_prep", - "chttp2_bound_write_size", "error_flatten", "event_engine_fork", "local_connector_secure", @@ -111,6 +105,8 @@ EXPERIMENTS = { "retry_in_callv3", "secure_endpoint_offload_large_reads", "secure_endpoint_offload_large_writes", + "subchannel_connection_scaling", + "use_call_event_engine_in_completion_queue", ], "cpp_end2end_test": [ "error_flatten", @@ -120,8 +116,6 @@ EXPERIMENTS = { "promise_based_http2_client_transport", ], "cpp_lb_end2end_test": [ - "pick_first_ready_to_connecting", - "rr_wrr_connect_from_random_index", "subchannel_connection_scaling", ], "endpoint_test": [ @@ -139,10 +133,6 @@ EXPERIMENTS = { "tcp_frame_size_tuning", "tcp_rcv_lowat", ], - "lb_unit_test": [ - "pick_first_ready_to_connecting", - "rr_wrr_connect_from_random_index", - ], "minimal_stack_test": [ "fuse_filters", ], @@ -179,12 +169,20 @@ EXPERIMENTS = { "event_engine_listener", "event_engine_secure_endpoint", ], + "cpp_lb_end2end_test": [ + "pick_first_ready_to_connecting", + "rr_wrr_connect_from_random_index", + ], "event_engine_client_test": [ "event_engine_client", ], "event_engine_listener_test": [ "event_engine_listener", ], + "lb_unit_test": [ + "pick_first_ready_to_connecting", + "rr_wrr_connect_from_random_index", + ], "posix_endpoint_test": [ "event_engine_secure_endpoint", ], @@ -203,16 +201,11 @@ EXPERIMENTS = { "dbg": { }, "off": { - "channelz_test": [ - "channelz_use_v2_for_v1_api", - "channelz_use_v2_for_v1_service", - ], "chttp2_keepalive_tests": [ "subchannel_connection_scaling", ], "core_end2end_test": [ "buffer_list_deletion_prep", - "chttp2_bound_write_size", "error_flatten", "event_engine_fork", "local_connector_secure", @@ -224,6 +217,8 @@ EXPERIMENTS = { "retry_in_callv3", "secure_endpoint_offload_large_reads", "secure_endpoint_offload_large_writes", + "subchannel_connection_scaling", + "use_call_event_engine_in_completion_queue", ], "cpp_end2end_test": [ "error_flatten", @@ -233,8 +228,6 @@ EXPERIMENTS = { "promise_based_http2_client_transport", ], "cpp_lb_end2end_test": [ - "pick_first_ready_to_connecting", - "rr_wrr_connect_from_random_index", "subchannel_connection_scaling", ], "endpoint_test": [ @@ -252,10 +245,6 @@ EXPERIMENTS = { "tcp_frame_size_tuning", "tcp_rcv_lowat", ], - "lb_unit_test": [ - "pick_first_ready_to_connecting", - "rr_wrr_connect_from_random_index", - ], "minimal_stack_test": [ "fuse_filters", ], @@ -292,12 +281,20 @@ EXPERIMENTS = { "event_engine_listener", "event_engine_secure_endpoint", ], + "cpp_lb_end2end_test": [ + "pick_first_ready_to_connecting", + "rr_wrr_connect_from_random_index", + ], "event_engine_client_test": [ "event_engine_client", ], "event_engine_listener_test": [ "event_engine_listener", ], + "lb_unit_test": [ + "pick_first_ready_to_connecting", + "rr_wrr_connect_from_random_index", + ], "posix_endpoint_test": [ "event_engine_secure_endpoint", ], @@ -316,16 +313,11 @@ EXPERIMENTS = { "dbg": { }, "off": { - "channelz_test": [ - "channelz_use_v2_for_v1_api", - "channelz_use_v2_for_v1_service", - ], "chttp2_keepalive_tests": [ "subchannel_connection_scaling", ], "core_end2end_test": [ "buffer_list_deletion_prep", - "chttp2_bound_write_size", "error_flatten", "event_engine_fork", "local_connector_secure", @@ -337,6 +329,8 @@ EXPERIMENTS = { "retry_in_callv3", "secure_endpoint_offload_large_reads", "secure_endpoint_offload_large_writes", + "subchannel_connection_scaling", + "use_call_event_engine_in_completion_queue", ], "cpp_end2end_test": [ "error_flatten", @@ -346,8 +340,6 @@ EXPERIMENTS = { "promise_based_http2_client_transport", ], "cpp_lb_end2end_test": [ - "pick_first_ready_to_connecting", - "rr_wrr_connect_from_random_index", "subchannel_connection_scaling", ], "endpoint_test": [ @@ -365,10 +357,6 @@ EXPERIMENTS = { "tcp_frame_size_tuning", "tcp_rcv_lowat", ], - "lb_unit_test": [ - "pick_first_ready_to_connecting", - "rr_wrr_connect_from_random_index", - ], "minimal_stack_test": [ "fuse_filters", ], @@ -405,12 +393,20 @@ EXPERIMENTS = { "event_engine_listener", "event_engine_secure_endpoint", ], + "cpp_lb_end2end_test": [ + "pick_first_ready_to_connecting", + "rr_wrr_connect_from_random_index", + ], "event_engine_client_test": [ "event_engine_client", ], "event_engine_listener_test": [ "event_engine_listener", ], + "lb_unit_test": [ + "pick_first_ready_to_connecting", + "rr_wrr_connect_from_random_index", + ], "posix_endpoint_test": [ "event_engine_secure_endpoint", ], diff --git a/bazel/googleapis/patches/fix_google_cloud_cpp.patch b/bazel/googleapis/patches/fix_google_cloud_cpp.patch new file mode 100644 index 0000000000000..4b5506ea037d5 --- /dev/null +++ b/bazel/googleapis/patches/fix_google_cloud_cpp.patch @@ -0,0 +1,25 @@ +# Inspired by https://github.com/googleapis/google-cloud-cpp/blob/2839e9dba793ca023e11ea67f201f66f74fa7d3e/bazel/googleapis.BUILD +diff --git a/BUILD.bazel b/BUILD.bazel +index 026553f5c..7c7bc0419 100644 +--- a/BUILD.bazel ++++ b/BUILD.bazel +@@ -1,3 +1,19 @@ ++package(default_visibility = ["//visibility:public"]) ++ ++licenses(["notice"]) # Apache 2.0 ++ ++# This build file overlays on top of the BUILD files for the googleapis repo, ++# and it adds a target that lets us include their header files using ++# angle-brackets, thus treating their headers as system includes. This allows ++# us to dial-up the warnings in our own code, without seeing compiler warnings ++# from their headers, which we do not own. ++cc_library( ++ name = "googleapis_system_includes", ++ includes = [ ++ ".", ++ ], ++) ++ + genrule( + name = "build_gen", + srcs = glob( diff --git a/bazel/grpc_build_system.bzl b/bazel/grpc_build_system.bzl index 6ee535f85814f..66d6368325c81 100644 --- a/bazel/grpc_build_system.bzl +++ b/bazel/grpc_build_system.bzl @@ -32,8 +32,13 @@ load("@build_bazel_rules_apple//apple:ios.bzl", "ios_unit_test") load("@build_bazel_rules_apple//apple/testing/default_runner:ios_test_runner.bzl", "ios_test_runner") load("@com_google_protobuf//bazel:cc_proto_library.bzl", "cc_proto_library") load("@com_google_protobuf//bazel:upb_proto_library.bzl", "upb_proto_library", "upb_proto_reflection_library") +load("@rules_cc//cc:cc_binary.bzl", "cc_binary") +load("@rules_cc//cc:cc_library.bzl", "cc_library") +load("@rules_cc//cc:cc_test.bzl", "cc_test") load("@rules_proto//proto:defs.bzl", "proto_library") load("@rules_python//python:defs.bzl", "py_binary") +load("@rules_shell//shell:sh_binary.bzl", "sh_binary") +load("@rules_shell//shell:sh_test.bzl", "sh_test") load("//bazel:cc_grpc_library.bzl", "cc_grpc_library") load("//bazel:copts.bzl", "GRPC_DEFAULT_COPTS") load("//bazel:experiments.bzl", "EXPERIMENTS", "EXPERIMENT_ENABLES", "EXPERIMENT_POLLERS") @@ -151,7 +156,7 @@ def grpc_cc_library( # See b/391433873. if "fuzztest" in external_deps and "grpc-fuzztest" not in tags: tags = tags + ["grpc-fuzztest"] - native.cc_library( + cc_library( name = name, srcs = srcs, defines = defines + @@ -186,7 +191,7 @@ def grpc_cc_library( ) def grpc_proto_plugin(name, srcs = [], deps = []): - native.cc_binary( + cc_binary( name = name + "_native", srcs = srcs, deps = deps, @@ -582,7 +587,7 @@ def grpc_cc_test(name, srcs = [], deps = [], external_deps = [], args = [], data **test_args ) - native.cc_library( + cc_library( name = "%s_TEST_LIBRARY" % name, testonly = 1, srcs = srcs, @@ -596,7 +601,7 @@ def grpc_cc_test(name, srcs = [], deps = [], external_deps = [], args = [], data fail("srcs changed") if poller_config["deps"] != core_deps: fail("deps changed: %r --> %r" % (deps, poller_config["deps"])) - native.cc_test( + cc_test( name = poller_config["name"], deps = ["%s_TEST_LIBRARY" % name], tags = poller_config["tags"], @@ -626,7 +631,7 @@ def grpc_cc_binary(name, srcs = [], deps = [], external_deps = [], args = [], da """ visibility = _update_visibility(visibility) copts = [] - native.cc_binary( + cc_binary( name = name, srcs = srcs, args = args, @@ -693,7 +698,7 @@ def grpc_sh_test(name, srcs = [], args = [], data = [], uses_polling = True, siz } for poller_config in expand_tests(name, srcs, [], tags, args, exclude_pollers, uses_polling, uses_event_engine, flaky): - native.sh_test( + sh_test( name = poller_config["name"], srcs = poller_config["srcs"], deps = poller_config["deps"], @@ -705,7 +710,7 @@ def grpc_sh_test(name, srcs = [], args = [], data = [], uses_polling = True, siz ) def grpc_sh_binary(name, srcs, data = []): - native.sh_binary( + sh_binary( name = name, srcs = srcs, data = data, diff --git a/bazel/grpc_deps.bzl b/bazel/grpc_deps.bzl index a9e16cfa0e9e1..c5e976e56a8d9 100644 --- a/bazel/grpc_deps.bzl +++ b/bazel/grpc_deps.bzl @@ -351,11 +351,22 @@ def grpc_deps(): if "com_github_cncf_xds" not in native.existing_rules(): http_archive( name = "com_github_cncf_xds", - sha256 = "dc305e20c9fa80822322271b50aa2ffa917bf4fd3973bcec52bfc28dc32c5927", - strip_prefix = "xds-3a472e524827f72d1ad621c4983dd5af54c46776", + sha256 = "49535f3c3370004309da50194c09bbfc528d4702424dd46e7d56a278a3dfc15d", + strip_prefix = "xds-ee656c7534f5d7dc23d44dd611689568f72017a6", urls = [ - "https://storage.googleapis.com/grpc-bazel-mirror/github.com/cncf/xds/archive/3a472e524827f72d1ad621c4983dd5af54c46776.tar.gz", - "https://github.com/cncf/xds/archive/3a472e524827f72d1ad621c4983dd5af54c46776.tar.gz", + "https://storage.googleapis.com/grpc-bazel-mirror/github.com/cncf/xds/archive/ee656c7534f5d7dc23d44dd611689568f72017a6.tar.gz", + "https://github.com/cncf/xds/archive/ee656c7534f5d7dc23d44dd611689568f72017a6.tar.gz", + ], + ) + + if "dev_cel" not in native.existing_rules(): + http_archive( + name = "dev_cel", + sha256 = "d6cb6b4ed272500d16546c672a65a7452b241462a200dda3f62a7de413883344", + strip_prefix = "cel-spec-9f069b3ee58b02d6f6736c5ebd6587075c1a1b22", + urls = [ + "https://storage.googleapis.com/grpc-bazel-mirror/github.com/google/cel-spec/archive/9f069b3ee58b02d6f6736c5ebd6587075c1a1b22.tar.gz", + "https://github.com/google/cel-spec/archive/9f069b3ee58b02d6f6736c5ebd6587075c1a1b22.tar.gz", ], ) diff --git a/build_autogenerated.yaml b/build_autogenerated.yaml index 1a4e08366a8b0..bbff0b19b8ffd 100644 --- a/build_autogenerated.yaml +++ b/build_autogenerated.yaml @@ -246,6 +246,7 @@ libs: - src/core/client_channel/subchannel_interface_internal.h - src/core/client_channel/subchannel_pool_interface.h - src/core/client_channel/subchannel_stream_client.h + - src/core/client_channel/subchannel_stream_limiter.h - src/core/config/core_configuration.h - src/core/credentials/call/call_credentials.h - src/core/credentials/call/call_creds_registry.h @@ -371,6 +372,10 @@ libs: - src/core/ext/transport/chttp2/transport/write_size_policy.h - src/core/ext/transport/inproc/inproc_transport.h - src/core/ext/transport/inproc/legacy_inproc_transport.h + - src/core/ext/upb-gen/cel/expr/checked.upb.h + - src/core/ext/upb-gen/cel/expr/checked.upb_minitable.h + - src/core/ext/upb-gen/cel/expr/syntax.upb.h + - src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.h - src/core/ext/upb-gen/envoy/admin/v3/certs.upb.h - src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.h - src/core/ext/upb-gen/envoy/admin/v3/clusters.upb.h @@ -719,6 +724,8 @@ libs: - src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.h - src/core/ext/upb-gen/xds/type/v3/typed_struct.upb.h - src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.h + - src/core/ext/upbdefs-gen/cel/expr/checked.upbdefs.h + - src/core/ext/upbdefs-gen/cel/expr/syntax.upbdefs.h - src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.h - src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.h - src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.h @@ -883,6 +890,7 @@ libs: - src/core/filter/auth/auth_filters.h - src/core/filter/blackboard.h - src/core/filter/filter_args.h + - src/core/filter/filter_chain.h - src/core/handshaker/endpoint_info/endpoint_info_handshaker.h - src/core/handshaker/handshaker.h - src/core/handshaker/handshaker_factory.h @@ -1391,6 +1399,7 @@ libs: - src/core/client_channel/subchannel.cc - src/core/client_channel/subchannel_pool_interface.cc - src/core/client_channel/subchannel_stream_client.cc + - src/core/client_channel/subchannel_stream_limiter.cc - src/core/config/core_configuration.cc - src/core/credentials/call/call_creds_registry_init.cc - src/core/credentials/call/call_creds_util.cc @@ -1511,6 +1520,8 @@ libs: - src/core/ext/transport/chttp2/transport/writing.cc - src/core/ext/transport/inproc/inproc_transport.cc - src/core/ext/transport/inproc/legacy_inproc_transport.cc + - src/core/ext/upb-gen/cel/expr/checked.upb_minitable.c + - src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.c - src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.c - src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c - src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.c @@ -1685,6 +1696,8 @@ libs: - src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c - src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.c - src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.c + - src/core/ext/upbdefs-gen/cel/expr/checked.upbdefs.c + - src/core/ext/upbdefs-gen/cel/expr/syntax.upbdefs.c - src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.c - src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.c - src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.c @@ -2458,6 +2471,7 @@ libs: - src/core/client_channel/subchannel_interface_internal.h - src/core/client_channel/subchannel_pool_interface.h - src/core/client_channel/subchannel_stream_client.h + - src/core/client_channel/subchannel_stream_limiter.h - src/core/config/core_configuration.h - src/core/credentials/call/call_credentials.h - src/core/credentials/call/call_creds_registry.h @@ -2545,8 +2559,6 @@ libs: - src/core/ext/transport/chttp2/transport/write_size_policy.h - src/core/ext/transport/inproc/inproc_transport.h - src/core/ext/transport/inproc/legacy_inproc_transport.h - - src/core/ext/upb-gen/google/api/annotations.upb.h - - src/core/ext/upb-gen/google/api/annotations.upb_minitable.h - src/core/ext/upb-gen/google/api/http.upb.h - src/core/ext/upb-gen/google/api/http.upb_minitable.h - src/core/ext/upb-gen/google/protobuf/any.upb.h @@ -2602,6 +2614,7 @@ libs: - src/core/filter/auth/auth_filters.h - src/core/filter/blackboard.h - src/core/filter/filter_args.h + - src/core/filter/filter_chain.h - src/core/handshaker/endpoint_info/endpoint_info_handshaker.h - src/core/handshaker/handshaker.h - src/core/handshaker/handshaker_factory.h @@ -3016,6 +3029,7 @@ libs: - src/core/client_channel/subchannel.cc - src/core/client_channel/subchannel_pool_interface.cc - src/core/client_channel/subchannel_stream_client.cc + - src/core/client_channel/subchannel_stream_limiter.cc - src/core/config/core_configuration.cc - src/core/credentials/call/call_creds_util.cc - src/core/credentials/call/composite/composite_call_credentials.cc @@ -3094,7 +3108,6 @@ libs: - src/core/ext/transport/chttp2/transport/writing.cc - src/core/ext/transport/inproc/inproc_transport.cc - src/core/ext/transport/inproc/legacy_inproc_transport.cc - - src/core/ext/upb-gen/google/api/annotations.upb_minitable.c - src/core/ext/upb-gen/google/api/http.upb_minitable.c - src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c - src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c @@ -3892,7 +3905,6 @@ libs: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -5716,6 +5728,8 @@ targets: - src/cpp/server/csds/csds.h - third_party/protoc-gen-validate/validate/validate.h src: + - third_party/cel-spec/proto/cel/expr/checked.proto + - third_party/cel-spec/proto/cel/expr/syntax.proto - third_party/envoy-api/envoy/admin/v3/certs.proto - third_party/envoy-api/envoy/admin/v3/clusters.proto - third_party/envoy-api/envoy/admin/v3/config_dump.proto @@ -6291,7 +6305,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -8167,6 +8180,10 @@ targets: build: test language: c++ headers: + - src/core/ext/upb-gen/cel/expr/checked.upb.h + - src/core/ext/upb-gen/cel/expr/checked.upb_minitable.h + - src/core/ext/upb-gen/cel/expr/syntax.upb.h + - src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.h - src/core/ext/upb-gen/envoy/annotations/deprecation.upb.h - src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.h - src/core/ext/upb-gen/envoy/annotations/resource.upb.h @@ -8359,6 +8376,8 @@ targets: - src/core/lib/security/authorization/mock_cel/evaluator_core.h - src/core/lib/security/authorization/mock_cel/flat_expr_builder.h src: + - src/core/ext/upb-gen/cel/expr/checked.upb_minitable.c + - src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.c - src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.c - src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.c - src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb_minitable.c @@ -8528,7 +8547,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -8641,7 +8659,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -8831,7 +8848,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -9112,7 +9128,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -9181,7 +9196,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -9224,7 +9238,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -9251,7 +9264,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -9270,18 +9282,21 @@ targets: headers: - src/cpp/server/orca/orca_service.h - test/core/test_util/postmortem.h + - test/core/test_util/scoped_env_var.h - test/core/test_util/test_lb_policies.h - test/cpp/end2end/connection_attempt_injector.h - test/cpp/end2end/end2end_test_utils.h - test/cpp/end2end/test_service_impl.h + - test/cpp/util/channelz_util.h - third_party/protoc-gen-validate/validate/validate.h src: + - src/proto/grpc/channelz/v2/channelz.proto + - src/proto/grpc/channelz/v2/property_list.proto - src/proto/grpc/health/v1/health.proto - src/proto/grpc/testing/duplicate/echo_duplicate.proto - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/api/httpbody.proto - third_party/googleapis/google/rpc/status.proto @@ -9292,6 +9307,7 @@ targets: - test/cpp/end2end/client_lb_end2end_test.cc - test/cpp/end2end/connection_attempt_injector.cc - test/cpp/end2end/test_service_impl.cc + - test/cpp/util/channelz_util.cc deps: - gtest - grpc++_test_util @@ -9501,7 +9517,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -9731,7 +9746,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -9779,7 +9793,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -9974,6 +9987,7 @@ targets: - test/core/test_util/fuzz_config_vars.h - test/core/test_util/passthrough_endpoint.h - test/core/test_util/postmortem.h + - test/core/test_util/scoped_env_var.h - test/core/test_util/test_call_creds.h - test/core/test_util/test_lb_policies.h src: @@ -10104,6 +10118,7 @@ targets: - test/core/test_util/fuzz_config_vars.h - test/core/test_util/passthrough_endpoint.h - test/core/test_util/postmortem.h + - test/core/test_util/scoped_env_var.h - test/core/test_util/test_call_creds.h - test/core/test_util/test_lb_policies.h src: @@ -10156,6 +10171,7 @@ targets: - test/core/end2end/tests/channelz.cc - test/core/end2end/tests/client_streaming.cc - test/core/end2end/tests/compressed_payload.cc + - test/core/end2end/tests/connection_scaling.cc - test/core/end2end/tests/connectivity.cc - test/core/end2end/tests/default_host.cc - test/core/end2end/tests/disappearing_server.cc @@ -10322,6 +10338,7 @@ targets: - test/core/test_util/fuzz_config_vars.h - test/core/test_util/passthrough_endpoint.h - test/core/test_util/postmortem.h + - test/core/test_util/scoped_env_var.h - test/core/test_util/test_call_creds.h - test/core/test_util/test_lb_policies.h src: @@ -10448,6 +10465,7 @@ targets: - test/core/test_util/fuzz_config_vars.h - test/core/test_util/passthrough_endpoint.h - test/core/test_util/postmortem.h + - test/core/test_util/scoped_env_var.h - test/core/test_util/test_call_creds.h - test/core/test_util/test_lb_policies.h src: @@ -10574,6 +10592,7 @@ targets: - test/core/test_util/fuzz_config_vars.h - test/core/test_util/passthrough_endpoint.h - test/core/test_util/postmortem.h + - test/core/test_util/scoped_env_var.h - test/core/test_util/test_call_creds.h - test/core/test_util/test_lb_policies.h src: @@ -10626,6 +10645,7 @@ targets: - test/core/end2end/tests/channelz.cc - test/core/end2end/tests/client_streaming.cc - test/core/end2end/tests/compressed_payload.cc + - test/core/end2end/tests/connection_scaling.cc - test/core/end2end/tests/connectivity.cc - test/core/end2end/tests/default_host.cc - test/core/end2end/tests/disappearing_server.cc @@ -10788,6 +10808,7 @@ targets: - test/core/test_util/fuzz_config_vars.h - test/core/test_util/passthrough_endpoint.h - test/core/test_util/postmortem.h + - test/core/test_util/scoped_env_var.h - test/core/test_util/test_call_creds.h - test/core/test_util/test_lb_policies.h src: @@ -10840,6 +10861,7 @@ targets: - test/core/end2end/tests/channelz.cc - test/core/end2end/tests/client_streaming.cc - test/core/end2end/tests/compressed_payload.cc + - test/core/end2end/tests/connection_scaling.cc - test/core/end2end/tests/connectivity.cc - test/core/end2end/tests/default_host.cc - test/core/end2end/tests/disappearing_server.cc @@ -11002,6 +11024,7 @@ targets: - test/core/test_util/fuzz_config_vars.h - test/core/test_util/passthrough_endpoint.h - test/core/test_util/postmortem.h + - test/core/test_util/scoped_env_var.h - test/core/test_util/test_call_creds.h - test/core/test_util/test_lb_policies.h src: @@ -11128,6 +11151,7 @@ targets: - test/core/test_util/fuzz_config_vars.h - test/core/test_util/passthrough_endpoint.h - test/core/test_util/postmortem.h + - test/core/test_util/scoped_env_var.h - test/core/test_util/test_call_creds.h - test/core/test_util/test_lb_policies.h src: @@ -11180,6 +11204,7 @@ targets: - test/core/end2end/tests/channelz.cc - test/core/end2end/tests/client_streaming.cc - test/core/end2end/tests/compressed_payload.cc + - test/core/end2end/tests/connection_scaling.cc - test/core/end2end/tests/connectivity.cc - test/core/end2end/tests/default_host.cc - test/core/end2end/tests/disappearing_server.cc @@ -11342,6 +11367,7 @@ targets: - test/core/test_util/fuzz_config_vars.h - test/core/test_util/passthrough_endpoint.h - test/core/test_util/postmortem.h + - test/core/test_util/scoped_env_var.h - test/core/test_util/test_call_creds.h - test/core/test_util/test_lb_policies.h src: @@ -11468,6 +11494,7 @@ targets: - test/core/test_util/fuzz_config_vars.h - test/core/test_util/passthrough_endpoint.h - test/core/test_util/postmortem.h + - test/core/test_util/scoped_env_var.h - test/core/test_util/test_call_creds.h - test/core/test_util/test_lb_policies.h src: @@ -11520,6 +11547,7 @@ targets: - test/core/end2end/tests/channelz.cc - test/core/end2end/tests/client_streaming.cc - test/core/end2end/tests/compressed_payload.cc + - test/core/end2end/tests/connection_scaling.cc - test/core/end2end/tests/connectivity.cc - test/core/end2end/tests/default_host.cc - test/core/end2end/tests/disappearing_server.cc @@ -11682,6 +11710,7 @@ targets: - test/core/test_util/fuzz_config_vars.h - test/core/test_util/passthrough_endpoint.h - test/core/test_util/postmortem.h + - test/core/test_util/scoped_env_var.h - test/core/test_util/test_call_creds.h - test/core/test_util/test_lb_policies.h src: @@ -11808,6 +11837,7 @@ targets: - test/core/test_util/fuzz_config_vars.h - test/core/test_util/passthrough_endpoint.h - test/core/test_util/postmortem.h + - test/core/test_util/scoped_env_var.h - test/core/test_util/test_call_creds.h - test/core/test_util/test_lb_policies.h src: @@ -11860,6 +11890,7 @@ targets: - test/core/end2end/tests/channelz.cc - test/core/end2end/tests/client_streaming.cc - test/core/end2end/tests/compressed_payload.cc + - test/core/end2end/tests/connection_scaling.cc - test/core/end2end/tests/connectivity.cc - test/core/end2end/tests/default_host.cc - test/core/end2end/tests/disappearing_server.cc @@ -11966,7 +11997,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -12088,7 +12118,6 @@ targets: headers: [] src: - src/proto/grpc/testing/echo_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -12197,7 +12226,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -13189,7 +13217,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -14239,7 +14266,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -14373,7 +14399,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -14609,7 +14634,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -14681,7 +14705,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -14914,7 +14937,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -15383,7 +15405,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -18902,7 +18923,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -18999,7 +19019,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -19019,7 +19038,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -19078,7 +19096,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -19340,7 +19357,6 @@ targets: - test/cpp/end2end/end2end_test_utils.h src: - src/proto/grpc/testing/xds/v3/orca_service.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -19401,7 +19417,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -19436,7 +19451,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -19472,7 +19486,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -19509,7 +19522,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -20068,7 +20080,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -20225,6 +20236,8 @@ targets: - src/proto/grpc/testing/istio_echo.proto - src/proto/grpc/testing/messages.proto - src/proto/grpc/testing/test.proto + - third_party/cel-spec/proto/cel/expr/checked.proto + - third_party/cel-spec/proto/cel/expr/syntax.proto - third_party/envoy-api/envoy/admin/v3/certs.proto - third_party/envoy-api/envoy/admin/v3/clusters.proto - third_party/envoy-api/envoy/admin/v3/config_dump.proto @@ -21406,7 +21419,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -22073,7 +22085,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -22474,7 +22485,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -22582,7 +22592,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -22879,7 +22888,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -22899,7 +22907,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -22924,7 +22931,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -22991,7 +22997,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -23012,7 +23017,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -23046,7 +23050,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -23097,7 +23100,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -23174,7 +23176,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -23312,7 +23313,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -23873,7 +23873,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -23932,6 +23931,17 @@ targets: - gtest - grpc_test_util uses_polling: false +- name: subchannel_stream_limiter_test + gtest: true + build: test + language: c++ + headers: [] + src: + - test/core/client_channel/subchannel_stream_limiter_test.cc + deps: + - gtest + - grpc_test_util + uses_polling: false - name: switch_test gtest: true build: test @@ -24690,7 +24700,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -24710,7 +24719,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -24989,7 +24997,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -25134,7 +25141,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -27066,7 +27072,6 @@ targets: - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -27097,6 +27102,8 @@ targets: - third_party/utf8_range/utf8_validity.h src: - src/proto/grpc/reflection/v1alpha/reflection.proto + - third_party/cel-spec/proto/cel/expr/checked.proto + - third_party/cel-spec/proto/cel/expr/syntax.proto - third_party/envoy-api/envoy/annotations/deprecation.proto - third_party/envoy-api/envoy/annotations/resource.proto - third_party/envoy-api/envoy/config/common/mutation_rules/v3/mutation_rules.proto @@ -27236,6 +27243,8 @@ targets: - third_party/protoc-gen-validate/validate/validate.h src: - test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.proto + - third_party/cel-spec/proto/cel/expr/checked.proto + - third_party/cel-spec/proto/cel/expr/syntax.proto - third_party/envoy-api/envoy/admin/v3/certs.proto - third_party/envoy-api/envoy/admin/v3/clusters.proto - third_party/envoy-api/envoy/admin/v3/config_dump.proto @@ -27407,6 +27416,8 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto + - third_party/cel-spec/proto/cel/expr/checked.proto + - third_party/cel-spec/proto/cel/expr/syntax.proto - third_party/envoy-api/envoy/annotations/deprecation.proto - third_party/envoy-api/envoy/annotations/resource.proto - third_party/envoy-api/envoy/config/accesslog/v3/accesslog.proto @@ -27548,6 +27559,8 @@ targets: - test/core/test_util/scoped_env_var.h - third_party/protoc-gen-validate/validate/validate.h src: + - third_party/cel-spec/proto/cel/expr/checked.proto + - third_party/cel-spec/proto/cel/expr/syntax.proto - third_party/envoy-api/envoy/annotations/deprecation.proto - third_party/envoy-api/envoy/annotations/resource.proto - third_party/envoy-api/envoy/config/accesslog/v3/accesslog.proto @@ -27701,6 +27714,8 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto + - third_party/cel-spec/proto/cel/expr/checked.proto + - third_party/cel-spec/proto/cel/expr/syntax.proto - third_party/envoy-api/envoy/annotations/deprecation.proto - third_party/envoy-api/envoy/annotations/resource.proto - third_party/envoy-api/envoy/config/accesslog/v3/accesslog.proto @@ -28003,6 +28018,8 @@ targets: - third_party/utf8_range/utf8_validity.h src: - src/proto/grpc/reflection/v1alpha/reflection.proto + - third_party/cel-spec/proto/cel/expr/checked.proto + - third_party/cel-spec/proto/cel/expr/syntax.proto - third_party/envoy-api/envoy/annotations/deprecation.proto - third_party/envoy-api/envoy/annotations/resource.proto - third_party/envoy-api/envoy/config/core/v3/address.proto @@ -28191,6 +28208,8 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto + - third_party/cel-spec/proto/cel/expr/checked.proto + - third_party/cel-spec/proto/cel/expr/syntax.proto - third_party/envoy-api/envoy/annotations/deprecation.proto - third_party/envoy-api/envoy/annotations/resource.proto - third_party/envoy-api/envoy/config/accesslog/v3/accesslog.proto @@ -28333,7 +28352,6 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto - - third_party/googleapis/google/api/annotations.proto - third_party/googleapis/google/api/http.proto - third_party/googleapis/google/rpc/status.proto - third_party/protoc-gen-validate/validate/validate.proto @@ -28371,6 +28389,8 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto + - third_party/cel-spec/proto/cel/expr/checked.proto + - third_party/cel-spec/proto/cel/expr/syntax.proto - third_party/envoy-api/envoy/admin/v3/certs.proto - third_party/envoy-api/envoy/admin/v3/clusters.proto - third_party/envoy-api/envoy/admin/v3/config_dump.proto @@ -28545,6 +28565,8 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto + - third_party/cel-spec/proto/cel/expr/checked.proto + - third_party/cel-spec/proto/cel/expr/syntax.proto - third_party/envoy-api/envoy/annotations/deprecation.proto - third_party/envoy-api/envoy/annotations/resource.proto - third_party/envoy-api/envoy/config/accesslog/v3/accesslog.proto @@ -28784,6 +28806,8 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto + - third_party/cel-spec/proto/cel/expr/checked.proto + - third_party/cel-spec/proto/cel/expr/syntax.proto - third_party/envoy-api/envoy/annotations/deprecation.proto - third_party/envoy-api/envoy/annotations/resource.proto - third_party/envoy-api/envoy/config/accesslog/v3/accesslog.proto @@ -28933,6 +28957,8 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto + - third_party/cel-spec/proto/cel/expr/checked.proto + - third_party/cel-spec/proto/cel/expr/syntax.proto - third_party/envoy-api/envoy/annotations/deprecation.proto - third_party/envoy-api/envoy/annotations/resource.proto - third_party/envoy-api/envoy/config/accesslog/v3/accesslog.proto @@ -29083,6 +29109,8 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto + - third_party/cel-spec/proto/cel/expr/checked.proto + - third_party/cel-spec/proto/cel/expr/syntax.proto - third_party/envoy-api/envoy/annotations/deprecation.proto - third_party/envoy-api/envoy/annotations/resource.proto - third_party/envoy-api/envoy/config/accesslog/v3/accesslog.proto @@ -29234,6 +29262,8 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto + - third_party/cel-spec/proto/cel/expr/checked.proto + - third_party/cel-spec/proto/cel/expr/syntax.proto - third_party/envoy-api/envoy/annotations/deprecation.proto - third_party/envoy-api/envoy/annotations/resource.proto - third_party/envoy-api/envoy/config/accesslog/v3/accesslog.proto @@ -29383,6 +29413,8 @@ targets: - third_party/utf8_range/utf8_validity.h src: - src/proto/grpc/reflection/v1alpha/reflection.proto + - third_party/cel-spec/proto/cel/expr/checked.proto + - third_party/cel-spec/proto/cel/expr/syntax.proto - third_party/envoy-api/envoy/annotations/deprecation.proto - third_party/envoy-api/envoy/annotations/resource.proto - third_party/envoy-api/envoy/config/accesslog/v3/accesslog.proto @@ -29521,6 +29553,8 @@ targets: - third_party/utf8_range/utf8_validity.h src: - src/proto/grpc/reflection/v1alpha/reflection.proto + - third_party/cel-spec/proto/cel/expr/checked.proto + - third_party/cel-spec/proto/cel/expr/syntax.proto - third_party/envoy-api/envoy/annotations/deprecation.proto - third_party/envoy-api/envoy/annotations/resource.proto - third_party/envoy-api/envoy/config/cluster/v3/circuit_breaker.proto @@ -29648,6 +29682,8 @@ targets: - third_party/utf8_range/utf8_validity.h src: - src/proto/grpc/reflection/v1alpha/reflection.proto + - third_party/cel-spec/proto/cel/expr/checked.proto + - third_party/cel-spec/proto/cel/expr/syntax.proto - third_party/envoy-api/envoy/annotations/deprecation.proto - third_party/envoy-api/envoy/annotations/resource.proto - third_party/envoy-api/envoy/config/accesslog/v3/accesslog.proto @@ -29782,8 +29818,10 @@ targets: build: test language: c++ headers: - - src/core/ext/upb-gen/google/api/annotations.upb.h - - src/core/ext/upb-gen/google/api/annotations.upb_minitable.h + - src/core/ext/upb-gen/cel/expr/checked.upb.h + - src/core/ext/upb-gen/cel/expr/checked.upb_minitable.h + - src/core/ext/upb-gen/cel/expr/syntax.upb.h + - src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.h - src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb.h - src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.h - src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb.h @@ -29858,6 +29896,8 @@ targets: - src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.h - third_party/protoc-gen-validate/validate/validate.h src: + - third_party/cel-spec/proto/cel/expr/checked.proto + - third_party/cel-spec/proto/cel/expr/syntax.proto - third_party/envoy-api/envoy/annotations/deprecation.proto - third_party/envoy-api/envoy/annotations/resource.proto - third_party/envoy-api/envoy/config/common/matcher/v3/matcher.proto @@ -29943,7 +29983,8 @@ targets: - third_party/xds/xds/type/v3/cel.proto - third_party/xds/xds/type/v3/range.proto - third_party/xds/xds/type/v3/typed_struct.proto - - src/core/ext/upb-gen/google/api/annotations.upb_minitable.c + - src/core/ext/upb-gen/cel/expr/checked.upb_minitable.c + - src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.c - src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c - src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c - src/core/ext/upb-gen/google/api/http.upb_minitable.c @@ -30094,6 +30135,8 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto + - third_party/cel-spec/proto/cel/expr/checked.proto + - third_party/cel-spec/proto/cel/expr/syntax.proto - third_party/envoy-api/envoy/annotations/deprecation.proto - third_party/envoy-api/envoy/annotations/resource.proto - third_party/envoy-api/envoy/config/accesslog/v3/accesslog.proto @@ -30245,6 +30288,8 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto + - third_party/cel-spec/proto/cel/expr/checked.proto + - third_party/cel-spec/proto/cel/expr/syntax.proto - third_party/envoy-api/envoy/annotations/deprecation.proto - third_party/envoy-api/envoy/annotations/resource.proto - third_party/envoy-api/envoy/config/accesslog/v3/accesslog.proto @@ -30426,6 +30471,8 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto + - third_party/cel-spec/proto/cel/expr/checked.proto + - third_party/cel-spec/proto/cel/expr/syntax.proto - third_party/envoy-api/envoy/annotations/deprecation.proto - third_party/envoy-api/envoy/annotations/resource.proto - third_party/envoy-api/envoy/config/accesslog/v3/accesslog.proto @@ -30580,6 +30627,8 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto + - third_party/cel-spec/proto/cel/expr/checked.proto + - third_party/cel-spec/proto/cel/expr/syntax.proto - third_party/envoy-api/envoy/annotations/deprecation.proto - third_party/envoy-api/envoy/annotations/resource.proto - third_party/envoy-api/envoy/config/accesslog/v3/accesslog.proto @@ -30734,6 +30783,8 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto + - third_party/cel-spec/proto/cel/expr/checked.proto + - third_party/cel-spec/proto/cel/expr/syntax.proto - third_party/envoy-api/envoy/annotations/deprecation.proto - third_party/envoy-api/envoy/annotations/resource.proto - third_party/envoy-api/envoy/config/accesslog/v3/accesslog.proto @@ -30883,6 +30934,8 @@ targets: src: - src/proto/grpc/lookup/v1/rls_config.proto - src/proto/grpc/reflection/v1alpha/reflection.proto + - third_party/cel-spec/proto/cel/expr/checked.proto + - third_party/cel-spec/proto/cel/expr/syntax.proto - third_party/envoy-api/envoy/annotations/deprecation.proto - third_party/envoy-api/envoy/annotations/resource.proto - third_party/envoy-api/envoy/config/common/mutation_rules/v3/mutation_rules.proto @@ -31005,6 +31058,8 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto + - third_party/cel-spec/proto/cel/expr/checked.proto + - third_party/cel-spec/proto/cel/expr/syntax.proto - third_party/envoy-api/envoy/annotations/deprecation.proto - third_party/envoy-api/envoy/annotations/resource.proto - third_party/envoy-api/envoy/config/accesslog/v3/accesslog.proto @@ -31158,6 +31213,8 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto + - third_party/cel-spec/proto/cel/expr/checked.proto + - third_party/cel-spec/proto/cel/expr/syntax.proto - third_party/envoy-api/envoy/annotations/deprecation.proto - third_party/envoy-api/envoy/annotations/resource.proto - third_party/envoy-api/envoy/config/accesslog/v3/accesslog.proto @@ -31316,6 +31373,8 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto + - third_party/cel-spec/proto/cel/expr/checked.proto + - third_party/cel-spec/proto/cel/expr/syntax.proto - third_party/envoy-api/envoy/annotations/deprecation.proto - third_party/envoy-api/envoy/annotations/resource.proto - third_party/envoy-api/envoy/config/accesslog/v3/accesslog.proto @@ -31468,6 +31527,8 @@ targets: - src/proto/grpc/testing/empty.proto - src/proto/grpc/testing/messages.proto - src/proto/grpc/testing/test.proto + - third_party/cel-spec/proto/cel/expr/checked.proto + - third_party/cel-spec/proto/cel/expr/syntax.proto - third_party/envoy-api/envoy/admin/v3/certs.proto - third_party/envoy-api/envoy/admin/v3/clusters.proto - third_party/envoy-api/envoy/admin/v3/config_dump.proto @@ -31629,6 +31690,8 @@ targets: - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/simple_messages.proto + - third_party/cel-spec/proto/cel/expr/checked.proto + - third_party/cel-spec/proto/cel/expr/syntax.proto - third_party/envoy-api/envoy/annotations/deprecation.proto - third_party/envoy-api/envoy/annotations/resource.proto - third_party/envoy-api/envoy/config/accesslog/v3/accesslog.proto @@ -31783,9 +31846,18 @@ targets: - posix - mac external_proto_libraries: +- destination: third_party/cel-spec + hash: d6cb6b4ed272500d16546c672a65a7452b241462a200dda3f62a7de413883344 + proto_prefix: third_party/cel-spec/ + strip_path_prefix: proto/ + strip_prefix: cel-spec-9f069b3ee58b02d6f6736c5ebd6587075c1a1b22 + urls: + - https://storage.googleapis.com/grpc-bazel-mirror/github.com/google/cel-spec/archive/9f069b3ee58b02d6f6736c5ebd6587075c1a1b22.tar.gz + - https://github.com/google/cel-spec/archive/9f069b3ee58b02d6f6736c5ebd6587075c1a1b22.tar.gz - destination: third_party/envoy-api hash: ed5e6c319f8ebcdf24a9491f866a599bb9a3c193b859a94ad13bd31f85b46855 proto_prefix: third_party/envoy-api/ + strip_path_prefix: '' strip_prefix: data-plane-api-6ef568cf4a67362849911d1d2a546fd9f35db2ff urls: - https://storage.googleapis.com/grpc-bazel-mirror/github.com/envoyproxy/data-plane-api/archive/6ef568cf4a67362849911d1d2a546fd9f35db2ff.tar.gz @@ -31793,6 +31865,7 @@ external_proto_libraries: - destination: third_party/googleapis hash: 3de3a199400eea7a766091aeb96c4b84c86266ad1f933f9933bbb7c359e727fe proto_prefix: third_party/googleapis/ + strip_path_prefix: '' strip_prefix: googleapis-2193a2bfcecb92b92aad7a4d81baa428cafd7dfd urls: - https://storage.googleapis.com/grpc-bazel-mirror/github.com/googleapis/googleapis/archive/2193a2bfcecb92b92aad7a4d81baa428cafd7dfd.tar.gz @@ -31800,6 +31873,7 @@ external_proto_libraries: - destination: third_party/opencensus-proto/src hash: b7e13f0b4259e80c3070b583c2f39e53153085a6918718b1c710caf7037572b0 proto_prefix: third_party/opencensus-proto/src/ + strip_path_prefix: '' strip_prefix: opencensus-proto-0.3.0/src urls: - https://storage.googleapis.com/grpc-bazel-mirror/github.com/census-instrumentation/opencensus-proto/archive/v0.3.0.tar.gz @@ -31807,15 +31881,17 @@ external_proto_libraries: - destination: third_party/protoc-gen-validate hash: ab51e978326b87e06be7a12fc6496f3ff6586339043557dbbd31f622332a5d45 proto_prefix: third_party/protoc-gen-validate/ + strip_path_prefix: '' strip_prefix: protoc-gen-validate-1.2.1 urls: - https://storage.googleapis.com/grpc-bazel-mirror/github.com/bufbuild/protoc-gen-validate/archive/refs/tags/v1.2.1.zip - https://github.com/bufbuild/protoc-gen-validate/archive/refs/tags/v1.2.1.zip - destination: third_party/xds - hash: dc305e20c9fa80822322271b50aa2ffa917bf4fd3973bcec52bfc28dc32c5927 + hash: 49535f3c3370004309da50194c09bbfc528d4702424dd46e7d56a278a3dfc15d proto_prefix: third_party/xds/ - strip_prefix: xds-3a472e524827f72d1ad621c4983dd5af54c46776 + strip_path_prefix: '' + strip_prefix: xds-ee656c7534f5d7dc23d44dd611689568f72017a6 urls: - - https://storage.googleapis.com/grpc-bazel-mirror/github.com/cncf/xds/archive/3a472e524827f72d1ad621c4983dd5af54c46776.tar.gz - - https://github.com/cncf/xds/archive/3a472e524827f72d1ad621c4983dd5af54c46776.tar.gz + - https://storage.googleapis.com/grpc-bazel-mirror/github.com/cncf/xds/archive/ee656c7534f5d7dc23d44dd611689568f72017a6.tar.gz + - https://github.com/cncf/xds/archive/ee656c7534f5d7dc23d44dd611689568f72017a6.tar.gz tests: [] diff --git a/config.m4 b/config.m4 index 9d7a76efeee12..cd8a911f6f591 100644 --- a/config.m4 +++ b/config.m4 @@ -84,6 +84,7 @@ if test "$PHP_GRPC" != "no"; then src/core/client_channel/subchannel.cc \ src/core/client_channel/subchannel_pool_interface.cc \ src/core/client_channel/subchannel_stream_client.cc \ + src/core/client_channel/subchannel_stream_limiter.cc \ src/core/config/config_vars.cc \ src/core/config/config_vars_non_generated.cc \ src/core/config/core_configuration.cc \ @@ -207,6 +208,8 @@ if test "$PHP_GRPC" != "no"; then src/core/ext/transport/chttp2/transport/writing.cc \ src/core/ext/transport/inproc/inproc_transport.cc \ src/core/ext/transport/inproc/legacy_inproc_transport.cc \ + src/core/ext/upb-gen/cel/expr/checked.upb_minitable.c \ + src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.c \ src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.c \ src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c \ src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.c \ @@ -381,6 +384,8 @@ if test "$PHP_GRPC" != "no"; then src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c \ src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.c \ src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.c \ + src/core/ext/upbdefs-gen/cel/expr/checked.upbdefs.c \ + src/core/ext/upbdefs-gen/cel/expr/syntax.upbdefs.c \ src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.c \ src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.c \ src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.c \ @@ -1525,6 +1530,7 @@ if test "$PHP_GRPC" != "no"; then PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/transport/chttp2/server) PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/transport/chttp2/transport) PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/transport/inproc) + PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-gen/cel/expr) PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-gen/envoy/admin/v3) PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-gen/envoy/annotations) PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-gen/envoy/config/accesslog/v3) @@ -1585,6 +1591,7 @@ if test "$PHP_GRPC" != "no"; then PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-gen/xds/service/orca/v3) PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-gen/xds/type/matcher/v3) PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-gen/xds/type/v3) + PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-gen/cel/expr) PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-gen/envoy/admin/v3) PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-gen/envoy/annotations) PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-gen/envoy/config/accesslog/v3) diff --git a/config.w32 b/config.w32 index 45e4be8d75cb3..40b79f9611d5b 100644 --- a/config.w32 +++ b/config.w32 @@ -49,6 +49,7 @@ if (PHP_GRPC != "no") { "src\\core\\client_channel\\subchannel.cc " + "src\\core\\client_channel\\subchannel_pool_interface.cc " + "src\\core\\client_channel\\subchannel_stream_client.cc " + + "src\\core\\client_channel\\subchannel_stream_limiter.cc " + "src\\core\\config\\config_vars.cc " + "src\\core\\config\\config_vars_non_generated.cc " + "src\\core\\config\\core_configuration.cc " + @@ -172,6 +173,8 @@ if (PHP_GRPC != "no") { "src\\core\\ext\\transport\\chttp2\\transport\\writing.cc " + "src\\core\\ext\\transport\\inproc\\inproc_transport.cc " + "src\\core\\ext\\transport\\inproc\\legacy_inproc_transport.cc " + + "src\\core\\ext\\upb-gen\\cel\\expr\\checked.upb_minitable.c " + + "src\\core\\ext\\upb-gen\\cel\\expr\\syntax.upb_minitable.c " + "src\\core\\ext\\upb-gen\\envoy\\admin\\v3\\certs.upb_minitable.c " + "src\\core\\ext\\upb-gen\\envoy\\admin\\v3\\clusters.upb_minitable.c " + "src\\core\\ext\\upb-gen\\envoy\\admin\\v3\\config_dump.upb_minitable.c " + @@ -346,6 +349,8 @@ if (PHP_GRPC != "no") { "src\\core\\ext\\upb-gen\\xds\\type\\v3\\cel.upb_minitable.c " + "src\\core\\ext\\upb-gen\\xds\\type\\v3\\range.upb_minitable.c " + "src\\core\\ext\\upb-gen\\xds\\type\\v3\\typed_struct.upb_minitable.c " + + "src\\core\\ext\\upbdefs-gen\\cel\\expr\\checked.upbdefs.c " + + "src\\core\\ext\\upbdefs-gen\\cel\\expr\\syntax.upbdefs.c " + "src\\core\\ext\\upbdefs-gen\\envoy\\admin\\v3\\certs.upbdefs.c " + "src\\core\\ext\\upbdefs-gen\\envoy\\admin\\v3\\clusters.upbdefs.c " + "src\\core\\ext\\upbdefs-gen\\envoy\\admin\\v3\\config_dump.upbdefs.c " + @@ -1522,6 +1527,8 @@ if (PHP_GRPC != "no") { FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\transport\\chttp2\\transport"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\transport\\inproc"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-gen"); + FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-gen\\cel"); + FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-gen\\cel\\expr"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-gen\\envoy"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-gen\\envoy\\admin"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-gen\\envoy\\admin\\v3"); @@ -1658,6 +1665,8 @@ if (PHP_GRPC != "no") { FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-gen\\xds\\type\\matcher\\v3"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-gen\\xds\\type\\v3"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-gen"); + FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-gen\\cel"); + FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-gen\\cel\\expr"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-gen\\envoy"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-gen\\envoy\\admin"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-gen\\envoy\\admin\\v3"); diff --git a/doc/trace_flags.md b/doc/trace_flags.md index 22d4c234d6926..80f878666b9ab 100644 --- a/doc/trace_flags.md +++ b/doc/trace_flags.md @@ -67,6 +67,7 @@ processing requests via debug logs. Available tracers include: - server_channel - Lightweight trace of significant server channel events. - stateful_session_filter - Stateful session affinity. - subchannel - Connectivity state of subchannels. + - subchannel_call - Call handling in the subchannel. - subchannel_pool - Subchannel pool. - tcp - Bytes in and out of a channel. - timer - Timers (alarms) in the grpc internals. diff --git a/examples/python/cancellation/client.py b/examples/python/cancellation/client.py index ce9b94b55c17b..00cb1b0199110 100644 --- a/examples/python/cancellation/client.py +++ b/examples/python/cancellation/client.py @@ -13,10 +13,6 @@ # limitations under the License. """An example of cancelling requests in gRPC.""" -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - import argparse import logging import signal diff --git a/examples/python/cancellation/search.py b/examples/python/cancellation/search.py index 3ceb9fefbc85e..bfdd77bd1129f 100644 --- a/examples/python/cancellation/search.py +++ b/examples/python/cancellation/search.py @@ -13,10 +13,6 @@ # limitations under the License. """A search algorithm over the space of all bytestrings.""" -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - import base64 import hashlib import itertools diff --git a/examples/python/cancellation/server.py b/examples/python/cancellation/server.py index d2db0b24227d8..e72fc9886b492 100644 --- a/examples/python/cancellation/server.py +++ b/examples/python/cancellation/server.py @@ -13,10 +13,6 @@ # limitations under the License. """An example of cancelling requests in gRPC.""" -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - import argparse from concurrent import futures import logging diff --git a/examples/python/compression/client.py b/examples/python/compression/client.py index 166739f7e10f5..738af74efd19b 100644 --- a/examples/python/compression/client.py +++ b/examples/python/compression/client.py @@ -13,10 +13,6 @@ # limitations under the License. """An example of compression on the client side with gRPC.""" -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - import argparse import logging diff --git a/examples/python/compression/server.py b/examples/python/compression/server.py index 2661481475b07..2f720d1fd5863 100644 --- a/examples/python/compression/server.py +++ b/examples/python/compression/server.py @@ -13,10 +13,6 @@ # limitations under the License. """An example of compression on the server side with gRPC.""" -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - import argparse from concurrent import futures import logging diff --git a/examples/python/debug/debug_server.py b/examples/python/debug/debug_server.py index 0fd31e303a1f1..f3b746108b390 100644 --- a/examples/python/debug/debug_server.py +++ b/examples/python/debug/debug_server.py @@ -13,10 +13,6 @@ # limitations under the License. """The Python example of utilizing Channelz feature.""" -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - import argparse from concurrent import futures import logging diff --git a/examples/python/debug/get_stats.py b/examples/python/debug/get_stats.py index ce2ac7db110ca..31fef67d2dc67 100644 --- a/examples/python/debug/get_stats.py +++ b/examples/python/debug/get_stats.py @@ -13,10 +13,6 @@ # limitations under the License. """Poll statistics from the server.""" -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - import argparse import logging diff --git a/examples/python/debug/send_message.py b/examples/python/debug/send_message.py index 056c1b8d6fb41..2a0e6db525b51 100644 --- a/examples/python/debug/send_message.py +++ b/examples/python/debug/send_message.py @@ -13,10 +13,6 @@ # limitations under the License. """Send multiple greeting messages to the backend.""" -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - import argparse import logging diff --git a/examples/python/errors/client.py b/examples/python/errors/client.py index 94c5a5ba731c5..ad750d3391289 100644 --- a/examples/python/errors/client.py +++ b/examples/python/errors/client.py @@ -13,8 +13,6 @@ # limitations under the License. """This example handles rich error status in client-side.""" -from __future__ import print_function - import logging from google.rpc import error_details_pb2 diff --git a/examples/python/helloworld/greeter_client.py b/examples/python/helloworld/greeter_client.py index 33fc52be36103..6283fc699d0c9 100644 --- a/examples/python/helloworld/greeter_client.py +++ b/examples/python/helloworld/greeter_client.py @@ -13,8 +13,6 @@ # limitations under the License. """The Python implementation of the GRPC helloworld.Greeter client.""" -from __future__ import print_function - import logging import grpc diff --git a/examples/python/helloworld/greeter_client_with_options.py b/examples/python/helloworld/greeter_client_with_options.py index c40fea9d2b2b5..f58f3e99fa16b 100644 --- a/examples/python/helloworld/greeter_client_with_options.py +++ b/examples/python/helloworld/greeter_client_with_options.py @@ -13,8 +13,6 @@ # limitations under the License. """gRPC Python helloworld.Greeter client with channel options and call timeout parameters.""" -from __future__ import print_function - import logging import grpc diff --git a/examples/python/interceptors/default_value/greeter_client.py b/examples/python/interceptors/default_value/greeter_client.py index d3fc5baf0edad..90dc54a4147ed 100644 --- a/examples/python/interceptors/default_value/greeter_client.py +++ b/examples/python/interceptors/default_value/greeter_client.py @@ -13,8 +13,6 @@ # limitations under the License. """The Python implementation of the gRPC helloworld.Greeter client.""" -from __future__ import print_function - import logging import default_value_client_interceptor diff --git a/examples/python/interceptors/headers/greeter_client.py b/examples/python/interceptors/headers/greeter_client.py index 351e3dcb092f3..7193369696644 100644 --- a/examples/python/interceptors/headers/greeter_client.py +++ b/examples/python/interceptors/headers/greeter_client.py @@ -13,8 +13,6 @@ # limitations under the License. """The Python implementation of the GRPC helloworld.Greeter client.""" -from __future__ import print_function - import logging import grpc diff --git a/examples/python/metadata/metadata_client.py b/examples/python/metadata/metadata_client.py index d1f01cce6f087..432ffea84e423 100644 --- a/examples/python/metadata/metadata_client.py +++ b/examples/python/metadata/metadata_client.py @@ -13,8 +13,6 @@ # limitations under the License. """Example gRPC client that gets/sets metadata (HTTP2 headers)""" -from __future__ import print_function - import logging import grpc diff --git a/examples/python/metadata/metadata_server.py b/examples/python/metadata/metadata_server.py index 8340ff632b402..7f03c0b5827e1 100644 --- a/examples/python/metadata/metadata_server.py +++ b/examples/python/metadata/metadata_server.py @@ -13,8 +13,6 @@ # limitations under the License. """Example gRPC server that gets/sets metadata (HTTP2 headers)""" -from __future__ import print_function - from concurrent import futures import logging diff --git a/examples/python/no_codegen/greeter_client.py b/examples/python/no_codegen/greeter_client.py index 47f1bca7358f0..3fe83dc7fc9ef 100644 --- a/examples/python/no_codegen/greeter_client.py +++ b/examples/python/no_codegen/greeter_client.py @@ -19,8 +19,6 @@ Several APIs used in this example are in an experimental state. """ -from __future__ import print_function - import logging import grpc diff --git a/examples/python/xds/client.py b/examples/python/xds/client.py index 4a56573eeee47..b029f1d6f43ca 100644 --- a/examples/python/xds/client.py +++ b/examples/python/xds/client.py @@ -13,8 +13,6 @@ # limitations under the License. """The Python implementation of the GRPC helloworld.Greeter client.""" -from __future__ import print_function - import argparse import logging diff --git a/examples/ruby/README.md b/examples/ruby/README.md index 2a3dec338fe8e..e8a2bde042207 100644 --- a/examples/ruby/README.md +++ b/examples/ruby/README.md @@ -31,7 +31,6 @@ INSTALL ```sh $ # from this directory - $ gem install bundler # if you don't already have bundler available $ bundle install ``` diff --git a/gRPC-C++.podspec b/gRPC-C++.podspec index 00cb6dcb7c708..397cb170c543c 100644 --- a/gRPC-C++.podspec +++ b/gRPC-C++.podspec @@ -332,6 +332,7 @@ Pod::Spec.new do |s| 'src/core/client_channel/subchannel_interface_internal.h', 'src/core/client_channel/subchannel_pool_interface.h', 'src/core/client_channel/subchannel_stream_client.h', + 'src/core/client_channel/subchannel_stream_limiter.h', 'src/core/config/config_vars.h', 'src/core/config/core_configuration.h', 'src/core/config/load_config.h', @@ -459,6 +460,10 @@ Pod::Spec.new do |s| 'src/core/ext/transport/chttp2/transport/write_size_policy.h', 'src/core/ext/transport/inproc/inproc_transport.h', 'src/core/ext/transport/inproc/legacy_inproc_transport.h', + 'src/core/ext/upb-gen/cel/expr/checked.upb.h', + 'src/core/ext/upb-gen/cel/expr/checked.upb_minitable.h', + 'src/core/ext/upb-gen/cel/expr/syntax.upb.h', + 'src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.h', 'src/core/ext/upb-gen/envoy/admin/v3/certs.upb.h', 'src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.h', 'src/core/ext/upb-gen/envoy/admin/v3/clusters.upb.h', @@ -807,6 +812,8 @@ Pod::Spec.new do |s| 'src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.h', 'src/core/ext/upb-gen/xds/type/v3/typed_struct.upb.h', 'src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.h', + 'src/core/ext/upbdefs-gen/cel/expr/checked.upbdefs.h', + 'src/core/ext/upbdefs-gen/cel/expr/syntax.upbdefs.h', 'src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.h', 'src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.h', 'src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.h', @@ -971,6 +978,7 @@ Pod::Spec.new do |s| 'src/core/filter/auth/auth_filters.h', 'src/core/filter/blackboard.h', 'src/core/filter/filter_args.h', + 'src/core/filter/filter_chain.h', 'src/core/handshaker/endpoint_info/endpoint_info_handshaker.h', 'src/core/handshaker/handshaker.h', 'src/core/handshaker/handshaker_factory.h', @@ -1726,6 +1734,7 @@ Pod::Spec.new do |s| 'src/core/client_channel/subchannel_interface_internal.h', 'src/core/client_channel/subchannel_pool_interface.h', 'src/core/client_channel/subchannel_stream_client.h', + 'src/core/client_channel/subchannel_stream_limiter.h', 'src/core/config/config_vars.h', 'src/core/config/core_configuration.h', 'src/core/config/load_config.h', @@ -1853,6 +1862,10 @@ Pod::Spec.new do |s| 'src/core/ext/transport/chttp2/transport/write_size_policy.h', 'src/core/ext/transport/inproc/inproc_transport.h', 'src/core/ext/transport/inproc/legacy_inproc_transport.h', + 'src/core/ext/upb-gen/cel/expr/checked.upb.h', + 'src/core/ext/upb-gen/cel/expr/checked.upb_minitable.h', + 'src/core/ext/upb-gen/cel/expr/syntax.upb.h', + 'src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.h', 'src/core/ext/upb-gen/envoy/admin/v3/certs.upb.h', 'src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.h', 'src/core/ext/upb-gen/envoy/admin/v3/clusters.upb.h', @@ -2201,6 +2214,8 @@ Pod::Spec.new do |s| 'src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.h', 'src/core/ext/upb-gen/xds/type/v3/typed_struct.upb.h', 'src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.h', + 'src/core/ext/upbdefs-gen/cel/expr/checked.upbdefs.h', + 'src/core/ext/upbdefs-gen/cel/expr/syntax.upbdefs.h', 'src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.h', 'src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.h', 'src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.h', @@ -2365,6 +2380,7 @@ Pod::Spec.new do |s| 'src/core/filter/auth/auth_filters.h', 'src/core/filter/blackboard.h', 'src/core/filter/filter_args.h', + 'src/core/filter/filter_chain.h', 'src/core/handshaker/endpoint_info/endpoint_info_handshaker.h', 'src/core/handshaker/handshaker.h', 'src/core/handshaker/handshaker_factory.h', diff --git a/gRPC-Core.podspec b/gRPC-Core.podspec index 6dca5b87ced1a..42dff5a2275e9 100644 --- a/gRPC-Core.podspec +++ b/gRPC-Core.podspec @@ -344,6 +344,8 @@ Pod::Spec.new do |s| 'src/core/client_channel/subchannel_pool_interface.h', 'src/core/client_channel/subchannel_stream_client.cc', 'src/core/client_channel/subchannel_stream_client.h', + 'src/core/client_channel/subchannel_stream_limiter.cc', + 'src/core/client_channel/subchannel_stream_limiter.h', 'src/core/config/config_vars.cc', 'src/core/config/config_vars.h', 'src/core/config/config_vars_non_generated.cc', @@ -594,6 +596,12 @@ Pod::Spec.new do |s| 'src/core/ext/transport/inproc/inproc_transport.h', 'src/core/ext/transport/inproc/legacy_inproc_transport.cc', 'src/core/ext/transport/inproc/legacy_inproc_transport.h', + 'src/core/ext/upb-gen/cel/expr/checked.upb.h', + 'src/core/ext/upb-gen/cel/expr/checked.upb_minitable.c', + 'src/core/ext/upb-gen/cel/expr/checked.upb_minitable.h', + 'src/core/ext/upb-gen/cel/expr/syntax.upb.h', + 'src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.c', + 'src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.h', 'src/core/ext/upb-gen/envoy/admin/v3/certs.upb.h', 'src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.c', 'src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.h', @@ -1116,6 +1124,10 @@ Pod::Spec.new do |s| 'src/core/ext/upb-gen/xds/type/v3/typed_struct.upb.h', 'src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.c', 'src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.h', + 'src/core/ext/upbdefs-gen/cel/expr/checked.upbdefs.c', + 'src/core/ext/upbdefs-gen/cel/expr/checked.upbdefs.h', + 'src/core/ext/upbdefs-gen/cel/expr/syntax.upbdefs.c', + 'src/core/ext/upbdefs-gen/cel/expr/syntax.upbdefs.h', 'src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.c', 'src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.h', 'src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.c', @@ -1444,6 +1456,7 @@ Pod::Spec.new do |s| 'src/core/filter/blackboard.cc', 'src/core/filter/blackboard.h', 'src/core/filter/filter_args.h', + 'src/core/filter/filter_chain.h', 'src/core/filter/fused_filters.cc', 'src/core/handshaker/endpoint_info/endpoint_info_handshaker.cc', 'src/core/handshaker/endpoint_info/endpoint_info_handshaker.h', @@ -2646,6 +2659,7 @@ Pod::Spec.new do |s| 'src/core/client_channel/subchannel_interface_internal.h', 'src/core/client_channel/subchannel_pool_interface.h', 'src/core/client_channel/subchannel_stream_client.h', + 'src/core/client_channel/subchannel_stream_limiter.h', 'src/core/config/config_vars.h', 'src/core/config/core_configuration.h', 'src/core/config/load_config.h', @@ -2773,6 +2787,10 @@ Pod::Spec.new do |s| 'src/core/ext/transport/chttp2/transport/write_size_policy.h', 'src/core/ext/transport/inproc/inproc_transport.h', 'src/core/ext/transport/inproc/legacy_inproc_transport.h', + 'src/core/ext/upb-gen/cel/expr/checked.upb.h', + 'src/core/ext/upb-gen/cel/expr/checked.upb_minitable.h', + 'src/core/ext/upb-gen/cel/expr/syntax.upb.h', + 'src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.h', 'src/core/ext/upb-gen/envoy/admin/v3/certs.upb.h', 'src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.h', 'src/core/ext/upb-gen/envoy/admin/v3/clusters.upb.h', @@ -3121,6 +3139,8 @@ Pod::Spec.new do |s| 'src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.h', 'src/core/ext/upb-gen/xds/type/v3/typed_struct.upb.h', 'src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.h', + 'src/core/ext/upbdefs-gen/cel/expr/checked.upbdefs.h', + 'src/core/ext/upbdefs-gen/cel/expr/syntax.upbdefs.h', 'src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.h', 'src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.h', 'src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.h', @@ -3285,6 +3305,7 @@ Pod::Spec.new do |s| 'src/core/filter/auth/auth_filters.h', 'src/core/filter/blackboard.h', 'src/core/filter/filter_args.h', + 'src/core/filter/filter_chain.h', 'src/core/handshaker/endpoint_info/endpoint_info_handshaker.h', 'src/core/handshaker/handshaker.h', 'src/core/handshaker/handshaker_factory.h', diff --git a/grpc.def b/grpc.def index 506eb0a580ca0..89ff92a031a67 100644 --- a/grpc.def +++ b/grpc.def @@ -61,10 +61,9 @@ EXPORTS grpc_tls_credentials_options_set_max_tls_version grpc_tls_credentials_options_copy grpc_tls_credentials_options_destroy - grpc_tls_credentials_options_set_certificate_provider - grpc_tls_credentials_options_watch_root_certs + grpc_tls_credentials_options_set_identity_certificate_provider + grpc_tls_credentials_options_set_root_certificate_provider grpc_tls_credentials_options_set_root_cert_name - grpc_tls_credentials_options_watch_identity_key_cert_pairs grpc_tls_credentials_options_set_identity_cert_name grpc_tls_credentials_options_set_cert_request_type grpc_tls_credentials_options_set_crl_directory diff --git a/grpc.gemspec b/grpc.gemspec index ca6f15ffbca24..532151099c2a4 100644 --- a/grpc.gemspec +++ b/grpc.gemspec @@ -36,12 +36,13 @@ Gem::Specification.new do |s| s.add_development_dependency 'bundler', '>= 1.9' s.add_development_dependency 'facter', '~> 2.4' s.add_development_dependency 'logging', '~> 2.0' + s.add_development_dependency 'syslog', '~> 0.3.0' s.add_development_dependency 'simplecov', '~> 0.22' s.add_development_dependency 'rake', '~> 13.0' - s.add_development_dependency 'rake-compiler', '~> 1.2.1' - s.add_development_dependency 'rake-compiler-dock', '= 1.9.1' + s.add_development_dependency 'rake-compiler', '~> 1.3.1' + s.add_development_dependency 'rake-compiler-dock', '~> 1.11.1' s.add_development_dependency 'rspec', '~> 3.6' - s.add_development_dependency 'rubocop', '~> 1.41.0' + s.add_development_dependency 'rubocop', '~> 1.82.0' s.add_development_dependency 'signet', '~> 0.7' s.add_development_dependency 'googleauth', '~> 1.0' @@ -227,6 +228,8 @@ Gem::Specification.new do |s| s.files += %w( src/core/client_channel/subchannel_pool_interface.h ) s.files += %w( src/core/client_channel/subchannel_stream_client.cc ) s.files += %w( src/core/client_channel/subchannel_stream_client.h ) + s.files += %w( src/core/client_channel/subchannel_stream_limiter.cc ) + s.files += %w( src/core/client_channel/subchannel_stream_limiter.h ) s.files += %w( src/core/config/config_vars.cc ) s.files += %w( src/core/config/config_vars.h ) s.files += %w( src/core/config/config_vars_non_generated.cc ) @@ -477,6 +480,12 @@ Gem::Specification.new do |s| s.files += %w( src/core/ext/transport/inproc/inproc_transport.h ) s.files += %w( src/core/ext/transport/inproc/legacy_inproc_transport.cc ) s.files += %w( src/core/ext/transport/inproc/legacy_inproc_transport.h ) + s.files += %w( src/core/ext/upb-gen/cel/expr/checked.upb.h ) + s.files += %w( src/core/ext/upb-gen/cel/expr/checked.upb_minitable.c ) + s.files += %w( src/core/ext/upb-gen/cel/expr/checked.upb_minitable.h ) + s.files += %w( src/core/ext/upb-gen/cel/expr/syntax.upb.h ) + s.files += %w( src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.c ) + s.files += %w( src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.h ) s.files += %w( src/core/ext/upb-gen/envoy/admin/v3/certs.upb.h ) s.files += %w( src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.c ) s.files += %w( src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.h ) @@ -999,6 +1008,10 @@ Gem::Specification.new do |s| s.files += %w( src/core/ext/upb-gen/xds/type/v3/typed_struct.upb.h ) s.files += %w( src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.c ) s.files += %w( src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.h ) + s.files += %w( src/core/ext/upbdefs-gen/cel/expr/checked.upbdefs.c ) + s.files += %w( src/core/ext/upbdefs-gen/cel/expr/checked.upbdefs.h ) + s.files += %w( src/core/ext/upbdefs-gen/cel/expr/syntax.upbdefs.c ) + s.files += %w( src/core/ext/upbdefs-gen/cel/expr/syntax.upbdefs.h ) s.files += %w( src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.c ) s.files += %w( src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.h ) s.files += %w( src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.c ) @@ -1327,6 +1340,7 @@ Gem::Specification.new do |s| s.files += %w( src/core/filter/blackboard.cc ) s.files += %w( src/core/filter/blackboard.h ) s.files += %w( src/core/filter/filter_args.h ) + s.files += %w( src/core/filter/filter_chain.h ) s.files += %w( src/core/filter/fused_filters.cc ) s.files += %w( src/core/handshaker/endpoint_info/endpoint_info_handshaker.cc ) s.files += %w( src/core/handshaker/endpoint_info/endpoint_info_handshaker.h ) diff --git a/include/grpc/credentials.h b/include/grpc/credentials.h index bc5cacc1af914..ed98dd317f9fa 100644 --- a/include/grpc/credentials.h +++ b/include/grpc/credentials.h @@ -984,27 +984,22 @@ typedef struct grpc_tls_certificate_provider grpc_tls_certificate_provider; /** * EXPERIMENTAL API - Subject to change * - * Sets the credential provider in the options. + * Sets the identity certificate provider in the options. * The |options| will implicitly take a new ref to the |provider|. */ -GRPCAPI void grpc_tls_credentials_options_set_certificate_provider( +GRPCAPI void grpc_tls_credentials_options_set_identity_certificate_provider( grpc_tls_credentials_options* options, grpc_tls_certificate_provider* provider); /** * EXPERIMENTAL API - Subject to change * - * If set, gRPC stack will keep watching the root certificates with - * name |root_cert_name|. - * If this is not set on the client side, we will use the root certificates - * stored in the default system location, since client side must provide root - * certificates in TLS. - * If this is not set on the server side, we will not watch any root certificate - * updates, and assume no root certificates needed for the server(single-side - * TLS). Default root certs on the server side is not supported. + * Sets the root certificate provider in the options. + * The |options| will implicitly take a new ref to the |provider|. */ -GRPCAPI void grpc_tls_credentials_options_watch_root_certs( - grpc_tls_credentials_options* options); +GRPCAPI void grpc_tls_credentials_options_set_root_certificate_provider( + grpc_tls_credentials_options* options, + grpc_tls_certificate_provider* provider); /** * EXPERIMENTAL API - Subject to change @@ -1015,16 +1010,6 @@ GRPCAPI void grpc_tls_credentials_options_watch_root_certs( GRPCAPI void grpc_tls_credentials_options_set_root_cert_name( grpc_tls_credentials_options* options, const char* root_cert_name); -/** - * EXPERIMENTAL API - Subject to change - * - * If set, gRPC stack will keep watching the identity key-cert pairs - * with name |identity_cert_name|. - * This is required on the server side, and optional on the client side. - */ -GRPCAPI void grpc_tls_credentials_options_watch_identity_key_cert_pairs( - grpc_tls_credentials_options* options); - /** * EXPERIMENTAL API - Subject to change * diff --git a/include/grpcpp/impl/status.h b/include/grpcpp/impl/status.h index 94c0e80a9b652..ef18aa73fb021 100644 --- a/include/grpcpp/impl/status.h +++ b/include/grpcpp/impl/status.h @@ -95,17 +95,16 @@ class GRPC_MUST_USE_RESULT_WHEN_USE_STRICT_WARNING GRPCXX_DLL Status { /// instead of a value (which results in a copy instead of a move) to allow /// for easy transition to absl::Status in the future which accepts an /// absl::string_view as a parameter. - Status(StatusCode code, const std::string& error_message) - : code_(code), error_message_(error_message) {} + Status(StatusCode code, std::string error_message) + : code_(code), error_message_(std::move(error_message)) {} /// Construct an instance with \a code, \a error_message and /// \a error_details. It is an error to construct an OK status with non-empty /// \a error_message and/or \a error_details. - Status(StatusCode code, const std::string& error_message, - const std::string& error_details) + Status(StatusCode code, std::string error_message, std::string error_details) : code_(code), - error_message_(error_message), - binary_error_details_(error_details) {} + error_message_(std::move(error_message)), + binary_error_details_(std::move(error_details)) {} // Pre-defined special status objects. /// An OK pre-defined instance. diff --git a/include/grpcpp/security/tls_credentials_options.h b/include/grpcpp/security/tls_credentials_options.h index b509af05c69a1..b4aab82aee7a8 100644 --- a/include/grpcpp/security/tls_credentials_options.h +++ b/include/grpcpp/security/tls_credentials_options.h @@ -52,8 +52,15 @@ class TlsCredentialsOptions { // ---- Setters for member fields ---- // Sets the certificate provider used to store root certs and identity certs. + [[deprecated( + "Use set_root_certificate_provider() or " + "set_identity_certificate_provider() instead.")]] void set_certificate_provider( std::shared_ptr certificate_provider); + void set_root_certificate_provider( + std::shared_ptr certificate_provider); + void set_identity_certificate_provider( + std::shared_ptr certificate_provider); // Watches the updates of root certificates with name |root_cert_name|. // If used in TLS credentials, setting this field is optional for both the // client side and the server side. @@ -64,6 +71,7 @@ class TlsCredentialsOptions { // certificate updates, and assume no root certificates needed for the server // (in the one-side TLS scenario, the server is not required to provide root // certs). We don't support default root certs on server side. + [[deprecated("Use set_root_certificate_provider()")]] void watch_root_certs(); // Sets the name of root certificates being watched, if |watch_root_certs| is // called. If not set, an empty string will be used as the name. @@ -74,6 +82,7 @@ class TlsCredentialsOptions { // |identity_cert_name|. If used in TLS credentials, it is required to be set // on the server side, and optional for the client side(in the one-side // TLS scenario, the client is not required to provide identity certs). + [[deprecated("Use set_identity_certificate_provider()")]] void watch_identity_key_cert_pairs(); // Sets the name of identity key-cert pairs being watched, if // |watch_identity_key_cert_pairs| is called. If not set, an empty string will @@ -133,16 +142,20 @@ class TlsCredentialsOptions { grpc_tls_credentials_options* c_credentials_options() const; protected: - // Returns the internal c options. The caller does not take ownership of the - // returned pointer. + // Returns the internal c options. The caller does not take ownership of + // the returned pointer. grpc_tls_credentials_options* mutable_c_credentials_options() { return c_credentials_options_; } private: - std::shared_ptr certificate_provider_; + std::shared_ptr legacy_certificate_provider_; + std::shared_ptr root_certificate_provider_; + std::shared_ptr identity_certificate_provider_; std::shared_ptr certificate_verifier_; grpc_tls_credentials_options* c_credentials_options_ = nullptr; + bool is_watching_roots_ = false; + bool is_watching_identity_ = false; }; // Contains configurable options on the client side. @@ -157,6 +170,11 @@ class TlsChannelCredentialsOptions final : public TlsCredentialsOptions { // The default is true. void set_verify_server_certs(bool verify_server_certs); + // Overrides the SNI that the client sends in the TLS handshake. nullopt + // indicates that SNI should not be overridden. An empty string value + // indicates that SNI should not be sent at all. The default is nullopt. + void set_sni_override(std::optional sni_override); + private: }; @@ -164,8 +182,22 @@ class TlsChannelCredentialsOptions final : public TlsCredentialsOptions { // It is used for experimental purposes for now and it is subject to change. class TlsServerCredentialsOptions final : public TlsCredentialsOptions { public: - // Server side is required to use a provider, because server always needs to - // use identity certs. + // Server side is required to use an identity provider, because server always + // needs to use identity certs. + static absl::StatusOr Create( + std::shared_ptr + identity_certificate_provider) { + if (identity_certificate_provider == nullptr) { + return absl::InvalidArgumentError( + "identity certificate provider must be non-null"); + } + TlsServerCredentialsOptions options; + options.set_identity_certificate_provider( + std::move(identity_certificate_provider)); + return options; + } + + [[deprecated("Use Create() instead.")]] explicit TlsServerCredentialsOptions( std::shared_ptr certificate_provider) : TlsCredentialsOptions() { @@ -191,6 +223,8 @@ class TlsServerCredentialsOptions final : public TlsCredentialsOptions { void set_send_client_ca_list(bool send_client_ca_list); private: + // Default ctor, to be used by Create(). + TlsServerCredentialsOptions() = default; }; } // namespace experimental diff --git a/package.xml b/package.xml index 7b9a4cb61f049..ed7be4cc4d196 100644 --- a/package.xml +++ b/package.xml @@ -209,6 +209,8 @@ + + @@ -459,6 +461,12 @@ + + + + + + @@ -981,6 +989,10 @@ + + + + @@ -1309,6 +1321,7 @@ + diff --git a/py_xds_protos/build_xds_protos.py b/py_xds_protos/build_xds_protos.py index 9ba289fe2de58..ad963eff59913 100644 --- a/py_xds_protos/build_xds_protos.py +++ b/py_xds_protos/build_xds_protos.py @@ -61,6 +61,7 @@ def _get_resource_file_name( ENVOY_API_PROTO_ROOT = os.path.join("third_party", "envoy-api") XDS_PROTO_ROOT = os.path.join("third_party", "xds") GOOGLEAPIS_ROOT = os.path.join("third_party", "googleapis") +CEL_PROTO_ROOT = os.path.join("third_party", "cel-spec", "proto") VALIDATE_ROOT = os.path.join("third_party", "protoc-gen-validate") OPENCENSUS_PROTO_ROOT = os.path.join( "third_party", "opencensus-proto", "src" @@ -105,6 +106,7 @@ def add_test_import(proto_package_path: str, file_name: str, service: bool = Fal "--proto_path={}".format(ENVOY_API_PROTO_ROOT), "--proto_path={}".format(XDS_PROTO_ROOT), "--proto_path={}".format(GOOGLEAPIS_ROOT), + "--proto_path={}".format(CEL_PROTO_ROOT), "--proto_path={}".format(VALIDATE_ROOT), "--proto_path={}".format(WELL_KNOWN_PROTOS_INCLUDE), "--proto_path={}".format(OPENCENSUS_PROTO_ROOT), @@ -173,6 +175,7 @@ def main(): compile_protos(VALIDATE_ROOT, "validate") compile_protos(OPENCENSUS_PROTO_ROOT) compile_protos(OPENTELEMETRY_PROTO_ROOT) + compile_protos(CEL_PROTO_ROOT, "cel") # Generate __init__.py files for all modules create_init_file(WORK_DIR) @@ -184,6 +187,7 @@ def main(): "validate", "xds", "opentelemetry", + "cel", ]: for root, _, _ in os.walk(os.path.join(WORK_DIR, proto_root_module)): package_path = os.path.relpath(root, WORK_DIR) diff --git a/py_xds_protos/cel/__init__.py b/py_xds_protos/cel/__init__.py new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/py_xds_protos/cel/expr/__init__.py b/py_xds_protos/cel/expr/__init__.py new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/py_xds_protos/cel/expr/checked_pb2.py b/py_xds_protos/cel/expr/checked_pb2.py new file mode 100644 index 0000000000000..dc3f520ed8d03 --- /dev/null +++ b/py_xds_protos/cel/expr/checked_pb2.py @@ -0,0 +1,72 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: cel/expr/checked.proto +# Protobuf Python Version: 6.31.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 31, + 1, + '', + 'cel/expr/checked.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from cel.expr import syntax_pb2 as cel_dot_expr_dot_syntax__pb2 +from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 +from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16\x63\x65l/expr/checked.proto\x12\x08\x63\x65l.expr\x1a\x15\x63\x65l/expr/syntax.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1cgoogle/protobuf/struct.proto\"\xec\x02\n\x0b\x43heckedExpr\x12>\n\rreference_map\x18\x02 \x03(\x0b\x32\'.cel.expr.CheckedExpr.ReferenceMapEntry\x12\x34\n\x08type_map\x18\x03 \x03(\x0b\x32\".cel.expr.CheckedExpr.TypeMapEntry\x12)\n\x0bsource_info\x18\x05 \x01(\x0b\x32\x14.cel.expr.SourceInfo\x12\x14\n\x0c\x65xpr_version\x18\x06 \x01(\t\x12\x1c\n\x04\x65xpr\x18\x04 \x01(\x0b\x32\x0e.cel.expr.Expr\x1aH\n\x11ReferenceMapEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\"\n\x05value\x18\x02 \x01(\x0b\x32\x13.cel.expr.Reference:\x02\x38\x01\x1a>\n\x0cTypeMapEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.cel.expr.Type:\x02\x38\x01\"\xa2\x08\n\x04Type\x12%\n\x03\x64yn\x18\x01 \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x12*\n\x04null\x18\x02 \x01(\x0e\x32\x1a.google.protobuf.NullValueH\x00\x12\x31\n\tprimitive\x18\x03 \x01(\x0e\x32\x1c.cel.expr.Type.PrimitiveTypeH\x00\x12/\n\x07wrapper\x18\x04 \x01(\x0e\x32\x1c.cel.expr.Type.PrimitiveTypeH\x00\x12\x32\n\nwell_known\x18\x05 \x01(\x0e\x32\x1c.cel.expr.Type.WellKnownTypeH\x00\x12,\n\tlist_type\x18\x06 \x01(\x0b\x32\x17.cel.expr.Type.ListTypeH\x00\x12*\n\x08map_type\x18\x07 \x01(\x0b\x32\x16.cel.expr.Type.MapTypeH\x00\x12/\n\x08\x66unction\x18\x08 \x01(\x0b\x32\x1b.cel.expr.Type.FunctionTypeH\x00\x12\x16\n\x0cmessage_type\x18\t \x01(\tH\x00\x12\x14\n\ntype_param\x18\n \x01(\tH\x00\x12\x1e\n\x04type\x18\x0b \x01(\x0b\x32\x0e.cel.expr.TypeH\x00\x12\'\n\x05\x65rror\x18\x0c \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x12\x34\n\rabstract_type\x18\x0e \x01(\x0b\x32\x1b.cel.expr.Type.AbstractTypeH\x00\x1a-\n\x08ListType\x12!\n\telem_type\x18\x01 \x01(\x0b\x32\x0e.cel.expr.Type\x1aO\n\x07MapType\x12 \n\x08key_type\x18\x01 \x01(\x0b\x32\x0e.cel.expr.Type\x12\"\n\nvalue_type\x18\x02 \x01(\x0b\x32\x0e.cel.expr.Type\x1aV\n\x0c\x46unctionType\x12#\n\x0bresult_type\x18\x01 \x01(\x0b\x32\x0e.cel.expr.Type\x12!\n\targ_types\x18\x02 \x03(\x0b\x32\x0e.cel.expr.Type\x1a\x45\n\x0c\x41\x62stractType\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\'\n\x0fparameter_types\x18\x02 \x03(\x0b\x32\x0e.cel.expr.Type\"s\n\rPrimitiveType\x12\x1e\n\x1aPRIMITIVE_TYPE_UNSPECIFIED\x10\x00\x12\x08\n\x04\x42OOL\x10\x01\x12\t\n\x05INT64\x10\x02\x12\n\n\x06UINT64\x10\x03\x12\n\n\x06\x44OUBLE\x10\x04\x12\n\n\x06STRING\x10\x05\x12\t\n\x05\x42YTES\x10\x06\"V\n\rWellKnownType\x12\x1f\n\x1bWELL_KNOWN_TYPE_UNSPECIFIED\x10\x00\x12\x07\n\x03\x41NY\x10\x01\x12\r\n\tTIMESTAMP\x10\x02\x12\x0c\n\x08\x44URATION\x10\x03\x42\x0b\n\ttype_kind\"\xd6\x03\n\x04\x44\x65\x63l\x12\x0c\n\x04name\x18\x01 \x01(\t\x12)\n\x05ident\x18\x02 \x01(\x0b\x32\x18.cel.expr.Decl.IdentDeclH\x00\x12/\n\x08\x66unction\x18\x03 \x01(\x0b\x32\x1b.cel.expr.Decl.FunctionDeclH\x00\x1aY\n\tIdentDecl\x12\x1c\n\x04type\x18\x01 \x01(\x0b\x32\x0e.cel.expr.Type\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.cel.expr.Constant\x12\x0b\n\x03\x64oc\x18\x03 \x01(\t\x1a\xfb\x01\n\x0c\x46unctionDecl\x12\x37\n\toverloads\x18\x01 \x03(\x0b\x32$.cel.expr.Decl.FunctionDecl.Overload\x12\x0b\n\x03\x64oc\x18\x02 \x01(\t\x1a\xa4\x01\n\x08Overload\x12\x13\n\x0boverload_id\x18\x01 \x01(\t\x12\x1e\n\x06params\x18\x02 \x03(\x0b\x32\x0e.cel.expr.Type\x12\x13\n\x0btype_params\x18\x03 \x03(\t\x12#\n\x0bresult_type\x18\x04 \x01(\x0b\x32\x0e.cel.expr.Type\x12\x1c\n\x14is_instance_function\x18\x05 \x01(\x08\x12\x0b\n\x03\x64oc\x18\x06 \x01(\tB\x0b\n\tdecl_kind\"Q\n\tReference\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0boverload_id\x18\x03 \x03(\t\x12!\n\x05value\x18\x04 \x01(\x0b\x32\x12.cel.expr.ConstantB,\n\x0c\x64\x65v.cel.exprB\tDeclProtoP\x01Z\x0c\x63\x65l.dev/expr\xf8\x01\x01\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cel.expr.checked_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\014dev.cel.exprB\tDeclProtoP\001Z\014cel.dev/expr\370\001\001' + _globals['_CHECKEDEXPR_REFERENCEMAPENTRY']._loaded_options = None + _globals['_CHECKEDEXPR_REFERENCEMAPENTRY']._serialized_options = b'8\001' + _globals['_CHECKEDEXPR_TYPEMAPENTRY']._loaded_options = None + _globals['_CHECKEDEXPR_TYPEMAPENTRY']._serialized_options = b'8\001' + _globals['_CHECKEDEXPR']._serialized_start=119 + _globals['_CHECKEDEXPR']._serialized_end=483 + _globals['_CHECKEDEXPR_REFERENCEMAPENTRY']._serialized_start=347 + _globals['_CHECKEDEXPR_REFERENCEMAPENTRY']._serialized_end=419 + _globals['_CHECKEDEXPR_TYPEMAPENTRY']._serialized_start=421 + _globals['_CHECKEDEXPR_TYPEMAPENTRY']._serialized_end=483 + _globals['_TYPE']._serialized_start=486 + _globals['_TYPE']._serialized_end=1544 + _globals['_TYPE_LISTTYPE']._serialized_start=1041 + _globals['_TYPE_LISTTYPE']._serialized_end=1086 + _globals['_TYPE_MAPTYPE']._serialized_start=1088 + _globals['_TYPE_MAPTYPE']._serialized_end=1167 + _globals['_TYPE_FUNCTIONTYPE']._serialized_start=1169 + _globals['_TYPE_FUNCTIONTYPE']._serialized_end=1255 + _globals['_TYPE_ABSTRACTTYPE']._serialized_start=1257 + _globals['_TYPE_ABSTRACTTYPE']._serialized_end=1326 + _globals['_TYPE_PRIMITIVETYPE']._serialized_start=1328 + _globals['_TYPE_PRIMITIVETYPE']._serialized_end=1443 + _globals['_TYPE_WELLKNOWNTYPE']._serialized_start=1445 + _globals['_TYPE_WELLKNOWNTYPE']._serialized_end=1531 + _globals['_DECL']._serialized_start=1547 + _globals['_DECL']._serialized_end=2017 + _globals['_DECL_IDENTDECL']._serialized_start=1661 + _globals['_DECL_IDENTDECL']._serialized_end=1750 + _globals['_DECL_FUNCTIONDECL']._serialized_start=1753 + _globals['_DECL_FUNCTIONDECL']._serialized_end=2004 + _globals['_DECL_FUNCTIONDECL_OVERLOAD']._serialized_start=1840 + _globals['_DECL_FUNCTIONDECL_OVERLOAD']._serialized_end=2004 + _globals['_REFERENCE']._serialized_start=2019 + _globals['_REFERENCE']._serialized_end=2100 +# @@protoc_insertion_point(module_scope) diff --git a/py_xds_protos/cel/expr/conformance/__init__.py b/py_xds_protos/cel/expr/conformance/__init__.py new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/py_xds_protos/cel/expr/conformance/conformance_service_pb2.py b/py_xds_protos/cel/expr/conformance/conformance_service_pb2.py new file mode 100644 index 0000000000000..fe57bfe2653ca --- /dev/null +++ b/py_xds_protos/cel/expr/conformance/conformance_service_pb2.py @@ -0,0 +1,63 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: cel/expr/conformance/conformance_service.proto +# Protobuf Python Version: 6.31.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 31, + 1, + '', + 'cel/expr/conformance/conformance_service.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from cel.expr import checked_pb2 as cel_dot_expr_dot_checked__pb2 +from cel.expr import eval_pb2 as cel_dot_expr_dot_eval__pb2 +from cel.expr import syntax_pb2 as cel_dot_expr_dot_syntax__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n.cel/expr/conformance/conformance_service.proto\x12\x14\x63\x65l.expr.conformance\x1a\x16\x63\x65l/expr/checked.proto\x1a\x13\x63\x65l/expr/eval.proto\x1a\x15\x63\x65l/expr/syntax.proto\x1a\x17google/rpc/status.proto\"k\n\x0cParseRequest\x12\x12\n\ncel_source\x18\x01 \x01(\t\x12\x16\n\x0esyntax_version\x18\x02 \x01(\t\x12\x17\n\x0fsource_location\x18\x03 \x01(\t\x12\x16\n\x0e\x64isable_macros\x18\x04 \x01(\x08\"^\n\rParseResponse\x12)\n\x0bparsed_expr\x18\x01 \x01(\x0b\x32\x14.cel.expr.ParsedExpr\x12\"\n\x06issues\x18\x02 \x03(\x0b\x32\x12.google.rpc.Status\"\x82\x01\n\x0c\x43heckRequest\x12)\n\x0bparsed_expr\x18\x01 \x01(\x0b\x32\x14.cel.expr.ParsedExpr\x12 \n\x08type_env\x18\x02 \x03(\x0b\x32\x0e.cel.expr.Decl\x12\x11\n\tcontainer\x18\x03 \x01(\t\x12\x12\n\nno_std_env\x18\x04 \x01(\x08\"`\n\rCheckResponse\x12+\n\x0c\x63hecked_expr\x18\x01 \x01(\x0b\x32\x15.cel.expr.CheckedExpr\x12\"\n\x06issues\x18\x02 \x03(\x0b\x32\x12.google.rpc.Status\"\x92\x02\n\x0b\x45valRequest\x12+\n\x0bparsed_expr\x18\x01 \x01(\x0b\x32\x14.cel.expr.ParsedExprH\x00\x12-\n\x0c\x63hecked_expr\x18\x02 \x01(\x0b\x32\x15.cel.expr.CheckedExprH\x00\x12\x41\n\x08\x62indings\x18\x03 \x03(\x0b\x32/.cel.expr.conformance.EvalRequest.BindingsEntry\x12\x11\n\tcontainer\x18\x04 \x01(\t\x1a\x44\n\rBindingsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\"\n\x05value\x18\x02 \x01(\x0b\x32\x13.cel.expr.ExprValue:\x02\x38\x01\x42\x0b\n\texpr_kind\"W\n\x0c\x45valResponse\x12#\n\x06result\x18\x01 \x01(\x0b\x32\x13.cel.expr.ExprValue\x12\"\n\x06issues\x18\x02 \x03(\x0b\x32\x12.google.rpc.Status\"P\n\x0eSourcePosition\x12\x10\n\x08location\x18\x01 \x01(\t\x12\x0e\n\x06offset\x18\x02 \x01(\x05\x12\x0c\n\x04line\x18\x03 \x01(\x05\x12\x0e\n\x06\x63olumn\x18\x04 \x01(\x05\"\xe0\x01\n\x0cIssueDetails\x12=\n\x08severity\x18\x01 \x01(\x0e\x32+.cel.expr.conformance.IssueDetails.Severity\x12\x36\n\x08position\x18\x02 \x01(\x0b\x32$.cel.expr.conformance.SourcePosition\x12\n\n\x02id\x18\x03 \x01(\x03\"M\n\x08Severity\x12\x18\n\x14SEVERITY_UNSPECIFIED\x10\x00\x12\x0f\n\x0b\x44\x45PRECATION\x10\x01\x12\x0b\n\x07WARNING\x10\x02\x12\t\n\x05\x45RROR\x10\x03\x32\x8d\x02\n\x12\x43onformanceService\x12R\n\x05Parse\x12\".cel.expr.conformance.ParseRequest\x1a#.cel.expr.conformance.ParseResponse\"\x00\x12R\n\x05\x43heck\x12\".cel.expr.conformance.CheckRequest\x1a#.cel.expr.conformance.CheckResponse\"\x00\x12O\n\x04\x45val\x12!.cel.expr.conformance.EvalRequest\x1a\".cel.expr.conformance.EvalResponse\"\x00\x42R\n\x18\x64\x65v.cel.expr.conformanceB\x17\x43onformanceServiceProtoP\x01Z\x18\x63\x65l.dev/expr/conformance\xf8\x01\x01\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cel.expr.conformance.conformance_service_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\030dev.cel.expr.conformanceB\027ConformanceServiceProtoP\001Z\030cel.dev/expr/conformance\370\001\001' + _globals['_EVALREQUEST_BINDINGSENTRY']._loaded_options = None + _globals['_EVALREQUEST_BINDINGSENTRY']._serialized_options = b'8\001' + _globals['_PARSEREQUEST']._serialized_start=165 + _globals['_PARSEREQUEST']._serialized_end=272 + _globals['_PARSERESPONSE']._serialized_start=274 + _globals['_PARSERESPONSE']._serialized_end=368 + _globals['_CHECKREQUEST']._serialized_start=371 + _globals['_CHECKREQUEST']._serialized_end=501 + _globals['_CHECKRESPONSE']._serialized_start=503 + _globals['_CHECKRESPONSE']._serialized_end=599 + _globals['_EVALREQUEST']._serialized_start=602 + _globals['_EVALREQUEST']._serialized_end=876 + _globals['_EVALREQUEST_BINDINGSENTRY']._serialized_start=795 + _globals['_EVALREQUEST_BINDINGSENTRY']._serialized_end=863 + _globals['_EVALRESPONSE']._serialized_start=878 + _globals['_EVALRESPONSE']._serialized_end=965 + _globals['_SOURCEPOSITION']._serialized_start=967 + _globals['_SOURCEPOSITION']._serialized_end=1047 + _globals['_ISSUEDETAILS']._serialized_start=1050 + _globals['_ISSUEDETAILS']._serialized_end=1274 + _globals['_ISSUEDETAILS_SEVERITY']._serialized_start=1197 + _globals['_ISSUEDETAILS_SEVERITY']._serialized_end=1274 + _globals['_CONFORMANCESERVICE']._serialized_start=1277 + _globals['_CONFORMANCESERVICE']._serialized_end=1546 +# @@protoc_insertion_point(module_scope) diff --git a/py_xds_protos/cel/expr/conformance/env_config_pb2.py b/py_xds_protos/cel/expr/conformance/env_config_pb2.py new file mode 100644 index 0000000000000..4a14d257454b5 --- /dev/null +++ b/py_xds_protos/cel/expr/conformance/env_config_pb2.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: cel/expr/conformance/env_config.proto +# Protobuf Python Version: 6.31.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 31, + 1, + '', + 'cel/expr/conformance/env_config.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from cel.expr import checked_pb2 as cel_dot_expr_dot_checked__pb2 +from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 +from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%cel/expr/conformance/env_config.proto\x12\x14\x63\x65l.expr.conformance\x1a\x16\x63\x65l/expr/checked.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a google/protobuf/descriptor.proto\"\x92\x05\n\x0b\x45nvironment\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x11\n\tcontainer\x18\x03 \x01(\t\x12\x39\n\x07imports\x18\x04 \x03(\x0b\x32(.cel.expr.conformance.Environment.Import\x12\x33\n\x06stdlib\x18\x05 \x01(\x0b\x32#.cel.expr.conformance.LibrarySubset\x12\x33\n\nextensions\x18\x06 \x03(\x0b\x32\x1f.cel.expr.conformance.Extension\x12K\n\x10\x63ontext_variable\x18\x07 \x01(\x0b\x32\x31.cel.expr.conformance.Environment.ContextVariable\x12$\n\x0c\x64\x65\x63larations\x18\x08 \x03(\x0b\x32\x0e.cel.expr.Decl\x12\x33\n\nvalidators\x18\t \x03(\x0b\x32\x1f.cel.expr.conformance.Validator\x12/\n\x08\x66\x65\x61tures\x18\n \x03(\x0b\x32\x1d.cel.expr.conformance.Feature\x12)\n!disable_standard_cel_declarations\x18\x0b \x01(\x08\x12\x42\n\x16message_type_extension\x18\x0c \x01(\x0b\x32\".google.protobuf.FileDescriptorSet\x12\"\n\x1a\x65nable_macro_call_tracking\x18\r \x01(\x08\x1a\x16\n\x06Import\x12\x0c\n\x04name\x18\x01 \x01(\t\x1a$\n\x0f\x43ontextVariable\x12\x11\n\ttype_name\x18\x01 \x01(\t\"\x9d\x01\n\tValidator\x12\x0c\n\x04name\x18\x01 \x01(\t\x12;\n\x06\x63onfig\x18\x02 \x03(\x0b\x32+.cel.expr.conformance.Validator.ConfigEntry\x1a\x45\n\x0b\x43onfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value:\x02\x38\x01\"(\n\x07\x46\x65\x61ture\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07\x65nabled\x18\x02 \x01(\x08\"*\n\tExtension\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\"\xbf\x01\n\rLibrarySubset\x12\x10\n\x08\x64isabled\x18\x01 \x01(\x08\x12\x16\n\x0e\x64isable_macros\x18\x02 \x01(\x08\x12\x16\n\x0einclude_macros\x18\x03 \x03(\t\x12\x16\n\x0e\x65xclude_macros\x18\x04 \x03(\t\x12)\n\x11include_functions\x18\x05 \x03(\x0b\x32\x0e.cel.expr.Decl\x12)\n\x11\x65xclude_functions\x18\x06 \x03(\x0b\x32\x0e.cel.expr.DeclBK\n\x18\x63\x65l.dev.expr.conformanceB\x10\x45nvironmentProtoP\x01Z\x18\x63\x65l.dev/expr/conformance\xf8\x01\x01\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cel.expr.conformance.env_config_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\030cel.dev.expr.conformanceB\020EnvironmentProtoP\001Z\030cel.dev/expr/conformance\370\001\001' + _globals['_VALIDATOR_CONFIGENTRY']._loaded_options = None + _globals['_VALIDATOR_CONFIGENTRY']._serialized_options = b'8\001' + _globals['_ENVIRONMENT']._serialized_start=152 + _globals['_ENVIRONMENT']._serialized_end=810 + _globals['_ENVIRONMENT_IMPORT']._serialized_start=750 + _globals['_ENVIRONMENT_IMPORT']._serialized_end=772 + _globals['_ENVIRONMENT_CONTEXTVARIABLE']._serialized_start=774 + _globals['_ENVIRONMENT_CONTEXTVARIABLE']._serialized_end=810 + _globals['_VALIDATOR']._serialized_start=813 + _globals['_VALIDATOR']._serialized_end=970 + _globals['_VALIDATOR_CONFIGENTRY']._serialized_start=901 + _globals['_VALIDATOR_CONFIGENTRY']._serialized_end=970 + _globals['_FEATURE']._serialized_start=972 + _globals['_FEATURE']._serialized_end=1012 + _globals['_EXTENSION']._serialized_start=1014 + _globals['_EXTENSION']._serialized_end=1056 + _globals['_LIBRARYSUBSET']._serialized_start=1059 + _globals['_LIBRARYSUBSET']._serialized_end=1250 +# @@protoc_insertion_point(module_scope) diff --git a/py_xds_protos/cel/expr/conformance/proto2/__init__.py b/py_xds_protos/cel/expr/conformance/proto2/__init__.py new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/py_xds_protos/cel/expr/conformance/proto2/test_all_types_extensions_pb2.py b/py_xds_protos/cel/expr/conformance/proto2/test_all_types_extensions_pb2.py new file mode 100644 index 0000000000000..c369343533604 --- /dev/null +++ b/py_xds_protos/cel/expr/conformance/proto2/test_all_types_extensions_pb2.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: cel/expr/conformance/proto2/test_all_types_extensions.proto +# Protobuf Python Version: 6.31.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 31, + 1, + '', + 'cel/expr/conformance/proto2/test_all_types_extensions.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from cel.expr.conformance.proto2 import test_all_types_pb2 as cel_dot_expr_dot_conformance_dot_proto2_dot_test__all__types__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n;cel/expr/conformance/proto2/test_all_types_extensions.proto\x12\x1b\x63\x65l.expr.conformance.proto2\x1a\x30\x63\x65l/expr/conformance/proto2/test_all_types.proto\"\xda\x03\n\x1cProto2ExtensionScopedMessage2=\n\tint64_ext\x12).cel.expr.conformance.proto2.TestAllTypes\x18\xed\x07 \x01(\x03\x32x\n\x19message_scoped_nested_ext\x12).cel.expr.conformance.proto2.TestAllTypes\x18\xee\x07 \x01(\x0b\x32).cel.expr.conformance.proto2.TestAllTypes2y\n\x0fnested_enum_ext\x12).cel.expr.conformance.proto2.TestAllTypes\x18\xef\x07 \x01(\x0e\x32\x34.cel.expr.conformance.proto2.TestAllTypes.NestedEnum2\x85\x01\n&message_scoped_repeated_test_all_types\x12).cel.expr.conformance.proto2.TestAllTypes\x18\xf0\x07 \x03(\x0b\x32).cel.expr.conformance.proto2.TestAllTypes:=\n\tint32_ext\x12).cel.expr.conformance.proto2.TestAllTypes\x18\xe8\x07 \x01(\x05:i\n\nnested_ext\x12).cel.expr.conformance.proto2.TestAllTypes\x18\xe9\x07 \x01(\x0b\x32).cel.expr.conformance.proto2.TestAllTypes:q\n\x12test_all_types_ext\x12).cel.expr.conformance.proto2.TestAllTypes\x18\xea\x07 \x01(\x0b\x32).cel.expr.conformance.proto2.TestAllTypes:y\n\x0fnested_enum_ext\x12).cel.expr.conformance.proto2.TestAllTypes\x18\xeb\x07 \x01(\x0e\x32\x34.cel.expr.conformance.proto2.TestAllTypes.NestedEnum:v\n\x17repeated_test_all_types\x12).cel.expr.conformance.proto2.TestAllTypes\x18\xec\x07 \x03(\x0b\x32).cel.expr.conformance.proto2.TestAllTypesB_\n\x1f\x64\x65v.cel.expr.conformance.proto2B\x16TestAllTypesExtensionsP\x01Z\x1f\x63\x65l.dev/expr/conformance/proto2\xf8\x01\x01') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cel.expr.conformance.proto2.test_all_types_extensions_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\037dev.cel.expr.conformance.proto2B\026TestAllTypesExtensionsP\001Z\037cel.dev/expr/conformance/proto2\370\001\001' + _globals['_PROTO2EXTENSIONSCOPEDMESSAGE']._serialized_start=143 + _globals['_PROTO2EXTENSIONSCOPEDMESSAGE']._serialized_end=617 +# @@protoc_insertion_point(module_scope) diff --git a/py_xds_protos/cel/expr/conformance/proto2/test_all_types_pb2.py b/py_xds_protos/cel/expr/conformance/proto2/test_all_types_pb2.py new file mode 100644 index 0000000000000..6424ad0cf9c99 --- /dev/null +++ b/py_xds_protos/cel/expr/conformance/proto2/test_all_types_pb2.py @@ -0,0 +1,712 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: cel/expr/conformance/proto2/test_all_types.proto +# Protobuf Python Version: 6.31.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 31, + 1, + '', + 'cel/expr/conformance/proto2/test_all_types.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2 +from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 +from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n0cel/expr/conformance/proto2/test_all_types.proto\x12\x1b\x63\x65l.expr.conformance.proto2\x1a\x19google/protobuf/any.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xc8\xfa\x01\n\x0cTestAllTypes\x12\x19\n\x0csingle_int32\x18\x01 \x01(\x05:\x03-32\x12\x19\n\x0csingle_int64\x18\x02 \x01(\x03:\x03-64\x12\x19\n\rsingle_uint32\x18\x03 \x01(\r:\x02\x33\x32\x12\x19\n\rsingle_uint64\x18\x04 \x01(\x04:\x02\x36\x34\x12\x15\n\rsingle_sint32\x18\x05 \x01(\x11\x12\x15\n\rsingle_sint64\x18\x06 \x01(\x12\x12\x16\n\x0esingle_fixed32\x18\x07 \x01(\x07\x12\x16\n\x0esingle_fixed64\x18\x08 \x01(\x06\x12\x17\n\x0fsingle_sfixed32\x18\t \x01(\x0f\x12\x17\n\x0fsingle_sfixed64\x18\n \x01(\x10\x12\x17\n\x0csingle_float\x18\x0b \x01(\x02:\x01\x33\x12\x1a\n\rsingle_double\x18\x0c \x01(\x01:\x03\x36.4\x12\x19\n\x0bsingle_bool\x18\r \x01(\x08:\x04true\x12\x1c\n\rsingle_string\x18\x0e \x01(\t:\x05\x65mpty\x12\x1a\n\x0csingle_bytes\x18\x0f \x01(\x0c:\x04none\x12\n\n\x02in\x18\x12 \x01(\x08\x12(\n\nsingle_any\x18\x64 \x01(\x0b\x32\x14.google.protobuf.Any\x12\x32\n\x0fsingle_duration\x18\x65 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x34\n\x10single_timestamp\x18\x66 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\rsingle_struct\x18g \x01(\x0b\x32\x17.google.protobuf.Struct\x12,\n\x0csingle_value\x18h \x01(\x0b\x32\x16.google.protobuf.Value\x12\x39\n\x14single_int64_wrapper\x18i \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x39\n\x14single_int32_wrapper\x18j \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12;\n\x15single_double_wrapper\x18k \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x39\n\x14single_float_wrapper\x18l \x01(\x0b\x32\x1b.google.protobuf.FloatValue\x12;\n\x15single_uint64_wrapper\x18m \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\x12;\n\x15single_uint32_wrapper\x18n \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12;\n\x15single_string_wrapper\x18o \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x37\n\x13single_bool_wrapper\x18p \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x39\n\x14single_bytes_wrapper\x18q \x01(\x0b\x32\x1b.google.protobuf.BytesValue\x12.\n\nlist_value\x18r \x01(\x0b\x32\x1a.google.protobuf.ListValue\x12.\n\nnull_value\x18s \x01(\x0e\x32\x1a.google.protobuf.NullValue\x12\x37\n\x13optional_null_value\x18t \x01(\x0e\x32\x1a.google.protobuf.NullValue\x12.\n\nfield_mask\x18u \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12%\n\x05\x65mpty\x18v \x01(\x0b\x32\x16.google.protobuf.Empty\x12X\n\x15single_nested_message\x18\x15 \x01(\x0b\x32\x37.cel.expr.conformance.proto2.TestAllTypes.NestedMessageH\x00\x12W\n\x12single_nested_enum\x18\x16 \x01(\x0e\x32\x34.cel.expr.conformance.proto2.TestAllTypes.NestedEnum:\x03\x42\x41RH\x00\x12S\n\x12standalone_message\x18\x17 \x01(\x0b\x32\x37.cel.expr.conformance.proto2.TestAllTypes.NestedMessage\x12M\n\x0fstandalone_enum\x18\x18 \x01(\x0e\x32\x34.cel.expr.conformance.proto2.TestAllTypes.NestedEnum\x12\x16\n\x0erepeated_int32\x18\x1f \x03(\x05\x12\x16\n\x0erepeated_int64\x18 \x03(\x03\x12\x17\n\x0frepeated_uint32\x18! \x03(\r\x12\x17\n\x0frepeated_uint64\x18\" \x03(\x04\x12\x17\n\x0frepeated_sint32\x18# \x03(\x11\x12\x17\n\x0frepeated_sint64\x18$ \x03(\x12\x12\x18\n\x10repeated_fixed32\x18% \x03(\x07\x12\x18\n\x10repeated_fixed64\x18& \x03(\x06\x12\x19\n\x11repeated_sfixed32\x18\' \x03(\x0f\x12\x19\n\x11repeated_sfixed64\x18( \x03(\x10\x12\x16\n\x0erepeated_float\x18) \x03(\x02\x12\x17\n\x0frepeated_double\x18* \x03(\x01\x12\x15\n\rrepeated_bool\x18+ \x03(\x08\x12\x17\n\x0frepeated_string\x18, \x03(\t\x12\x16\n\x0erepeated_bytes\x18- \x03(\x0c\x12X\n\x17repeated_nested_message\x18\x33 \x03(\x0b\x32\x37.cel.expr.conformance.proto2.TestAllTypes.NestedMessage\x12R\n\x14repeated_nested_enum\x18\x34 \x03(\x0e\x32\x34.cel.expr.conformance.proto2.TestAllTypes.NestedEnum\x12!\n\x15repeated_string_piece\x18\x35 \x03(\tB\x02\x08\x02\x12\x19\n\rrepeated_cord\x18\x36 \x03(\tB\x02\x08\x01\x12V\n\x15repeated_lazy_message\x18\x37 \x03(\x0b\x32\x37.cel.expr.conformance.proto2.TestAllTypes.NestedMessage\x12*\n\x0crepeated_any\x18x \x03(\x0b\x32\x14.google.protobuf.Any\x12\x34\n\x11repeated_duration\x18y \x03(\x0b\x32\x19.google.protobuf.Duration\x12\x36\n\x12repeated_timestamp\x18z \x03(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x30\n\x0frepeated_struct\x18{ \x03(\x0b\x32\x17.google.protobuf.Struct\x12.\n\x0erepeated_value\x18| \x03(\x0b\x32\x16.google.protobuf.Value\x12;\n\x16repeated_int64_wrapper\x18} \x03(\x0b\x32\x1b.google.protobuf.Int64Value\x12;\n\x16repeated_int32_wrapper\x18~ \x03(\x0b\x32\x1b.google.protobuf.Int32Value\x12=\n\x17repeated_double_wrapper\x18\x7f \x03(\x0b\x32\x1c.google.protobuf.DoubleValue\x12<\n\x16repeated_float_wrapper\x18\x80\x01 \x03(\x0b\x32\x1b.google.protobuf.FloatValue\x12>\n\x17repeated_uint64_wrapper\x18\x81\x01 \x03(\x0b\x32\x1c.google.protobuf.UInt64Value\x12>\n\x17repeated_uint32_wrapper\x18\x82\x01 \x03(\x0b\x32\x1c.google.protobuf.UInt32Value\x12>\n\x17repeated_string_wrapper\x18\x83\x01 \x03(\x0b\x32\x1c.google.protobuf.StringValue\x12:\n\x15repeated_bool_wrapper\x18\x84\x01 \x03(\x0b\x32\x1a.google.protobuf.BoolValue\x12<\n\x16repeated_bytes_wrapper\x18\x85\x01 \x03(\x0b\x32\x1b.google.protobuf.BytesValue\x12\x38\n\x13repeated_list_value\x18\x86\x01 \x03(\x0b\x32\x1a.google.protobuf.ListValue\x12\x38\n\x13repeated_null_value\x18\x87\x01 \x03(\x0e\x32\x1a.google.protobuf.NullValue\x12`\n\x15map_int64_nested_type\x18> \x03(\x0b\x32\x41.cel.expr.conformance.proto2.TestAllTypes.MapInt64NestedTypeEntry\x12Q\n\rmap_bool_bool\x18? \x03(\x0b\x32:.cel.expr.conformance.proto2.TestAllTypes.MapBoolBoolEntry\x12U\n\x0fmap_bool_string\x18@ \x03(\x0b\x32<.cel.expr.conformance.proto2.TestAllTypes.MapBoolStringEntry\x12S\n\x0emap_bool_bytes\x18\x41 \x03(\x0b\x32;.cel.expr.conformance.proto2.TestAllTypes.MapBoolBytesEntry\x12S\n\x0emap_bool_int32\x18\x42 \x03(\x0b\x32;.cel.expr.conformance.proto2.TestAllTypes.MapBoolInt32Entry\x12S\n\x0emap_bool_int64\x18\x43 \x03(\x0b\x32;.cel.expr.conformance.proto2.TestAllTypes.MapBoolInt64Entry\x12U\n\x0fmap_bool_uint32\x18\x44 \x03(\x0b\x32<.cel.expr.conformance.proto2.TestAllTypes.MapBoolUint32Entry\x12U\n\x0fmap_bool_uint64\x18\x45 \x03(\x0b\x32<.cel.expr.conformance.proto2.TestAllTypes.MapBoolUint64Entry\x12S\n\x0emap_bool_float\x18\x46 \x03(\x0b\x32;.cel.expr.conformance.proto2.TestAllTypes.MapBoolFloatEntry\x12U\n\x0fmap_bool_double\x18G \x03(\x0b\x32<.cel.expr.conformance.proto2.TestAllTypes.MapBoolDoubleEntry\x12Q\n\rmap_bool_enum\x18H \x03(\x0b\x32:.cel.expr.conformance.proto2.TestAllTypes.MapBoolEnumEntry\x12W\n\x10map_bool_message\x18I \x03(\x0b\x32=.cel.expr.conformance.proto2.TestAllTypes.MapBoolMessageEntry\x12Z\n\x11map_bool_duration\x18\xe4\x01 \x03(\x0b\x32>.cel.expr.conformance.proto2.TestAllTypes.MapBoolDurationEntry\x12\\\n\x12map_bool_timestamp\x18\xe5\x01 \x03(\x0b\x32?.cel.expr.conformance.proto2.TestAllTypes.MapBoolTimestampEntry\x12]\n\x13map_bool_null_value\x18\xe6\x01 \x03(\x0b\x32?.cel.expr.conformance.proto2.TestAllTypes.MapBoolNullValueEntry\x12P\n\x0cmap_bool_any\x18\xf6\x01 \x03(\x0b\x32\x39.cel.expr.conformance.proto2.TestAllTypes.MapBoolAnyEntry\x12V\n\x0fmap_bool_struct\x18\xf7\x01 \x03(\x0b\x32<.cel.expr.conformance.proto2.TestAllTypes.MapBoolStructEntry\x12T\n\x0emap_bool_value\x18\xf8\x01 \x03(\x0b\x32;.cel.expr.conformance.proto2.TestAllTypes.MapBoolValueEntry\x12]\n\x13map_bool_list_value\x18\xf9\x01 \x03(\x0b\x32?.cel.expr.conformance.proto2.TestAllTypes.MapBoolListValueEntry\x12\x63\n\x16map_bool_int64_wrapper\x18\xfa\x01 \x03(\x0b\x32\x42.cel.expr.conformance.proto2.TestAllTypes.MapBoolInt64WrapperEntry\x12\x63\n\x16map_bool_int32_wrapper\x18\xfb\x01 \x03(\x0b\x32\x42.cel.expr.conformance.proto2.TestAllTypes.MapBoolInt32WrapperEntry\x12\x65\n\x17map_bool_double_wrapper\x18\xfc\x01 \x03(\x0b\x32\x43.cel.expr.conformance.proto2.TestAllTypes.MapBoolDoubleWrapperEntry\x12\x63\n\x16map_bool_float_wrapper\x18\xfd\x01 \x03(\x0b\x32\x42.cel.expr.conformance.proto2.TestAllTypes.MapBoolFloatWrapperEntry\x12\x65\n\x17map_bool_uint64_wrapper\x18\xfe\x01 \x03(\x0b\x32\x43.cel.expr.conformance.proto2.TestAllTypes.MapBoolUint64WrapperEntry\x12\x65\n\x17map_bool_uint32_wrapper\x18\xff\x01 \x03(\x0b\x32\x43.cel.expr.conformance.proto2.TestAllTypes.MapBoolUint32WrapperEntry\x12\x65\n\x17map_bool_string_wrapper\x18\x80\x02 \x03(\x0b\x32\x43.cel.expr.conformance.proto2.TestAllTypes.MapBoolStringWrapperEntry\x12\x61\n\x15map_bool_bool_wrapper\x18\x81\x02 \x03(\x0b\x32\x41.cel.expr.conformance.proto2.TestAllTypes.MapBoolBoolWrapperEntry\x12\x63\n\x16map_bool_bytes_wrapper\x18\x82\x02 \x03(\x0b\x32\x42.cel.expr.conformance.proto2.TestAllTypes.MapBoolBytesWrapperEntry\x12S\n\x0emap_int32_bool\x18J \x03(\x0b\x32;.cel.expr.conformance.proto2.TestAllTypes.MapInt32BoolEntry\x12W\n\x10map_int32_string\x18K \x03(\x0b\x32=.cel.expr.conformance.proto2.TestAllTypes.MapInt32StringEntry\x12U\n\x0fmap_int32_bytes\x18L \x03(\x0b\x32<.cel.expr.conformance.proto2.TestAllTypes.MapInt32BytesEntry\x12U\n\x0fmap_int32_int32\x18M \x03(\x0b\x32<.cel.expr.conformance.proto2.TestAllTypes.MapInt32Int32Entry\x12U\n\x0fmap_int32_int64\x18N \x03(\x0b\x32<.cel.expr.conformance.proto2.TestAllTypes.MapInt32Int64Entry\x12W\n\x10map_int32_uint32\x18O \x03(\x0b\x32=.cel.expr.conformance.proto2.TestAllTypes.MapInt32Uint32Entry\x12W\n\x10map_int32_uint64\x18P \x03(\x0b\x32=.cel.expr.conformance.proto2.TestAllTypes.MapInt32Uint64Entry\x12U\n\x0fmap_int32_float\x18Q \x03(\x0b\x32<.cel.expr.conformance.proto2.TestAllTypes.MapInt32FloatEntry\x12W\n\x10map_int32_double\x18R \x03(\x0b\x32=.cel.expr.conformance.proto2.TestAllTypes.MapInt32DoubleEntry\x12S\n\x0emap_int32_enum\x18S \x03(\x0b\x32;.cel.expr.conformance.proto2.TestAllTypes.MapInt32EnumEntry\x12Y\n\x11map_int32_message\x18T \x03(\x0b\x32>.cel.expr.conformance.proto2.TestAllTypes.MapInt32MessageEntry\x12\\\n\x12map_int32_duration\x18\xe7\x01 \x03(\x0b\x32?.cel.expr.conformance.proto2.TestAllTypes.MapInt32DurationEntry\x12^\n\x13map_int32_timestamp\x18\xe8\x01 \x03(\x0b\x32@.cel.expr.conformance.proto2.TestAllTypes.MapInt32TimestampEntry\x12_\n\x14map_int32_null_value\x18\xe9\x01 \x03(\x0b\x32@.cel.expr.conformance.proto2.TestAllTypes.MapInt32NullValueEntry\x12R\n\rmap_int32_any\x18\x83\x02 \x03(\x0b\x32:.cel.expr.conformance.proto2.TestAllTypes.MapInt32AnyEntry\x12X\n\x10map_int32_struct\x18\x84\x02 \x03(\x0b\x32=.cel.expr.conformance.proto2.TestAllTypes.MapInt32StructEntry\x12V\n\x0fmap_int32_value\x18\x85\x02 \x03(\x0b\x32<.cel.expr.conformance.proto2.TestAllTypes.MapInt32ValueEntry\x12_\n\x14map_int32_list_value\x18\x86\x02 \x03(\x0b\x32@.cel.expr.conformance.proto2.TestAllTypes.MapInt32ListValueEntry\x12\x65\n\x17map_int32_int64_wrapper\x18\x87\x02 \x03(\x0b\x32\x43.cel.expr.conformance.proto2.TestAllTypes.MapInt32Int64WrapperEntry\x12\x65\n\x17map_int32_int32_wrapper\x18\x88\x02 \x03(\x0b\x32\x43.cel.expr.conformance.proto2.TestAllTypes.MapInt32Int32WrapperEntry\x12g\n\x18map_int32_double_wrapper\x18\x89\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto2.TestAllTypes.MapInt32DoubleWrapperEntry\x12\x65\n\x17map_int32_float_wrapper\x18\x8a\x02 \x03(\x0b\x32\x43.cel.expr.conformance.proto2.TestAllTypes.MapInt32FloatWrapperEntry\x12g\n\x18map_int32_uint64_wrapper\x18\x8b\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto2.TestAllTypes.MapInt32Uint64WrapperEntry\x12g\n\x18map_int32_uint32_wrapper\x18\x8c\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto2.TestAllTypes.MapInt32Uint32WrapperEntry\x12g\n\x18map_int32_string_wrapper\x18\x8d\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto2.TestAllTypes.MapInt32StringWrapperEntry\x12\x63\n\x16map_int32_bool_wrapper\x18\x8e\x02 \x03(\x0b\x32\x42.cel.expr.conformance.proto2.TestAllTypes.MapInt32BoolWrapperEntry\x12\x65\n\x17map_int32_bytes_wrapper\x18\x8f\x02 \x03(\x0b\x32\x43.cel.expr.conformance.proto2.TestAllTypes.MapInt32BytesWrapperEntry\x12S\n\x0emap_int64_bool\x18U \x03(\x0b\x32;.cel.expr.conformance.proto2.TestAllTypes.MapInt64BoolEntry\x12W\n\x10map_int64_string\x18V \x03(\x0b\x32=.cel.expr.conformance.proto2.TestAllTypes.MapInt64StringEntry\x12U\n\x0fmap_int64_bytes\x18W \x03(\x0b\x32<.cel.expr.conformance.proto2.TestAllTypes.MapInt64BytesEntry\x12U\n\x0fmap_int64_int32\x18X \x03(\x0b\x32<.cel.expr.conformance.proto2.TestAllTypes.MapInt64Int32Entry\x12U\n\x0fmap_int64_int64\x18Y \x03(\x0b\x32<.cel.expr.conformance.proto2.TestAllTypes.MapInt64Int64Entry\x12W\n\x10map_int64_uint32\x18Z \x03(\x0b\x32=.cel.expr.conformance.proto2.TestAllTypes.MapInt64Uint32Entry\x12W\n\x10map_int64_uint64\x18[ \x03(\x0b\x32=.cel.expr.conformance.proto2.TestAllTypes.MapInt64Uint64Entry\x12U\n\x0fmap_int64_float\x18\\ \x03(\x0b\x32<.cel.expr.conformance.proto2.TestAllTypes.MapInt64FloatEntry\x12W\n\x10map_int64_double\x18] \x03(\x0b\x32=.cel.expr.conformance.proto2.TestAllTypes.MapInt64DoubleEntry\x12S\n\x0emap_int64_enum\x18^ \x03(\x0b\x32;.cel.expr.conformance.proto2.TestAllTypes.MapInt64EnumEntry\x12Y\n\x11map_int64_message\x18_ \x03(\x0b\x32>.cel.expr.conformance.proto2.TestAllTypes.MapInt64MessageEntry\x12\\\n\x12map_int64_duration\x18\xea\x01 \x03(\x0b\x32?.cel.expr.conformance.proto2.TestAllTypes.MapInt64DurationEntry\x12^\n\x13map_int64_timestamp\x18\xeb\x01 \x03(\x0b\x32@.cel.expr.conformance.proto2.TestAllTypes.MapInt64TimestampEntry\x12_\n\x14map_int64_null_value\x18\xec\x01 \x03(\x0b\x32@.cel.expr.conformance.proto2.TestAllTypes.MapInt64NullValueEntry\x12R\n\rmap_int64_any\x18\x90\x02 \x03(\x0b\x32:.cel.expr.conformance.proto2.TestAllTypes.MapInt64AnyEntry\x12X\n\x10map_int64_struct\x18\x91\x02 \x03(\x0b\x32=.cel.expr.conformance.proto2.TestAllTypes.MapInt64StructEntry\x12V\n\x0fmap_int64_value\x18\x92\x02 \x03(\x0b\x32<.cel.expr.conformance.proto2.TestAllTypes.MapInt64ValueEntry\x12_\n\x14map_int64_list_value\x18\x93\x02 \x03(\x0b\x32@.cel.expr.conformance.proto2.TestAllTypes.MapInt64ListValueEntry\x12\x65\n\x17map_int64_int64_wrapper\x18\x94\x02 \x03(\x0b\x32\x43.cel.expr.conformance.proto2.TestAllTypes.MapInt64Int64WrapperEntry\x12\x65\n\x17map_int64_int32_wrapper\x18\x95\x02 \x03(\x0b\x32\x43.cel.expr.conformance.proto2.TestAllTypes.MapInt64Int32WrapperEntry\x12g\n\x18map_int64_double_wrapper\x18\x96\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto2.TestAllTypes.MapInt64DoubleWrapperEntry\x12\x65\n\x17map_int64_float_wrapper\x18\x97\x02 \x03(\x0b\x32\x43.cel.expr.conformance.proto2.TestAllTypes.MapInt64FloatWrapperEntry\x12g\n\x18map_int64_uint64_wrapper\x18\x98\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto2.TestAllTypes.MapInt64Uint64WrapperEntry\x12g\n\x18map_int64_uint32_wrapper\x18\x99\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto2.TestAllTypes.MapInt64Uint32WrapperEntry\x12g\n\x18map_int64_string_wrapper\x18\x9a\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto2.TestAllTypes.MapInt64StringWrapperEntry\x12\x63\n\x16map_int64_bool_wrapper\x18\x9b\x02 \x03(\x0b\x32\x42.cel.expr.conformance.proto2.TestAllTypes.MapInt64BoolWrapperEntry\x12\x65\n\x17map_int64_bytes_wrapper\x18\x9c\x02 \x03(\x0b\x32\x43.cel.expr.conformance.proto2.TestAllTypes.MapInt64BytesWrapperEntry\x12U\n\x0fmap_uint32_bool\x18` \x03(\x0b\x32<.cel.expr.conformance.proto2.TestAllTypes.MapUint32BoolEntry\x12Y\n\x11map_uint32_string\x18\x61 \x03(\x0b\x32>.cel.expr.conformance.proto2.TestAllTypes.MapUint32StringEntry\x12W\n\x10map_uint32_bytes\x18\x62 \x03(\x0b\x32=.cel.expr.conformance.proto2.TestAllTypes.MapUint32BytesEntry\x12W\n\x10map_uint32_int32\x18\x63 \x03(\x0b\x32=.cel.expr.conformance.proto2.TestAllTypes.MapUint32Int32Entry\x12X\n\x10map_uint32_int64\x18\xc8\x01 \x03(\x0b\x32=.cel.expr.conformance.proto2.TestAllTypes.MapUint32Int64Entry\x12Z\n\x11map_uint32_uint32\x18\xc9\x01 \x03(\x0b\x32>.cel.expr.conformance.proto2.TestAllTypes.MapUint32Uint32Entry\x12Z\n\x11map_uint32_uint64\x18\xca\x01 \x03(\x0b\x32>.cel.expr.conformance.proto2.TestAllTypes.MapUint32Uint64Entry\x12X\n\x10map_uint32_float\x18\xcb\x01 \x03(\x0b\x32=.cel.expr.conformance.proto2.TestAllTypes.MapUint32FloatEntry\x12Z\n\x11map_uint32_double\x18\xcc\x01 \x03(\x0b\x32>.cel.expr.conformance.proto2.TestAllTypes.MapUint32DoubleEntry\x12V\n\x0fmap_uint32_enum\x18\xcd\x01 \x03(\x0b\x32<.cel.expr.conformance.proto2.TestAllTypes.MapUint32EnumEntry\x12\\\n\x12map_uint32_message\x18\xce\x01 \x03(\x0b\x32?.cel.expr.conformance.proto2.TestAllTypes.MapUint32MessageEntry\x12^\n\x13map_uint32_duration\x18\xed\x01 \x03(\x0b\x32@.cel.expr.conformance.proto2.TestAllTypes.MapUint32DurationEntry\x12`\n\x14map_uint32_timestamp\x18\xee\x01 \x03(\x0b\x32\x41.cel.expr.conformance.proto2.TestAllTypes.MapUint32TimestampEntry\x12\x61\n\x15map_uint32_null_value\x18\xef\x01 \x03(\x0b\x32\x41.cel.expr.conformance.proto2.TestAllTypes.MapUint32NullValueEntry\x12T\n\x0emap_uint32_any\x18\x9d\x02 \x03(\x0b\x32;.cel.expr.conformance.proto2.TestAllTypes.MapUint32AnyEntry\x12Z\n\x11map_uint32_struct\x18\x9e\x02 \x03(\x0b\x32>.cel.expr.conformance.proto2.TestAllTypes.MapUint32StructEntry\x12X\n\x10map_uint32_value\x18\x9f\x02 \x03(\x0b\x32=.cel.expr.conformance.proto2.TestAllTypes.MapUint32ValueEntry\x12\x61\n\x15map_uint32_list_value\x18\xa0\x02 \x03(\x0b\x32\x41.cel.expr.conformance.proto2.TestAllTypes.MapUint32ListValueEntry\x12g\n\x18map_uint32_int64_wrapper\x18\xa1\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto2.TestAllTypes.MapUint32Int64WrapperEntry\x12g\n\x18map_uint32_int32_wrapper\x18\xa2\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto2.TestAllTypes.MapUint32Int32WrapperEntry\x12i\n\x19map_uint32_double_wrapper\x18\xa3\x02 \x03(\x0b\x32\x45.cel.expr.conformance.proto2.TestAllTypes.MapUint32DoubleWrapperEntry\x12g\n\x18map_uint32_float_wrapper\x18\xa4\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto2.TestAllTypes.MapUint32FloatWrapperEntry\x12i\n\x19map_uint32_uint64_wrapper\x18\xa5\x02 \x03(\x0b\x32\x45.cel.expr.conformance.proto2.TestAllTypes.MapUint32Uint64WrapperEntry\x12i\n\x19map_uint32_uint32_wrapper\x18\xa6\x02 \x03(\x0b\x32\x45.cel.expr.conformance.proto2.TestAllTypes.MapUint32Uint32WrapperEntry\x12i\n\x19map_uint32_string_wrapper\x18\xa7\x02 \x03(\x0b\x32\x45.cel.expr.conformance.proto2.TestAllTypes.MapUint32StringWrapperEntry\x12\x65\n\x17map_uint32_bool_wrapper\x18\xa8\x02 \x03(\x0b\x32\x43.cel.expr.conformance.proto2.TestAllTypes.MapUint32BoolWrapperEntry\x12g\n\x18map_uint32_bytes_wrapper\x18\xa9\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto2.TestAllTypes.MapUint32BytesWrapperEntry\x12V\n\x0fmap_uint64_bool\x18\xcf\x01 \x03(\x0b\x32<.cel.expr.conformance.proto2.TestAllTypes.MapUint64BoolEntry\x12Z\n\x11map_uint64_string\x18\xd0\x01 \x03(\x0b\x32>.cel.expr.conformance.proto2.TestAllTypes.MapUint64StringEntry\x12X\n\x10map_uint64_bytes\x18\xd1\x01 \x03(\x0b\x32=.cel.expr.conformance.proto2.TestAllTypes.MapUint64BytesEntry\x12X\n\x10map_uint64_int32\x18\xd2\x01 \x03(\x0b\x32=.cel.expr.conformance.proto2.TestAllTypes.MapUint64Int32Entry\x12X\n\x10map_uint64_int64\x18\xd3\x01 \x03(\x0b\x32=.cel.expr.conformance.proto2.TestAllTypes.MapUint64Int64Entry\x12Z\n\x11map_uint64_uint32\x18\xd4\x01 \x03(\x0b\x32>.cel.expr.conformance.proto2.TestAllTypes.MapUint64Uint32Entry\x12Z\n\x11map_uint64_uint64\x18\xd5\x01 \x03(\x0b\x32>.cel.expr.conformance.proto2.TestAllTypes.MapUint64Uint64Entry\x12X\n\x10map_uint64_float\x18\xd6\x01 \x03(\x0b\x32=.cel.expr.conformance.proto2.TestAllTypes.MapUint64FloatEntry\x12Z\n\x11map_uint64_double\x18\xd7\x01 \x03(\x0b\x32>.cel.expr.conformance.proto2.TestAllTypes.MapUint64DoubleEntry\x12V\n\x0fmap_uint64_enum\x18\xd8\x01 \x03(\x0b\x32<.cel.expr.conformance.proto2.TestAllTypes.MapUint64EnumEntry\x12\\\n\x12map_uint64_message\x18\xd9\x01 \x03(\x0b\x32?.cel.expr.conformance.proto2.TestAllTypes.MapUint64MessageEntry\x12^\n\x13map_uint64_duration\x18\xf0\x01 \x03(\x0b\x32@.cel.expr.conformance.proto2.TestAllTypes.MapUint64DurationEntry\x12`\n\x14map_uint64_timestamp\x18\xf1\x01 \x03(\x0b\x32\x41.cel.expr.conformance.proto2.TestAllTypes.MapUint64TimestampEntry\x12\x61\n\x15map_uint64_null_value\x18\xf2\x01 \x03(\x0b\x32\x41.cel.expr.conformance.proto2.TestAllTypes.MapUint64NullValueEntry\x12T\n\x0emap_uint64_any\x18\xaa\x02 \x03(\x0b\x32;.cel.expr.conformance.proto2.TestAllTypes.MapUint64AnyEntry\x12Z\n\x11map_uint64_struct\x18\xab\x02 \x03(\x0b\x32>.cel.expr.conformance.proto2.TestAllTypes.MapUint64StructEntry\x12X\n\x10map_uint64_value\x18\xac\x02 \x03(\x0b\x32=.cel.expr.conformance.proto2.TestAllTypes.MapUint64ValueEntry\x12\x61\n\x15map_uint64_list_value\x18\xad\x02 \x03(\x0b\x32\x41.cel.expr.conformance.proto2.TestAllTypes.MapUint64ListValueEntry\x12g\n\x18map_uint64_int64_wrapper\x18\xae\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto2.TestAllTypes.MapUint64Int64WrapperEntry\x12g\n\x18map_uint64_int32_wrapper\x18\xaf\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto2.TestAllTypes.MapUint64Int32WrapperEntry\x12i\n\x19map_uint64_double_wrapper\x18\xb0\x02 \x03(\x0b\x32\x45.cel.expr.conformance.proto2.TestAllTypes.MapUint64DoubleWrapperEntry\x12g\n\x18map_uint64_float_wrapper\x18\xb1\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto2.TestAllTypes.MapUint64FloatWrapperEntry\x12i\n\x19map_uint64_uint64_wrapper\x18\xb2\x02 \x03(\x0b\x32\x45.cel.expr.conformance.proto2.TestAllTypes.MapUint64Uint64WrapperEntry\x12i\n\x19map_uint64_uint32_wrapper\x18\xb3\x02 \x03(\x0b\x32\x45.cel.expr.conformance.proto2.TestAllTypes.MapUint64Uint32WrapperEntry\x12i\n\x19map_uint64_string_wrapper\x18\xb4\x02 \x03(\x0b\x32\x45.cel.expr.conformance.proto2.TestAllTypes.MapUint64StringWrapperEntry\x12\x65\n\x17map_uint64_bool_wrapper\x18\xb5\x02 \x03(\x0b\x32\x43.cel.expr.conformance.proto2.TestAllTypes.MapUint64BoolWrapperEntry\x12g\n\x18map_uint64_bytes_wrapper\x18\xb6\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto2.TestAllTypes.MapUint64BytesWrapperEntry\x12V\n\x0fmap_string_bool\x18\xda\x01 \x03(\x0b\x32<.cel.expr.conformance.proto2.TestAllTypes.MapStringBoolEntry\x12Y\n\x11map_string_string\x18= \x03(\x0b\x32>.cel.expr.conformance.proto2.TestAllTypes.MapStringStringEntry\x12X\n\x10map_string_bytes\x18\xdb\x01 \x03(\x0b\x32=.cel.expr.conformance.proto2.TestAllTypes.MapStringBytesEntry\x12X\n\x10map_string_int32\x18\xdc\x01 \x03(\x0b\x32=.cel.expr.conformance.proto2.TestAllTypes.MapStringInt32Entry\x12X\n\x10map_string_int64\x18\xdd\x01 \x03(\x0b\x32=.cel.expr.conformance.proto2.TestAllTypes.MapStringInt64Entry\x12Z\n\x11map_string_uint32\x18\xde\x01 \x03(\x0b\x32>.cel.expr.conformance.proto2.TestAllTypes.MapStringUint32Entry\x12Z\n\x11map_string_uint64\x18\xdf\x01 \x03(\x0b\x32>.cel.expr.conformance.proto2.TestAllTypes.MapStringUint64Entry\x12X\n\x10map_string_float\x18\xe0\x01 \x03(\x0b\x32=.cel.expr.conformance.proto2.TestAllTypes.MapStringFloatEntry\x12Z\n\x11map_string_double\x18\xe1\x01 \x03(\x0b\x32>.cel.expr.conformance.proto2.TestAllTypes.MapStringDoubleEntry\x12V\n\x0fmap_string_enum\x18\xe2\x01 \x03(\x0b\x32<.cel.expr.conformance.proto2.TestAllTypes.MapStringEnumEntry\x12\\\n\x12map_string_message\x18\xe3\x01 \x03(\x0b\x32?.cel.expr.conformance.proto2.TestAllTypes.MapStringMessageEntry\x12^\n\x13map_string_duration\x18\xf3\x01 \x03(\x0b\x32@.cel.expr.conformance.proto2.TestAllTypes.MapStringDurationEntry\x12`\n\x14map_string_timestamp\x18\xf4\x01 \x03(\x0b\x32\x41.cel.expr.conformance.proto2.TestAllTypes.MapStringTimestampEntry\x12\x61\n\x15map_string_null_value\x18\xf5\x01 \x03(\x0b\x32\x41.cel.expr.conformance.proto2.TestAllTypes.MapStringNullValueEntry\x12T\n\x0emap_string_any\x18\xb7\x02 \x03(\x0b\x32;.cel.expr.conformance.proto2.TestAllTypes.MapStringAnyEntry\x12Z\n\x11map_string_struct\x18\xb8\x02 \x03(\x0b\x32>.cel.expr.conformance.proto2.TestAllTypes.MapStringStructEntry\x12X\n\x10map_string_value\x18\xb9\x02 \x03(\x0b\x32=.cel.expr.conformance.proto2.TestAllTypes.MapStringValueEntry\x12\x61\n\x15map_string_list_value\x18\xba\x02 \x03(\x0b\x32\x41.cel.expr.conformance.proto2.TestAllTypes.MapStringListValueEntry\x12g\n\x18map_string_int64_wrapper\x18\xbb\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto2.TestAllTypes.MapStringInt64WrapperEntry\x12g\n\x18map_string_int32_wrapper\x18\xbc\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto2.TestAllTypes.MapStringInt32WrapperEntry\x12i\n\x19map_string_double_wrapper\x18\xbd\x02 \x03(\x0b\x32\x45.cel.expr.conformance.proto2.TestAllTypes.MapStringDoubleWrapperEntry\x12g\n\x18map_string_float_wrapper\x18\xbe\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto2.TestAllTypes.MapStringFloatWrapperEntry\x12i\n\x19map_string_uint64_wrapper\x18\xbf\x02 \x03(\x0b\x32\x45.cel.expr.conformance.proto2.TestAllTypes.MapStringUint64WrapperEntry\x12i\n\x19map_string_uint32_wrapper\x18\xc0\x02 \x03(\x0b\x32\x45.cel.expr.conformance.proto2.TestAllTypes.MapStringUint32WrapperEntry\x12i\n\x19map_string_string_wrapper\x18\xc1\x02 \x03(\x0b\x32\x45.cel.expr.conformance.proto2.TestAllTypes.MapStringStringWrapperEntry\x12\x65\n\x17map_string_bool_wrapper\x18\xc2\x02 \x03(\x0b\x32\x43.cel.expr.conformance.proto2.TestAllTypes.MapStringBoolWrapperEntry\x12g\n\x18map_string_bytes_wrapper\x18\xc3\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto2.TestAllTypes.MapStringBytesWrapperEntry\x12\x46\n\noneof_type\x18\x90\x03 \x01(\x0b\x32/.cel.expr.conformance.proto2.NestedTestAllTypesH\x01\x12M\n\toneof_msg\x18\x91\x03 \x01(\x0b\x32\x37.cel.expr.conformance.proto2.TestAllTypes.NestedMessageH\x01\x12\x15\n\noneof_bool\x18\x92\x03 \x01(\x08H\x01\x12K\n\x0bnestedgroup\x18\x93\x03 \x01(\n25.cel.expr.conformance.proto2.TestAllTypes.NestedGroup\x1a\x1b\n\rNestedMessage\x12\n\n\x02\x62\x62\x18\x01 \x01(\x05\x1aj\n\x17MapInt64NestedTypeEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12>\n\x05value\x18\x02 \x01(\x0b\x32/.cel.expr.conformance.proto2.NestedTestAllTypes:\x02\x38\x01\x1a\x32\n\x10MapBoolBoolEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\x1a\x34\n\x12MapBoolStringEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x33\n\x11MapBoolBytesEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\x1a\x33\n\x11MapBoolInt32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a\x33\n\x11MapBoolInt64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\x1a\x34\n\x12MapBoolUint32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\x1a\x34\n\x12MapBoolUint64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12\r\n\x05value\x18\x02 \x01(\x04:\x02\x38\x01\x1a\x33\n\x11MapBoolFloatEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\x1a\x34\n\x12MapBoolDoubleEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12\r\n\x05value\x18\x02 \x01(\x01:\x02\x38\x01\x1ah\n\x10MapBoolEnumEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12\x43\n\x05value\x18\x02 \x01(\x0e\x32\x34.cel.expr.conformance.proto2.TestAllTypes.NestedEnum:\x02\x38\x01\x1an\n\x13MapBoolMessageEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12\x46\n\x05value\x18\x02 \x01(\x0b\x32\x37.cel.expr.conformance.proto2.TestAllTypes.NestedMessage:\x02\x38\x01\x1aQ\n\x14MapBoolDurationEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration:\x02\x38\x01\x1aS\n\x15MapBoolTimestampEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp:\x02\x38\x01\x1aS\n\x15MapBoolNullValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12)\n\x05value\x18\x02 \x01(\x0e\x32\x1a.google.protobuf.NullValue:\x02\x38\x01\x1aG\n\x0fMapBoolAnyEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any:\x02\x38\x01\x1aM\n\x12MapBoolStructEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct:\x02\x38\x01\x1aK\n\x11MapBoolValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value:\x02\x38\x01\x1aS\n\x15MapBoolListValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.ListValue:\x02\x38\x01\x1aW\n\x18MapBoolInt64WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value:\x02\x38\x01\x1aW\n\x18MapBoolInt32WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int32Value:\x02\x38\x01\x1aY\n\x19MapBoolDoubleWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue:\x02\x38\x01\x1aW\n\x18MapBoolFloatWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.FloatValue:\x02\x38\x01\x1aY\n\x19MapBoolUint64WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value:\x02\x38\x01\x1aY\n\x19MapBoolUint32WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value:\x02\x38\x01\x1aY\n\x19MapBoolStringWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue:\x02\x38\x01\x1aU\n\x17MapBoolBoolWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValue:\x02\x38\x01\x1aW\n\x18MapBoolBytesWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.BytesValue:\x02\x38\x01\x1a\x33\n\x11MapInt32BoolEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\x1a\x35\n\x13MapInt32StringEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x34\n\x12MapInt32BytesEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\x1a\x34\n\x12MapInt32Int32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a\x34\n\x12MapInt32Int64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\x1a\x35\n\x13MapInt32Uint32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\x1a\x35\n\x13MapInt32Uint64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x04:\x02\x38\x01\x1a\x34\n\x12MapInt32FloatEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\x1a\x35\n\x13MapInt32DoubleEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x01:\x02\x38\x01\x1ai\n\x11MapInt32EnumEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\x43\n\x05value\x18\x02 \x01(\x0e\x32\x34.cel.expr.conformance.proto2.TestAllTypes.NestedEnum:\x02\x38\x01\x1ao\n\x14MapInt32MessageEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\x46\n\x05value\x18\x02 \x01(\x0b\x32\x37.cel.expr.conformance.proto2.TestAllTypes.NestedMessage:\x02\x38\x01\x1aR\n\x15MapInt32DurationEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration:\x02\x38\x01\x1aT\n\x16MapInt32TimestampEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp:\x02\x38\x01\x1aT\n\x16MapInt32NullValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12)\n\x05value\x18\x02 \x01(\x0e\x32\x1a.google.protobuf.NullValue:\x02\x38\x01\x1aH\n\x10MapInt32AnyEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any:\x02\x38\x01\x1aN\n\x13MapInt32StructEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct:\x02\x38\x01\x1aL\n\x12MapInt32ValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value:\x02\x38\x01\x1aT\n\x16MapInt32ListValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.ListValue:\x02\x38\x01\x1aX\n\x19MapInt32Int64WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value:\x02\x38\x01\x1aX\n\x19MapInt32Int32WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int32Value:\x02\x38\x01\x1aZ\n\x1aMapInt32DoubleWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue:\x02\x38\x01\x1aX\n\x19MapInt32FloatWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.FloatValue:\x02\x38\x01\x1aZ\n\x1aMapInt32Uint64WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value:\x02\x38\x01\x1aZ\n\x1aMapInt32Uint32WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value:\x02\x38\x01\x1aZ\n\x1aMapInt32StringWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue:\x02\x38\x01\x1aV\n\x18MapInt32BoolWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValue:\x02\x38\x01\x1aX\n\x19MapInt32BytesWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.BytesValue:\x02\x38\x01\x1a\x33\n\x11MapInt64BoolEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\x1a\x35\n\x13MapInt64StringEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x34\n\x12MapInt64BytesEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\x1a\x34\n\x12MapInt64Int32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a\x34\n\x12MapInt64Int64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\x1a\x35\n\x13MapInt64Uint32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\x1a\x35\n\x13MapInt64Uint64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\x04:\x02\x38\x01\x1a\x34\n\x12MapInt64FloatEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\x1a\x35\n\x13MapInt64DoubleEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\x01:\x02\x38\x01\x1ai\n\x11MapInt64EnumEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\x43\n\x05value\x18\x02 \x01(\x0e\x32\x34.cel.expr.conformance.proto2.TestAllTypes.NestedEnum:\x02\x38\x01\x1ao\n\x14MapInt64MessageEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\x46\n\x05value\x18\x02 \x01(\x0b\x32\x37.cel.expr.conformance.proto2.TestAllTypes.NestedMessage:\x02\x38\x01\x1aR\n\x15MapInt64DurationEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration:\x02\x38\x01\x1aT\n\x16MapInt64TimestampEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp:\x02\x38\x01\x1aT\n\x16MapInt64NullValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12)\n\x05value\x18\x02 \x01(\x0e\x32\x1a.google.protobuf.NullValue:\x02\x38\x01\x1aH\n\x10MapInt64AnyEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any:\x02\x38\x01\x1aN\n\x13MapInt64StructEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct:\x02\x38\x01\x1aL\n\x12MapInt64ValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value:\x02\x38\x01\x1aT\n\x16MapInt64ListValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.ListValue:\x02\x38\x01\x1aX\n\x19MapInt64Int64WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value:\x02\x38\x01\x1aX\n\x19MapInt64Int32WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int32Value:\x02\x38\x01\x1aZ\n\x1aMapInt64DoubleWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue:\x02\x38\x01\x1aX\n\x19MapInt64FloatWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.FloatValue:\x02\x38\x01\x1aZ\n\x1aMapInt64Uint64WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value:\x02\x38\x01\x1aZ\n\x1aMapInt64Uint32WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value:\x02\x38\x01\x1aZ\n\x1aMapInt64StringWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue:\x02\x38\x01\x1aV\n\x18MapInt64BoolWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValue:\x02\x38\x01\x1aX\n\x19MapInt64BytesWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.BytesValue:\x02\x38\x01\x1a\x34\n\x12MapUint32BoolEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\x1a\x36\n\x14MapUint32StringEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x35\n\x13MapUint32BytesEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\x1a\x35\n\x13MapUint32Int32Entry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a\x35\n\x13MapUint32Int64Entry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\x1a\x36\n\x14MapUint32Uint32Entry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\x1a\x36\n\x14MapUint32Uint64Entry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\x04:\x02\x38\x01\x1a\x35\n\x13MapUint32FloatEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\x1a\x36\n\x14MapUint32DoubleEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\x01:\x02\x38\x01\x1aj\n\x12MapUint32EnumEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x43\n\x05value\x18\x02 \x01(\x0e\x32\x34.cel.expr.conformance.proto2.TestAllTypes.NestedEnum:\x02\x38\x01\x1ap\n\x15MapUint32MessageEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x46\n\x05value\x18\x02 \x01(\x0b\x32\x37.cel.expr.conformance.proto2.TestAllTypes.NestedMessage:\x02\x38\x01\x1aS\n\x16MapUint32DurationEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration:\x02\x38\x01\x1aU\n\x17MapUint32TimestampEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp:\x02\x38\x01\x1aU\n\x17MapUint32NullValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12)\n\x05value\x18\x02 \x01(\x0e\x32\x1a.google.protobuf.NullValue:\x02\x38\x01\x1aI\n\x11MapUint32AnyEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any:\x02\x38\x01\x1aO\n\x14MapUint32StructEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct:\x02\x38\x01\x1aM\n\x13MapUint32ValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value:\x02\x38\x01\x1aU\n\x17MapUint32ListValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.ListValue:\x02\x38\x01\x1aY\n\x1aMapUint32Int64WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value:\x02\x38\x01\x1aY\n\x1aMapUint32Int32WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int32Value:\x02\x38\x01\x1a[\n\x1bMapUint32DoubleWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue:\x02\x38\x01\x1aY\n\x1aMapUint32FloatWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.FloatValue:\x02\x38\x01\x1a[\n\x1bMapUint32Uint64WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value:\x02\x38\x01\x1a[\n\x1bMapUint32Uint32WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value:\x02\x38\x01\x1a[\n\x1bMapUint32StringWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue:\x02\x38\x01\x1aW\n\x19MapUint32BoolWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValue:\x02\x38\x01\x1aY\n\x1aMapUint32BytesWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.BytesValue:\x02\x38\x01\x1a\x34\n\x12MapUint64BoolEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\x1a\x36\n\x14MapUint64StringEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x35\n\x13MapUint64BytesEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\x1a\x35\n\x13MapUint64Int32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a\x35\n\x13MapUint64Int64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\x1a\x36\n\x14MapUint64Uint32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\x1a\x36\n\x14MapUint64Uint64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x04:\x02\x38\x01\x1a\x35\n\x13MapUint64FloatEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\x1a\x36\n\x14MapUint64DoubleEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x01:\x02\x38\x01\x1aj\n\x12MapUint64EnumEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\x43\n\x05value\x18\x02 \x01(\x0e\x32\x34.cel.expr.conformance.proto2.TestAllTypes.NestedEnum:\x02\x38\x01\x1ap\n\x15MapUint64MessageEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\x46\n\x05value\x18\x02 \x01(\x0b\x32\x37.cel.expr.conformance.proto2.TestAllTypes.NestedMessage:\x02\x38\x01\x1aS\n\x16MapUint64DurationEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration:\x02\x38\x01\x1aU\n\x17MapUint64TimestampEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp:\x02\x38\x01\x1aU\n\x17MapUint64NullValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12)\n\x05value\x18\x02 \x01(\x0e\x32\x1a.google.protobuf.NullValue:\x02\x38\x01\x1aI\n\x11MapUint64AnyEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any:\x02\x38\x01\x1aO\n\x14MapUint64StructEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct:\x02\x38\x01\x1aM\n\x13MapUint64ValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value:\x02\x38\x01\x1aU\n\x17MapUint64ListValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.ListValue:\x02\x38\x01\x1aY\n\x1aMapUint64Int64WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value:\x02\x38\x01\x1aY\n\x1aMapUint64Int32WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int32Value:\x02\x38\x01\x1a[\n\x1bMapUint64DoubleWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue:\x02\x38\x01\x1aY\n\x1aMapUint64FloatWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.FloatValue:\x02\x38\x01\x1a[\n\x1bMapUint64Uint64WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value:\x02\x38\x01\x1a[\n\x1bMapUint64Uint32WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value:\x02\x38\x01\x1a[\n\x1bMapUint64StringWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue:\x02\x38\x01\x1aW\n\x19MapUint64BoolWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValue:\x02\x38\x01\x1aY\n\x1aMapUint64BytesWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.BytesValue:\x02\x38\x01\x1a\x34\n\x12MapStringBoolEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\x1a\x36\n\x14MapStringStringEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x35\n\x13MapStringBytesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\x1a\x35\n\x13MapStringInt32Entry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a\x35\n\x13MapStringInt64Entry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\x1a\x36\n\x14MapStringUint32Entry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\x1a\x36\n\x14MapStringUint64Entry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x04:\x02\x38\x01\x1a\x35\n\x13MapStringFloatEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\x1a\x36\n\x14MapStringDoubleEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x01:\x02\x38\x01\x1aj\n\x12MapStringEnumEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x43\n\x05value\x18\x02 \x01(\x0e\x32\x34.cel.expr.conformance.proto2.TestAllTypes.NestedEnum:\x02\x38\x01\x1ap\n\x15MapStringMessageEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x46\n\x05value\x18\x02 \x01(\x0b\x32\x37.cel.expr.conformance.proto2.TestAllTypes.NestedMessage:\x02\x38\x01\x1aS\n\x16MapStringDurationEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration:\x02\x38\x01\x1aU\n\x17MapStringTimestampEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp:\x02\x38\x01\x1aU\n\x17MapStringNullValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0e\x32\x1a.google.protobuf.NullValue:\x02\x38\x01\x1aI\n\x11MapStringAnyEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any:\x02\x38\x01\x1aO\n\x14MapStringStructEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct:\x02\x38\x01\x1aM\n\x13MapStringValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value:\x02\x38\x01\x1aU\n\x17MapStringListValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.ListValue:\x02\x38\x01\x1aY\n\x1aMapStringInt64WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value:\x02\x38\x01\x1aY\n\x1aMapStringInt32WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int32Value:\x02\x38\x01\x1a[\n\x1bMapStringDoubleWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue:\x02\x38\x01\x1aY\n\x1aMapStringFloatWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.FloatValue:\x02\x38\x01\x1a[\n\x1bMapStringUint64WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value:\x02\x38\x01\x1a[\n\x1bMapStringUint32WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value:\x02\x38\x01\x1a[\n\x1bMapStringStringWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue:\x02\x38\x01\x1aW\n\x19MapStringBoolWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValue:\x02\x38\x01\x1aY\n\x1aMapStringBytesWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.BytesValue:\x02\x38\x01\x1a\x37\n\x0bNestedGroup\x12\x12\n\tsingle_id\x18\x94\x03 \x01(\x05\x12\x14\n\x0bsingle_name\x18\x95\x03 \x01(\t\"\'\n\nNestedEnum\x12\x07\n\x03\x46OO\x10\x00\x12\x07\n\x03\x42\x41R\x10\x01\x12\x07\n\x03\x42\x41Z\x10\x02*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\r\n\x0bnested_typeB\x06\n\x04kind\"\x90\x01\n\x12NestedTestAllTypes\x12>\n\x05\x63hild\x18\x01 \x01(\x0b\x32/.cel.expr.conformance.proto2.NestedTestAllTypes\x12:\n\x07payload\x18\x02 \x01(\x0b\x32).cel.expr.conformance.proto2.TestAllTypes\"&\n\x0cTestRequired\x12\x16\n\x0erequired_int32\x18\x01 \x02(\x05*\'\n\nGlobalEnum\x12\x07\n\x03GOO\x10\x00\x12\x07\n\x03GAR\x10\x01\x12\x07\n\x03GAZ\x10\x02\x42Z\n\x1f\x64\x65v.cel.expr.conformance.proto2B\x11TestAllTypesProtoP\x01Z\x1f\x63\x65l.dev/expr/conformance/proto2\xf8\x01\x01') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cel.expr.conformance.proto2.test_all_types_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\037dev.cel.expr.conformance.proto2B\021TestAllTypesProtoP\001Z\037cel.dev/expr/conformance/proto2\370\001\001' + _globals['_TESTALLTYPES_MAPINT64NESTEDTYPEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64NESTEDTYPEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLBOOLENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLBOOLENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLSTRINGENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLSTRINGENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLBYTESENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLBYTESENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLINT32ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLINT32ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLINT64ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLINT64ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLUINT32ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLUINT32ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLUINT64ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLUINT64ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLFLOATENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLFLOATENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLDOUBLEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLDOUBLEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLENUMENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLENUMENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLMESSAGEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLMESSAGEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLDURATIONENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLDURATIONENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLTIMESTAMPENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLTIMESTAMPENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLNULLVALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLNULLVALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLANYENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLANYENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLSTRUCTENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLSTRUCTENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLVALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLVALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLLISTVALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLLISTVALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLINT64WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLINT64WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLINT32WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLINT32WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLDOUBLEWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLDOUBLEWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLFLOATWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLFLOATWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLUINT64WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLUINT64WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLUINT32WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLUINT32WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLSTRINGWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLSTRINGWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLBOOLWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLBOOLWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLBYTESWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLBYTESWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32BOOLENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32BOOLENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32STRINGENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32STRINGENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32BYTESENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32BYTESENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32INT32ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32INT32ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32INT64ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32INT64ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32UINT32ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32UINT32ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32UINT64ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32UINT64ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32FLOATENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32FLOATENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32DOUBLEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32DOUBLEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32ENUMENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32ENUMENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32MESSAGEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32MESSAGEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32DURATIONENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32DURATIONENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32TIMESTAMPENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32TIMESTAMPENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32NULLVALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32NULLVALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32ANYENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32ANYENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32STRUCTENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32STRUCTENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32VALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32VALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32LISTVALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32LISTVALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32INT64WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32INT64WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32INT32WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32INT32WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32DOUBLEWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32DOUBLEWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32FLOATWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32FLOATWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32UINT64WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32UINT64WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32UINT32WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32UINT32WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32STRINGWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32STRINGWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32BOOLWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32BOOLWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32BYTESWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32BYTESWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64BOOLENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64BOOLENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64STRINGENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64STRINGENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64BYTESENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64BYTESENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64INT32ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64INT32ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64INT64ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64INT64ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64UINT32ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64UINT32ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64UINT64ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64UINT64ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64FLOATENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64FLOATENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64DOUBLEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64DOUBLEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64ENUMENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64ENUMENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64MESSAGEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64MESSAGEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64DURATIONENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64DURATIONENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64TIMESTAMPENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64TIMESTAMPENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64NULLVALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64NULLVALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64ANYENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64ANYENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64STRUCTENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64STRUCTENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64VALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64VALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64LISTVALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64LISTVALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64INT64WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64INT64WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64INT32WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64INT32WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64DOUBLEWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64DOUBLEWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64FLOATWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64FLOATWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64UINT64WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64UINT64WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64UINT32WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64UINT32WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64STRINGWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64STRINGWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64BOOLWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64BOOLWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64BYTESWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64BYTESWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32BOOLENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32BOOLENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32STRINGENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32STRINGENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32BYTESENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32BYTESENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32INT32ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32INT32ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32INT64ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32INT64ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32UINT32ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32UINT32ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32UINT64ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32UINT64ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32FLOATENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32FLOATENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32DOUBLEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32DOUBLEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32ENUMENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32ENUMENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32MESSAGEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32MESSAGEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32DURATIONENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32DURATIONENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32TIMESTAMPENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32TIMESTAMPENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32NULLVALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32NULLVALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32ANYENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32ANYENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32STRUCTENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32STRUCTENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32VALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32VALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32LISTVALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32LISTVALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32INT64WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32INT64WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32INT32WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32INT32WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32DOUBLEWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32DOUBLEWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32FLOATWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32FLOATWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32UINT64WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32UINT64WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32UINT32WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32UINT32WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32STRINGWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32STRINGWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32BOOLWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32BOOLWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32BYTESWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32BYTESWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64BOOLENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64BOOLENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64STRINGENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64STRINGENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64BYTESENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64BYTESENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64INT32ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64INT32ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64INT64ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64INT64ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64UINT32ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64UINT32ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64UINT64ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64UINT64ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64FLOATENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64FLOATENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64DOUBLEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64DOUBLEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64ENUMENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64ENUMENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64MESSAGEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64MESSAGEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64DURATIONENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64DURATIONENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64TIMESTAMPENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64TIMESTAMPENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64NULLVALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64NULLVALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64ANYENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64ANYENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64STRUCTENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64STRUCTENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64VALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64VALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64LISTVALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64LISTVALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64INT64WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64INT64WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64INT32WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64INT32WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64DOUBLEWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64DOUBLEWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64FLOATWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64FLOATWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64UINT64WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64UINT64WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64UINT32WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64UINT32WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64STRINGWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64STRINGWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64BOOLWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64BOOLWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64BYTESWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64BYTESWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGBOOLENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGBOOLENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGSTRINGENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGSTRINGENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGBYTESENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGBYTESENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGINT32ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGINT32ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGINT64ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGINT64ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGUINT32ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGUINT32ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGUINT64ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGUINT64ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGFLOATENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGFLOATENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGDOUBLEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGDOUBLEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGENUMENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGENUMENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGMESSAGEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGMESSAGEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGDURATIONENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGDURATIONENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGTIMESTAMPENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGTIMESTAMPENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGNULLVALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGNULLVALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGANYENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGANYENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGSTRUCTENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGSTRUCTENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGVALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGVALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGLISTVALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGLISTVALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGINT64WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGINT64WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGINT32WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGINT32WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGDOUBLEWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGDOUBLEWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGFLOATWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGFLOATWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGUINT64WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGUINT64WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGUINT32WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGUINT32WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGSTRINGWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGSTRINGWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGBOOLWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGBOOLWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGBYTESWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGBYTESWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES'].fields_by_name['repeated_string_piece']._loaded_options = None + _globals['_TESTALLTYPES'].fields_by_name['repeated_string_piece']._serialized_options = b'\010\002' + _globals['_TESTALLTYPES'].fields_by_name['repeated_cord']._loaded_options = None + _globals['_TESTALLTYPES'].fields_by_name['repeated_cord']._serialized_options = b'\010\001' + _globals['_GLOBALENUM']._serialized_start=32561 + _globals['_GLOBALENUM']._serialized_end=32600 + _globals['_TESTALLTYPES']._serialized_start=300 + _globals['_TESTALLTYPES']._serialized_end=32372 + _globals['_TESTALLTYPES_NESTEDMESSAGE']._serialized_start=19457 + _globals['_TESTALLTYPES_NESTEDMESSAGE']._serialized_end=19484 + _globals['_TESTALLTYPES_MAPINT64NESTEDTYPEENTRY']._serialized_start=19486 + _globals['_TESTALLTYPES_MAPINT64NESTEDTYPEENTRY']._serialized_end=19592 + _globals['_TESTALLTYPES_MAPBOOLBOOLENTRY']._serialized_start=19594 + _globals['_TESTALLTYPES_MAPBOOLBOOLENTRY']._serialized_end=19644 + _globals['_TESTALLTYPES_MAPBOOLSTRINGENTRY']._serialized_start=19646 + _globals['_TESTALLTYPES_MAPBOOLSTRINGENTRY']._serialized_end=19698 + _globals['_TESTALLTYPES_MAPBOOLBYTESENTRY']._serialized_start=19700 + _globals['_TESTALLTYPES_MAPBOOLBYTESENTRY']._serialized_end=19751 + _globals['_TESTALLTYPES_MAPBOOLINT32ENTRY']._serialized_start=19753 + _globals['_TESTALLTYPES_MAPBOOLINT32ENTRY']._serialized_end=19804 + _globals['_TESTALLTYPES_MAPBOOLINT64ENTRY']._serialized_start=19806 + _globals['_TESTALLTYPES_MAPBOOLINT64ENTRY']._serialized_end=19857 + _globals['_TESTALLTYPES_MAPBOOLUINT32ENTRY']._serialized_start=19859 + _globals['_TESTALLTYPES_MAPBOOLUINT32ENTRY']._serialized_end=19911 + _globals['_TESTALLTYPES_MAPBOOLUINT64ENTRY']._serialized_start=19913 + _globals['_TESTALLTYPES_MAPBOOLUINT64ENTRY']._serialized_end=19965 + _globals['_TESTALLTYPES_MAPBOOLFLOATENTRY']._serialized_start=19967 + _globals['_TESTALLTYPES_MAPBOOLFLOATENTRY']._serialized_end=20018 + _globals['_TESTALLTYPES_MAPBOOLDOUBLEENTRY']._serialized_start=20020 + _globals['_TESTALLTYPES_MAPBOOLDOUBLEENTRY']._serialized_end=20072 + _globals['_TESTALLTYPES_MAPBOOLENUMENTRY']._serialized_start=20074 + _globals['_TESTALLTYPES_MAPBOOLENUMENTRY']._serialized_end=20178 + _globals['_TESTALLTYPES_MAPBOOLMESSAGEENTRY']._serialized_start=20180 + _globals['_TESTALLTYPES_MAPBOOLMESSAGEENTRY']._serialized_end=20290 + _globals['_TESTALLTYPES_MAPBOOLDURATIONENTRY']._serialized_start=20292 + _globals['_TESTALLTYPES_MAPBOOLDURATIONENTRY']._serialized_end=20373 + _globals['_TESTALLTYPES_MAPBOOLTIMESTAMPENTRY']._serialized_start=20375 + _globals['_TESTALLTYPES_MAPBOOLTIMESTAMPENTRY']._serialized_end=20458 + _globals['_TESTALLTYPES_MAPBOOLNULLVALUEENTRY']._serialized_start=20460 + _globals['_TESTALLTYPES_MAPBOOLNULLVALUEENTRY']._serialized_end=20543 + _globals['_TESTALLTYPES_MAPBOOLANYENTRY']._serialized_start=20545 + _globals['_TESTALLTYPES_MAPBOOLANYENTRY']._serialized_end=20616 + _globals['_TESTALLTYPES_MAPBOOLSTRUCTENTRY']._serialized_start=20618 + _globals['_TESTALLTYPES_MAPBOOLSTRUCTENTRY']._serialized_end=20695 + _globals['_TESTALLTYPES_MAPBOOLVALUEENTRY']._serialized_start=20697 + _globals['_TESTALLTYPES_MAPBOOLVALUEENTRY']._serialized_end=20772 + _globals['_TESTALLTYPES_MAPBOOLLISTVALUEENTRY']._serialized_start=20774 + _globals['_TESTALLTYPES_MAPBOOLLISTVALUEENTRY']._serialized_end=20857 + _globals['_TESTALLTYPES_MAPBOOLINT64WRAPPERENTRY']._serialized_start=20859 + _globals['_TESTALLTYPES_MAPBOOLINT64WRAPPERENTRY']._serialized_end=20946 + _globals['_TESTALLTYPES_MAPBOOLINT32WRAPPERENTRY']._serialized_start=20948 + _globals['_TESTALLTYPES_MAPBOOLINT32WRAPPERENTRY']._serialized_end=21035 + _globals['_TESTALLTYPES_MAPBOOLDOUBLEWRAPPERENTRY']._serialized_start=21037 + _globals['_TESTALLTYPES_MAPBOOLDOUBLEWRAPPERENTRY']._serialized_end=21126 + _globals['_TESTALLTYPES_MAPBOOLFLOATWRAPPERENTRY']._serialized_start=21128 + _globals['_TESTALLTYPES_MAPBOOLFLOATWRAPPERENTRY']._serialized_end=21215 + _globals['_TESTALLTYPES_MAPBOOLUINT64WRAPPERENTRY']._serialized_start=21217 + _globals['_TESTALLTYPES_MAPBOOLUINT64WRAPPERENTRY']._serialized_end=21306 + _globals['_TESTALLTYPES_MAPBOOLUINT32WRAPPERENTRY']._serialized_start=21308 + _globals['_TESTALLTYPES_MAPBOOLUINT32WRAPPERENTRY']._serialized_end=21397 + _globals['_TESTALLTYPES_MAPBOOLSTRINGWRAPPERENTRY']._serialized_start=21399 + _globals['_TESTALLTYPES_MAPBOOLSTRINGWRAPPERENTRY']._serialized_end=21488 + _globals['_TESTALLTYPES_MAPBOOLBOOLWRAPPERENTRY']._serialized_start=21490 + _globals['_TESTALLTYPES_MAPBOOLBOOLWRAPPERENTRY']._serialized_end=21575 + _globals['_TESTALLTYPES_MAPBOOLBYTESWRAPPERENTRY']._serialized_start=21577 + _globals['_TESTALLTYPES_MAPBOOLBYTESWRAPPERENTRY']._serialized_end=21664 + _globals['_TESTALLTYPES_MAPINT32BOOLENTRY']._serialized_start=21666 + _globals['_TESTALLTYPES_MAPINT32BOOLENTRY']._serialized_end=21717 + _globals['_TESTALLTYPES_MAPINT32STRINGENTRY']._serialized_start=21719 + _globals['_TESTALLTYPES_MAPINT32STRINGENTRY']._serialized_end=21772 + _globals['_TESTALLTYPES_MAPINT32BYTESENTRY']._serialized_start=21774 + _globals['_TESTALLTYPES_MAPINT32BYTESENTRY']._serialized_end=21826 + _globals['_TESTALLTYPES_MAPINT32INT32ENTRY']._serialized_start=21828 + _globals['_TESTALLTYPES_MAPINT32INT32ENTRY']._serialized_end=21880 + _globals['_TESTALLTYPES_MAPINT32INT64ENTRY']._serialized_start=21882 + _globals['_TESTALLTYPES_MAPINT32INT64ENTRY']._serialized_end=21934 + _globals['_TESTALLTYPES_MAPINT32UINT32ENTRY']._serialized_start=21936 + _globals['_TESTALLTYPES_MAPINT32UINT32ENTRY']._serialized_end=21989 + _globals['_TESTALLTYPES_MAPINT32UINT64ENTRY']._serialized_start=21991 + _globals['_TESTALLTYPES_MAPINT32UINT64ENTRY']._serialized_end=22044 + _globals['_TESTALLTYPES_MAPINT32FLOATENTRY']._serialized_start=22046 + _globals['_TESTALLTYPES_MAPINT32FLOATENTRY']._serialized_end=22098 + _globals['_TESTALLTYPES_MAPINT32DOUBLEENTRY']._serialized_start=22100 + _globals['_TESTALLTYPES_MAPINT32DOUBLEENTRY']._serialized_end=22153 + _globals['_TESTALLTYPES_MAPINT32ENUMENTRY']._serialized_start=22155 + _globals['_TESTALLTYPES_MAPINT32ENUMENTRY']._serialized_end=22260 + _globals['_TESTALLTYPES_MAPINT32MESSAGEENTRY']._serialized_start=22262 + _globals['_TESTALLTYPES_MAPINT32MESSAGEENTRY']._serialized_end=22373 + _globals['_TESTALLTYPES_MAPINT32DURATIONENTRY']._serialized_start=22375 + _globals['_TESTALLTYPES_MAPINT32DURATIONENTRY']._serialized_end=22457 + _globals['_TESTALLTYPES_MAPINT32TIMESTAMPENTRY']._serialized_start=22459 + _globals['_TESTALLTYPES_MAPINT32TIMESTAMPENTRY']._serialized_end=22543 + _globals['_TESTALLTYPES_MAPINT32NULLVALUEENTRY']._serialized_start=22545 + _globals['_TESTALLTYPES_MAPINT32NULLVALUEENTRY']._serialized_end=22629 + _globals['_TESTALLTYPES_MAPINT32ANYENTRY']._serialized_start=22631 + _globals['_TESTALLTYPES_MAPINT32ANYENTRY']._serialized_end=22703 + _globals['_TESTALLTYPES_MAPINT32STRUCTENTRY']._serialized_start=22705 + _globals['_TESTALLTYPES_MAPINT32STRUCTENTRY']._serialized_end=22783 + _globals['_TESTALLTYPES_MAPINT32VALUEENTRY']._serialized_start=22785 + _globals['_TESTALLTYPES_MAPINT32VALUEENTRY']._serialized_end=22861 + _globals['_TESTALLTYPES_MAPINT32LISTVALUEENTRY']._serialized_start=22863 + _globals['_TESTALLTYPES_MAPINT32LISTVALUEENTRY']._serialized_end=22947 + _globals['_TESTALLTYPES_MAPINT32INT64WRAPPERENTRY']._serialized_start=22949 + _globals['_TESTALLTYPES_MAPINT32INT64WRAPPERENTRY']._serialized_end=23037 + _globals['_TESTALLTYPES_MAPINT32INT32WRAPPERENTRY']._serialized_start=23039 + _globals['_TESTALLTYPES_MAPINT32INT32WRAPPERENTRY']._serialized_end=23127 + _globals['_TESTALLTYPES_MAPINT32DOUBLEWRAPPERENTRY']._serialized_start=23129 + _globals['_TESTALLTYPES_MAPINT32DOUBLEWRAPPERENTRY']._serialized_end=23219 + _globals['_TESTALLTYPES_MAPINT32FLOATWRAPPERENTRY']._serialized_start=23221 + _globals['_TESTALLTYPES_MAPINT32FLOATWRAPPERENTRY']._serialized_end=23309 + _globals['_TESTALLTYPES_MAPINT32UINT64WRAPPERENTRY']._serialized_start=23311 + _globals['_TESTALLTYPES_MAPINT32UINT64WRAPPERENTRY']._serialized_end=23401 + _globals['_TESTALLTYPES_MAPINT32UINT32WRAPPERENTRY']._serialized_start=23403 + _globals['_TESTALLTYPES_MAPINT32UINT32WRAPPERENTRY']._serialized_end=23493 + _globals['_TESTALLTYPES_MAPINT32STRINGWRAPPERENTRY']._serialized_start=23495 + _globals['_TESTALLTYPES_MAPINT32STRINGWRAPPERENTRY']._serialized_end=23585 + _globals['_TESTALLTYPES_MAPINT32BOOLWRAPPERENTRY']._serialized_start=23587 + _globals['_TESTALLTYPES_MAPINT32BOOLWRAPPERENTRY']._serialized_end=23673 + _globals['_TESTALLTYPES_MAPINT32BYTESWRAPPERENTRY']._serialized_start=23675 + _globals['_TESTALLTYPES_MAPINT32BYTESWRAPPERENTRY']._serialized_end=23763 + _globals['_TESTALLTYPES_MAPINT64BOOLENTRY']._serialized_start=23765 + _globals['_TESTALLTYPES_MAPINT64BOOLENTRY']._serialized_end=23816 + _globals['_TESTALLTYPES_MAPINT64STRINGENTRY']._serialized_start=23818 + _globals['_TESTALLTYPES_MAPINT64STRINGENTRY']._serialized_end=23871 + _globals['_TESTALLTYPES_MAPINT64BYTESENTRY']._serialized_start=23873 + _globals['_TESTALLTYPES_MAPINT64BYTESENTRY']._serialized_end=23925 + _globals['_TESTALLTYPES_MAPINT64INT32ENTRY']._serialized_start=23927 + _globals['_TESTALLTYPES_MAPINT64INT32ENTRY']._serialized_end=23979 + _globals['_TESTALLTYPES_MAPINT64INT64ENTRY']._serialized_start=23981 + _globals['_TESTALLTYPES_MAPINT64INT64ENTRY']._serialized_end=24033 + _globals['_TESTALLTYPES_MAPINT64UINT32ENTRY']._serialized_start=24035 + _globals['_TESTALLTYPES_MAPINT64UINT32ENTRY']._serialized_end=24088 + _globals['_TESTALLTYPES_MAPINT64UINT64ENTRY']._serialized_start=24090 + _globals['_TESTALLTYPES_MAPINT64UINT64ENTRY']._serialized_end=24143 + _globals['_TESTALLTYPES_MAPINT64FLOATENTRY']._serialized_start=24145 + _globals['_TESTALLTYPES_MAPINT64FLOATENTRY']._serialized_end=24197 + _globals['_TESTALLTYPES_MAPINT64DOUBLEENTRY']._serialized_start=24199 + _globals['_TESTALLTYPES_MAPINT64DOUBLEENTRY']._serialized_end=24252 + _globals['_TESTALLTYPES_MAPINT64ENUMENTRY']._serialized_start=24254 + _globals['_TESTALLTYPES_MAPINT64ENUMENTRY']._serialized_end=24359 + _globals['_TESTALLTYPES_MAPINT64MESSAGEENTRY']._serialized_start=24361 + _globals['_TESTALLTYPES_MAPINT64MESSAGEENTRY']._serialized_end=24472 + _globals['_TESTALLTYPES_MAPINT64DURATIONENTRY']._serialized_start=24474 + _globals['_TESTALLTYPES_MAPINT64DURATIONENTRY']._serialized_end=24556 + _globals['_TESTALLTYPES_MAPINT64TIMESTAMPENTRY']._serialized_start=24558 + _globals['_TESTALLTYPES_MAPINT64TIMESTAMPENTRY']._serialized_end=24642 + _globals['_TESTALLTYPES_MAPINT64NULLVALUEENTRY']._serialized_start=24644 + _globals['_TESTALLTYPES_MAPINT64NULLVALUEENTRY']._serialized_end=24728 + _globals['_TESTALLTYPES_MAPINT64ANYENTRY']._serialized_start=24730 + _globals['_TESTALLTYPES_MAPINT64ANYENTRY']._serialized_end=24802 + _globals['_TESTALLTYPES_MAPINT64STRUCTENTRY']._serialized_start=24804 + _globals['_TESTALLTYPES_MAPINT64STRUCTENTRY']._serialized_end=24882 + _globals['_TESTALLTYPES_MAPINT64VALUEENTRY']._serialized_start=24884 + _globals['_TESTALLTYPES_MAPINT64VALUEENTRY']._serialized_end=24960 + _globals['_TESTALLTYPES_MAPINT64LISTVALUEENTRY']._serialized_start=24962 + _globals['_TESTALLTYPES_MAPINT64LISTVALUEENTRY']._serialized_end=25046 + _globals['_TESTALLTYPES_MAPINT64INT64WRAPPERENTRY']._serialized_start=25048 + _globals['_TESTALLTYPES_MAPINT64INT64WRAPPERENTRY']._serialized_end=25136 + _globals['_TESTALLTYPES_MAPINT64INT32WRAPPERENTRY']._serialized_start=25138 + _globals['_TESTALLTYPES_MAPINT64INT32WRAPPERENTRY']._serialized_end=25226 + _globals['_TESTALLTYPES_MAPINT64DOUBLEWRAPPERENTRY']._serialized_start=25228 + _globals['_TESTALLTYPES_MAPINT64DOUBLEWRAPPERENTRY']._serialized_end=25318 + _globals['_TESTALLTYPES_MAPINT64FLOATWRAPPERENTRY']._serialized_start=25320 + _globals['_TESTALLTYPES_MAPINT64FLOATWRAPPERENTRY']._serialized_end=25408 + _globals['_TESTALLTYPES_MAPINT64UINT64WRAPPERENTRY']._serialized_start=25410 + _globals['_TESTALLTYPES_MAPINT64UINT64WRAPPERENTRY']._serialized_end=25500 + _globals['_TESTALLTYPES_MAPINT64UINT32WRAPPERENTRY']._serialized_start=25502 + _globals['_TESTALLTYPES_MAPINT64UINT32WRAPPERENTRY']._serialized_end=25592 + _globals['_TESTALLTYPES_MAPINT64STRINGWRAPPERENTRY']._serialized_start=25594 + _globals['_TESTALLTYPES_MAPINT64STRINGWRAPPERENTRY']._serialized_end=25684 + _globals['_TESTALLTYPES_MAPINT64BOOLWRAPPERENTRY']._serialized_start=25686 + _globals['_TESTALLTYPES_MAPINT64BOOLWRAPPERENTRY']._serialized_end=25772 + _globals['_TESTALLTYPES_MAPINT64BYTESWRAPPERENTRY']._serialized_start=25774 + _globals['_TESTALLTYPES_MAPINT64BYTESWRAPPERENTRY']._serialized_end=25862 + _globals['_TESTALLTYPES_MAPUINT32BOOLENTRY']._serialized_start=25864 + _globals['_TESTALLTYPES_MAPUINT32BOOLENTRY']._serialized_end=25916 + _globals['_TESTALLTYPES_MAPUINT32STRINGENTRY']._serialized_start=25918 + _globals['_TESTALLTYPES_MAPUINT32STRINGENTRY']._serialized_end=25972 + _globals['_TESTALLTYPES_MAPUINT32BYTESENTRY']._serialized_start=25974 + _globals['_TESTALLTYPES_MAPUINT32BYTESENTRY']._serialized_end=26027 + _globals['_TESTALLTYPES_MAPUINT32INT32ENTRY']._serialized_start=26029 + _globals['_TESTALLTYPES_MAPUINT32INT32ENTRY']._serialized_end=26082 + _globals['_TESTALLTYPES_MAPUINT32INT64ENTRY']._serialized_start=26084 + _globals['_TESTALLTYPES_MAPUINT32INT64ENTRY']._serialized_end=26137 + _globals['_TESTALLTYPES_MAPUINT32UINT32ENTRY']._serialized_start=26139 + _globals['_TESTALLTYPES_MAPUINT32UINT32ENTRY']._serialized_end=26193 + _globals['_TESTALLTYPES_MAPUINT32UINT64ENTRY']._serialized_start=26195 + _globals['_TESTALLTYPES_MAPUINT32UINT64ENTRY']._serialized_end=26249 + _globals['_TESTALLTYPES_MAPUINT32FLOATENTRY']._serialized_start=26251 + _globals['_TESTALLTYPES_MAPUINT32FLOATENTRY']._serialized_end=26304 + _globals['_TESTALLTYPES_MAPUINT32DOUBLEENTRY']._serialized_start=26306 + _globals['_TESTALLTYPES_MAPUINT32DOUBLEENTRY']._serialized_end=26360 + _globals['_TESTALLTYPES_MAPUINT32ENUMENTRY']._serialized_start=26362 + _globals['_TESTALLTYPES_MAPUINT32ENUMENTRY']._serialized_end=26468 + _globals['_TESTALLTYPES_MAPUINT32MESSAGEENTRY']._serialized_start=26470 + _globals['_TESTALLTYPES_MAPUINT32MESSAGEENTRY']._serialized_end=26582 + _globals['_TESTALLTYPES_MAPUINT32DURATIONENTRY']._serialized_start=26584 + _globals['_TESTALLTYPES_MAPUINT32DURATIONENTRY']._serialized_end=26667 + _globals['_TESTALLTYPES_MAPUINT32TIMESTAMPENTRY']._serialized_start=26669 + _globals['_TESTALLTYPES_MAPUINT32TIMESTAMPENTRY']._serialized_end=26754 + _globals['_TESTALLTYPES_MAPUINT32NULLVALUEENTRY']._serialized_start=26756 + _globals['_TESTALLTYPES_MAPUINT32NULLVALUEENTRY']._serialized_end=26841 + _globals['_TESTALLTYPES_MAPUINT32ANYENTRY']._serialized_start=26843 + _globals['_TESTALLTYPES_MAPUINT32ANYENTRY']._serialized_end=26916 + _globals['_TESTALLTYPES_MAPUINT32STRUCTENTRY']._serialized_start=26918 + _globals['_TESTALLTYPES_MAPUINT32STRUCTENTRY']._serialized_end=26997 + _globals['_TESTALLTYPES_MAPUINT32VALUEENTRY']._serialized_start=26999 + _globals['_TESTALLTYPES_MAPUINT32VALUEENTRY']._serialized_end=27076 + _globals['_TESTALLTYPES_MAPUINT32LISTVALUEENTRY']._serialized_start=27078 + _globals['_TESTALLTYPES_MAPUINT32LISTVALUEENTRY']._serialized_end=27163 + _globals['_TESTALLTYPES_MAPUINT32INT64WRAPPERENTRY']._serialized_start=27165 + _globals['_TESTALLTYPES_MAPUINT32INT64WRAPPERENTRY']._serialized_end=27254 + _globals['_TESTALLTYPES_MAPUINT32INT32WRAPPERENTRY']._serialized_start=27256 + _globals['_TESTALLTYPES_MAPUINT32INT32WRAPPERENTRY']._serialized_end=27345 + _globals['_TESTALLTYPES_MAPUINT32DOUBLEWRAPPERENTRY']._serialized_start=27347 + _globals['_TESTALLTYPES_MAPUINT32DOUBLEWRAPPERENTRY']._serialized_end=27438 + _globals['_TESTALLTYPES_MAPUINT32FLOATWRAPPERENTRY']._serialized_start=27440 + _globals['_TESTALLTYPES_MAPUINT32FLOATWRAPPERENTRY']._serialized_end=27529 + _globals['_TESTALLTYPES_MAPUINT32UINT64WRAPPERENTRY']._serialized_start=27531 + _globals['_TESTALLTYPES_MAPUINT32UINT64WRAPPERENTRY']._serialized_end=27622 + _globals['_TESTALLTYPES_MAPUINT32UINT32WRAPPERENTRY']._serialized_start=27624 + _globals['_TESTALLTYPES_MAPUINT32UINT32WRAPPERENTRY']._serialized_end=27715 + _globals['_TESTALLTYPES_MAPUINT32STRINGWRAPPERENTRY']._serialized_start=27717 + _globals['_TESTALLTYPES_MAPUINT32STRINGWRAPPERENTRY']._serialized_end=27808 + _globals['_TESTALLTYPES_MAPUINT32BOOLWRAPPERENTRY']._serialized_start=27810 + _globals['_TESTALLTYPES_MAPUINT32BOOLWRAPPERENTRY']._serialized_end=27897 + _globals['_TESTALLTYPES_MAPUINT32BYTESWRAPPERENTRY']._serialized_start=27899 + _globals['_TESTALLTYPES_MAPUINT32BYTESWRAPPERENTRY']._serialized_end=27988 + _globals['_TESTALLTYPES_MAPUINT64BOOLENTRY']._serialized_start=27990 + _globals['_TESTALLTYPES_MAPUINT64BOOLENTRY']._serialized_end=28042 + _globals['_TESTALLTYPES_MAPUINT64STRINGENTRY']._serialized_start=28044 + _globals['_TESTALLTYPES_MAPUINT64STRINGENTRY']._serialized_end=28098 + _globals['_TESTALLTYPES_MAPUINT64BYTESENTRY']._serialized_start=28100 + _globals['_TESTALLTYPES_MAPUINT64BYTESENTRY']._serialized_end=28153 + _globals['_TESTALLTYPES_MAPUINT64INT32ENTRY']._serialized_start=28155 + _globals['_TESTALLTYPES_MAPUINT64INT32ENTRY']._serialized_end=28208 + _globals['_TESTALLTYPES_MAPUINT64INT64ENTRY']._serialized_start=28210 + _globals['_TESTALLTYPES_MAPUINT64INT64ENTRY']._serialized_end=28263 + _globals['_TESTALLTYPES_MAPUINT64UINT32ENTRY']._serialized_start=28265 + _globals['_TESTALLTYPES_MAPUINT64UINT32ENTRY']._serialized_end=28319 + _globals['_TESTALLTYPES_MAPUINT64UINT64ENTRY']._serialized_start=28321 + _globals['_TESTALLTYPES_MAPUINT64UINT64ENTRY']._serialized_end=28375 + _globals['_TESTALLTYPES_MAPUINT64FLOATENTRY']._serialized_start=28377 + _globals['_TESTALLTYPES_MAPUINT64FLOATENTRY']._serialized_end=28430 + _globals['_TESTALLTYPES_MAPUINT64DOUBLEENTRY']._serialized_start=28432 + _globals['_TESTALLTYPES_MAPUINT64DOUBLEENTRY']._serialized_end=28486 + _globals['_TESTALLTYPES_MAPUINT64ENUMENTRY']._serialized_start=28488 + _globals['_TESTALLTYPES_MAPUINT64ENUMENTRY']._serialized_end=28594 + _globals['_TESTALLTYPES_MAPUINT64MESSAGEENTRY']._serialized_start=28596 + _globals['_TESTALLTYPES_MAPUINT64MESSAGEENTRY']._serialized_end=28708 + _globals['_TESTALLTYPES_MAPUINT64DURATIONENTRY']._serialized_start=28710 + _globals['_TESTALLTYPES_MAPUINT64DURATIONENTRY']._serialized_end=28793 + _globals['_TESTALLTYPES_MAPUINT64TIMESTAMPENTRY']._serialized_start=28795 + _globals['_TESTALLTYPES_MAPUINT64TIMESTAMPENTRY']._serialized_end=28880 + _globals['_TESTALLTYPES_MAPUINT64NULLVALUEENTRY']._serialized_start=28882 + _globals['_TESTALLTYPES_MAPUINT64NULLVALUEENTRY']._serialized_end=28967 + _globals['_TESTALLTYPES_MAPUINT64ANYENTRY']._serialized_start=28969 + _globals['_TESTALLTYPES_MAPUINT64ANYENTRY']._serialized_end=29042 + _globals['_TESTALLTYPES_MAPUINT64STRUCTENTRY']._serialized_start=29044 + _globals['_TESTALLTYPES_MAPUINT64STRUCTENTRY']._serialized_end=29123 + _globals['_TESTALLTYPES_MAPUINT64VALUEENTRY']._serialized_start=29125 + _globals['_TESTALLTYPES_MAPUINT64VALUEENTRY']._serialized_end=29202 + _globals['_TESTALLTYPES_MAPUINT64LISTVALUEENTRY']._serialized_start=29204 + _globals['_TESTALLTYPES_MAPUINT64LISTVALUEENTRY']._serialized_end=29289 + _globals['_TESTALLTYPES_MAPUINT64INT64WRAPPERENTRY']._serialized_start=29291 + _globals['_TESTALLTYPES_MAPUINT64INT64WRAPPERENTRY']._serialized_end=29380 + _globals['_TESTALLTYPES_MAPUINT64INT32WRAPPERENTRY']._serialized_start=29382 + _globals['_TESTALLTYPES_MAPUINT64INT32WRAPPERENTRY']._serialized_end=29471 + _globals['_TESTALLTYPES_MAPUINT64DOUBLEWRAPPERENTRY']._serialized_start=29473 + _globals['_TESTALLTYPES_MAPUINT64DOUBLEWRAPPERENTRY']._serialized_end=29564 + _globals['_TESTALLTYPES_MAPUINT64FLOATWRAPPERENTRY']._serialized_start=29566 + _globals['_TESTALLTYPES_MAPUINT64FLOATWRAPPERENTRY']._serialized_end=29655 + _globals['_TESTALLTYPES_MAPUINT64UINT64WRAPPERENTRY']._serialized_start=29657 + _globals['_TESTALLTYPES_MAPUINT64UINT64WRAPPERENTRY']._serialized_end=29748 + _globals['_TESTALLTYPES_MAPUINT64UINT32WRAPPERENTRY']._serialized_start=29750 + _globals['_TESTALLTYPES_MAPUINT64UINT32WRAPPERENTRY']._serialized_end=29841 + _globals['_TESTALLTYPES_MAPUINT64STRINGWRAPPERENTRY']._serialized_start=29843 + _globals['_TESTALLTYPES_MAPUINT64STRINGWRAPPERENTRY']._serialized_end=29934 + _globals['_TESTALLTYPES_MAPUINT64BOOLWRAPPERENTRY']._serialized_start=29936 + _globals['_TESTALLTYPES_MAPUINT64BOOLWRAPPERENTRY']._serialized_end=30023 + _globals['_TESTALLTYPES_MAPUINT64BYTESWRAPPERENTRY']._serialized_start=30025 + _globals['_TESTALLTYPES_MAPUINT64BYTESWRAPPERENTRY']._serialized_end=30114 + _globals['_TESTALLTYPES_MAPSTRINGBOOLENTRY']._serialized_start=30116 + _globals['_TESTALLTYPES_MAPSTRINGBOOLENTRY']._serialized_end=30168 + _globals['_TESTALLTYPES_MAPSTRINGSTRINGENTRY']._serialized_start=30170 + _globals['_TESTALLTYPES_MAPSTRINGSTRINGENTRY']._serialized_end=30224 + _globals['_TESTALLTYPES_MAPSTRINGBYTESENTRY']._serialized_start=30226 + _globals['_TESTALLTYPES_MAPSTRINGBYTESENTRY']._serialized_end=30279 + _globals['_TESTALLTYPES_MAPSTRINGINT32ENTRY']._serialized_start=30281 + _globals['_TESTALLTYPES_MAPSTRINGINT32ENTRY']._serialized_end=30334 + _globals['_TESTALLTYPES_MAPSTRINGINT64ENTRY']._serialized_start=30336 + _globals['_TESTALLTYPES_MAPSTRINGINT64ENTRY']._serialized_end=30389 + _globals['_TESTALLTYPES_MAPSTRINGUINT32ENTRY']._serialized_start=30391 + _globals['_TESTALLTYPES_MAPSTRINGUINT32ENTRY']._serialized_end=30445 + _globals['_TESTALLTYPES_MAPSTRINGUINT64ENTRY']._serialized_start=30447 + _globals['_TESTALLTYPES_MAPSTRINGUINT64ENTRY']._serialized_end=30501 + _globals['_TESTALLTYPES_MAPSTRINGFLOATENTRY']._serialized_start=30503 + _globals['_TESTALLTYPES_MAPSTRINGFLOATENTRY']._serialized_end=30556 + _globals['_TESTALLTYPES_MAPSTRINGDOUBLEENTRY']._serialized_start=30558 + _globals['_TESTALLTYPES_MAPSTRINGDOUBLEENTRY']._serialized_end=30612 + _globals['_TESTALLTYPES_MAPSTRINGENUMENTRY']._serialized_start=30614 + _globals['_TESTALLTYPES_MAPSTRINGENUMENTRY']._serialized_end=30720 + _globals['_TESTALLTYPES_MAPSTRINGMESSAGEENTRY']._serialized_start=30722 + _globals['_TESTALLTYPES_MAPSTRINGMESSAGEENTRY']._serialized_end=30834 + _globals['_TESTALLTYPES_MAPSTRINGDURATIONENTRY']._serialized_start=30836 + _globals['_TESTALLTYPES_MAPSTRINGDURATIONENTRY']._serialized_end=30919 + _globals['_TESTALLTYPES_MAPSTRINGTIMESTAMPENTRY']._serialized_start=30921 + _globals['_TESTALLTYPES_MAPSTRINGTIMESTAMPENTRY']._serialized_end=31006 + _globals['_TESTALLTYPES_MAPSTRINGNULLVALUEENTRY']._serialized_start=31008 + _globals['_TESTALLTYPES_MAPSTRINGNULLVALUEENTRY']._serialized_end=31093 + _globals['_TESTALLTYPES_MAPSTRINGANYENTRY']._serialized_start=31095 + _globals['_TESTALLTYPES_MAPSTRINGANYENTRY']._serialized_end=31168 + _globals['_TESTALLTYPES_MAPSTRINGSTRUCTENTRY']._serialized_start=31170 + _globals['_TESTALLTYPES_MAPSTRINGSTRUCTENTRY']._serialized_end=31249 + _globals['_TESTALLTYPES_MAPSTRINGVALUEENTRY']._serialized_start=31251 + _globals['_TESTALLTYPES_MAPSTRINGVALUEENTRY']._serialized_end=31328 + _globals['_TESTALLTYPES_MAPSTRINGLISTVALUEENTRY']._serialized_start=31330 + _globals['_TESTALLTYPES_MAPSTRINGLISTVALUEENTRY']._serialized_end=31415 + _globals['_TESTALLTYPES_MAPSTRINGINT64WRAPPERENTRY']._serialized_start=31417 + _globals['_TESTALLTYPES_MAPSTRINGINT64WRAPPERENTRY']._serialized_end=31506 + _globals['_TESTALLTYPES_MAPSTRINGINT32WRAPPERENTRY']._serialized_start=31508 + _globals['_TESTALLTYPES_MAPSTRINGINT32WRAPPERENTRY']._serialized_end=31597 + _globals['_TESTALLTYPES_MAPSTRINGDOUBLEWRAPPERENTRY']._serialized_start=31599 + _globals['_TESTALLTYPES_MAPSTRINGDOUBLEWRAPPERENTRY']._serialized_end=31690 + _globals['_TESTALLTYPES_MAPSTRINGFLOATWRAPPERENTRY']._serialized_start=31692 + _globals['_TESTALLTYPES_MAPSTRINGFLOATWRAPPERENTRY']._serialized_end=31781 + _globals['_TESTALLTYPES_MAPSTRINGUINT64WRAPPERENTRY']._serialized_start=31783 + _globals['_TESTALLTYPES_MAPSTRINGUINT64WRAPPERENTRY']._serialized_end=31874 + _globals['_TESTALLTYPES_MAPSTRINGUINT32WRAPPERENTRY']._serialized_start=31876 + _globals['_TESTALLTYPES_MAPSTRINGUINT32WRAPPERENTRY']._serialized_end=31967 + _globals['_TESTALLTYPES_MAPSTRINGSTRINGWRAPPERENTRY']._serialized_start=31969 + _globals['_TESTALLTYPES_MAPSTRINGSTRINGWRAPPERENTRY']._serialized_end=32060 + _globals['_TESTALLTYPES_MAPSTRINGBOOLWRAPPERENTRY']._serialized_start=32062 + _globals['_TESTALLTYPES_MAPSTRINGBOOLWRAPPERENTRY']._serialized_end=32149 + _globals['_TESTALLTYPES_MAPSTRINGBYTESWRAPPERENTRY']._serialized_start=32151 + _globals['_TESTALLTYPES_MAPSTRINGBYTESWRAPPERENTRY']._serialized_end=32240 + _globals['_TESTALLTYPES_NESTEDGROUP']._serialized_start=32242 + _globals['_TESTALLTYPES_NESTEDGROUP']._serialized_end=32297 + _globals['_TESTALLTYPES_NESTEDENUM']._serialized_start=32299 + _globals['_TESTALLTYPES_NESTEDENUM']._serialized_end=32338 + _globals['_NESTEDTESTALLTYPES']._serialized_start=32375 + _globals['_NESTEDTESTALLTYPES']._serialized_end=32519 + _globals['_TESTREQUIRED']._serialized_start=32521 + _globals['_TESTREQUIRED']._serialized_end=32559 +# @@protoc_insertion_point(module_scope) diff --git a/py_xds_protos/cel/expr/conformance/proto3/__init__.py b/py_xds_protos/cel/expr/conformance/proto3/__init__.py new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/py_xds_protos/cel/expr/conformance/proto3/test_all_types_pb2.py b/py_xds_protos/cel/expr/conformance/proto3/test_all_types_pb2.py new file mode 100644 index 0000000000000..2f783b73f28d0 --- /dev/null +++ b/py_xds_protos/cel/expr/conformance/proto3/test_all_types_pb2.py @@ -0,0 +1,708 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: cel/expr/conformance/proto3/test_all_types.proto +# Protobuf Python Version: 6.31.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 31, + 1, + '', + 'cel/expr/conformance/proto3/test_all_types.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2 +from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 +from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n0cel/expr/conformance/proto3/test_all_types.proto\x12\x1b\x63\x65l.expr.conformance.proto3\x1a\x19google/protobuf/any.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\x82\xfa\x01\n\x0cTestAllTypes\x12\x14\n\x0csingle_int32\x18\x01 \x01(\x05\x12\x14\n\x0csingle_int64\x18\x02 \x01(\x03\x12\x15\n\rsingle_uint32\x18\x03 \x01(\r\x12\x15\n\rsingle_uint64\x18\x04 \x01(\x04\x12\x15\n\rsingle_sint32\x18\x05 \x01(\x11\x12\x15\n\rsingle_sint64\x18\x06 \x01(\x12\x12\x16\n\x0esingle_fixed32\x18\x07 \x01(\x07\x12\x16\n\x0esingle_fixed64\x18\x08 \x01(\x06\x12\x17\n\x0fsingle_sfixed32\x18\t \x01(\x0f\x12\x17\n\x0fsingle_sfixed64\x18\n \x01(\x10\x12\x14\n\x0csingle_float\x18\x0b \x01(\x02\x12\x15\n\rsingle_double\x18\x0c \x01(\x01\x12\x13\n\x0bsingle_bool\x18\r \x01(\x08\x12\x15\n\rsingle_string\x18\x0e \x01(\t\x12\x14\n\x0csingle_bytes\x18\x0f \x01(\x0c\x12\x1a\n\roptional_bool\x18\x10 \x01(\x08H\x02\x88\x01\x01\x12\x1c\n\x0foptional_string\x18\x11 \x01(\tH\x03\x88\x01\x01\x12\n\n\x02in\x18\x12 \x01(\x08\x12(\n\nsingle_any\x18\x64 \x01(\x0b\x32\x14.google.protobuf.Any\x12\x32\n\x0fsingle_duration\x18\x65 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x34\n\x10single_timestamp\x18\x66 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\rsingle_struct\x18g \x01(\x0b\x32\x17.google.protobuf.Struct\x12,\n\x0csingle_value\x18h \x01(\x0b\x32\x16.google.protobuf.Value\x12\x39\n\x14single_int64_wrapper\x18i \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x39\n\x14single_int32_wrapper\x18j \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12;\n\x15single_double_wrapper\x18k \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x39\n\x14single_float_wrapper\x18l \x01(\x0b\x32\x1b.google.protobuf.FloatValue\x12;\n\x15single_uint64_wrapper\x18m \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\x12;\n\x15single_uint32_wrapper\x18n \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12;\n\x15single_string_wrapper\x18o \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x37\n\x13single_bool_wrapper\x18p \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x39\n\x14single_bytes_wrapper\x18q \x01(\x0b\x32\x1b.google.protobuf.BytesValue\x12.\n\nlist_value\x18r \x01(\x0b\x32\x1a.google.protobuf.ListValue\x12.\n\nnull_value\x18s \x01(\x0e\x32\x1a.google.protobuf.NullValue\x12<\n\x13optional_null_value\x18t \x01(\x0e\x32\x1a.google.protobuf.NullValueH\x04\x88\x01\x01\x12.\n\nfield_mask\x18u \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12%\n\x05\x65mpty\x18v \x01(\x0b\x32\x16.google.protobuf.Empty\x12X\n\x15single_nested_message\x18\x15 \x01(\x0b\x32\x37.cel.expr.conformance.proto3.TestAllTypes.NestedMessageH\x00\x12R\n\x12single_nested_enum\x18\x16 \x01(\x0e\x32\x34.cel.expr.conformance.proto3.TestAllTypes.NestedEnumH\x00\x12S\n\x12standalone_message\x18\x17 \x01(\x0b\x32\x37.cel.expr.conformance.proto3.TestAllTypes.NestedMessage\x12M\n\x0fstandalone_enum\x18\x18 \x01(\x0e\x32\x34.cel.expr.conformance.proto3.TestAllTypes.NestedEnum\x12\x16\n\x0erepeated_int32\x18\x1f \x03(\x05\x12\x16\n\x0erepeated_int64\x18 \x03(\x03\x12\x17\n\x0frepeated_uint32\x18! \x03(\r\x12\x17\n\x0frepeated_uint64\x18\" \x03(\x04\x12\x17\n\x0frepeated_sint32\x18# \x03(\x11\x12\x17\n\x0frepeated_sint64\x18$ \x03(\x12\x12\x18\n\x10repeated_fixed32\x18% \x03(\x07\x12\x18\n\x10repeated_fixed64\x18& \x03(\x06\x12\x19\n\x11repeated_sfixed32\x18\' \x03(\x0f\x12\x19\n\x11repeated_sfixed64\x18( \x03(\x10\x12\x16\n\x0erepeated_float\x18) \x03(\x02\x12\x17\n\x0frepeated_double\x18* \x03(\x01\x12\x15\n\rrepeated_bool\x18+ \x03(\x08\x12\x17\n\x0frepeated_string\x18, \x03(\t\x12\x16\n\x0erepeated_bytes\x18- \x03(\x0c\x12X\n\x17repeated_nested_message\x18\x33 \x03(\x0b\x32\x37.cel.expr.conformance.proto3.TestAllTypes.NestedMessage\x12R\n\x14repeated_nested_enum\x18\x34 \x03(\x0e\x32\x34.cel.expr.conformance.proto3.TestAllTypes.NestedEnum\x12!\n\x15repeated_string_piece\x18\x35 \x03(\tB\x02\x08\x02\x12\x19\n\rrepeated_cord\x18\x36 \x03(\tB\x02\x08\x01\x12V\n\x15repeated_lazy_message\x18\x37 \x03(\x0b\x32\x37.cel.expr.conformance.proto3.TestAllTypes.NestedMessage\x12*\n\x0crepeated_any\x18x \x03(\x0b\x32\x14.google.protobuf.Any\x12\x34\n\x11repeated_duration\x18y \x03(\x0b\x32\x19.google.protobuf.Duration\x12\x36\n\x12repeated_timestamp\x18z \x03(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x30\n\x0frepeated_struct\x18{ \x03(\x0b\x32\x17.google.protobuf.Struct\x12.\n\x0erepeated_value\x18| \x03(\x0b\x32\x16.google.protobuf.Value\x12;\n\x16repeated_int64_wrapper\x18} \x03(\x0b\x32\x1b.google.protobuf.Int64Value\x12;\n\x16repeated_int32_wrapper\x18~ \x03(\x0b\x32\x1b.google.protobuf.Int32Value\x12=\n\x17repeated_double_wrapper\x18\x7f \x03(\x0b\x32\x1c.google.protobuf.DoubleValue\x12<\n\x16repeated_float_wrapper\x18\x80\x01 \x03(\x0b\x32\x1b.google.protobuf.FloatValue\x12>\n\x17repeated_uint64_wrapper\x18\x81\x01 \x03(\x0b\x32\x1c.google.protobuf.UInt64Value\x12>\n\x17repeated_uint32_wrapper\x18\x82\x01 \x03(\x0b\x32\x1c.google.protobuf.UInt32Value\x12>\n\x17repeated_string_wrapper\x18\x83\x01 \x03(\x0b\x32\x1c.google.protobuf.StringValue\x12:\n\x15repeated_bool_wrapper\x18\x84\x01 \x03(\x0b\x32\x1a.google.protobuf.BoolValue\x12<\n\x16repeated_bytes_wrapper\x18\x85\x01 \x03(\x0b\x32\x1b.google.protobuf.BytesValue\x12\x38\n\x13repeated_list_value\x18\x86\x01 \x03(\x0b\x32\x1a.google.protobuf.ListValue\x12\x38\n\x13repeated_null_value\x18\x87\x01 \x03(\x0e\x32\x1a.google.protobuf.NullValue\x12`\n\x15map_int64_nested_type\x18> \x03(\x0b\x32\x41.cel.expr.conformance.proto3.TestAllTypes.MapInt64NestedTypeEntry\x12Q\n\rmap_bool_bool\x18? \x03(\x0b\x32:.cel.expr.conformance.proto3.TestAllTypes.MapBoolBoolEntry\x12U\n\x0fmap_bool_string\x18@ \x03(\x0b\x32<.cel.expr.conformance.proto3.TestAllTypes.MapBoolStringEntry\x12S\n\x0emap_bool_bytes\x18\x41 \x03(\x0b\x32;.cel.expr.conformance.proto3.TestAllTypes.MapBoolBytesEntry\x12S\n\x0emap_bool_int32\x18\x42 \x03(\x0b\x32;.cel.expr.conformance.proto3.TestAllTypes.MapBoolInt32Entry\x12S\n\x0emap_bool_int64\x18\x43 \x03(\x0b\x32;.cel.expr.conformance.proto3.TestAllTypes.MapBoolInt64Entry\x12U\n\x0fmap_bool_uint32\x18\x44 \x03(\x0b\x32<.cel.expr.conformance.proto3.TestAllTypes.MapBoolUint32Entry\x12U\n\x0fmap_bool_uint64\x18\x45 \x03(\x0b\x32<.cel.expr.conformance.proto3.TestAllTypes.MapBoolUint64Entry\x12S\n\x0emap_bool_float\x18\x46 \x03(\x0b\x32;.cel.expr.conformance.proto3.TestAllTypes.MapBoolFloatEntry\x12U\n\x0fmap_bool_double\x18G \x03(\x0b\x32<.cel.expr.conformance.proto3.TestAllTypes.MapBoolDoubleEntry\x12Q\n\rmap_bool_enum\x18H \x03(\x0b\x32:.cel.expr.conformance.proto3.TestAllTypes.MapBoolEnumEntry\x12W\n\x10map_bool_message\x18I \x03(\x0b\x32=.cel.expr.conformance.proto3.TestAllTypes.MapBoolMessageEntry\x12Z\n\x11map_bool_duration\x18\xe4\x01 \x03(\x0b\x32>.cel.expr.conformance.proto3.TestAllTypes.MapBoolDurationEntry\x12\\\n\x12map_bool_timestamp\x18\xe5\x01 \x03(\x0b\x32?.cel.expr.conformance.proto3.TestAllTypes.MapBoolTimestampEntry\x12]\n\x13map_bool_null_value\x18\xe6\x01 \x03(\x0b\x32?.cel.expr.conformance.proto3.TestAllTypes.MapBoolNullValueEntry\x12P\n\x0cmap_bool_any\x18\xf6\x01 \x03(\x0b\x32\x39.cel.expr.conformance.proto3.TestAllTypes.MapBoolAnyEntry\x12V\n\x0fmap_bool_struct\x18\xf7\x01 \x03(\x0b\x32<.cel.expr.conformance.proto3.TestAllTypes.MapBoolStructEntry\x12T\n\x0emap_bool_value\x18\xf8\x01 \x03(\x0b\x32;.cel.expr.conformance.proto3.TestAllTypes.MapBoolValueEntry\x12]\n\x13map_bool_list_value\x18\xf9\x01 \x03(\x0b\x32?.cel.expr.conformance.proto3.TestAllTypes.MapBoolListValueEntry\x12\x63\n\x16map_bool_int64_wrapper\x18\xfa\x01 \x03(\x0b\x32\x42.cel.expr.conformance.proto3.TestAllTypes.MapBoolInt64WrapperEntry\x12\x63\n\x16map_bool_int32_wrapper\x18\xfb\x01 \x03(\x0b\x32\x42.cel.expr.conformance.proto3.TestAllTypes.MapBoolInt32WrapperEntry\x12\x65\n\x17map_bool_double_wrapper\x18\xfc\x01 \x03(\x0b\x32\x43.cel.expr.conformance.proto3.TestAllTypes.MapBoolDoubleWrapperEntry\x12\x63\n\x16map_bool_float_wrapper\x18\xfd\x01 \x03(\x0b\x32\x42.cel.expr.conformance.proto3.TestAllTypes.MapBoolFloatWrapperEntry\x12\x65\n\x17map_bool_uint64_wrapper\x18\xfe\x01 \x03(\x0b\x32\x43.cel.expr.conformance.proto3.TestAllTypes.MapBoolUint64WrapperEntry\x12\x65\n\x17map_bool_uint32_wrapper\x18\xff\x01 \x03(\x0b\x32\x43.cel.expr.conformance.proto3.TestAllTypes.MapBoolUint32WrapperEntry\x12\x65\n\x17map_bool_string_wrapper\x18\x80\x02 \x03(\x0b\x32\x43.cel.expr.conformance.proto3.TestAllTypes.MapBoolStringWrapperEntry\x12\x61\n\x15map_bool_bool_wrapper\x18\x81\x02 \x03(\x0b\x32\x41.cel.expr.conformance.proto3.TestAllTypes.MapBoolBoolWrapperEntry\x12\x63\n\x16map_bool_bytes_wrapper\x18\x82\x02 \x03(\x0b\x32\x42.cel.expr.conformance.proto3.TestAllTypes.MapBoolBytesWrapperEntry\x12S\n\x0emap_int32_bool\x18J \x03(\x0b\x32;.cel.expr.conformance.proto3.TestAllTypes.MapInt32BoolEntry\x12W\n\x10map_int32_string\x18K \x03(\x0b\x32=.cel.expr.conformance.proto3.TestAllTypes.MapInt32StringEntry\x12U\n\x0fmap_int32_bytes\x18L \x03(\x0b\x32<.cel.expr.conformance.proto3.TestAllTypes.MapInt32BytesEntry\x12U\n\x0fmap_int32_int32\x18M \x03(\x0b\x32<.cel.expr.conformance.proto3.TestAllTypes.MapInt32Int32Entry\x12U\n\x0fmap_int32_int64\x18N \x03(\x0b\x32<.cel.expr.conformance.proto3.TestAllTypes.MapInt32Int64Entry\x12W\n\x10map_int32_uint32\x18O \x03(\x0b\x32=.cel.expr.conformance.proto3.TestAllTypes.MapInt32Uint32Entry\x12W\n\x10map_int32_uint64\x18P \x03(\x0b\x32=.cel.expr.conformance.proto3.TestAllTypes.MapInt32Uint64Entry\x12U\n\x0fmap_int32_float\x18Q \x03(\x0b\x32<.cel.expr.conformance.proto3.TestAllTypes.MapInt32FloatEntry\x12W\n\x10map_int32_double\x18R \x03(\x0b\x32=.cel.expr.conformance.proto3.TestAllTypes.MapInt32DoubleEntry\x12S\n\x0emap_int32_enum\x18S \x03(\x0b\x32;.cel.expr.conformance.proto3.TestAllTypes.MapInt32EnumEntry\x12Y\n\x11map_int32_message\x18T \x03(\x0b\x32>.cel.expr.conformance.proto3.TestAllTypes.MapInt32MessageEntry\x12\\\n\x12map_int32_duration\x18\xe7\x01 \x03(\x0b\x32?.cel.expr.conformance.proto3.TestAllTypes.MapInt32DurationEntry\x12^\n\x13map_int32_timestamp\x18\xe8\x01 \x03(\x0b\x32@.cel.expr.conformance.proto3.TestAllTypes.MapInt32TimestampEntry\x12_\n\x14map_int32_null_value\x18\xe9\x01 \x03(\x0b\x32@.cel.expr.conformance.proto3.TestAllTypes.MapInt32NullValueEntry\x12R\n\rmap_int32_any\x18\x83\x02 \x03(\x0b\x32:.cel.expr.conformance.proto3.TestAllTypes.MapInt32AnyEntry\x12X\n\x10map_int32_struct\x18\x84\x02 \x03(\x0b\x32=.cel.expr.conformance.proto3.TestAllTypes.MapInt32StructEntry\x12V\n\x0fmap_int32_value\x18\x85\x02 \x03(\x0b\x32<.cel.expr.conformance.proto3.TestAllTypes.MapInt32ValueEntry\x12_\n\x14map_int32_list_value\x18\x86\x02 \x03(\x0b\x32@.cel.expr.conformance.proto3.TestAllTypes.MapInt32ListValueEntry\x12\x65\n\x17map_int32_int64_wrapper\x18\x87\x02 \x03(\x0b\x32\x43.cel.expr.conformance.proto3.TestAllTypes.MapInt32Int64WrapperEntry\x12\x65\n\x17map_int32_int32_wrapper\x18\x88\x02 \x03(\x0b\x32\x43.cel.expr.conformance.proto3.TestAllTypes.MapInt32Int32WrapperEntry\x12g\n\x18map_int32_double_wrapper\x18\x89\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto3.TestAllTypes.MapInt32DoubleWrapperEntry\x12\x65\n\x17map_int32_float_wrapper\x18\x8a\x02 \x03(\x0b\x32\x43.cel.expr.conformance.proto3.TestAllTypes.MapInt32FloatWrapperEntry\x12g\n\x18map_int32_uint64_wrapper\x18\x8b\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto3.TestAllTypes.MapInt32Uint64WrapperEntry\x12g\n\x18map_int32_uint32_wrapper\x18\x8c\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto3.TestAllTypes.MapInt32Uint32WrapperEntry\x12g\n\x18map_int32_string_wrapper\x18\x8d\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto3.TestAllTypes.MapInt32StringWrapperEntry\x12\x63\n\x16map_int32_bool_wrapper\x18\x8e\x02 \x03(\x0b\x32\x42.cel.expr.conformance.proto3.TestAllTypes.MapInt32BoolWrapperEntry\x12\x65\n\x17map_int32_bytes_wrapper\x18\x8f\x02 \x03(\x0b\x32\x43.cel.expr.conformance.proto3.TestAllTypes.MapInt32BytesWrapperEntry\x12S\n\x0emap_int64_bool\x18U \x03(\x0b\x32;.cel.expr.conformance.proto3.TestAllTypes.MapInt64BoolEntry\x12W\n\x10map_int64_string\x18V \x03(\x0b\x32=.cel.expr.conformance.proto3.TestAllTypes.MapInt64StringEntry\x12U\n\x0fmap_int64_bytes\x18W \x03(\x0b\x32<.cel.expr.conformance.proto3.TestAllTypes.MapInt64BytesEntry\x12U\n\x0fmap_int64_int32\x18X \x03(\x0b\x32<.cel.expr.conformance.proto3.TestAllTypes.MapInt64Int32Entry\x12U\n\x0fmap_int64_int64\x18Y \x03(\x0b\x32<.cel.expr.conformance.proto3.TestAllTypes.MapInt64Int64Entry\x12W\n\x10map_int64_uint32\x18Z \x03(\x0b\x32=.cel.expr.conformance.proto3.TestAllTypes.MapInt64Uint32Entry\x12W\n\x10map_int64_uint64\x18[ \x03(\x0b\x32=.cel.expr.conformance.proto3.TestAllTypes.MapInt64Uint64Entry\x12U\n\x0fmap_int64_float\x18\\ \x03(\x0b\x32<.cel.expr.conformance.proto3.TestAllTypes.MapInt64FloatEntry\x12W\n\x10map_int64_double\x18] \x03(\x0b\x32=.cel.expr.conformance.proto3.TestAllTypes.MapInt64DoubleEntry\x12S\n\x0emap_int64_enum\x18^ \x03(\x0b\x32;.cel.expr.conformance.proto3.TestAllTypes.MapInt64EnumEntry\x12Y\n\x11map_int64_message\x18_ \x03(\x0b\x32>.cel.expr.conformance.proto3.TestAllTypes.MapInt64MessageEntry\x12\\\n\x12map_int64_duration\x18\xea\x01 \x03(\x0b\x32?.cel.expr.conformance.proto3.TestAllTypes.MapInt64DurationEntry\x12^\n\x13map_int64_timestamp\x18\xeb\x01 \x03(\x0b\x32@.cel.expr.conformance.proto3.TestAllTypes.MapInt64TimestampEntry\x12_\n\x14map_int64_null_value\x18\xec\x01 \x03(\x0b\x32@.cel.expr.conformance.proto3.TestAllTypes.MapInt64NullValueEntry\x12R\n\rmap_int64_any\x18\x90\x02 \x03(\x0b\x32:.cel.expr.conformance.proto3.TestAllTypes.MapInt64AnyEntry\x12X\n\x10map_int64_struct\x18\x91\x02 \x03(\x0b\x32=.cel.expr.conformance.proto3.TestAllTypes.MapInt64StructEntry\x12V\n\x0fmap_int64_value\x18\x92\x02 \x03(\x0b\x32<.cel.expr.conformance.proto3.TestAllTypes.MapInt64ValueEntry\x12_\n\x14map_int64_list_value\x18\x93\x02 \x03(\x0b\x32@.cel.expr.conformance.proto3.TestAllTypes.MapInt64ListValueEntry\x12\x65\n\x17map_int64_int64_wrapper\x18\x94\x02 \x03(\x0b\x32\x43.cel.expr.conformance.proto3.TestAllTypes.MapInt64Int64WrapperEntry\x12\x65\n\x17map_int64_int32_wrapper\x18\x95\x02 \x03(\x0b\x32\x43.cel.expr.conformance.proto3.TestAllTypes.MapInt64Int32WrapperEntry\x12g\n\x18map_int64_double_wrapper\x18\x96\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto3.TestAllTypes.MapInt64DoubleWrapperEntry\x12\x65\n\x17map_int64_float_wrapper\x18\x97\x02 \x03(\x0b\x32\x43.cel.expr.conformance.proto3.TestAllTypes.MapInt64FloatWrapperEntry\x12g\n\x18map_int64_uint64_wrapper\x18\x98\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto3.TestAllTypes.MapInt64Uint64WrapperEntry\x12g\n\x18map_int64_uint32_wrapper\x18\x99\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto3.TestAllTypes.MapInt64Uint32WrapperEntry\x12g\n\x18map_int64_string_wrapper\x18\x9a\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto3.TestAllTypes.MapInt64StringWrapperEntry\x12\x63\n\x16map_int64_bool_wrapper\x18\x9b\x02 \x03(\x0b\x32\x42.cel.expr.conformance.proto3.TestAllTypes.MapInt64BoolWrapperEntry\x12\x65\n\x17map_int64_bytes_wrapper\x18\x9c\x02 \x03(\x0b\x32\x43.cel.expr.conformance.proto3.TestAllTypes.MapInt64BytesWrapperEntry\x12U\n\x0fmap_uint32_bool\x18` \x03(\x0b\x32<.cel.expr.conformance.proto3.TestAllTypes.MapUint32BoolEntry\x12Y\n\x11map_uint32_string\x18\x61 \x03(\x0b\x32>.cel.expr.conformance.proto3.TestAllTypes.MapUint32StringEntry\x12W\n\x10map_uint32_bytes\x18\x62 \x03(\x0b\x32=.cel.expr.conformance.proto3.TestAllTypes.MapUint32BytesEntry\x12W\n\x10map_uint32_int32\x18\x63 \x03(\x0b\x32=.cel.expr.conformance.proto3.TestAllTypes.MapUint32Int32Entry\x12X\n\x10map_uint32_int64\x18\xc8\x01 \x03(\x0b\x32=.cel.expr.conformance.proto3.TestAllTypes.MapUint32Int64Entry\x12Z\n\x11map_uint32_uint32\x18\xc9\x01 \x03(\x0b\x32>.cel.expr.conformance.proto3.TestAllTypes.MapUint32Uint32Entry\x12Z\n\x11map_uint32_uint64\x18\xca\x01 \x03(\x0b\x32>.cel.expr.conformance.proto3.TestAllTypes.MapUint32Uint64Entry\x12X\n\x10map_uint32_float\x18\xcb\x01 \x03(\x0b\x32=.cel.expr.conformance.proto3.TestAllTypes.MapUint32FloatEntry\x12Z\n\x11map_uint32_double\x18\xcc\x01 \x03(\x0b\x32>.cel.expr.conformance.proto3.TestAllTypes.MapUint32DoubleEntry\x12V\n\x0fmap_uint32_enum\x18\xcd\x01 \x03(\x0b\x32<.cel.expr.conformance.proto3.TestAllTypes.MapUint32EnumEntry\x12\\\n\x12map_uint32_message\x18\xce\x01 \x03(\x0b\x32?.cel.expr.conformance.proto3.TestAllTypes.MapUint32MessageEntry\x12^\n\x13map_uint32_duration\x18\xed\x01 \x03(\x0b\x32@.cel.expr.conformance.proto3.TestAllTypes.MapUint32DurationEntry\x12`\n\x14map_uint32_timestamp\x18\xee\x01 \x03(\x0b\x32\x41.cel.expr.conformance.proto3.TestAllTypes.MapUint32TimestampEntry\x12\x61\n\x15map_uint32_null_value\x18\xef\x01 \x03(\x0b\x32\x41.cel.expr.conformance.proto3.TestAllTypes.MapUint32NullValueEntry\x12T\n\x0emap_uint32_any\x18\x9d\x02 \x03(\x0b\x32;.cel.expr.conformance.proto3.TestAllTypes.MapUint32AnyEntry\x12Z\n\x11map_uint32_struct\x18\x9e\x02 \x03(\x0b\x32>.cel.expr.conformance.proto3.TestAllTypes.MapUint32StructEntry\x12X\n\x10map_uint32_value\x18\x9f\x02 \x03(\x0b\x32=.cel.expr.conformance.proto3.TestAllTypes.MapUint32ValueEntry\x12\x61\n\x15map_uint32_list_value\x18\xa0\x02 \x03(\x0b\x32\x41.cel.expr.conformance.proto3.TestAllTypes.MapUint32ListValueEntry\x12g\n\x18map_uint32_int64_wrapper\x18\xa1\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto3.TestAllTypes.MapUint32Int64WrapperEntry\x12g\n\x18map_uint32_int32_wrapper\x18\xa2\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto3.TestAllTypes.MapUint32Int32WrapperEntry\x12i\n\x19map_uint32_double_wrapper\x18\xa3\x02 \x03(\x0b\x32\x45.cel.expr.conformance.proto3.TestAllTypes.MapUint32DoubleWrapperEntry\x12g\n\x18map_uint32_float_wrapper\x18\xa4\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto3.TestAllTypes.MapUint32FloatWrapperEntry\x12i\n\x19map_uint32_uint64_wrapper\x18\xa5\x02 \x03(\x0b\x32\x45.cel.expr.conformance.proto3.TestAllTypes.MapUint32Uint64WrapperEntry\x12i\n\x19map_uint32_uint32_wrapper\x18\xa6\x02 \x03(\x0b\x32\x45.cel.expr.conformance.proto3.TestAllTypes.MapUint32Uint32WrapperEntry\x12i\n\x19map_uint32_string_wrapper\x18\xa7\x02 \x03(\x0b\x32\x45.cel.expr.conformance.proto3.TestAllTypes.MapUint32StringWrapperEntry\x12\x65\n\x17map_uint32_bool_wrapper\x18\xa8\x02 \x03(\x0b\x32\x43.cel.expr.conformance.proto3.TestAllTypes.MapUint32BoolWrapperEntry\x12g\n\x18map_uint32_bytes_wrapper\x18\xa9\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto3.TestAllTypes.MapUint32BytesWrapperEntry\x12V\n\x0fmap_uint64_bool\x18\xcf\x01 \x03(\x0b\x32<.cel.expr.conformance.proto3.TestAllTypes.MapUint64BoolEntry\x12Z\n\x11map_uint64_string\x18\xd0\x01 \x03(\x0b\x32>.cel.expr.conformance.proto3.TestAllTypes.MapUint64StringEntry\x12X\n\x10map_uint64_bytes\x18\xd1\x01 \x03(\x0b\x32=.cel.expr.conformance.proto3.TestAllTypes.MapUint64BytesEntry\x12X\n\x10map_uint64_int32\x18\xd2\x01 \x03(\x0b\x32=.cel.expr.conformance.proto3.TestAllTypes.MapUint64Int32Entry\x12X\n\x10map_uint64_int64\x18\xd3\x01 \x03(\x0b\x32=.cel.expr.conformance.proto3.TestAllTypes.MapUint64Int64Entry\x12Z\n\x11map_uint64_uint32\x18\xd4\x01 \x03(\x0b\x32>.cel.expr.conformance.proto3.TestAllTypes.MapUint64Uint32Entry\x12Z\n\x11map_uint64_uint64\x18\xd5\x01 \x03(\x0b\x32>.cel.expr.conformance.proto3.TestAllTypes.MapUint64Uint64Entry\x12X\n\x10map_uint64_float\x18\xd6\x01 \x03(\x0b\x32=.cel.expr.conformance.proto3.TestAllTypes.MapUint64FloatEntry\x12Z\n\x11map_uint64_double\x18\xd7\x01 \x03(\x0b\x32>.cel.expr.conformance.proto3.TestAllTypes.MapUint64DoubleEntry\x12V\n\x0fmap_uint64_enum\x18\xd8\x01 \x03(\x0b\x32<.cel.expr.conformance.proto3.TestAllTypes.MapUint64EnumEntry\x12\\\n\x12map_uint64_message\x18\xd9\x01 \x03(\x0b\x32?.cel.expr.conformance.proto3.TestAllTypes.MapUint64MessageEntry\x12^\n\x13map_uint64_duration\x18\xf0\x01 \x03(\x0b\x32@.cel.expr.conformance.proto3.TestAllTypes.MapUint64DurationEntry\x12`\n\x14map_uint64_timestamp\x18\xf1\x01 \x03(\x0b\x32\x41.cel.expr.conformance.proto3.TestAllTypes.MapUint64TimestampEntry\x12\x61\n\x15map_uint64_null_value\x18\xf2\x01 \x03(\x0b\x32\x41.cel.expr.conformance.proto3.TestAllTypes.MapUint64NullValueEntry\x12T\n\x0emap_uint64_any\x18\xaa\x02 \x03(\x0b\x32;.cel.expr.conformance.proto3.TestAllTypes.MapUint64AnyEntry\x12Z\n\x11map_uint64_struct\x18\xab\x02 \x03(\x0b\x32>.cel.expr.conformance.proto3.TestAllTypes.MapUint64StructEntry\x12X\n\x10map_uint64_value\x18\xac\x02 \x03(\x0b\x32=.cel.expr.conformance.proto3.TestAllTypes.MapUint64ValueEntry\x12\x61\n\x15map_uint64_list_value\x18\xad\x02 \x03(\x0b\x32\x41.cel.expr.conformance.proto3.TestAllTypes.MapUint64ListValueEntry\x12g\n\x18map_uint64_int64_wrapper\x18\xae\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto3.TestAllTypes.MapUint64Int64WrapperEntry\x12g\n\x18map_uint64_int32_wrapper\x18\xaf\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto3.TestAllTypes.MapUint64Int32WrapperEntry\x12i\n\x19map_uint64_double_wrapper\x18\xb0\x02 \x03(\x0b\x32\x45.cel.expr.conformance.proto3.TestAllTypes.MapUint64DoubleWrapperEntry\x12g\n\x18map_uint64_float_wrapper\x18\xb1\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto3.TestAllTypes.MapUint64FloatWrapperEntry\x12i\n\x19map_uint64_uint64_wrapper\x18\xb2\x02 \x03(\x0b\x32\x45.cel.expr.conformance.proto3.TestAllTypes.MapUint64Uint64WrapperEntry\x12i\n\x19map_uint64_uint32_wrapper\x18\xb3\x02 \x03(\x0b\x32\x45.cel.expr.conformance.proto3.TestAllTypes.MapUint64Uint32WrapperEntry\x12i\n\x19map_uint64_string_wrapper\x18\xb4\x02 \x03(\x0b\x32\x45.cel.expr.conformance.proto3.TestAllTypes.MapUint64StringWrapperEntry\x12\x65\n\x17map_uint64_bool_wrapper\x18\xb5\x02 \x03(\x0b\x32\x43.cel.expr.conformance.proto3.TestAllTypes.MapUint64BoolWrapperEntry\x12g\n\x18map_uint64_bytes_wrapper\x18\xb6\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto3.TestAllTypes.MapUint64BytesWrapperEntry\x12V\n\x0fmap_string_bool\x18\xda\x01 \x03(\x0b\x32<.cel.expr.conformance.proto3.TestAllTypes.MapStringBoolEntry\x12Y\n\x11map_string_string\x18= \x03(\x0b\x32>.cel.expr.conformance.proto3.TestAllTypes.MapStringStringEntry\x12X\n\x10map_string_bytes\x18\xdb\x01 \x03(\x0b\x32=.cel.expr.conformance.proto3.TestAllTypes.MapStringBytesEntry\x12X\n\x10map_string_int32\x18\xdc\x01 \x03(\x0b\x32=.cel.expr.conformance.proto3.TestAllTypes.MapStringInt32Entry\x12X\n\x10map_string_int64\x18\xdd\x01 \x03(\x0b\x32=.cel.expr.conformance.proto3.TestAllTypes.MapStringInt64Entry\x12Z\n\x11map_string_uint32\x18\xde\x01 \x03(\x0b\x32>.cel.expr.conformance.proto3.TestAllTypes.MapStringUint32Entry\x12Z\n\x11map_string_uint64\x18\xdf\x01 \x03(\x0b\x32>.cel.expr.conformance.proto3.TestAllTypes.MapStringUint64Entry\x12X\n\x10map_string_float\x18\xe0\x01 \x03(\x0b\x32=.cel.expr.conformance.proto3.TestAllTypes.MapStringFloatEntry\x12Z\n\x11map_string_double\x18\xe1\x01 \x03(\x0b\x32>.cel.expr.conformance.proto3.TestAllTypes.MapStringDoubleEntry\x12V\n\x0fmap_string_enum\x18\xe2\x01 \x03(\x0b\x32<.cel.expr.conformance.proto3.TestAllTypes.MapStringEnumEntry\x12\\\n\x12map_string_message\x18\xe3\x01 \x03(\x0b\x32?.cel.expr.conformance.proto3.TestAllTypes.MapStringMessageEntry\x12^\n\x13map_string_duration\x18\xf3\x01 \x03(\x0b\x32@.cel.expr.conformance.proto3.TestAllTypes.MapStringDurationEntry\x12`\n\x14map_string_timestamp\x18\xf4\x01 \x03(\x0b\x32\x41.cel.expr.conformance.proto3.TestAllTypes.MapStringTimestampEntry\x12\x61\n\x15map_string_null_value\x18\xf5\x01 \x03(\x0b\x32\x41.cel.expr.conformance.proto3.TestAllTypes.MapStringNullValueEntry\x12T\n\x0emap_string_any\x18\xb7\x02 \x03(\x0b\x32;.cel.expr.conformance.proto3.TestAllTypes.MapStringAnyEntry\x12Z\n\x11map_string_struct\x18\xb8\x02 \x03(\x0b\x32>.cel.expr.conformance.proto3.TestAllTypes.MapStringStructEntry\x12X\n\x10map_string_value\x18\xb9\x02 \x03(\x0b\x32=.cel.expr.conformance.proto3.TestAllTypes.MapStringValueEntry\x12\x61\n\x15map_string_list_value\x18\xba\x02 \x03(\x0b\x32\x41.cel.expr.conformance.proto3.TestAllTypes.MapStringListValueEntry\x12g\n\x18map_string_int64_wrapper\x18\xbb\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto3.TestAllTypes.MapStringInt64WrapperEntry\x12g\n\x18map_string_int32_wrapper\x18\xbc\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto3.TestAllTypes.MapStringInt32WrapperEntry\x12i\n\x19map_string_double_wrapper\x18\xbd\x02 \x03(\x0b\x32\x45.cel.expr.conformance.proto3.TestAllTypes.MapStringDoubleWrapperEntry\x12g\n\x18map_string_float_wrapper\x18\xbe\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto3.TestAllTypes.MapStringFloatWrapperEntry\x12i\n\x19map_string_uint64_wrapper\x18\xbf\x02 \x03(\x0b\x32\x45.cel.expr.conformance.proto3.TestAllTypes.MapStringUint64WrapperEntry\x12i\n\x19map_string_uint32_wrapper\x18\xc0\x02 \x03(\x0b\x32\x45.cel.expr.conformance.proto3.TestAllTypes.MapStringUint32WrapperEntry\x12i\n\x19map_string_string_wrapper\x18\xc1\x02 \x03(\x0b\x32\x45.cel.expr.conformance.proto3.TestAllTypes.MapStringStringWrapperEntry\x12\x65\n\x17map_string_bool_wrapper\x18\xc2\x02 \x03(\x0b\x32\x43.cel.expr.conformance.proto3.TestAllTypes.MapStringBoolWrapperEntry\x12g\n\x18map_string_bytes_wrapper\x18\xc3\x02 \x03(\x0b\x32\x44.cel.expr.conformance.proto3.TestAllTypes.MapStringBytesWrapperEntry\x12\x46\n\noneof_type\x18\x90\x03 \x01(\x0b\x32/.cel.expr.conformance.proto3.NestedTestAllTypesH\x01\x12M\n\toneof_msg\x18\x91\x03 \x01(\x0b\x32\x37.cel.expr.conformance.proto3.TestAllTypes.NestedMessageH\x01\x12\x15\n\noneof_bool\x18\x92\x03 \x01(\x08H\x01\x1a\x1b\n\rNestedMessage\x12\n\n\x02\x62\x62\x18\x01 \x01(\x05\x1aj\n\x17MapInt64NestedTypeEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12>\n\x05value\x18\x02 \x01(\x0b\x32/.cel.expr.conformance.proto3.NestedTestAllTypes:\x02\x38\x01\x1a\x32\n\x10MapBoolBoolEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\x1a\x34\n\x12MapBoolStringEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x33\n\x11MapBoolBytesEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\x1a\x33\n\x11MapBoolInt32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a\x33\n\x11MapBoolInt64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\x1a\x34\n\x12MapBoolUint32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\x1a\x34\n\x12MapBoolUint64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12\r\n\x05value\x18\x02 \x01(\x04:\x02\x38\x01\x1a\x33\n\x11MapBoolFloatEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\x1a\x34\n\x12MapBoolDoubleEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12\r\n\x05value\x18\x02 \x01(\x01:\x02\x38\x01\x1ah\n\x10MapBoolEnumEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12\x43\n\x05value\x18\x02 \x01(\x0e\x32\x34.cel.expr.conformance.proto3.TestAllTypes.NestedEnum:\x02\x38\x01\x1an\n\x13MapBoolMessageEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12\x46\n\x05value\x18\x02 \x01(\x0b\x32\x37.cel.expr.conformance.proto3.TestAllTypes.NestedMessage:\x02\x38\x01\x1aQ\n\x14MapBoolDurationEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration:\x02\x38\x01\x1aS\n\x15MapBoolTimestampEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp:\x02\x38\x01\x1aS\n\x15MapBoolNullValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12)\n\x05value\x18\x02 \x01(\x0e\x32\x1a.google.protobuf.NullValue:\x02\x38\x01\x1aG\n\x0fMapBoolAnyEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any:\x02\x38\x01\x1aM\n\x12MapBoolStructEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct:\x02\x38\x01\x1aK\n\x11MapBoolValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value:\x02\x38\x01\x1aS\n\x15MapBoolListValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.ListValue:\x02\x38\x01\x1aW\n\x18MapBoolInt64WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value:\x02\x38\x01\x1aW\n\x18MapBoolInt32WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int32Value:\x02\x38\x01\x1aY\n\x19MapBoolDoubleWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue:\x02\x38\x01\x1aW\n\x18MapBoolFloatWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.FloatValue:\x02\x38\x01\x1aY\n\x19MapBoolUint64WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value:\x02\x38\x01\x1aY\n\x19MapBoolUint32WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value:\x02\x38\x01\x1aY\n\x19MapBoolStringWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue:\x02\x38\x01\x1aU\n\x17MapBoolBoolWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValue:\x02\x38\x01\x1aW\n\x18MapBoolBytesWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.BytesValue:\x02\x38\x01\x1a\x33\n\x11MapInt32BoolEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\x1a\x35\n\x13MapInt32StringEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x34\n\x12MapInt32BytesEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\x1a\x34\n\x12MapInt32Int32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a\x34\n\x12MapInt32Int64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\x1a\x35\n\x13MapInt32Uint32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\x1a\x35\n\x13MapInt32Uint64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x04:\x02\x38\x01\x1a\x34\n\x12MapInt32FloatEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\x1a\x35\n\x13MapInt32DoubleEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x01:\x02\x38\x01\x1ai\n\x11MapInt32EnumEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\x43\n\x05value\x18\x02 \x01(\x0e\x32\x34.cel.expr.conformance.proto3.TestAllTypes.NestedEnum:\x02\x38\x01\x1ao\n\x14MapInt32MessageEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\x46\n\x05value\x18\x02 \x01(\x0b\x32\x37.cel.expr.conformance.proto3.TestAllTypes.NestedMessage:\x02\x38\x01\x1aR\n\x15MapInt32DurationEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration:\x02\x38\x01\x1aT\n\x16MapInt32TimestampEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp:\x02\x38\x01\x1aT\n\x16MapInt32NullValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12)\n\x05value\x18\x02 \x01(\x0e\x32\x1a.google.protobuf.NullValue:\x02\x38\x01\x1aH\n\x10MapInt32AnyEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any:\x02\x38\x01\x1aN\n\x13MapInt32StructEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct:\x02\x38\x01\x1aL\n\x12MapInt32ValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value:\x02\x38\x01\x1aT\n\x16MapInt32ListValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.ListValue:\x02\x38\x01\x1aX\n\x19MapInt32Int64WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value:\x02\x38\x01\x1aX\n\x19MapInt32Int32WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int32Value:\x02\x38\x01\x1aZ\n\x1aMapInt32DoubleWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue:\x02\x38\x01\x1aX\n\x19MapInt32FloatWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.FloatValue:\x02\x38\x01\x1aZ\n\x1aMapInt32Uint64WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value:\x02\x38\x01\x1aZ\n\x1aMapInt32Uint32WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value:\x02\x38\x01\x1aZ\n\x1aMapInt32StringWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue:\x02\x38\x01\x1aV\n\x18MapInt32BoolWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValue:\x02\x38\x01\x1aX\n\x19MapInt32BytesWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.BytesValue:\x02\x38\x01\x1a\x33\n\x11MapInt64BoolEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\x1a\x35\n\x13MapInt64StringEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x34\n\x12MapInt64BytesEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\x1a\x34\n\x12MapInt64Int32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a\x34\n\x12MapInt64Int64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\x1a\x35\n\x13MapInt64Uint32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\x1a\x35\n\x13MapInt64Uint64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\x04:\x02\x38\x01\x1a\x34\n\x12MapInt64FloatEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\x1a\x35\n\x13MapInt64DoubleEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\x01:\x02\x38\x01\x1ai\n\x11MapInt64EnumEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\x43\n\x05value\x18\x02 \x01(\x0e\x32\x34.cel.expr.conformance.proto3.TestAllTypes.NestedEnum:\x02\x38\x01\x1ao\n\x14MapInt64MessageEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\x46\n\x05value\x18\x02 \x01(\x0b\x32\x37.cel.expr.conformance.proto3.TestAllTypes.NestedMessage:\x02\x38\x01\x1aR\n\x15MapInt64DurationEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration:\x02\x38\x01\x1aT\n\x16MapInt64TimestampEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp:\x02\x38\x01\x1aT\n\x16MapInt64NullValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12)\n\x05value\x18\x02 \x01(\x0e\x32\x1a.google.protobuf.NullValue:\x02\x38\x01\x1aH\n\x10MapInt64AnyEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any:\x02\x38\x01\x1aN\n\x13MapInt64StructEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct:\x02\x38\x01\x1aL\n\x12MapInt64ValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value:\x02\x38\x01\x1aT\n\x16MapInt64ListValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.ListValue:\x02\x38\x01\x1aX\n\x19MapInt64Int64WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value:\x02\x38\x01\x1aX\n\x19MapInt64Int32WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int32Value:\x02\x38\x01\x1aZ\n\x1aMapInt64DoubleWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue:\x02\x38\x01\x1aX\n\x19MapInt64FloatWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.FloatValue:\x02\x38\x01\x1aZ\n\x1aMapInt64Uint64WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value:\x02\x38\x01\x1aZ\n\x1aMapInt64Uint32WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value:\x02\x38\x01\x1aZ\n\x1aMapInt64StringWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue:\x02\x38\x01\x1aV\n\x18MapInt64BoolWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValue:\x02\x38\x01\x1aX\n\x19MapInt64BytesWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.BytesValue:\x02\x38\x01\x1a\x34\n\x12MapUint32BoolEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\x1a\x36\n\x14MapUint32StringEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x35\n\x13MapUint32BytesEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\x1a\x35\n\x13MapUint32Int32Entry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a\x35\n\x13MapUint32Int64Entry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\x1a\x36\n\x14MapUint32Uint32Entry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\x1a\x36\n\x14MapUint32Uint64Entry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\x04:\x02\x38\x01\x1a\x35\n\x13MapUint32FloatEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\x1a\x36\n\x14MapUint32DoubleEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\x01:\x02\x38\x01\x1aj\n\x12MapUint32EnumEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x43\n\x05value\x18\x02 \x01(\x0e\x32\x34.cel.expr.conformance.proto3.TestAllTypes.NestedEnum:\x02\x38\x01\x1ap\n\x15MapUint32MessageEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x46\n\x05value\x18\x02 \x01(\x0b\x32\x37.cel.expr.conformance.proto3.TestAllTypes.NestedMessage:\x02\x38\x01\x1aS\n\x16MapUint32DurationEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration:\x02\x38\x01\x1aU\n\x17MapUint32TimestampEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp:\x02\x38\x01\x1aU\n\x17MapUint32NullValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12)\n\x05value\x18\x02 \x01(\x0e\x32\x1a.google.protobuf.NullValue:\x02\x38\x01\x1aI\n\x11MapUint32AnyEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any:\x02\x38\x01\x1aO\n\x14MapUint32StructEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct:\x02\x38\x01\x1aM\n\x13MapUint32ValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value:\x02\x38\x01\x1aU\n\x17MapUint32ListValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.ListValue:\x02\x38\x01\x1aY\n\x1aMapUint32Int64WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value:\x02\x38\x01\x1aY\n\x1aMapUint32Int32WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int32Value:\x02\x38\x01\x1a[\n\x1bMapUint32DoubleWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue:\x02\x38\x01\x1aY\n\x1aMapUint32FloatWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.FloatValue:\x02\x38\x01\x1a[\n\x1bMapUint32Uint64WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value:\x02\x38\x01\x1a[\n\x1bMapUint32Uint32WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value:\x02\x38\x01\x1a[\n\x1bMapUint32StringWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue:\x02\x38\x01\x1aW\n\x19MapUint32BoolWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValue:\x02\x38\x01\x1aY\n\x1aMapUint32BytesWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.BytesValue:\x02\x38\x01\x1a\x34\n\x12MapUint64BoolEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\x1a\x36\n\x14MapUint64StringEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x35\n\x13MapUint64BytesEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\x1a\x35\n\x13MapUint64Int32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a\x35\n\x13MapUint64Int64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\x1a\x36\n\x14MapUint64Uint32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\x1a\x36\n\x14MapUint64Uint64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x04:\x02\x38\x01\x1a\x35\n\x13MapUint64FloatEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\x1a\x36\n\x14MapUint64DoubleEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x01:\x02\x38\x01\x1aj\n\x12MapUint64EnumEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\x43\n\x05value\x18\x02 \x01(\x0e\x32\x34.cel.expr.conformance.proto3.TestAllTypes.NestedEnum:\x02\x38\x01\x1ap\n\x15MapUint64MessageEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\x46\n\x05value\x18\x02 \x01(\x0b\x32\x37.cel.expr.conformance.proto3.TestAllTypes.NestedMessage:\x02\x38\x01\x1aS\n\x16MapUint64DurationEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration:\x02\x38\x01\x1aU\n\x17MapUint64TimestampEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp:\x02\x38\x01\x1aU\n\x17MapUint64NullValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12)\n\x05value\x18\x02 \x01(\x0e\x32\x1a.google.protobuf.NullValue:\x02\x38\x01\x1aI\n\x11MapUint64AnyEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any:\x02\x38\x01\x1aO\n\x14MapUint64StructEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct:\x02\x38\x01\x1aM\n\x13MapUint64ValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value:\x02\x38\x01\x1aU\n\x17MapUint64ListValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.ListValue:\x02\x38\x01\x1aY\n\x1aMapUint64Int64WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value:\x02\x38\x01\x1aY\n\x1aMapUint64Int32WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int32Value:\x02\x38\x01\x1a[\n\x1bMapUint64DoubleWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue:\x02\x38\x01\x1aY\n\x1aMapUint64FloatWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.FloatValue:\x02\x38\x01\x1a[\n\x1bMapUint64Uint64WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value:\x02\x38\x01\x1a[\n\x1bMapUint64Uint32WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value:\x02\x38\x01\x1a[\n\x1bMapUint64StringWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue:\x02\x38\x01\x1aW\n\x19MapUint64BoolWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValue:\x02\x38\x01\x1aY\n\x1aMapUint64BytesWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.BytesValue:\x02\x38\x01\x1a\x34\n\x12MapStringBoolEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\x1a\x36\n\x14MapStringStringEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x35\n\x13MapStringBytesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\x1a\x35\n\x13MapStringInt32Entry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a\x35\n\x13MapStringInt64Entry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\x1a\x36\n\x14MapStringUint32Entry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\x1a\x36\n\x14MapStringUint64Entry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x04:\x02\x38\x01\x1a\x35\n\x13MapStringFloatEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\x1a\x36\n\x14MapStringDoubleEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x01:\x02\x38\x01\x1aj\n\x12MapStringEnumEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x43\n\x05value\x18\x02 \x01(\x0e\x32\x34.cel.expr.conformance.proto3.TestAllTypes.NestedEnum:\x02\x38\x01\x1ap\n\x15MapStringMessageEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x46\n\x05value\x18\x02 \x01(\x0b\x32\x37.cel.expr.conformance.proto3.TestAllTypes.NestedMessage:\x02\x38\x01\x1aS\n\x16MapStringDurationEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration:\x02\x38\x01\x1aU\n\x17MapStringTimestampEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp:\x02\x38\x01\x1aU\n\x17MapStringNullValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0e\x32\x1a.google.protobuf.NullValue:\x02\x38\x01\x1aI\n\x11MapStringAnyEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any:\x02\x38\x01\x1aO\n\x14MapStringStructEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct:\x02\x38\x01\x1aM\n\x13MapStringValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value:\x02\x38\x01\x1aU\n\x17MapStringListValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.ListValue:\x02\x38\x01\x1aY\n\x1aMapStringInt64WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value:\x02\x38\x01\x1aY\n\x1aMapStringInt32WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int32Value:\x02\x38\x01\x1a[\n\x1bMapStringDoubleWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue:\x02\x38\x01\x1aY\n\x1aMapStringFloatWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.FloatValue:\x02\x38\x01\x1a[\n\x1bMapStringUint64WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value:\x02\x38\x01\x1a[\n\x1bMapStringUint32WrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value:\x02\x38\x01\x1a[\n\x1bMapStringStringWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue:\x02\x38\x01\x1aW\n\x19MapStringBoolWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValue:\x02\x38\x01\x1aY\n\x1aMapStringBytesWrapperEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.BytesValue:\x02\x38\x01\"\'\n\nNestedEnum\x12\x07\n\x03\x46OO\x10\x00\x12\x07\n\x03\x42\x41R\x10\x01\x12\x07\n\x03\x42\x41Z\x10\x02\x42\r\n\x0bnested_typeB\x06\n\x04kindB\x10\n\x0e_optional_boolB\x12\n\x10_optional_stringB\x16\n\x14_optional_null_value\"\x90\x01\n\x12NestedTestAllTypes\x12>\n\x05\x63hild\x18\x01 \x01(\x0b\x32/.cel.expr.conformance.proto3.NestedTestAllTypes\x12:\n\x07payload\x18\x02 \x01(\x0b\x32).cel.expr.conformance.proto3.TestAllTypes*\'\n\nGlobalEnum\x12\x07\n\x03GOO\x10\x00\x12\x07\n\x03GAR\x10\x01\x12\x07\n\x03GAZ\x10\x02\x42Z\n\x1f\x64\x65v.cel.expr.conformance.proto3B\x11TestAllTypesProtoP\x01Z\x1f\x63\x65l.dev/expr/conformance/proto3\xf8\x01\x01\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cel.expr.conformance.proto3.test_all_types_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\037dev.cel.expr.conformance.proto3B\021TestAllTypesProtoP\001Z\037cel.dev/expr/conformance/proto3\370\001\001' + _globals['_TESTALLTYPES_MAPINT64NESTEDTYPEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64NESTEDTYPEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLBOOLENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLBOOLENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLSTRINGENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLSTRINGENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLBYTESENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLBYTESENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLINT32ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLINT32ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLINT64ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLINT64ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLUINT32ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLUINT32ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLUINT64ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLUINT64ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLFLOATENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLFLOATENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLDOUBLEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLDOUBLEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLENUMENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLENUMENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLMESSAGEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLMESSAGEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLDURATIONENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLDURATIONENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLTIMESTAMPENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLTIMESTAMPENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLNULLVALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLNULLVALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLANYENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLANYENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLSTRUCTENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLSTRUCTENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLVALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLVALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLLISTVALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLLISTVALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLINT64WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLINT64WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLINT32WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLINT32WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLDOUBLEWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLDOUBLEWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLFLOATWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLFLOATWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLUINT64WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLUINT64WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLUINT32WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLUINT32WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLSTRINGWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLSTRINGWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLBOOLWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLBOOLWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPBOOLBYTESWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPBOOLBYTESWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32BOOLENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32BOOLENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32STRINGENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32STRINGENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32BYTESENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32BYTESENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32INT32ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32INT32ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32INT64ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32INT64ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32UINT32ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32UINT32ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32UINT64ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32UINT64ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32FLOATENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32FLOATENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32DOUBLEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32DOUBLEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32ENUMENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32ENUMENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32MESSAGEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32MESSAGEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32DURATIONENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32DURATIONENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32TIMESTAMPENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32TIMESTAMPENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32NULLVALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32NULLVALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32ANYENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32ANYENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32STRUCTENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32STRUCTENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32VALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32VALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32LISTVALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32LISTVALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32INT64WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32INT64WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32INT32WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32INT32WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32DOUBLEWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32DOUBLEWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32FLOATWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32FLOATWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32UINT64WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32UINT64WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32UINT32WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32UINT32WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32STRINGWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32STRINGWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32BOOLWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32BOOLWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT32BYTESWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT32BYTESWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64BOOLENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64BOOLENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64STRINGENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64STRINGENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64BYTESENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64BYTESENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64INT32ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64INT32ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64INT64ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64INT64ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64UINT32ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64UINT32ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64UINT64ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64UINT64ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64FLOATENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64FLOATENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64DOUBLEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64DOUBLEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64ENUMENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64ENUMENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64MESSAGEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64MESSAGEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64DURATIONENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64DURATIONENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64TIMESTAMPENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64TIMESTAMPENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64NULLVALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64NULLVALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64ANYENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64ANYENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64STRUCTENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64STRUCTENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64VALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64VALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64LISTVALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64LISTVALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64INT64WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64INT64WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64INT32WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64INT32WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64DOUBLEWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64DOUBLEWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64FLOATWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64FLOATWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64UINT64WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64UINT64WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64UINT32WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64UINT32WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64STRINGWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64STRINGWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64BOOLWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64BOOLWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPINT64BYTESWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPINT64BYTESWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32BOOLENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32BOOLENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32STRINGENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32STRINGENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32BYTESENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32BYTESENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32INT32ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32INT32ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32INT64ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32INT64ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32UINT32ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32UINT32ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32UINT64ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32UINT64ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32FLOATENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32FLOATENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32DOUBLEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32DOUBLEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32ENUMENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32ENUMENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32MESSAGEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32MESSAGEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32DURATIONENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32DURATIONENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32TIMESTAMPENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32TIMESTAMPENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32NULLVALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32NULLVALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32ANYENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32ANYENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32STRUCTENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32STRUCTENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32VALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32VALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32LISTVALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32LISTVALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32INT64WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32INT64WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32INT32WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32INT32WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32DOUBLEWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32DOUBLEWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32FLOATWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32FLOATWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32UINT64WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32UINT64WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32UINT32WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32UINT32WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32STRINGWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32STRINGWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32BOOLWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32BOOLWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT32BYTESWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT32BYTESWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64BOOLENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64BOOLENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64STRINGENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64STRINGENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64BYTESENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64BYTESENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64INT32ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64INT32ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64INT64ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64INT64ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64UINT32ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64UINT32ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64UINT64ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64UINT64ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64FLOATENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64FLOATENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64DOUBLEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64DOUBLEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64ENUMENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64ENUMENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64MESSAGEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64MESSAGEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64DURATIONENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64DURATIONENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64TIMESTAMPENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64TIMESTAMPENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64NULLVALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64NULLVALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64ANYENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64ANYENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64STRUCTENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64STRUCTENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64VALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64VALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64LISTVALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64LISTVALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64INT64WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64INT64WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64INT32WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64INT32WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64DOUBLEWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64DOUBLEWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64FLOATWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64FLOATWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64UINT64WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64UINT64WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64UINT32WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64UINT32WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64STRINGWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64STRINGWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64BOOLWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64BOOLWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPUINT64BYTESWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPUINT64BYTESWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGBOOLENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGBOOLENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGSTRINGENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGSTRINGENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGBYTESENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGBYTESENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGINT32ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGINT32ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGINT64ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGINT64ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGUINT32ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGUINT32ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGUINT64ENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGUINT64ENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGFLOATENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGFLOATENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGDOUBLEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGDOUBLEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGENUMENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGENUMENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGMESSAGEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGMESSAGEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGDURATIONENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGDURATIONENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGTIMESTAMPENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGTIMESTAMPENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGNULLVALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGNULLVALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGANYENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGANYENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGSTRUCTENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGSTRUCTENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGVALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGVALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGLISTVALUEENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGLISTVALUEENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGINT64WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGINT64WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGINT32WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGINT32WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGDOUBLEWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGDOUBLEWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGFLOATWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGFLOATWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGUINT64WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGUINT64WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGUINT32WRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGUINT32WRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGSTRINGWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGSTRINGWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGBOOLWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGBOOLWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES_MAPSTRINGBYTESWRAPPERENTRY']._loaded_options = None + _globals['_TESTALLTYPES_MAPSTRINGBYTESWRAPPERENTRY']._serialized_options = b'8\001' + _globals['_TESTALLTYPES'].fields_by_name['repeated_string_piece']._loaded_options = None + _globals['_TESTALLTYPES'].fields_by_name['repeated_string_piece']._serialized_options = b'\010\002' + _globals['_TESTALLTYPES'].fields_by_name['repeated_cord']._loaded_options = None + _globals['_TESTALLTYPES'].fields_by_name['repeated_cord']._serialized_options = b'\010\001' + _globals['_GLOBALENUM']._serialized_start=32451 + _globals['_GLOBALENUM']._serialized_end=32490 + _globals['_TESTALLTYPES']._serialized_start=300 + _globals['_TESTALLTYPES']._serialized_end=32302 + _globals['_TESTALLTYPES_NESTEDMESSAGE']._serialized_start=19393 + _globals['_TESTALLTYPES_NESTEDMESSAGE']._serialized_end=19420 + _globals['_TESTALLTYPES_MAPINT64NESTEDTYPEENTRY']._serialized_start=19422 + _globals['_TESTALLTYPES_MAPINT64NESTEDTYPEENTRY']._serialized_end=19528 + _globals['_TESTALLTYPES_MAPBOOLBOOLENTRY']._serialized_start=19530 + _globals['_TESTALLTYPES_MAPBOOLBOOLENTRY']._serialized_end=19580 + _globals['_TESTALLTYPES_MAPBOOLSTRINGENTRY']._serialized_start=19582 + _globals['_TESTALLTYPES_MAPBOOLSTRINGENTRY']._serialized_end=19634 + _globals['_TESTALLTYPES_MAPBOOLBYTESENTRY']._serialized_start=19636 + _globals['_TESTALLTYPES_MAPBOOLBYTESENTRY']._serialized_end=19687 + _globals['_TESTALLTYPES_MAPBOOLINT32ENTRY']._serialized_start=19689 + _globals['_TESTALLTYPES_MAPBOOLINT32ENTRY']._serialized_end=19740 + _globals['_TESTALLTYPES_MAPBOOLINT64ENTRY']._serialized_start=19742 + _globals['_TESTALLTYPES_MAPBOOLINT64ENTRY']._serialized_end=19793 + _globals['_TESTALLTYPES_MAPBOOLUINT32ENTRY']._serialized_start=19795 + _globals['_TESTALLTYPES_MAPBOOLUINT32ENTRY']._serialized_end=19847 + _globals['_TESTALLTYPES_MAPBOOLUINT64ENTRY']._serialized_start=19849 + _globals['_TESTALLTYPES_MAPBOOLUINT64ENTRY']._serialized_end=19901 + _globals['_TESTALLTYPES_MAPBOOLFLOATENTRY']._serialized_start=19903 + _globals['_TESTALLTYPES_MAPBOOLFLOATENTRY']._serialized_end=19954 + _globals['_TESTALLTYPES_MAPBOOLDOUBLEENTRY']._serialized_start=19956 + _globals['_TESTALLTYPES_MAPBOOLDOUBLEENTRY']._serialized_end=20008 + _globals['_TESTALLTYPES_MAPBOOLENUMENTRY']._serialized_start=20010 + _globals['_TESTALLTYPES_MAPBOOLENUMENTRY']._serialized_end=20114 + _globals['_TESTALLTYPES_MAPBOOLMESSAGEENTRY']._serialized_start=20116 + _globals['_TESTALLTYPES_MAPBOOLMESSAGEENTRY']._serialized_end=20226 + _globals['_TESTALLTYPES_MAPBOOLDURATIONENTRY']._serialized_start=20228 + _globals['_TESTALLTYPES_MAPBOOLDURATIONENTRY']._serialized_end=20309 + _globals['_TESTALLTYPES_MAPBOOLTIMESTAMPENTRY']._serialized_start=20311 + _globals['_TESTALLTYPES_MAPBOOLTIMESTAMPENTRY']._serialized_end=20394 + _globals['_TESTALLTYPES_MAPBOOLNULLVALUEENTRY']._serialized_start=20396 + _globals['_TESTALLTYPES_MAPBOOLNULLVALUEENTRY']._serialized_end=20479 + _globals['_TESTALLTYPES_MAPBOOLANYENTRY']._serialized_start=20481 + _globals['_TESTALLTYPES_MAPBOOLANYENTRY']._serialized_end=20552 + _globals['_TESTALLTYPES_MAPBOOLSTRUCTENTRY']._serialized_start=20554 + _globals['_TESTALLTYPES_MAPBOOLSTRUCTENTRY']._serialized_end=20631 + _globals['_TESTALLTYPES_MAPBOOLVALUEENTRY']._serialized_start=20633 + _globals['_TESTALLTYPES_MAPBOOLVALUEENTRY']._serialized_end=20708 + _globals['_TESTALLTYPES_MAPBOOLLISTVALUEENTRY']._serialized_start=20710 + _globals['_TESTALLTYPES_MAPBOOLLISTVALUEENTRY']._serialized_end=20793 + _globals['_TESTALLTYPES_MAPBOOLINT64WRAPPERENTRY']._serialized_start=20795 + _globals['_TESTALLTYPES_MAPBOOLINT64WRAPPERENTRY']._serialized_end=20882 + _globals['_TESTALLTYPES_MAPBOOLINT32WRAPPERENTRY']._serialized_start=20884 + _globals['_TESTALLTYPES_MAPBOOLINT32WRAPPERENTRY']._serialized_end=20971 + _globals['_TESTALLTYPES_MAPBOOLDOUBLEWRAPPERENTRY']._serialized_start=20973 + _globals['_TESTALLTYPES_MAPBOOLDOUBLEWRAPPERENTRY']._serialized_end=21062 + _globals['_TESTALLTYPES_MAPBOOLFLOATWRAPPERENTRY']._serialized_start=21064 + _globals['_TESTALLTYPES_MAPBOOLFLOATWRAPPERENTRY']._serialized_end=21151 + _globals['_TESTALLTYPES_MAPBOOLUINT64WRAPPERENTRY']._serialized_start=21153 + _globals['_TESTALLTYPES_MAPBOOLUINT64WRAPPERENTRY']._serialized_end=21242 + _globals['_TESTALLTYPES_MAPBOOLUINT32WRAPPERENTRY']._serialized_start=21244 + _globals['_TESTALLTYPES_MAPBOOLUINT32WRAPPERENTRY']._serialized_end=21333 + _globals['_TESTALLTYPES_MAPBOOLSTRINGWRAPPERENTRY']._serialized_start=21335 + _globals['_TESTALLTYPES_MAPBOOLSTRINGWRAPPERENTRY']._serialized_end=21424 + _globals['_TESTALLTYPES_MAPBOOLBOOLWRAPPERENTRY']._serialized_start=21426 + _globals['_TESTALLTYPES_MAPBOOLBOOLWRAPPERENTRY']._serialized_end=21511 + _globals['_TESTALLTYPES_MAPBOOLBYTESWRAPPERENTRY']._serialized_start=21513 + _globals['_TESTALLTYPES_MAPBOOLBYTESWRAPPERENTRY']._serialized_end=21600 + _globals['_TESTALLTYPES_MAPINT32BOOLENTRY']._serialized_start=21602 + _globals['_TESTALLTYPES_MAPINT32BOOLENTRY']._serialized_end=21653 + _globals['_TESTALLTYPES_MAPINT32STRINGENTRY']._serialized_start=21655 + _globals['_TESTALLTYPES_MAPINT32STRINGENTRY']._serialized_end=21708 + _globals['_TESTALLTYPES_MAPINT32BYTESENTRY']._serialized_start=21710 + _globals['_TESTALLTYPES_MAPINT32BYTESENTRY']._serialized_end=21762 + _globals['_TESTALLTYPES_MAPINT32INT32ENTRY']._serialized_start=21764 + _globals['_TESTALLTYPES_MAPINT32INT32ENTRY']._serialized_end=21816 + _globals['_TESTALLTYPES_MAPINT32INT64ENTRY']._serialized_start=21818 + _globals['_TESTALLTYPES_MAPINT32INT64ENTRY']._serialized_end=21870 + _globals['_TESTALLTYPES_MAPINT32UINT32ENTRY']._serialized_start=21872 + _globals['_TESTALLTYPES_MAPINT32UINT32ENTRY']._serialized_end=21925 + _globals['_TESTALLTYPES_MAPINT32UINT64ENTRY']._serialized_start=21927 + _globals['_TESTALLTYPES_MAPINT32UINT64ENTRY']._serialized_end=21980 + _globals['_TESTALLTYPES_MAPINT32FLOATENTRY']._serialized_start=21982 + _globals['_TESTALLTYPES_MAPINT32FLOATENTRY']._serialized_end=22034 + _globals['_TESTALLTYPES_MAPINT32DOUBLEENTRY']._serialized_start=22036 + _globals['_TESTALLTYPES_MAPINT32DOUBLEENTRY']._serialized_end=22089 + _globals['_TESTALLTYPES_MAPINT32ENUMENTRY']._serialized_start=22091 + _globals['_TESTALLTYPES_MAPINT32ENUMENTRY']._serialized_end=22196 + _globals['_TESTALLTYPES_MAPINT32MESSAGEENTRY']._serialized_start=22198 + _globals['_TESTALLTYPES_MAPINT32MESSAGEENTRY']._serialized_end=22309 + _globals['_TESTALLTYPES_MAPINT32DURATIONENTRY']._serialized_start=22311 + _globals['_TESTALLTYPES_MAPINT32DURATIONENTRY']._serialized_end=22393 + _globals['_TESTALLTYPES_MAPINT32TIMESTAMPENTRY']._serialized_start=22395 + _globals['_TESTALLTYPES_MAPINT32TIMESTAMPENTRY']._serialized_end=22479 + _globals['_TESTALLTYPES_MAPINT32NULLVALUEENTRY']._serialized_start=22481 + _globals['_TESTALLTYPES_MAPINT32NULLVALUEENTRY']._serialized_end=22565 + _globals['_TESTALLTYPES_MAPINT32ANYENTRY']._serialized_start=22567 + _globals['_TESTALLTYPES_MAPINT32ANYENTRY']._serialized_end=22639 + _globals['_TESTALLTYPES_MAPINT32STRUCTENTRY']._serialized_start=22641 + _globals['_TESTALLTYPES_MAPINT32STRUCTENTRY']._serialized_end=22719 + _globals['_TESTALLTYPES_MAPINT32VALUEENTRY']._serialized_start=22721 + _globals['_TESTALLTYPES_MAPINT32VALUEENTRY']._serialized_end=22797 + _globals['_TESTALLTYPES_MAPINT32LISTVALUEENTRY']._serialized_start=22799 + _globals['_TESTALLTYPES_MAPINT32LISTVALUEENTRY']._serialized_end=22883 + _globals['_TESTALLTYPES_MAPINT32INT64WRAPPERENTRY']._serialized_start=22885 + _globals['_TESTALLTYPES_MAPINT32INT64WRAPPERENTRY']._serialized_end=22973 + _globals['_TESTALLTYPES_MAPINT32INT32WRAPPERENTRY']._serialized_start=22975 + _globals['_TESTALLTYPES_MAPINT32INT32WRAPPERENTRY']._serialized_end=23063 + _globals['_TESTALLTYPES_MAPINT32DOUBLEWRAPPERENTRY']._serialized_start=23065 + _globals['_TESTALLTYPES_MAPINT32DOUBLEWRAPPERENTRY']._serialized_end=23155 + _globals['_TESTALLTYPES_MAPINT32FLOATWRAPPERENTRY']._serialized_start=23157 + _globals['_TESTALLTYPES_MAPINT32FLOATWRAPPERENTRY']._serialized_end=23245 + _globals['_TESTALLTYPES_MAPINT32UINT64WRAPPERENTRY']._serialized_start=23247 + _globals['_TESTALLTYPES_MAPINT32UINT64WRAPPERENTRY']._serialized_end=23337 + _globals['_TESTALLTYPES_MAPINT32UINT32WRAPPERENTRY']._serialized_start=23339 + _globals['_TESTALLTYPES_MAPINT32UINT32WRAPPERENTRY']._serialized_end=23429 + _globals['_TESTALLTYPES_MAPINT32STRINGWRAPPERENTRY']._serialized_start=23431 + _globals['_TESTALLTYPES_MAPINT32STRINGWRAPPERENTRY']._serialized_end=23521 + _globals['_TESTALLTYPES_MAPINT32BOOLWRAPPERENTRY']._serialized_start=23523 + _globals['_TESTALLTYPES_MAPINT32BOOLWRAPPERENTRY']._serialized_end=23609 + _globals['_TESTALLTYPES_MAPINT32BYTESWRAPPERENTRY']._serialized_start=23611 + _globals['_TESTALLTYPES_MAPINT32BYTESWRAPPERENTRY']._serialized_end=23699 + _globals['_TESTALLTYPES_MAPINT64BOOLENTRY']._serialized_start=23701 + _globals['_TESTALLTYPES_MAPINT64BOOLENTRY']._serialized_end=23752 + _globals['_TESTALLTYPES_MAPINT64STRINGENTRY']._serialized_start=23754 + _globals['_TESTALLTYPES_MAPINT64STRINGENTRY']._serialized_end=23807 + _globals['_TESTALLTYPES_MAPINT64BYTESENTRY']._serialized_start=23809 + _globals['_TESTALLTYPES_MAPINT64BYTESENTRY']._serialized_end=23861 + _globals['_TESTALLTYPES_MAPINT64INT32ENTRY']._serialized_start=23863 + _globals['_TESTALLTYPES_MAPINT64INT32ENTRY']._serialized_end=23915 + _globals['_TESTALLTYPES_MAPINT64INT64ENTRY']._serialized_start=23917 + _globals['_TESTALLTYPES_MAPINT64INT64ENTRY']._serialized_end=23969 + _globals['_TESTALLTYPES_MAPINT64UINT32ENTRY']._serialized_start=23971 + _globals['_TESTALLTYPES_MAPINT64UINT32ENTRY']._serialized_end=24024 + _globals['_TESTALLTYPES_MAPINT64UINT64ENTRY']._serialized_start=24026 + _globals['_TESTALLTYPES_MAPINT64UINT64ENTRY']._serialized_end=24079 + _globals['_TESTALLTYPES_MAPINT64FLOATENTRY']._serialized_start=24081 + _globals['_TESTALLTYPES_MAPINT64FLOATENTRY']._serialized_end=24133 + _globals['_TESTALLTYPES_MAPINT64DOUBLEENTRY']._serialized_start=24135 + _globals['_TESTALLTYPES_MAPINT64DOUBLEENTRY']._serialized_end=24188 + _globals['_TESTALLTYPES_MAPINT64ENUMENTRY']._serialized_start=24190 + _globals['_TESTALLTYPES_MAPINT64ENUMENTRY']._serialized_end=24295 + _globals['_TESTALLTYPES_MAPINT64MESSAGEENTRY']._serialized_start=24297 + _globals['_TESTALLTYPES_MAPINT64MESSAGEENTRY']._serialized_end=24408 + _globals['_TESTALLTYPES_MAPINT64DURATIONENTRY']._serialized_start=24410 + _globals['_TESTALLTYPES_MAPINT64DURATIONENTRY']._serialized_end=24492 + _globals['_TESTALLTYPES_MAPINT64TIMESTAMPENTRY']._serialized_start=24494 + _globals['_TESTALLTYPES_MAPINT64TIMESTAMPENTRY']._serialized_end=24578 + _globals['_TESTALLTYPES_MAPINT64NULLVALUEENTRY']._serialized_start=24580 + _globals['_TESTALLTYPES_MAPINT64NULLVALUEENTRY']._serialized_end=24664 + _globals['_TESTALLTYPES_MAPINT64ANYENTRY']._serialized_start=24666 + _globals['_TESTALLTYPES_MAPINT64ANYENTRY']._serialized_end=24738 + _globals['_TESTALLTYPES_MAPINT64STRUCTENTRY']._serialized_start=24740 + _globals['_TESTALLTYPES_MAPINT64STRUCTENTRY']._serialized_end=24818 + _globals['_TESTALLTYPES_MAPINT64VALUEENTRY']._serialized_start=24820 + _globals['_TESTALLTYPES_MAPINT64VALUEENTRY']._serialized_end=24896 + _globals['_TESTALLTYPES_MAPINT64LISTVALUEENTRY']._serialized_start=24898 + _globals['_TESTALLTYPES_MAPINT64LISTVALUEENTRY']._serialized_end=24982 + _globals['_TESTALLTYPES_MAPINT64INT64WRAPPERENTRY']._serialized_start=24984 + _globals['_TESTALLTYPES_MAPINT64INT64WRAPPERENTRY']._serialized_end=25072 + _globals['_TESTALLTYPES_MAPINT64INT32WRAPPERENTRY']._serialized_start=25074 + _globals['_TESTALLTYPES_MAPINT64INT32WRAPPERENTRY']._serialized_end=25162 + _globals['_TESTALLTYPES_MAPINT64DOUBLEWRAPPERENTRY']._serialized_start=25164 + _globals['_TESTALLTYPES_MAPINT64DOUBLEWRAPPERENTRY']._serialized_end=25254 + _globals['_TESTALLTYPES_MAPINT64FLOATWRAPPERENTRY']._serialized_start=25256 + _globals['_TESTALLTYPES_MAPINT64FLOATWRAPPERENTRY']._serialized_end=25344 + _globals['_TESTALLTYPES_MAPINT64UINT64WRAPPERENTRY']._serialized_start=25346 + _globals['_TESTALLTYPES_MAPINT64UINT64WRAPPERENTRY']._serialized_end=25436 + _globals['_TESTALLTYPES_MAPINT64UINT32WRAPPERENTRY']._serialized_start=25438 + _globals['_TESTALLTYPES_MAPINT64UINT32WRAPPERENTRY']._serialized_end=25528 + _globals['_TESTALLTYPES_MAPINT64STRINGWRAPPERENTRY']._serialized_start=25530 + _globals['_TESTALLTYPES_MAPINT64STRINGWRAPPERENTRY']._serialized_end=25620 + _globals['_TESTALLTYPES_MAPINT64BOOLWRAPPERENTRY']._serialized_start=25622 + _globals['_TESTALLTYPES_MAPINT64BOOLWRAPPERENTRY']._serialized_end=25708 + _globals['_TESTALLTYPES_MAPINT64BYTESWRAPPERENTRY']._serialized_start=25710 + _globals['_TESTALLTYPES_MAPINT64BYTESWRAPPERENTRY']._serialized_end=25798 + _globals['_TESTALLTYPES_MAPUINT32BOOLENTRY']._serialized_start=25800 + _globals['_TESTALLTYPES_MAPUINT32BOOLENTRY']._serialized_end=25852 + _globals['_TESTALLTYPES_MAPUINT32STRINGENTRY']._serialized_start=25854 + _globals['_TESTALLTYPES_MAPUINT32STRINGENTRY']._serialized_end=25908 + _globals['_TESTALLTYPES_MAPUINT32BYTESENTRY']._serialized_start=25910 + _globals['_TESTALLTYPES_MAPUINT32BYTESENTRY']._serialized_end=25963 + _globals['_TESTALLTYPES_MAPUINT32INT32ENTRY']._serialized_start=25965 + _globals['_TESTALLTYPES_MAPUINT32INT32ENTRY']._serialized_end=26018 + _globals['_TESTALLTYPES_MAPUINT32INT64ENTRY']._serialized_start=26020 + _globals['_TESTALLTYPES_MAPUINT32INT64ENTRY']._serialized_end=26073 + _globals['_TESTALLTYPES_MAPUINT32UINT32ENTRY']._serialized_start=26075 + _globals['_TESTALLTYPES_MAPUINT32UINT32ENTRY']._serialized_end=26129 + _globals['_TESTALLTYPES_MAPUINT32UINT64ENTRY']._serialized_start=26131 + _globals['_TESTALLTYPES_MAPUINT32UINT64ENTRY']._serialized_end=26185 + _globals['_TESTALLTYPES_MAPUINT32FLOATENTRY']._serialized_start=26187 + _globals['_TESTALLTYPES_MAPUINT32FLOATENTRY']._serialized_end=26240 + _globals['_TESTALLTYPES_MAPUINT32DOUBLEENTRY']._serialized_start=26242 + _globals['_TESTALLTYPES_MAPUINT32DOUBLEENTRY']._serialized_end=26296 + _globals['_TESTALLTYPES_MAPUINT32ENUMENTRY']._serialized_start=26298 + _globals['_TESTALLTYPES_MAPUINT32ENUMENTRY']._serialized_end=26404 + _globals['_TESTALLTYPES_MAPUINT32MESSAGEENTRY']._serialized_start=26406 + _globals['_TESTALLTYPES_MAPUINT32MESSAGEENTRY']._serialized_end=26518 + _globals['_TESTALLTYPES_MAPUINT32DURATIONENTRY']._serialized_start=26520 + _globals['_TESTALLTYPES_MAPUINT32DURATIONENTRY']._serialized_end=26603 + _globals['_TESTALLTYPES_MAPUINT32TIMESTAMPENTRY']._serialized_start=26605 + _globals['_TESTALLTYPES_MAPUINT32TIMESTAMPENTRY']._serialized_end=26690 + _globals['_TESTALLTYPES_MAPUINT32NULLVALUEENTRY']._serialized_start=26692 + _globals['_TESTALLTYPES_MAPUINT32NULLVALUEENTRY']._serialized_end=26777 + _globals['_TESTALLTYPES_MAPUINT32ANYENTRY']._serialized_start=26779 + _globals['_TESTALLTYPES_MAPUINT32ANYENTRY']._serialized_end=26852 + _globals['_TESTALLTYPES_MAPUINT32STRUCTENTRY']._serialized_start=26854 + _globals['_TESTALLTYPES_MAPUINT32STRUCTENTRY']._serialized_end=26933 + _globals['_TESTALLTYPES_MAPUINT32VALUEENTRY']._serialized_start=26935 + _globals['_TESTALLTYPES_MAPUINT32VALUEENTRY']._serialized_end=27012 + _globals['_TESTALLTYPES_MAPUINT32LISTVALUEENTRY']._serialized_start=27014 + _globals['_TESTALLTYPES_MAPUINT32LISTVALUEENTRY']._serialized_end=27099 + _globals['_TESTALLTYPES_MAPUINT32INT64WRAPPERENTRY']._serialized_start=27101 + _globals['_TESTALLTYPES_MAPUINT32INT64WRAPPERENTRY']._serialized_end=27190 + _globals['_TESTALLTYPES_MAPUINT32INT32WRAPPERENTRY']._serialized_start=27192 + _globals['_TESTALLTYPES_MAPUINT32INT32WRAPPERENTRY']._serialized_end=27281 + _globals['_TESTALLTYPES_MAPUINT32DOUBLEWRAPPERENTRY']._serialized_start=27283 + _globals['_TESTALLTYPES_MAPUINT32DOUBLEWRAPPERENTRY']._serialized_end=27374 + _globals['_TESTALLTYPES_MAPUINT32FLOATWRAPPERENTRY']._serialized_start=27376 + _globals['_TESTALLTYPES_MAPUINT32FLOATWRAPPERENTRY']._serialized_end=27465 + _globals['_TESTALLTYPES_MAPUINT32UINT64WRAPPERENTRY']._serialized_start=27467 + _globals['_TESTALLTYPES_MAPUINT32UINT64WRAPPERENTRY']._serialized_end=27558 + _globals['_TESTALLTYPES_MAPUINT32UINT32WRAPPERENTRY']._serialized_start=27560 + _globals['_TESTALLTYPES_MAPUINT32UINT32WRAPPERENTRY']._serialized_end=27651 + _globals['_TESTALLTYPES_MAPUINT32STRINGWRAPPERENTRY']._serialized_start=27653 + _globals['_TESTALLTYPES_MAPUINT32STRINGWRAPPERENTRY']._serialized_end=27744 + _globals['_TESTALLTYPES_MAPUINT32BOOLWRAPPERENTRY']._serialized_start=27746 + _globals['_TESTALLTYPES_MAPUINT32BOOLWRAPPERENTRY']._serialized_end=27833 + _globals['_TESTALLTYPES_MAPUINT32BYTESWRAPPERENTRY']._serialized_start=27835 + _globals['_TESTALLTYPES_MAPUINT32BYTESWRAPPERENTRY']._serialized_end=27924 + _globals['_TESTALLTYPES_MAPUINT64BOOLENTRY']._serialized_start=27926 + _globals['_TESTALLTYPES_MAPUINT64BOOLENTRY']._serialized_end=27978 + _globals['_TESTALLTYPES_MAPUINT64STRINGENTRY']._serialized_start=27980 + _globals['_TESTALLTYPES_MAPUINT64STRINGENTRY']._serialized_end=28034 + _globals['_TESTALLTYPES_MAPUINT64BYTESENTRY']._serialized_start=28036 + _globals['_TESTALLTYPES_MAPUINT64BYTESENTRY']._serialized_end=28089 + _globals['_TESTALLTYPES_MAPUINT64INT32ENTRY']._serialized_start=28091 + _globals['_TESTALLTYPES_MAPUINT64INT32ENTRY']._serialized_end=28144 + _globals['_TESTALLTYPES_MAPUINT64INT64ENTRY']._serialized_start=28146 + _globals['_TESTALLTYPES_MAPUINT64INT64ENTRY']._serialized_end=28199 + _globals['_TESTALLTYPES_MAPUINT64UINT32ENTRY']._serialized_start=28201 + _globals['_TESTALLTYPES_MAPUINT64UINT32ENTRY']._serialized_end=28255 + _globals['_TESTALLTYPES_MAPUINT64UINT64ENTRY']._serialized_start=28257 + _globals['_TESTALLTYPES_MAPUINT64UINT64ENTRY']._serialized_end=28311 + _globals['_TESTALLTYPES_MAPUINT64FLOATENTRY']._serialized_start=28313 + _globals['_TESTALLTYPES_MAPUINT64FLOATENTRY']._serialized_end=28366 + _globals['_TESTALLTYPES_MAPUINT64DOUBLEENTRY']._serialized_start=28368 + _globals['_TESTALLTYPES_MAPUINT64DOUBLEENTRY']._serialized_end=28422 + _globals['_TESTALLTYPES_MAPUINT64ENUMENTRY']._serialized_start=28424 + _globals['_TESTALLTYPES_MAPUINT64ENUMENTRY']._serialized_end=28530 + _globals['_TESTALLTYPES_MAPUINT64MESSAGEENTRY']._serialized_start=28532 + _globals['_TESTALLTYPES_MAPUINT64MESSAGEENTRY']._serialized_end=28644 + _globals['_TESTALLTYPES_MAPUINT64DURATIONENTRY']._serialized_start=28646 + _globals['_TESTALLTYPES_MAPUINT64DURATIONENTRY']._serialized_end=28729 + _globals['_TESTALLTYPES_MAPUINT64TIMESTAMPENTRY']._serialized_start=28731 + _globals['_TESTALLTYPES_MAPUINT64TIMESTAMPENTRY']._serialized_end=28816 + _globals['_TESTALLTYPES_MAPUINT64NULLVALUEENTRY']._serialized_start=28818 + _globals['_TESTALLTYPES_MAPUINT64NULLVALUEENTRY']._serialized_end=28903 + _globals['_TESTALLTYPES_MAPUINT64ANYENTRY']._serialized_start=28905 + _globals['_TESTALLTYPES_MAPUINT64ANYENTRY']._serialized_end=28978 + _globals['_TESTALLTYPES_MAPUINT64STRUCTENTRY']._serialized_start=28980 + _globals['_TESTALLTYPES_MAPUINT64STRUCTENTRY']._serialized_end=29059 + _globals['_TESTALLTYPES_MAPUINT64VALUEENTRY']._serialized_start=29061 + _globals['_TESTALLTYPES_MAPUINT64VALUEENTRY']._serialized_end=29138 + _globals['_TESTALLTYPES_MAPUINT64LISTVALUEENTRY']._serialized_start=29140 + _globals['_TESTALLTYPES_MAPUINT64LISTVALUEENTRY']._serialized_end=29225 + _globals['_TESTALLTYPES_MAPUINT64INT64WRAPPERENTRY']._serialized_start=29227 + _globals['_TESTALLTYPES_MAPUINT64INT64WRAPPERENTRY']._serialized_end=29316 + _globals['_TESTALLTYPES_MAPUINT64INT32WRAPPERENTRY']._serialized_start=29318 + _globals['_TESTALLTYPES_MAPUINT64INT32WRAPPERENTRY']._serialized_end=29407 + _globals['_TESTALLTYPES_MAPUINT64DOUBLEWRAPPERENTRY']._serialized_start=29409 + _globals['_TESTALLTYPES_MAPUINT64DOUBLEWRAPPERENTRY']._serialized_end=29500 + _globals['_TESTALLTYPES_MAPUINT64FLOATWRAPPERENTRY']._serialized_start=29502 + _globals['_TESTALLTYPES_MAPUINT64FLOATWRAPPERENTRY']._serialized_end=29591 + _globals['_TESTALLTYPES_MAPUINT64UINT64WRAPPERENTRY']._serialized_start=29593 + _globals['_TESTALLTYPES_MAPUINT64UINT64WRAPPERENTRY']._serialized_end=29684 + _globals['_TESTALLTYPES_MAPUINT64UINT32WRAPPERENTRY']._serialized_start=29686 + _globals['_TESTALLTYPES_MAPUINT64UINT32WRAPPERENTRY']._serialized_end=29777 + _globals['_TESTALLTYPES_MAPUINT64STRINGWRAPPERENTRY']._serialized_start=29779 + _globals['_TESTALLTYPES_MAPUINT64STRINGWRAPPERENTRY']._serialized_end=29870 + _globals['_TESTALLTYPES_MAPUINT64BOOLWRAPPERENTRY']._serialized_start=29872 + _globals['_TESTALLTYPES_MAPUINT64BOOLWRAPPERENTRY']._serialized_end=29959 + _globals['_TESTALLTYPES_MAPUINT64BYTESWRAPPERENTRY']._serialized_start=29961 + _globals['_TESTALLTYPES_MAPUINT64BYTESWRAPPERENTRY']._serialized_end=30050 + _globals['_TESTALLTYPES_MAPSTRINGBOOLENTRY']._serialized_start=30052 + _globals['_TESTALLTYPES_MAPSTRINGBOOLENTRY']._serialized_end=30104 + _globals['_TESTALLTYPES_MAPSTRINGSTRINGENTRY']._serialized_start=30106 + _globals['_TESTALLTYPES_MAPSTRINGSTRINGENTRY']._serialized_end=30160 + _globals['_TESTALLTYPES_MAPSTRINGBYTESENTRY']._serialized_start=30162 + _globals['_TESTALLTYPES_MAPSTRINGBYTESENTRY']._serialized_end=30215 + _globals['_TESTALLTYPES_MAPSTRINGINT32ENTRY']._serialized_start=30217 + _globals['_TESTALLTYPES_MAPSTRINGINT32ENTRY']._serialized_end=30270 + _globals['_TESTALLTYPES_MAPSTRINGINT64ENTRY']._serialized_start=30272 + _globals['_TESTALLTYPES_MAPSTRINGINT64ENTRY']._serialized_end=30325 + _globals['_TESTALLTYPES_MAPSTRINGUINT32ENTRY']._serialized_start=30327 + _globals['_TESTALLTYPES_MAPSTRINGUINT32ENTRY']._serialized_end=30381 + _globals['_TESTALLTYPES_MAPSTRINGUINT64ENTRY']._serialized_start=30383 + _globals['_TESTALLTYPES_MAPSTRINGUINT64ENTRY']._serialized_end=30437 + _globals['_TESTALLTYPES_MAPSTRINGFLOATENTRY']._serialized_start=30439 + _globals['_TESTALLTYPES_MAPSTRINGFLOATENTRY']._serialized_end=30492 + _globals['_TESTALLTYPES_MAPSTRINGDOUBLEENTRY']._serialized_start=30494 + _globals['_TESTALLTYPES_MAPSTRINGDOUBLEENTRY']._serialized_end=30548 + _globals['_TESTALLTYPES_MAPSTRINGENUMENTRY']._serialized_start=30550 + _globals['_TESTALLTYPES_MAPSTRINGENUMENTRY']._serialized_end=30656 + _globals['_TESTALLTYPES_MAPSTRINGMESSAGEENTRY']._serialized_start=30658 + _globals['_TESTALLTYPES_MAPSTRINGMESSAGEENTRY']._serialized_end=30770 + _globals['_TESTALLTYPES_MAPSTRINGDURATIONENTRY']._serialized_start=30772 + _globals['_TESTALLTYPES_MAPSTRINGDURATIONENTRY']._serialized_end=30855 + _globals['_TESTALLTYPES_MAPSTRINGTIMESTAMPENTRY']._serialized_start=30857 + _globals['_TESTALLTYPES_MAPSTRINGTIMESTAMPENTRY']._serialized_end=30942 + _globals['_TESTALLTYPES_MAPSTRINGNULLVALUEENTRY']._serialized_start=30944 + _globals['_TESTALLTYPES_MAPSTRINGNULLVALUEENTRY']._serialized_end=31029 + _globals['_TESTALLTYPES_MAPSTRINGANYENTRY']._serialized_start=31031 + _globals['_TESTALLTYPES_MAPSTRINGANYENTRY']._serialized_end=31104 + _globals['_TESTALLTYPES_MAPSTRINGSTRUCTENTRY']._serialized_start=31106 + _globals['_TESTALLTYPES_MAPSTRINGSTRUCTENTRY']._serialized_end=31185 + _globals['_TESTALLTYPES_MAPSTRINGVALUEENTRY']._serialized_start=31187 + _globals['_TESTALLTYPES_MAPSTRINGVALUEENTRY']._serialized_end=31264 + _globals['_TESTALLTYPES_MAPSTRINGLISTVALUEENTRY']._serialized_start=31266 + _globals['_TESTALLTYPES_MAPSTRINGLISTVALUEENTRY']._serialized_end=31351 + _globals['_TESTALLTYPES_MAPSTRINGINT64WRAPPERENTRY']._serialized_start=31353 + _globals['_TESTALLTYPES_MAPSTRINGINT64WRAPPERENTRY']._serialized_end=31442 + _globals['_TESTALLTYPES_MAPSTRINGINT32WRAPPERENTRY']._serialized_start=31444 + _globals['_TESTALLTYPES_MAPSTRINGINT32WRAPPERENTRY']._serialized_end=31533 + _globals['_TESTALLTYPES_MAPSTRINGDOUBLEWRAPPERENTRY']._serialized_start=31535 + _globals['_TESTALLTYPES_MAPSTRINGDOUBLEWRAPPERENTRY']._serialized_end=31626 + _globals['_TESTALLTYPES_MAPSTRINGFLOATWRAPPERENTRY']._serialized_start=31628 + _globals['_TESTALLTYPES_MAPSTRINGFLOATWRAPPERENTRY']._serialized_end=31717 + _globals['_TESTALLTYPES_MAPSTRINGUINT64WRAPPERENTRY']._serialized_start=31719 + _globals['_TESTALLTYPES_MAPSTRINGUINT64WRAPPERENTRY']._serialized_end=31810 + _globals['_TESTALLTYPES_MAPSTRINGUINT32WRAPPERENTRY']._serialized_start=31812 + _globals['_TESTALLTYPES_MAPSTRINGUINT32WRAPPERENTRY']._serialized_end=31903 + _globals['_TESTALLTYPES_MAPSTRINGSTRINGWRAPPERENTRY']._serialized_start=31905 + _globals['_TESTALLTYPES_MAPSTRINGSTRINGWRAPPERENTRY']._serialized_end=31996 + _globals['_TESTALLTYPES_MAPSTRINGBOOLWRAPPERENTRY']._serialized_start=31998 + _globals['_TESTALLTYPES_MAPSTRINGBOOLWRAPPERENTRY']._serialized_end=32085 + _globals['_TESTALLTYPES_MAPSTRINGBYTESWRAPPERENTRY']._serialized_start=32087 + _globals['_TESTALLTYPES_MAPSTRINGBYTESWRAPPERENTRY']._serialized_end=32176 + _globals['_TESTALLTYPES_NESTEDENUM']._serialized_start=32178 + _globals['_TESTALLTYPES_NESTEDENUM']._serialized_end=32217 + _globals['_NESTEDTESTALLTYPES']._serialized_start=32305 + _globals['_NESTEDTESTALLTYPES']._serialized_end=32449 +# @@protoc_insertion_point(module_scope) diff --git a/py_xds_protos/cel/expr/conformance/test/__init__.py b/py_xds_protos/cel/expr/conformance/test/__init__.py new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/py_xds_protos/cel/expr/conformance/test/simple_pb2.py b/py_xds_protos/cel/expr/conformance/test/simple_pb2.py new file mode 100644 index 0000000000000..d4682c8d5dd85 --- /dev/null +++ b/py_xds_protos/cel/expr/conformance/test/simple_pb2.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: cel/expr/conformance/test/simple.proto +# Protobuf Python Version: 6.31.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 31, + 1, + '', + 'cel/expr/conformance/test/simple.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from cel.expr import checked_pb2 as cel_dot_expr_dot_checked__pb2 +from cel.expr import eval_pb2 as cel_dot_expr_dot_eval__pb2 +from cel.expr import value_pb2 as cel_dot_expr_dot_value__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&cel/expr/conformance/test/simple.proto\x12\x19\x63\x65l.expr.conformance.test\x1a\x16\x63\x65l/expr/checked.proto\x1a\x13\x63\x65l/expr/eval.proto\x1a\x14\x63\x65l/expr/value.proto\"r\n\x0eSimpleTestFile\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12=\n\x07section\x18\x03 \x03(\x0b\x32,.cel.expr.conformance.test.SimpleTestSection\"k\n\x11SimpleTestSection\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x33\n\x04test\x18\x03 \x03(\x0b\x32%.cel.expr.conformance.test.SimpleTest\"\xa6\x05\n\nSimpleTest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0c\n\x04\x65xpr\x18\x03 \x01(\t\x12\x16\n\x0e\x64isable_macros\x18\x04 \x01(\x08\x12\x15\n\rdisable_check\x18\x05 \x01(\x08\x12\x12\n\ncheck_only\x18\x0f \x01(\x08\x12 \n\x08type_env\x18\x06 \x03(\x0b\x32\x0e.cel.expr.Decl\x12\x11\n\tcontainer\x18\r \x01(\t\x12\x0e\n\x06locale\x18\x0e \x01(\t\x12\x45\n\x08\x62indings\x18\x07 \x03(\x0b\x32\x33.cel.expr.conformance.test.SimpleTest.BindingsEntry\x12 \n\x05value\x18\x08 \x01(\x0b\x32\x0f.cel.expr.ValueH\x00\x12>\n\x0ctyped_result\x18\x10 \x01(\x0b\x32&.cel.expr.conformance.test.TypedResultH\x00\x12(\n\neval_error\x18\t \x01(\x0b\x32\x12.cel.expr.ErrorSetH\x00\x12\x45\n\x0f\x61ny_eval_errors\x18\n \x01(\x0b\x32*.cel.expr.conformance.test.ErrorSetMatcherH\x00\x12\'\n\x07unknown\x18\x0b \x01(\x0b\x32\x14.cel.expr.UnknownSetH\x00\x12\x44\n\x0c\x61ny_unknowns\x18\x0c \x01(\x0b\x32,.cel.expr.conformance.test.UnknownSetMatcherH\x00\x1a\x44\n\rBindingsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\"\n\x05value\x18\x02 \x01(\x0b\x32\x13.cel.expr.ExprValue:\x02\x38\x01\x42\x10\n\x0eresult_matcher\"T\n\x0bTypedResult\x12\x1f\n\x06result\x18\x01 \x01(\x0b\x32\x0f.cel.expr.Value\x12$\n\x0c\x64\x65\x64uced_type\x18\x02 \x01(\x0b\x32\x0e.cel.expr.Type\"5\n\x0f\x45rrorSetMatcher\x12\"\n\x06\x65rrors\x18\x01 \x03(\x0b\x32\x12.cel.expr.ErrorSet\";\n\x11UnknownSetMatcher\x12&\n\x08unknowns\x18\x01 \x03(\x0b\x32\x14.cel.expr.UnknownSetBP\n\x1d\x64\x65v.cel.expr.conformance.testB\x0bSimpleProtoP\x01Z\x1d\x63\x65l.dev/expr/conformance/test\xf8\x01\x01\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cel.expr.conformance.test.simple_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\035dev.cel.expr.conformance.testB\013SimpleProtoP\001Z\035cel.dev/expr/conformance/test\370\001\001' + _globals['_SIMPLETEST_BINDINGSENTRY']._loaded_options = None + _globals['_SIMPLETEST_BINDINGSENTRY']._serialized_options = b'8\001' + _globals['_SIMPLETESTFILE']._serialized_start=136 + _globals['_SIMPLETESTFILE']._serialized_end=250 + _globals['_SIMPLETESTSECTION']._serialized_start=252 + _globals['_SIMPLETESTSECTION']._serialized_end=359 + _globals['_SIMPLETEST']._serialized_start=362 + _globals['_SIMPLETEST']._serialized_end=1040 + _globals['_SIMPLETEST_BINDINGSENTRY']._serialized_start=954 + _globals['_SIMPLETEST_BINDINGSENTRY']._serialized_end=1022 + _globals['_TYPEDRESULT']._serialized_start=1042 + _globals['_TYPEDRESULT']._serialized_end=1126 + _globals['_ERRORSETMATCHER']._serialized_start=1128 + _globals['_ERRORSETMATCHER']._serialized_end=1181 + _globals['_UNKNOWNSETMATCHER']._serialized_start=1183 + _globals['_UNKNOWNSETMATCHER']._serialized_end=1242 +# @@protoc_insertion_point(module_scope) diff --git a/py_xds_protos/cel/expr/conformance/test/suite_pb2.py b/py_xds_protos/cel/expr/conformance/test/suite_pb2.py new file mode 100644 index 0000000000000..616ca3d73e6f8 --- /dev/null +++ b/py_xds_protos/cel/expr/conformance/test/suite_pb2.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: cel/expr/conformance/test/suite.proto +# Protobuf Python Version: 6.31.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 31, + 1, + '', + 'cel/expr/conformance/test/suite.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from cel.expr import checked_pb2 as cel_dot_expr_dot_checked__pb2 +from cel.expr import eval_pb2 as cel_dot_expr_dot_eval__pb2 +from cel.expr import value_pb2 as cel_dot_expr_dot_value__pb2 +from cel.expr.conformance import env_config_pb2 as cel_dot_expr_dot_conformance_dot_env__config__pb2 +from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%cel/expr/conformance/test/suite.proto\x12\x19\x63\x65l.expr.conformance.test\x1a\x16\x63\x65l/expr/checked.proto\x1a\x13\x63\x65l/expr/eval.proto\x1a\x14\x63\x65l/expr/value.proto\x1a%cel/expr/conformance/env_config.proto\x1a\x19google/protobuf/any.proto\"h\n\tTestSuite\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x38\n\x08sections\x18\x03 \x03(\x0b\x32&.cel.expr.conformance.test.TestSection\"d\n\x0bTestSection\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x32\n\x05tests\x18\x03 \x03(\x0b\x32#.cel.expr.conformance.test.TestCase\"\xb3\x03\n\x08TestCase\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0c\n\x04\x65xpr\x18\x03 \x01(\t\x12.\n\x03\x65nv\x18\x04 \x01(\x0b\x32!.cel.expr.conformance.Environment\x12=\n\x05input\x18\x05 \x03(\x0b\x32..cel.expr.conformance.test.TestCase.InputEntry\x12>\n\rinput_context\x18\x06 \x01(\x0b\x32\'.cel.expr.conformance.test.InputContext\x12\x35\n\x06output\x18\x07 \x01(\x0b\x32%.cel.expr.conformance.test.TestOutput\x12$\n\x0c\x64\x65\x64uced_type\x18\x08 \x01(\x0b\x32\x0e.cel.expr.Type\x12\x15\n\rdisable_check\x18\t \x01(\x08\x1aS\n\nInputEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x34\n\x05value\x18\x02 \x01(\x0b\x32%.cel.expr.conformance.test.InputValue:\x02\x38\x01\"m\n\x0cInputContext\x12/\n\x0f\x63ontext_message\x18\x01 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x12\x16\n\x0c\x63ontext_expr\x18\x02 \x01(\tH\x00\x42\x14\n\x12input_context_kind\"F\n\nInputValue\x12 \n\x05value\x18\x01 \x01(\x0b\x32\x0f.cel.expr.ValueH\x00\x12\x0e\n\x04\x65xpr\x18\x02 \x01(\tH\x00\x42\x06\n\x04kind\"\xae\x01\n\nTestOutput\x12\'\n\x0cresult_value\x18\x08 \x01(\x0b\x32\x0f.cel.expr.ValueH\x00\x12\x15\n\x0bresult_expr\x18\t \x01(\tH\x00\x12(\n\neval_error\x18\n \x01(\x0b\x32\x12.cel.expr.ErrorSetH\x00\x12\'\n\x07unknown\x18\x0b \x01(\x0b\x32\x14.cel.expr.UnknownSetH\x00\x42\r\n\x0bresult_kindBO\n\x1d\x64\x65v.cel.expr.conformance.testB\nSuiteProtoP\x01Z\x1d\x63\x65l.dev/expr/conformance/test\xf8\x01\x01\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cel.expr.conformance.test.suite_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\035dev.cel.expr.conformance.testB\nSuiteProtoP\001Z\035cel.dev/expr/conformance/test\370\001\001' + _globals['_TESTCASE_INPUTENTRY']._loaded_options = None + _globals['_TESTCASE_INPUTENTRY']._serialized_options = b'8\001' + _globals['_TESTSUITE']._serialized_start=201 + _globals['_TESTSUITE']._serialized_end=305 + _globals['_TESTSECTION']._serialized_start=307 + _globals['_TESTSECTION']._serialized_end=407 + _globals['_TESTCASE']._serialized_start=410 + _globals['_TESTCASE']._serialized_end=845 + _globals['_TESTCASE_INPUTENTRY']._serialized_start=762 + _globals['_TESTCASE_INPUTENTRY']._serialized_end=845 + _globals['_INPUTCONTEXT']._serialized_start=847 + _globals['_INPUTCONTEXT']._serialized_end=956 + _globals['_INPUTVALUE']._serialized_start=958 + _globals['_INPUTVALUE']._serialized_end=1028 + _globals['_TESTOUTPUT']._serialized_start=1031 + _globals['_TESTOUTPUT']._serialized_end=1205 +# @@protoc_insertion_point(module_scope) diff --git a/py_xds_protos/cel/expr/eval_pb2.py b/py_xds_protos/cel/expr/eval_pb2.py new file mode 100644 index 0000000000000..d5363673eb83d --- /dev/null +++ b/py_xds_protos/cel/expr/eval_pb2.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: cel/expr/eval.proto +# Protobuf Python Version: 6.31.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 31, + 1, + '', + 'cel/expr/eval.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2 +from cel.expr import value_pb2 as cel_dot_expr_dot_value__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13\x63\x65l/expr/eval.proto\x12\x08\x63\x65l.expr\x1a\x19google/protobuf/any.proto\x1a\x14\x63\x65l/expr/value.proto\"\x84\x01\n\tEvalState\x12#\n\x06values\x18\x01 \x03(\x0b\x32\x13.cel.expr.ExprValue\x12+\n\x07results\x18\x03 \x03(\x0b\x32\x1a.cel.expr.EvalState.Result\x1a%\n\x06Result\x12\x0c\n\x04\x65xpr\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\x03\"\x83\x01\n\tExprValue\x12 \n\x05value\x18\x01 \x01(\x0b\x32\x0f.cel.expr.ValueH\x00\x12#\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x12.cel.expr.ErrorSetH\x00\x12\'\n\x07unknown\x18\x03 \x01(\x0b\x32\x14.cel.expr.UnknownSetH\x00\x42\x06\n\x04kind\",\n\x08\x45rrorSet\x12 \n\x06\x65rrors\x18\x01 \x03(\x0b\x32\x10.cel.expr.Status\"N\n\x06Status\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x05\x12\x0f\n\x07message\x18\x02 \x01(\t\x12%\n\x07\x64\x65tails\x18\x03 \x03(\x0b\x32\x14.google.protobuf.Any\"\x1b\n\nUnknownSet\x12\r\n\x05\x65xprs\x18\x01 \x03(\x03\x42,\n\x0c\x64\x65v.cel.exprB\tEvalProtoP\x01Z\x0c\x63\x65l.dev/expr\xf8\x01\x01\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cel.expr.eval_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\014dev.cel.exprB\tEvalProtoP\001Z\014cel.dev/expr\370\001\001' + _globals['_EVALSTATE']._serialized_start=83 + _globals['_EVALSTATE']._serialized_end=215 + _globals['_EVALSTATE_RESULT']._serialized_start=178 + _globals['_EVALSTATE_RESULT']._serialized_end=215 + _globals['_EXPRVALUE']._serialized_start=218 + _globals['_EXPRVALUE']._serialized_end=349 + _globals['_ERRORSET']._serialized_start=351 + _globals['_ERRORSET']._serialized_end=395 + _globals['_STATUS']._serialized_start=397 + _globals['_STATUS']._serialized_end=475 + _globals['_UNKNOWNSET']._serialized_start=477 + _globals['_UNKNOWNSET']._serialized_end=504 +# @@protoc_insertion_point(module_scope) diff --git a/py_xds_protos/cel/expr/explain_pb2.py b/py_xds_protos/cel/expr/explain_pb2.py new file mode 100644 index 0000000000000..df6bb56f989e2 --- /dev/null +++ b/py_xds_protos/cel/expr/explain_pb2.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: cel/expr/explain.proto +# Protobuf Python Version: 6.31.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 31, + 1, + '', + 'cel/expr/explain.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from cel.expr import value_pb2 as cel_dot_expr_dot_value__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16\x63\x65l/expr/explain.proto\x12\x08\x63\x65l.expr\x1a\x14\x63\x65l/expr/value.proto\"\x8b\x01\n\x07\x45xplain\x12\x1f\n\x06values\x18\x01 \x03(\x0b\x32\x0f.cel.expr.Value\x12.\n\nexpr_steps\x18\x02 \x03(\x0b\x32\x1a.cel.expr.Explain.ExprStep\x1a+\n\x08\x45xprStep\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x13\n\x0bvalue_index\x18\x02 \x01(\x05:\x02\x18\x01\x42/\n\x0c\x64\x65v.cel.exprB\x0c\x45xplainProtoP\x01Z\x0c\x63\x65l.dev/expr\xf8\x01\x01\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cel.expr.explain_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\014dev.cel.exprB\014ExplainProtoP\001Z\014cel.dev/expr\370\001\001' + _globals['_EXPLAIN']._loaded_options = None + _globals['_EXPLAIN']._serialized_options = b'\030\001' + _globals['_EXPLAIN']._serialized_start=59 + _globals['_EXPLAIN']._serialized_end=198 + _globals['_EXPLAIN_EXPRSTEP']._serialized_start=151 + _globals['_EXPLAIN_EXPRSTEP']._serialized_end=194 +# @@protoc_insertion_point(module_scope) diff --git a/py_xds_protos/cel/expr/syntax_pb2.py b/py_xds_protos/cel/expr/syntax_pb2.py new file mode 100644 index 0000000000000..825976c1eb8e8 --- /dev/null +++ b/py_xds_protos/cel/expr/syntax_pb2.py @@ -0,0 +1,78 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: cel/expr/syntax.proto +# Protobuf Python Version: 6.31.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 31, + 1, + '', + 'cel/expr/syntax.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 +from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15\x63\x65l/expr/syntax.proto\x12\x08\x63\x65l.expr\x1a\x1egoogle/protobuf/duration.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"U\n\nParsedExpr\x12\x1c\n\x04\x65xpr\x18\x02 \x01(\x0b\x32\x0e.cel.expr.Expr\x12)\n\x0bsource_info\x18\x03 \x01(\x0b\x32\x14.cel.expr.SourceInfo\"\xda\x08\n\x04\x45xpr\x12\n\n\x02id\x18\x02 \x01(\x03\x12(\n\nconst_expr\x18\x03 \x01(\x0b\x32\x12.cel.expr.ConstantH\x00\x12*\n\nident_expr\x18\x04 \x01(\x0b\x32\x14.cel.expr.Expr.IdentH\x00\x12,\n\x0bselect_expr\x18\x05 \x01(\x0b\x32\x15.cel.expr.Expr.SelectH\x00\x12(\n\tcall_expr\x18\x06 \x01(\x0b\x32\x13.cel.expr.Expr.CallH\x00\x12.\n\tlist_expr\x18\x07 \x01(\x0b\x32\x19.cel.expr.Expr.CreateListH\x00\x12\x32\n\x0bstruct_expr\x18\x08 \x01(\x0b\x32\x1b.cel.expr.Expr.CreateStructH\x00\x12:\n\x12\x63omprehension_expr\x18\t \x01(\x0b\x32\x1c.cel.expr.Expr.ComprehensionH\x00\x1a\x15\n\x05Ident\x12\x0c\n\x04name\x18\x01 \x01(\t\x1aK\n\x06Select\x12\x1f\n\x07operand\x18\x01 \x01(\x0b\x32\x0e.cel.expr.Expr\x12\r\n\x05\x66ield\x18\x02 \x01(\t\x12\x11\n\ttest_only\x18\x03 \x01(\x08\x1aV\n\x04\x43\x61ll\x12\x1e\n\x06target\x18\x01 \x01(\x0b\x32\x0e.cel.expr.Expr\x12\x10\n\x08\x66unction\x18\x02 \x01(\t\x12\x1c\n\x04\x61rgs\x18\x03 \x03(\x0b\x32\x0e.cel.expr.Expr\x1aH\n\nCreateList\x12 \n\x08\x65lements\x18\x01 \x03(\x0b\x32\x0e.cel.expr.Expr\x12\x18\n\x10optional_indices\x18\x02 \x03(\x05\x1a\xe9\x01\n\x0c\x43reateStruct\x12\x14\n\x0cmessage_name\x18\x01 \x01(\t\x12\x32\n\x07\x65ntries\x18\x02 \x03(\x0b\x32!.cel.expr.Expr.CreateStruct.Entry\x1a\x8e\x01\n\x05\x45ntry\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x13\n\tfield_key\x18\x02 \x01(\tH\x00\x12!\n\x07map_key\x18\x03 \x01(\x0b\x32\x0e.cel.expr.ExprH\x00\x12\x1d\n\x05value\x18\x04 \x01(\x0b\x32\x0e.cel.expr.Expr\x12\x16\n\x0eoptional_entry\x18\x05 \x01(\x08\x42\n\n\x08key_kind\x1a\xf8\x01\n\rComprehension\x12\x10\n\x08iter_var\x18\x01 \x01(\t\x12\x11\n\titer_var2\x18\x08 \x01(\t\x12\"\n\niter_range\x18\x02 \x01(\x0b\x32\x0e.cel.expr.Expr\x12\x10\n\x08\x61\x63\x63u_var\x18\x03 \x01(\t\x12!\n\taccu_init\x18\x04 \x01(\x0b\x32\x0e.cel.expr.Expr\x12&\n\x0eloop_condition\x18\x05 \x01(\x0b\x32\x0e.cel.expr.Expr\x12!\n\tloop_step\x18\x06 \x01(\x0b\x32\x0e.cel.expr.Expr\x12\x1e\n\x06result\x18\x07 \x01(\x0b\x32\x0e.cel.expr.ExprB\x0b\n\texpr_kind\"\xcd\x02\n\x08\x43onstant\x12\x30\n\nnull_value\x18\x01 \x01(\x0e\x32\x1a.google.protobuf.NullValueH\x00\x12\x14\n\nbool_value\x18\x02 \x01(\x08H\x00\x12\x15\n\x0bint64_value\x18\x03 \x01(\x03H\x00\x12\x16\n\x0cuint64_value\x18\x04 \x01(\x04H\x00\x12\x16\n\x0c\x64ouble_value\x18\x05 \x01(\x01H\x00\x12\x16\n\x0cstring_value\x18\x06 \x01(\tH\x00\x12\x15\n\x0b\x62ytes_value\x18\x07 \x01(\x0cH\x00\x12\x37\n\x0e\x64uration_value\x18\x08 \x01(\x0b\x32\x19.google.protobuf.DurationB\x02\x18\x01H\x00\x12\x39\n\x0ftimestamp_value\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x02\x18\x01H\x00\x42\x0f\n\rconstant_kind\"\x9c\x05\n\nSourceInfo\x12\x16\n\x0esyntax_version\x18\x01 \x01(\t\x12\x10\n\x08location\x18\x02 \x01(\t\x12\x14\n\x0cline_offsets\x18\x03 \x03(\x05\x12\x36\n\tpositions\x18\x04 \x03(\x0b\x32#.cel.expr.SourceInfo.PositionsEntry\x12\x39\n\x0bmacro_calls\x18\x05 \x03(\x0b\x32$.cel.expr.SourceInfo.MacroCallsEntry\x12\x32\n\nextensions\x18\x06 \x03(\x0b\x32\x1e.cel.expr.SourceInfo.Extension\x1a\x30\n\x0ePositionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a\x41\n\x0fMacroCallsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.cel.expr.Expr:\x02\x38\x01\x1a\xb1\x02\n\tExtension\x12\n\n\x02id\x18\x01 \x01(\t\x12\x45\n\x13\x61\x66\x66\x65\x63ted_components\x18\x02 \x03(\x0e\x32(.cel.expr.SourceInfo.Extension.Component\x12\x37\n\x07version\x18\x03 \x01(\x0b\x32&.cel.expr.SourceInfo.Extension.Version\x1a\'\n\x07Version\x12\r\n\x05major\x18\x01 \x01(\x03\x12\r\n\x05minor\x18\x02 \x01(\x03\"o\n\tComponent\x12\x19\n\x15\x43OMPONENT_UNSPECIFIED\x10\x00\x12\x14\n\x10\x43OMPONENT_PARSER\x10\x01\x12\x1a\n\x16\x43OMPONENT_TYPE_CHECKER\x10\x02\x12\x15\n\x11\x43OMPONENT_RUNTIME\x10\x03\x42.\n\x0c\x64\x65v.cel.exprB\x0bSyntaxProtoP\x01Z\x0c\x63\x65l.dev/expr\xf8\x01\x01\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cel.expr.syntax_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\014dev.cel.exprB\013SyntaxProtoP\001Z\014cel.dev/expr\370\001\001' + _globals['_CONSTANT'].fields_by_name['duration_value']._loaded_options = None + _globals['_CONSTANT'].fields_by_name['duration_value']._serialized_options = b'\030\001' + _globals['_CONSTANT'].fields_by_name['timestamp_value']._loaded_options = None + _globals['_CONSTANT'].fields_by_name['timestamp_value']._serialized_options = b'\030\001' + _globals['_SOURCEINFO_POSITIONSENTRY']._loaded_options = None + _globals['_SOURCEINFO_POSITIONSENTRY']._serialized_options = b'8\001' + _globals['_SOURCEINFO_MACROCALLSENTRY']._loaded_options = None + _globals['_SOURCEINFO_MACROCALLSENTRY']._serialized_options = b'8\001' + _globals['_PARSEDEXPR']._serialized_start=130 + _globals['_PARSEDEXPR']._serialized_end=215 + _globals['_EXPR']._serialized_start=218 + _globals['_EXPR']._serialized_end=1332 + _globals['_EXPR_IDENT']._serialized_start=572 + _globals['_EXPR_IDENT']._serialized_end=593 + _globals['_EXPR_SELECT']._serialized_start=595 + _globals['_EXPR_SELECT']._serialized_end=670 + _globals['_EXPR_CALL']._serialized_start=672 + _globals['_EXPR_CALL']._serialized_end=758 + _globals['_EXPR_CREATELIST']._serialized_start=760 + _globals['_EXPR_CREATELIST']._serialized_end=832 + _globals['_EXPR_CREATESTRUCT']._serialized_start=835 + _globals['_EXPR_CREATESTRUCT']._serialized_end=1068 + _globals['_EXPR_CREATESTRUCT_ENTRY']._serialized_start=926 + _globals['_EXPR_CREATESTRUCT_ENTRY']._serialized_end=1068 + _globals['_EXPR_COMPREHENSION']._serialized_start=1071 + _globals['_EXPR_COMPREHENSION']._serialized_end=1319 + _globals['_CONSTANT']._serialized_start=1335 + _globals['_CONSTANT']._serialized_end=1668 + _globals['_SOURCEINFO']._serialized_start=1671 + _globals['_SOURCEINFO']._serialized_end=2339 + _globals['_SOURCEINFO_POSITIONSENTRY']._serialized_start=1916 + _globals['_SOURCEINFO_POSITIONSENTRY']._serialized_end=1964 + _globals['_SOURCEINFO_MACROCALLSENTRY']._serialized_start=1966 + _globals['_SOURCEINFO_MACROCALLSENTRY']._serialized_end=2031 + _globals['_SOURCEINFO_EXTENSION']._serialized_start=2034 + _globals['_SOURCEINFO_EXTENSION']._serialized_end=2339 + _globals['_SOURCEINFO_EXTENSION_VERSION']._serialized_start=2187 + _globals['_SOURCEINFO_EXTENSION_VERSION']._serialized_end=2226 + _globals['_SOURCEINFO_EXTENSION_COMPONENT']._serialized_start=2228 + _globals['_SOURCEINFO_EXTENSION_COMPONENT']._serialized_end=2339 +# @@protoc_insertion_point(module_scope) diff --git a/py_xds_protos/cel/expr/value_pb2.py b/py_xds_protos/cel/expr/value_pb2.py new file mode 100644 index 0000000000000..103a29c8a87e5 --- /dev/null +++ b/py_xds_protos/cel/expr/value_pb2.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: cel/expr/value.proto +# Protobuf Python Version: 6.31.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 31, + 1, + '', + 'cel/expr/value.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2 +from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14\x63\x65l/expr/value.proto\x12\x08\x63\x65l.expr\x1a\x19google/protobuf/any.proto\x1a\x1cgoogle/protobuf/struct.proto\"\x90\x03\n\x05Value\x12\x30\n\nnull_value\x18\x01 \x01(\x0e\x32\x1a.google.protobuf.NullValueH\x00\x12\x14\n\nbool_value\x18\x02 \x01(\x08H\x00\x12\x15\n\x0bint64_value\x18\x03 \x01(\x03H\x00\x12\x16\n\x0cuint64_value\x18\x04 \x01(\x04H\x00\x12\x16\n\x0c\x64ouble_value\x18\x05 \x01(\x01H\x00\x12\x16\n\x0cstring_value\x18\x06 \x01(\tH\x00\x12\x15\n\x0b\x62ytes_value\x18\x07 \x01(\x0cH\x00\x12)\n\nenum_value\x18\t \x01(\x0b\x32\x13.cel.expr.EnumValueH\x00\x12,\n\x0cobject_value\x18\n \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x12\'\n\tmap_value\x18\x0b \x01(\x0b\x32\x12.cel.expr.MapValueH\x00\x12)\n\nlist_value\x18\x0c \x01(\x0b\x32\x13.cel.expr.ListValueH\x00\x12\x14\n\ntype_value\x18\x0f \x01(\tH\x00\x42\x06\n\x04kind\"(\n\tEnumValue\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05\",\n\tListValue\x12\x1f\n\x06values\x18\x01 \x03(\x0b\x32\x0f.cel.expr.Value\"|\n\x08MapValue\x12)\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x18.cel.expr.MapValue.Entry\x1a\x45\n\x05\x45ntry\x12\x1c\n\x03key\x18\x01 \x01(\x0b\x32\x0f.cel.expr.Value\x12\x1e\n\x05value\x18\x02 \x01(\x0b\x32\x0f.cel.expr.ValueB-\n\x0c\x64\x65v.cel.exprB\nValueProtoP\x01Z\x0c\x63\x65l.dev/expr\xf8\x01\x01\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cel.expr.value_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\014dev.cel.exprB\nValueProtoP\001Z\014cel.dev/expr\370\001\001' + _globals['_VALUE']._serialized_start=92 + _globals['_VALUE']._serialized_end=492 + _globals['_ENUMVALUE']._serialized_start=494 + _globals['_ENUMVALUE']._serialized_end=534 + _globals['_LISTVALUE']._serialized_start=536 + _globals['_LISTVALUE']._serialized_end=580 + _globals['_MAPVALUE']._serialized_start=582 + _globals['_MAPVALUE']._serialized_end=706 + _globals['_MAPVALUE_ENTRY']._serialized_start=637 + _globals['_MAPVALUE_ENTRY']._serialized_end=706 +# @@protoc_insertion_point(module_scope) diff --git a/py_xds_protos/generated_file_import_test.py b/py_xds_protos/generated_file_import_test.py index a539969ec3cf9..e2a39362685e7 100644 --- a/py_xds_protos/generated_file_import_test.py +++ b/py_xds_protos/generated_file_import_test.py @@ -1,6 +1,18 @@ from bazel.cc_proto_descriptor_library.testdata import test1_pb2 from bazel.cc_proto_descriptor_library.testdata import test_extension_pb2 from bazel.cc_proto_descriptor_library.testdata import test_pb2 +from cel.expr import checked_pb2 +from cel.expr import eval_pb2 +from cel.expr import explain_pb2 +from cel.expr import syntax_pb2 +from cel.expr import value_pb2 +from cel.expr.conformance import conformance_service_pb2 +from cel.expr.conformance import env_config_pb2 +from cel.expr.conformance.proto2 import test_all_types_extensions_pb2 +from cel.expr.conformance.proto2 import test_all_types_pb2 +from cel.expr.conformance.proto3 import test_all_types_pb2 +from cel.expr.conformance.test import simple_pb2 +from cel.expr.conformance.test import suite_pb2 from contrib.envoy.extensions.compression.qatzip.compressor.v3alpha import qatzip_pb2 from contrib.envoy.extensions.compression.qatzstd.compressor.v3alpha import qatzstd_pb2 from contrib.envoy.extensions.config.v3alpha import kv_store_xds_delegate_config_pb2 diff --git a/py_xds_protos/test/v1/simple_pb2.py b/py_xds_protos/test/v1/simple_pb2.py new file mode 100644 index 0000000000000..2f3e94b1de55a --- /dev/null +++ b/py_xds_protos/test/v1/simple_pb2.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: test/v1/simple.proto +# Protobuf Python Version: 6.31.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 31, + 1, + '', + 'test/v1/simple.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api.expr.v1alpha1 import checked_pb2 as google_dot_api_dot_expr_dot_v1alpha1_dot_checked__pb2 +from google.api.expr.v1alpha1 import eval_pb2 as google_dot_api_dot_expr_dot_v1alpha1_dot_eval__pb2 +from google.api.expr.v1alpha1 import value_pb2 as google_dot_api_dot_expr_dot_v1alpha1_dot_value__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14test/v1/simple.proto\x12\x17google.api.expr.test.v1\x1a&google/api/expr/v1alpha1/checked.proto\x1a#google/api/expr/v1alpha1/eval.proto\x1a$google/api/expr/v1alpha1/value.proto\"p\n\x0eSimpleTestFile\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12;\n\x07section\x18\x03 \x03(\x0b\x32*.google.api.expr.test.v1.SimpleTestSection\"i\n\x11SimpleTestSection\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x31\n\x04test\x18\x03 \x03(\x0b\x32#.google.api.expr.test.v1.SimpleTest\"\xe4\x05\n\nSimpleTest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0c\n\x04\x65xpr\x18\x03 \x01(\t\x12\x16\n\x0e\x64isable_macros\x18\x04 \x01(\x08\x12\x15\n\rdisable_check\x18\x05 \x01(\x08\x12\x12\n\ncheck_only\x18\x0f \x01(\x08\x12\x30\n\x08type_env\x18\x06 \x03(\x0b\x32\x1e.google.api.expr.v1alpha1.Decl\x12\x11\n\tcontainer\x18\r \x01(\t\x12\x43\n\x08\x62indings\x18\x07 \x03(\x0b\x32\x31.google.api.expr.test.v1.SimpleTest.BindingsEntry\x12\x30\n\x05value\x18\x08 \x01(\x0b\x32\x1f.google.api.expr.v1alpha1.ValueH\x00\x12<\n\x0ctyped_result\x18\x10 \x01(\x0b\x32$.google.api.expr.test.v1.TypedResultH\x00\x12\x38\n\neval_error\x18\t \x01(\x0b\x32\".google.api.expr.v1alpha1.ErrorSetH\x00\x12\x43\n\x0f\x61ny_eval_errors\x18\n \x01(\x0b\x32(.google.api.expr.test.v1.ErrorSetMatcherH\x00\x12\x37\n\x07unknown\x18\x0b \x01(\x0b\x32$.google.api.expr.v1alpha1.UnknownSetH\x00\x12\x42\n\x0c\x61ny_unknowns\x18\x0c \x01(\x0b\x32*.google.api.expr.test.v1.UnknownSetMatcherH\x00\x1aT\n\rBindingsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x32\n\x05value\x18\x02 \x01(\x0b\x32#.google.api.expr.v1alpha1.ExprValue:\x02\x38\x01\x42\x10\n\x0eresult_matcherJ\x04\x08\x0e\x10\x0f\"t\n\x0bTypedResult\x12/\n\x06result\x18\x01 \x01(\x0b\x32\x1f.google.api.expr.v1alpha1.Value\x12\x34\n\x0c\x64\x65\x64uced_type\x18\x02 \x01(\x0b\x32\x1e.google.api.expr.v1alpha1.Type\"E\n\x0f\x45rrorSetMatcher\x12\x32\n\x06\x65rrors\x18\x01 \x03(\x0b\x32\".google.api.expr.v1alpha1.ErrorSet\"K\n\x11UnknownSetMatcher\x12\x36\n\x08unknowns\x18\x01 \x03(\x0b\x32$.google.api.expr.v1alpha1.UnknownSetBG\n\x1b\x63om.google.api.expr.test.v1B\x0bSimpleProtoZ\x1b\x63\x65l.dev/expr/test/v1/testpbb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'test.v1.simple_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\033com.google.api.expr.test.v1B\013SimpleProtoZ\033cel.dev/expr/test/v1/testpb' + _globals['_SIMPLETEST_BINDINGSENTRY']._loaded_options = None + _globals['_SIMPLETEST_BINDINGSENTRY']._serialized_options = b'8\001' + _globals['_SIMPLETESTFILE']._serialized_start=164 + _globals['_SIMPLETESTFILE']._serialized_end=276 + _globals['_SIMPLETESTSECTION']._serialized_start=278 + _globals['_SIMPLETESTSECTION']._serialized_end=383 + _globals['_SIMPLETEST']._serialized_start=386 + _globals['_SIMPLETEST']._serialized_end=1126 + _globals['_SIMPLETEST_BINDINGSENTRY']._serialized_start=1018 + _globals['_SIMPLETEST_BINDINGSENTRY']._serialized_end=1102 + _globals['_TYPEDRESULT']._serialized_start=1128 + _globals['_TYPEDRESULT']._serialized_end=1244 + _globals['_ERRORSETMATCHER']._serialized_start=1246 + _globals['_ERRORSETMATCHER']._serialized_end=1315 + _globals['_UNKNOWNSETMATCHER']._serialized_start=1317 + _globals['_UNKNOWNSETMATCHER']._serialized_end=1392 +# @@protoc_insertion_point(module_scope) diff --git a/py_xds_protos/udpa/annotations/migrate_pb2.py b/py_xds_protos/udpa/annotations/migrate_pb2.py index 3b6f71cc36e79..3172a6e6dee46 100644 --- a/py_xds_protos/udpa/annotations/migrate_pb2.py +++ b/py_xds_protos/udpa/annotations/migrate_pb2.py @@ -25,14 +25,14 @@ from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1eudpa/annotations/migrate.proto\x12\x10udpa.annotations\x1a google/protobuf/descriptor.proto\"#\n\x11MigrateAnnotation\x12\x0e\n\x06rename\x18\x01 \x01(\t\"A\n\x16\x46ieldMigrateAnnotation\x12\x0e\n\x06rename\x18\x01 \x01(\t\x12\x17\n\x0foneof_promotion\x18\x02 \x01(\t\"0\n\x15\x46ileMigrateAnnotation\x12\x17\n\x0fmove_to_package\x18\x02 \x01(\t:`\n\x0fmessage_migrate\x12\x1f.google.protobuf.MessageOptions\x18\x8e\xe3\xffQ \x01(\x0b\x32#.udpa.annotations.MigrateAnnotation:a\n\rfield_migrate\x12\x1d.google.protobuf.FieldOptions\x18\x8e\xe3\xffQ \x01(\x0b\x32(.udpa.annotations.FieldMigrateAnnotation:Z\n\x0c\x65num_migrate\x12\x1c.google.protobuf.EnumOptions\x18\x8e\xe3\xffQ \x01(\x0b\x32#.udpa.annotations.MigrateAnnotation:e\n\x12\x65num_value_migrate\x12!.google.protobuf.EnumValueOptions\x18\x8e\xe3\xffQ \x01(\x0b\x32#.udpa.annotations.MigrateAnnotation:^\n\x0c\x66ile_migrate\x12\x1c.google.protobuf.FileOptions\x18\x8e\xe3\xffQ \x01(\x0b\x32\'.udpa.annotations.FileMigrateAnnotationB$Z\"github.com/cncf/xds/go/annotationsb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1eudpa/annotations/migrate.proto\x12\x10udpa.annotations\x1a google/protobuf/descriptor.proto\"#\n\x11MigrateAnnotation\x12\x0e\n\x06rename\x18\x01 \x01(\t\"A\n\x16\x46ieldMigrateAnnotation\x12\x0e\n\x06rename\x18\x01 \x01(\t\x12\x17\n\x0foneof_promotion\x18\x02 \x01(\t\"0\n\x15\x46ileMigrateAnnotation\x12\x17\n\x0fmove_to_package\x18\x02 \x01(\t:`\n\x0fmessage_migrate\x12\x1f.google.protobuf.MessageOptions\x18\x8e\xe3\xffQ \x01(\x0b\x32#.udpa.annotations.MigrateAnnotation:a\n\rfield_migrate\x12\x1d.google.protobuf.FieldOptions\x18\x8e\xe3\xffQ \x01(\x0b\x32(.udpa.annotations.FieldMigrateAnnotation:Z\n\x0c\x65num_migrate\x12\x1c.google.protobuf.EnumOptions\x18\x8e\xe3\xffQ \x01(\x0b\x32#.udpa.annotations.MigrateAnnotation:e\n\x12\x65num_value_migrate\x12!.google.protobuf.EnumValueOptions\x18\x8e\xe3\xffQ \x01(\x0b\x32#.udpa.annotations.MigrateAnnotation:^\n\x0c\x66ile_migrate\x12\x1c.google.protobuf.FileOptions\x18\x8e\xe3\xffQ \x01(\x0b\x32\'.udpa.annotations.FileMigrateAnnotationB)Z\'github.com/cncf/xds/go/udpa/annotationsb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'udpa.annotations.migrate_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'Z\"github.com/cncf/xds/go/annotations' + _globals['DESCRIPTOR']._serialized_options = b'Z\'github.com/cncf/xds/go/udpa/annotations' _globals['_MIGRATEANNOTATION']._serialized_start=86 _globals['_MIGRATEANNOTATION']._serialized_end=121 _globals['_FIELDMIGRATEANNOTATION']._serialized_start=123 diff --git a/py_xds_protos/udpa/annotations/security_pb2.py b/py_xds_protos/udpa/annotations/security_pb2.py index 11c7c5db6ac06..cc750883fc069 100644 --- a/py_xds_protos/udpa/annotations/security_pb2.py +++ b/py_xds_protos/udpa/annotations/security_pb2.py @@ -26,14 +26,14 @@ from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fudpa/annotations/security.proto\x12\x10udpa.annotations\x1a\x1dudpa/annotations/status.proto\x1a google/protobuf/descriptor.proto\"o\n\x17\x46ieldSecurityAnnotation\x12*\n\"configure_for_untrusted_downstream\x18\x01 \x01(\x08\x12(\n configure_for_untrusted_upstream\x18\x02 \x01(\x08:]\n\x08security\x12\x1d.google.protobuf.FieldOptions\x18\xb1\xf2\xa6\x05 \x01(\x0b\x32).udpa.annotations.FieldSecurityAnnotationB,Z\"github.com/cncf/xds/go/annotations\xba\x80\xc8\xd1\x06\x02\x08\x01\x62\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fudpa/annotations/security.proto\x12\x10udpa.annotations\x1a\x1dudpa/annotations/status.proto\x1a google/protobuf/descriptor.proto\"o\n\x17\x46ieldSecurityAnnotation\x12*\n\"configure_for_untrusted_downstream\x18\x01 \x01(\x08\x12(\n configure_for_untrusted_upstream\x18\x02 \x01(\x08:]\n\x08security\x12\x1d.google.protobuf.FieldOptions\x18\xb1\xf2\xa6\x05 \x01(\x0b\x32).udpa.annotations.FieldSecurityAnnotationB1Z\'github.com/cncf/xds/go/udpa/annotations\xba\x80\xc8\xd1\x06\x02\x08\x01\x62\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'udpa.annotations.security_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'Z\"github.com/cncf/xds/go/annotations\272\200\310\321\006\002\010\001' + _globals['DESCRIPTOR']._serialized_options = b'Z\'github.com/cncf/xds/go/udpa/annotations\272\200\310\321\006\002\010\001' _globals['_FIELDSECURITYANNOTATION']._serialized_start=118 _globals['_FIELDSECURITYANNOTATION']._serialized_end=229 # @@protoc_insertion_point(module_scope) diff --git a/py_xds_protos/udpa/annotations/sensitive_pb2.py b/py_xds_protos/udpa/annotations/sensitive_pb2.py index 37944a917b656..78c69aad94a4a 100644 --- a/py_xds_protos/udpa/annotations/sensitive_pb2.py +++ b/py_xds_protos/udpa/annotations/sensitive_pb2.py @@ -25,12 +25,12 @@ from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n udpa/annotations/sensitive.proto\x12\x10udpa.annotations\x1a google/protobuf/descriptor.proto:3\n\tsensitive\x12\x1d.google.protobuf.FieldOptions\x18\xf7\xb6\xc1$ \x01(\x08\x42$Z\"github.com/cncf/xds/go/annotationsb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n udpa/annotations/sensitive.proto\x12\x10udpa.annotations\x1a google/protobuf/descriptor.proto:3\n\tsensitive\x12\x1d.google.protobuf.FieldOptions\x18\xf7\xb6\xc1$ \x01(\x08\x42)Z\'github.com/cncf/xds/go/udpa/annotationsb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'udpa.annotations.sensitive_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'Z\"github.com/cncf/xds/go/annotations' + _globals['DESCRIPTOR']._serialized_options = b'Z\'github.com/cncf/xds/go/udpa/annotations' # @@protoc_insertion_point(module_scope) diff --git a/py_xds_protos/udpa/annotations/status_pb2.py b/py_xds_protos/udpa/annotations/status_pb2.py index 7ae4ef8df8e03..3e79983d9ee5d 100644 --- a/py_xds_protos/udpa/annotations/status_pb2.py +++ b/py_xds_protos/udpa/annotations/status_pb2.py @@ -25,14 +25,14 @@ from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dudpa/annotations/status.proto\x12\x10udpa.annotations\x1a google/protobuf/descriptor.proto\"t\n\x10StatusAnnotation\x12\x18\n\x10work_in_progress\x18\x01 \x01(\x08\x12\x46\n\x16package_version_status\x18\x02 \x01(\x0e\x32&.udpa.annotations.PackageVersionStatus*]\n\x14PackageVersionStatus\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06\x46ROZEN\x10\x01\x12\n\n\x06\x41\x43TIVE\x10\x02\x12 \n\x1cNEXT_MAJOR_VERSION_CANDIDATE\x10\x03:X\n\x0b\x66ile_status\x12\x1c.google.protobuf.FileOptions\x18\x87\x80\x99j \x01(\x0b\x32\".udpa.annotations.StatusAnnotationB$Z\"github.com/cncf/xds/go/annotationsb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dudpa/annotations/status.proto\x12\x10udpa.annotations\x1a google/protobuf/descriptor.proto\"t\n\x10StatusAnnotation\x12\x18\n\x10work_in_progress\x18\x01 \x01(\x08\x12\x46\n\x16package_version_status\x18\x02 \x01(\x0e\x32&.udpa.annotations.PackageVersionStatus*]\n\x14PackageVersionStatus\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06\x46ROZEN\x10\x01\x12\n\n\x06\x41\x43TIVE\x10\x02\x12 \n\x1cNEXT_MAJOR_VERSION_CANDIDATE\x10\x03:X\n\x0b\x66ile_status\x12\x1c.google.protobuf.FileOptions\x18\x87\x80\x99j \x01(\x0b\x32\".udpa.annotations.StatusAnnotationB)Z\'github.com/cncf/xds/go/udpa/annotationsb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'udpa.annotations.status_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'Z\"github.com/cncf/xds/go/annotations' + _globals['DESCRIPTOR']._serialized_options = b'Z\'github.com/cncf/xds/go/udpa/annotations' _globals['_PACKAGEVERSIONSTATUS']._serialized_start=203 _globals['_PACKAGEVERSIONSTATUS']._serialized_end=296 _globals['_STATUSANNOTATION']._serialized_start=85 diff --git a/py_xds_protos/udpa/annotations/versioning_pb2.py b/py_xds_protos/udpa/annotations/versioning_pb2.py index beee30d66ac98..4e1fe763238d4 100644 --- a/py_xds_protos/udpa/annotations/versioning_pb2.py +++ b/py_xds_protos/udpa/annotations/versioning_pb2.py @@ -25,14 +25,14 @@ from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!udpa/annotations/versioning.proto\x12\x10udpa.annotations\x1a google/protobuf/descriptor.proto\"5\n\x14VersioningAnnotation\x12\x1d\n\x15previous_message_type\x18\x01 \x01(\t:^\n\nversioning\x12\x1f.google.protobuf.MessageOptions\x18\xd3\x88\xe1\x03 \x01(\x0b\x32&.udpa.annotations.VersioningAnnotationB$Z\"github.com/cncf/xds/go/annotationsb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!udpa/annotations/versioning.proto\x12\x10udpa.annotations\x1a google/protobuf/descriptor.proto\"5\n\x14VersioningAnnotation\x12\x1d\n\x15previous_message_type\x18\x01 \x01(\t:^\n\nversioning\x12\x1f.google.protobuf.MessageOptions\x18\xd3\x88\xe1\x03 \x01(\x0b\x32&.udpa.annotations.VersioningAnnotationB)Z\'github.com/cncf/xds/go/udpa/annotationsb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'udpa.annotations.versioning_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'Z\"github.com/cncf/xds/go/annotations' + _globals['DESCRIPTOR']._serialized_options = b'Z\'github.com/cncf/xds/go/udpa/annotations' _globals['_VERSIONINGANNOTATION']._serialized_start=89 _globals['_VERSIONINGANNOTATION']._serialized_end=142 # @@protoc_insertion_point(module_scope) diff --git a/py_xds_protos/xds/type/matcher/v3/cel_pb2.py b/py_xds_protos/xds/type/matcher/v3/cel_pb2.py index ea897eb24de3c..e62c6107f969d 100644 --- a/py_xds_protos/xds/type/matcher/v3/cel_pb2.py +++ b/py_xds_protos/xds/type/matcher/v3/cel_pb2.py @@ -22,21 +22,20 @@ _sym_db = _symbol_database.Default() -from xds.annotations.v3 import status_pb2 as xds_dot_annotations_dot_v3_dot_status__pb2 from xds.type.v3 import cel_pb2 as xds_dot_type_dot_v3_dot_cel__pb2 from validate import validate_pb2 as validate_dot_validate__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dxds/type/matcher/v3/cel.proto\x12\x13xds.type.matcher.v3\x1a\x1fxds/annotations/v3/status.proto\x1a\x15xds/type/v3/cel.proto\x1a\x17validate/validate.proto\"[\n\nCelMatcher\x12\x38\n\nexpr_match\x18\x01 \x01(\x0b\x32\x1a.xds.type.v3.CelExpressionB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\tB`\n\x1e\x63om.github.xds.type.matcher.v3B\x08\x43\x65lProtoP\x01Z*github.com/cncf/xds/go/xds/type/matcher/v3\xd2\xc6\xa4\xe1\x06\x02\x08\x01\x62\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dxds/type/matcher/v3/cel.proto\x12\x13xds.type.matcher.v3\x1a\x15xds/type/v3/cel.proto\x1a\x17validate/validate.proto\"[\n\nCelMatcher\x12\x38\n\nexpr_match\x18\x01 \x01(\x0b\x32\x1a.xds.type.v3.CelExpressionB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\tBX\n\x1e\x63om.github.xds.type.matcher.v3B\x08\x43\x65lProtoP\x01Z*github.com/cncf/xds/go/xds/type/matcher/v3b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'xds.type.matcher.v3.cel_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\036com.github.xds.type.matcher.v3B\010CelProtoP\001Z*github.com/cncf/xds/go/xds/type/matcher/v3\322\306\244\341\006\002\010\001' + _globals['DESCRIPTOR']._serialized_options = b'\n\036com.github.xds.type.matcher.v3B\010CelProtoP\001Z*github.com/cncf/xds/go/xds/type/matcher/v3' _globals['_CELMATCHER'].fields_by_name['expr_match']._loaded_options = None _globals['_CELMATCHER'].fields_by_name['expr_match']._serialized_options = b'\372B\005\212\001\002\020\001' - _globals['_CELMATCHER']._serialized_start=135 - _globals['_CELMATCHER']._serialized_end=226 + _globals['_CELMATCHER']._serialized_start=102 + _globals['_CELMATCHER']._serialized_end=193 # @@protoc_insertion_point(module_scope) diff --git a/py_xds_protos/xds/type/matcher/v3/http_inputs_pb2.py b/py_xds_protos/xds/type/matcher/v3/http_inputs_pb2.py index 478816e6c73ce..a123a0be39755 100644 --- a/py_xds_protos/xds/type/matcher/v3/http_inputs_pb2.py +++ b/py_xds_protos/xds/type/matcher/v3/http_inputs_pb2.py @@ -22,17 +22,16 @@ _sym_db = _symbol_database.Default() -from xds.annotations.v3 import status_pb2 as xds_dot_annotations_dot_v3_dot_status__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%xds/type/matcher/v3/http_inputs.proto\x12\x13xds.type.matcher.v3\x1a\x1fxds/annotations/v3/status.proto\"\x1d\n\x1bHttpAttributesCelMatchInputBg\n\x1e\x63om.github.xds.type.matcher.v3B\x0fHttpInputsProtoP\x01Z*github.com/cncf/xds/go/xds/type/matcher/v3\xd2\xc6\xa4\xe1\x06\x02\x08\x01\x62\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%xds/type/matcher/v3/http_inputs.proto\x12\x13xds.type.matcher.v3\"\x1d\n\x1bHttpAttributesCelMatchInputB_\n\x1e\x63om.github.xds.type.matcher.v3B\x0fHttpInputsProtoP\x01Z*github.com/cncf/xds/go/xds/type/matcher/v3b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'xds.type.matcher.v3.http_inputs_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\036com.github.xds.type.matcher.v3B\017HttpInputsProtoP\001Z*github.com/cncf/xds/go/xds/type/matcher/v3\322\306\244\341\006\002\010\001' - _globals['_HTTPATTRIBUTESCELMATCHINPUT']._serialized_start=95 - _globals['_HTTPATTRIBUTESCELMATCHINPUT']._serialized_end=124 + _globals['DESCRIPTOR']._serialized_options = b'\n\036com.github.xds.type.matcher.v3B\017HttpInputsProtoP\001Z*github.com/cncf/xds/go/xds/type/matcher/v3' + _globals['_HTTPATTRIBUTESCELMATCHINPUT']._serialized_start=62 + _globals['_HTTPATTRIBUTESCELMATCHINPUT']._serialized_end=91 # @@protoc_insertion_point(module_scope) diff --git a/py_xds_protos/xds/type/matcher/v3/matcher_pb2.py b/py_xds_protos/xds/type/matcher/v3/matcher_pb2.py index 776ea26d93641..1000f763c8a00 100644 --- a/py_xds_protos/xds/type/matcher/v3/matcher_pb2.py +++ b/py_xds_protos/xds/type/matcher/v3/matcher_pb2.py @@ -22,13 +22,12 @@ _sym_db = _symbol_database.Default() -from xds.annotations.v3 import status_pb2 as xds_dot_annotations_dot_v3_dot_status__pb2 from xds.core.v3 import extension_pb2 as xds_dot_core_dot_v3_dot_extension__pb2 from xds.type.matcher.v3 import string_pb2 as xds_dot_type_dot_matcher_dot_v3_dot_string__pb2 from validate import validate_pb2 as validate_dot_validate__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!xds/type/matcher/v3/matcher.proto\x12\x13xds.type.matcher.v3\x1a\x1fxds/annotations/v3/status.proto\x1a\x1bxds/core/v3/extension.proto\x1a xds/type/matcher/v3/string.proto\x1a\x17validate/validate.proto\"\x89\x0e\n\x07Matcher\x12@\n\x0cmatcher_list\x18\x01 \x01(\x0b\x32(.xds.type.matcher.v3.Matcher.MatcherListH\x00\x12@\n\x0cmatcher_tree\x18\x02 \x01(\x0b\x32(.xds.type.matcher.v3.Matcher.MatcherTreeH\x00\x12\x39\n\x0bon_no_match\x18\x03 \x01(\x0b\x32$.xds.type.matcher.v3.Matcher.OnMatch\x1a\x80\x01\n\x07OnMatch\x12/\n\x07matcher\x18\x01 \x01(\x0b\x32\x1c.xds.type.matcher.v3.MatcherH\x00\x12\x33\n\x06\x61\x63tion\x18\x02 \x01(\x0b\x32!.xds.core.v3.TypedExtensionConfigH\x00\x42\x0f\n\x08on_match\x12\x03\xf8\x42\x01\x1a\xb9\x07\n\x0bMatcherList\x12Q\n\x08matchers\x18\x01 \x03(\x0b\x32\x35.xds.type.matcher.v3.Matcher.MatcherList.FieldMatcherB\x08\xfa\x42\x05\x92\x01\x02\x08\x01\x1a\xb2\x05\n\tPredicate\x12^\n\x10single_predicate\x18\x01 \x01(\x0b\x32\x42.xds.type.matcher.v3.Matcher.MatcherList.Predicate.SinglePredicateH\x00\x12V\n\nor_matcher\x18\x02 \x01(\x0b\x32@.xds.type.matcher.v3.Matcher.MatcherList.Predicate.PredicateListH\x00\x12W\n\x0b\x61nd_matcher\x18\x03 \x01(\x0b\x32@.xds.type.matcher.v3.Matcher.MatcherList.Predicate.PredicateListH\x00\x12I\n\x0bnot_matcher\x18\x04 \x01(\x0b\x32\x32.xds.type.matcher.v3.Matcher.MatcherList.PredicateH\x00\x1a\xd3\x01\n\x0fSinglePredicate\x12:\n\x05input\x18\x01 \x01(\x0b\x32!.xds.core.v3.TypedExtensionConfigB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01\x12\x39\n\x0bvalue_match\x18\x02 \x01(\x0b\x32\".xds.type.matcher.v3.StringMatcherH\x00\x12\x39\n\x0c\x63ustom_match\x18\x03 \x01(\x0b\x32!.xds.core.v3.TypedExtensionConfigH\x00\x42\x0e\n\x07matcher\x12\x03\xf8\x42\x01\x1a`\n\rPredicateList\x12O\n\tpredicate\x18\x01 \x03(\x0b\x32\x32.xds.type.matcher.v3.Matcher.MatcherList.PredicateB\x08\xfa\x42\x05\x92\x01\x02\x08\x02\x42\x11\n\nmatch_type\x12\x03\xf8\x42\x01\x1a\xa1\x01\n\x0c\x46ieldMatcher\x12O\n\tpredicate\x18\x01 \x01(\x0b\x32\x32.xds.type.matcher.v3.Matcher.MatcherList.PredicateB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01\x12@\n\x08on_match\x18\x02 \x01(\x0b\x32$.xds.type.matcher.v3.Matcher.OnMatchB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01\x1a\xe5\x03\n\x0bMatcherTree\x12:\n\x05input\x18\x01 \x01(\x0b\x32!.xds.core.v3.TypedExtensionConfigB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01\x12L\n\x0f\x65xact_match_map\x18\x02 \x01(\x0b\x32\x31.xds.type.matcher.v3.Matcher.MatcherTree.MatchMapH\x00\x12M\n\x10prefix_match_map\x18\x03 \x01(\x0b\x32\x31.xds.type.matcher.v3.Matcher.MatcherTree.MatchMapH\x00\x12\x39\n\x0c\x63ustom_match\x18\x04 \x01(\x0b\x32!.xds.core.v3.TypedExtensionConfigH\x00\x1a\xaf\x01\n\x08MatchMap\x12Q\n\x03map\x18\x01 \x03(\x0b\x32:.xds.type.matcher.v3.Matcher.MatcherTree.MatchMap.MapEntryB\x08\xfa\x42\x05\x9a\x01\x02\x08\x01\x1aP\n\x08MapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x33\n\x05value\x18\x02 \x01(\x0b\x32$.xds.type.matcher.v3.Matcher.OnMatch:\x02\x38\x01\x42\x10\n\ttree_type\x12\x03\xf8\x42\x01:\x08\xd2\xc6\xa4\xe1\x06\x02\x08\x01\x42\x0e\n\x0cmatcher_typeB\\\n\x1e\x63om.github.xds.type.matcher.v3B\x0cMatcherProtoP\x01Z*github.com/cncf/xds/go/xds/type/matcher/v3b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!xds/type/matcher/v3/matcher.proto\x12\x13xds.type.matcher.v3\x1a\x1bxds/core/v3/extension.proto\x1a xds/type/matcher/v3/string.proto\x1a\x17validate/validate.proto\"\x96\x0e\n\x07Matcher\x12@\n\x0cmatcher_list\x18\x01 \x01(\x0b\x32(.xds.type.matcher.v3.Matcher.MatcherListH\x00\x12@\n\x0cmatcher_tree\x18\x02 \x01(\x0b\x32(.xds.type.matcher.v3.Matcher.MatcherTreeH\x00\x12\x39\n\x0bon_no_match\x18\x03 \x01(\x0b\x32$.xds.type.matcher.v3.Matcher.OnMatch\x1a\x97\x01\n\x07OnMatch\x12/\n\x07matcher\x18\x01 \x01(\x0b\x32\x1c.xds.type.matcher.v3.MatcherH\x00\x12\x33\n\x06\x61\x63tion\x18\x02 \x01(\x0b\x32!.xds.core.v3.TypedExtensionConfigH\x00\x12\x15\n\rkeep_matching\x18\x03 \x01(\x08\x42\x0f\n\x08on_match\x12\x03\xf8\x42\x01\x1a\xb9\x07\n\x0bMatcherList\x12Q\n\x08matchers\x18\x01 \x03(\x0b\x32\x35.xds.type.matcher.v3.Matcher.MatcherList.FieldMatcherB\x08\xfa\x42\x05\x92\x01\x02\x08\x01\x1a\xb2\x05\n\tPredicate\x12^\n\x10single_predicate\x18\x01 \x01(\x0b\x32\x42.xds.type.matcher.v3.Matcher.MatcherList.Predicate.SinglePredicateH\x00\x12V\n\nor_matcher\x18\x02 \x01(\x0b\x32@.xds.type.matcher.v3.Matcher.MatcherList.Predicate.PredicateListH\x00\x12W\n\x0b\x61nd_matcher\x18\x03 \x01(\x0b\x32@.xds.type.matcher.v3.Matcher.MatcherList.Predicate.PredicateListH\x00\x12I\n\x0bnot_matcher\x18\x04 \x01(\x0b\x32\x32.xds.type.matcher.v3.Matcher.MatcherList.PredicateH\x00\x1a\xd3\x01\n\x0fSinglePredicate\x12:\n\x05input\x18\x01 \x01(\x0b\x32!.xds.core.v3.TypedExtensionConfigB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01\x12\x39\n\x0bvalue_match\x18\x02 \x01(\x0b\x32\".xds.type.matcher.v3.StringMatcherH\x00\x12\x39\n\x0c\x63ustom_match\x18\x03 \x01(\x0b\x32!.xds.core.v3.TypedExtensionConfigH\x00\x42\x0e\n\x07matcher\x12\x03\xf8\x42\x01\x1a`\n\rPredicateList\x12O\n\tpredicate\x18\x01 \x03(\x0b\x32\x32.xds.type.matcher.v3.Matcher.MatcherList.PredicateB\x08\xfa\x42\x05\x92\x01\x02\x08\x02\x42\x11\n\nmatch_type\x12\x03\xf8\x42\x01\x1a\xa1\x01\n\x0c\x46ieldMatcher\x12O\n\tpredicate\x18\x01 \x01(\x0b\x32\x32.xds.type.matcher.v3.Matcher.MatcherList.PredicateB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01\x12@\n\x08on_match\x18\x02 \x01(\x0b\x32$.xds.type.matcher.v3.Matcher.OnMatchB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01\x1a\xe5\x03\n\x0bMatcherTree\x12:\n\x05input\x18\x01 \x01(\x0b\x32!.xds.core.v3.TypedExtensionConfigB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01\x12L\n\x0f\x65xact_match_map\x18\x02 \x01(\x0b\x32\x31.xds.type.matcher.v3.Matcher.MatcherTree.MatchMapH\x00\x12M\n\x10prefix_match_map\x18\x03 \x01(\x0b\x32\x31.xds.type.matcher.v3.Matcher.MatcherTree.MatchMapH\x00\x12\x39\n\x0c\x63ustom_match\x18\x04 \x01(\x0b\x32!.xds.core.v3.TypedExtensionConfigH\x00\x1a\xaf\x01\n\x08MatchMap\x12Q\n\x03map\x18\x01 \x03(\x0b\x32:.xds.type.matcher.v3.Matcher.MatcherTree.MatchMap.MapEntryB\x08\xfa\x42\x05\x9a\x01\x02\x08\x01\x1aP\n\x08MapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x33\n\x05value\x18\x02 \x01(\x0b\x32$.xds.type.matcher.v3.Matcher.OnMatch:\x02\x38\x01\x42\x10\n\ttree_type\x12\x03\xf8\x42\x01\x42\x0e\n\x0cmatcher_typeB\\\n\x1e\x63om.github.xds.type.matcher.v3B\x0cMatcherProtoP\x01Z*github.com/cncf/xds/go/xds/type/matcher/v3b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -60,26 +59,24 @@ _globals['_MATCHER_MATCHERTREE'].oneofs_by_name['tree_type']._serialized_options = b'\370B\001' _globals['_MATCHER_MATCHERTREE'].fields_by_name['input']._loaded_options = None _globals['_MATCHER_MATCHERTREE'].fields_by_name['input']._serialized_options = b'\372B\005\212\001\002\020\001' - _globals['_MATCHER']._loaded_options = None - _globals['_MATCHER']._serialized_options = b'\322\306\244\341\006\002\010\001' - _globals['_MATCHER']._serialized_start=180 - _globals['_MATCHER']._serialized_end=1981 - _globals['_MATCHER_ONMATCH']._serialized_start=383 - _globals['_MATCHER_ONMATCH']._serialized_end=511 - _globals['_MATCHER_MATCHERLIST']._serialized_start=514 - _globals['_MATCHER_MATCHERLIST']._serialized_end=1467 - _globals['_MATCHER_MATCHERLIST_PREDICATE']._serialized_start=613 - _globals['_MATCHER_MATCHERLIST_PREDICATE']._serialized_end=1303 - _globals['_MATCHER_MATCHERLIST_PREDICATE_SINGLEPREDICATE']._serialized_start=975 - _globals['_MATCHER_MATCHERLIST_PREDICATE_SINGLEPREDICATE']._serialized_end=1186 - _globals['_MATCHER_MATCHERLIST_PREDICATE_PREDICATELIST']._serialized_start=1188 - _globals['_MATCHER_MATCHERLIST_PREDICATE_PREDICATELIST']._serialized_end=1284 - _globals['_MATCHER_MATCHERLIST_FIELDMATCHER']._serialized_start=1306 - _globals['_MATCHER_MATCHERLIST_FIELDMATCHER']._serialized_end=1467 - _globals['_MATCHER_MATCHERTREE']._serialized_start=1470 - _globals['_MATCHER_MATCHERTREE']._serialized_end=1955 - _globals['_MATCHER_MATCHERTREE_MATCHMAP']._serialized_start=1762 - _globals['_MATCHER_MATCHERTREE_MATCHMAP']._serialized_end=1937 - _globals['_MATCHER_MATCHERTREE_MATCHMAP_MAPENTRY']._serialized_start=1857 - _globals['_MATCHER_MATCHERTREE_MATCHMAP_MAPENTRY']._serialized_end=1937 + _globals['_MATCHER']._serialized_start=147 + _globals['_MATCHER']._serialized_end=1961 + _globals['_MATCHER_ONMATCH']._serialized_start=350 + _globals['_MATCHER_ONMATCH']._serialized_end=501 + _globals['_MATCHER_MATCHERLIST']._serialized_start=504 + _globals['_MATCHER_MATCHERLIST']._serialized_end=1457 + _globals['_MATCHER_MATCHERLIST_PREDICATE']._serialized_start=603 + _globals['_MATCHER_MATCHERLIST_PREDICATE']._serialized_end=1293 + _globals['_MATCHER_MATCHERLIST_PREDICATE_SINGLEPREDICATE']._serialized_start=965 + _globals['_MATCHER_MATCHERLIST_PREDICATE_SINGLEPREDICATE']._serialized_end=1176 + _globals['_MATCHER_MATCHERLIST_PREDICATE_PREDICATELIST']._serialized_start=1178 + _globals['_MATCHER_MATCHERLIST_PREDICATE_PREDICATELIST']._serialized_end=1274 + _globals['_MATCHER_MATCHERLIST_FIELDMATCHER']._serialized_start=1296 + _globals['_MATCHER_MATCHERLIST_FIELDMATCHER']._serialized_end=1457 + _globals['_MATCHER_MATCHERTREE']._serialized_start=1460 + _globals['_MATCHER_MATCHERTREE']._serialized_end=1945 + _globals['_MATCHER_MATCHERTREE_MATCHMAP']._serialized_start=1752 + _globals['_MATCHER_MATCHERTREE_MATCHMAP']._serialized_end=1927 + _globals['_MATCHER_MATCHERTREE_MATCHMAP_MAPENTRY']._serialized_start=1847 + _globals['_MATCHER_MATCHERTREE_MATCHMAP_MAPENTRY']._serialized_end=1927 # @@protoc_insertion_point(module_scope) diff --git a/py_xds_protos/xds/type/matcher/v3/string_pb2.py b/py_xds_protos/xds/type/matcher/v3/string_pb2.py index 5908912da7117..35fab01bbc3e7 100644 --- a/py_xds_protos/xds/type/matcher/v3/string_pb2.py +++ b/py_xds_protos/xds/type/matcher/v3/string_pb2.py @@ -22,11 +22,12 @@ _sym_db = _symbol_database.Default() +from xds.core.v3 import extension_pb2 as xds_dot_core_dot_v3_dot_extension__pb2 from xds.type.matcher.v3 import regex_pb2 as xds_dot_type_dot_matcher_dot_v3_dot_regex__pb2 from validate import validate_pb2 as validate_dot_validate__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n xds/type/matcher/v3/string.proto\x12\x13xds.type.matcher.v3\x1a\x1fxds/type/matcher/v3/regex.proto\x1a\x17validate/validate.proto\"\xe1\x01\n\rStringMatcher\x12\x0f\n\x05\x65xact\x18\x01 \x01(\tH\x00\x12\x19\n\x06prefix\x18\x02 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01H\x00\x12\x19\n\x06suffix\x18\x03 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01H\x00\x12\x41\n\nsafe_regex\x18\x05 \x01(\x0b\x32!.xds.type.matcher.v3.RegexMatcherB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01H\x00\x12\x1b\n\x08\x63ontains\x18\x07 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01H\x00\x12\x13\n\x0bignore_case\x18\x06 \x01(\x08\x42\x14\n\rmatch_pattern\x12\x03\xf8\x42\x01\"S\n\x11ListStringMatcher\x12>\n\x08patterns\x18\x01 \x03(\x0b\x32\".xds.type.matcher.v3.StringMatcherB\x08\xfa\x42\x05\x92\x01\x02\x08\x01\x42[\n\x1e\x63om.github.xds.type.matcher.v3B\x0bStringProtoP\x01Z*github.com/cncf/xds/go/xds/type/matcher/v3b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n xds/type/matcher/v3/string.proto\x12\x13xds.type.matcher.v3\x1a\x1bxds/core/v3/extension.proto\x1a\x1fxds/type/matcher/v3/regex.proto\x1a\x17validate/validate.proto\"\x96\x02\n\rStringMatcher\x12\x0f\n\x05\x65xact\x18\x01 \x01(\tH\x00\x12\x19\n\x06prefix\x18\x02 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01H\x00\x12\x19\n\x06suffix\x18\x03 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01H\x00\x12\x41\n\nsafe_regex\x18\x05 \x01(\x0b\x32!.xds.type.matcher.v3.RegexMatcherB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01H\x00\x12\x1b\n\x08\x63ontains\x18\x07 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01H\x00\x12\x33\n\x06\x63ustom\x18\x08 \x01(\x0b\x32!.xds.core.v3.TypedExtensionConfigH\x00\x12\x13\n\x0bignore_case\x18\x06 \x01(\x08\x42\x14\n\rmatch_pattern\x12\x03\xf8\x42\x01\"S\n\x11ListStringMatcher\x12>\n\x08patterns\x18\x01 \x03(\x0b\x32\".xds.type.matcher.v3.StringMatcherB\x08\xfa\x42\x05\x92\x01\x02\x08\x01\x42[\n\x1e\x63om.github.xds.type.matcher.v3B\x0bStringProtoP\x01Z*github.com/cncf/xds/go/xds/type/matcher/v3b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -46,8 +47,8 @@ _globals['_STRINGMATCHER'].fields_by_name['contains']._serialized_options = b'\372B\004r\002\020\001' _globals['_LISTSTRINGMATCHER'].fields_by_name['patterns']._loaded_options = None _globals['_LISTSTRINGMATCHER'].fields_by_name['patterns']._serialized_options = b'\372B\005\222\001\002\010\001' - _globals['_STRINGMATCHER']._serialized_start=116 - _globals['_STRINGMATCHER']._serialized_end=341 - _globals['_LISTSTRINGMATCHER']._serialized_start=343 - _globals['_LISTSTRINGMATCHER']._serialized_end=426 + _globals['_STRINGMATCHER']._serialized_start=145 + _globals['_STRINGMATCHER']._serialized_end=423 + _globals['_LISTSTRINGMATCHER']._serialized_start=425 + _globals['_LISTSTRINGMATCHER']._serialized_end=508 # @@protoc_insertion_point(module_scope) diff --git a/py_xds_protos/xds/type/v3/cel_pb2.py b/py_xds_protos/xds/type/v3/cel_pb2.py index 082d1e5ec1013..b027ed1fee602 100644 --- a/py_xds_protos/xds/type/v3/cel_pb2.py +++ b/py_xds_protos/xds/type/v3/cel_pb2.py @@ -24,12 +24,14 @@ from google.api.expr.v1alpha1 import checked_pb2 as google_dot_api_dot_expr_dot_v1alpha1_dot_checked__pb2 from google.api.expr.v1alpha1 import syntax_pb2 as google_dot_api_dot_expr_dot_v1alpha1_dot_syntax__pb2 +from cel.expr import checked_pb2 as cel_dot_expr_dot_checked__pb2 +from cel.expr import syntax_pb2 as cel_dot_expr_dot_syntax__pb2 from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 from xds.annotations.v3 import status_pb2 as xds_dot_annotations_dot_v3_dot_status__pb2 from validate import validate_pb2 as validate_dot_validate__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15xds/type/v3/cel.proto\x12\x0bxds.type.v3\x1a&google/api/expr/v1alpha1/checked.proto\x1a%google/api/expr/v1alpha1/syntax.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1fxds/annotations/v3/status.proto\x1a\x17validate/validate.proto\"\xa2\x01\n\rCelExpression\x12;\n\x0bparsed_expr\x18\x01 \x01(\x0b\x32$.google.api.expr.v1alpha1.ParsedExprH\x00\x12=\n\x0c\x63hecked_expr\x18\x02 \x01(\x0b\x32%.google.api.expr.v1alpha1.CheckedExprH\x00\x42\x15\n\x0e\x65xpr_specifier\x12\x03\xf8\x42\x01\"\x83\x01\n\x10\x43\x65lExtractString\x12:\n\x0c\x65xpr_extract\x18\x01 \x01(\x0b\x32\x1a.xds.type.v3.CelExpressionB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01\x12\x33\n\rdefault_value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValueBP\n\x16\x63om.github.xds.type.v3B\x08\x43\x65lProtoP\x01Z\"github.com/cncf/xds/go/xds/type/v3\xd2\xc6\xa4\xe1\x06\x02\x08\x01\x62\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15xds/type/v3/cel.proto\x12\x0bxds.type.v3\x1a&google/api/expr/v1alpha1/checked.proto\x1a%google/api/expr/v1alpha1/syntax.proto\x1a\x16\x63\x65l/expr/checked.proto\x1a\x15\x63\x65l/expr/syntax.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1fxds/annotations/v3/status.proto\x1a\x17validate/validate.proto\"\x9e\x02\n\rCelExpression\x12?\n\x0bparsed_expr\x18\x01 \x01(\x0b\x32$.google.api.expr.v1alpha1.ParsedExprB\x02\x18\x01H\x00\x12\x41\n\x0c\x63hecked_expr\x18\x02 \x01(\x0b\x32%.google.api.expr.v1alpha1.CheckedExprB\x02\x18\x01H\x00\x12-\n\x0f\x63\x65l_expr_parsed\x18\x03 \x01(\x0b\x32\x14.cel.expr.ParsedExpr\x12/\n\x10\x63\x65l_expr_checked\x18\x04 \x01(\x0b\x32\x15.cel.expr.CheckedExpr\x12\x17\n\x0f\x63\x65l_expr_string\x18\x05 \x01(\tB\x10\n\x0e\x65xpr_specifier\"\x83\x01\n\x10\x43\x65lExtractString\x12:\n\x0c\x65xpr_extract\x18\x01 \x01(\x0b\x32\x1a.xds.type.v3.CelExpressionB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01\x12\x33\n\rdefault_value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValueBP\n\x16\x63om.github.xds.type.v3B\x08\x43\x65lProtoP\x01Z\"github.com/cncf/xds/go/xds/type/v3\xd2\xc6\xa4\xe1\x06\x02\x08\x01\x62\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -37,12 +39,14 @@ if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\n\026com.github.xds.type.v3B\010CelProtoP\001Z\"github.com/cncf/xds/go/xds/type/v3\322\306\244\341\006\002\010\001' - _globals['_CELEXPRESSION'].oneofs_by_name['expr_specifier']._loaded_options = None - _globals['_CELEXPRESSION'].oneofs_by_name['expr_specifier']._serialized_options = b'\370B\001' + _globals['_CELEXPRESSION'].fields_by_name['parsed_expr']._loaded_options = None + _globals['_CELEXPRESSION'].fields_by_name['parsed_expr']._serialized_options = b'\030\001' + _globals['_CELEXPRESSION'].fields_by_name['checked_expr']._loaded_options = None + _globals['_CELEXPRESSION'].fields_by_name['checked_expr']._serialized_options = b'\030\001' _globals['_CELEXTRACTSTRING'].fields_by_name['expr_extract']._loaded_options = None _globals['_CELEXTRACTSTRING'].fields_by_name['expr_extract']._serialized_options = b'\372B\005\212\001\002\020\001' - _globals['_CELEXPRESSION']._serialized_start=208 - _globals['_CELEXPRESSION']._serialized_end=370 - _globals['_CELEXTRACTSTRING']._serialized_start=373 - _globals['_CELEXTRACTSTRING']._serialized_end=504 + _globals['_CELEXPRESSION']._serialized_start=255 + _globals['_CELEXPRESSION']._serialized_end=541 + _globals['_CELEXTRACTSTRING']._serialized_start=544 + _globals['_CELEXTRACTSTRING']._serialized_end=675 # @@protoc_insertion_point(module_scope) diff --git a/setup.py b/setup.py index 38d3ab72293c0..d3b5c30b31912 100644 --- a/setup.py +++ b/setup.py @@ -452,6 +452,17 @@ def _quote_build_define(argument): DEFINE_MACROS += ( ("HAVE_CONFIG_H", 1), ("GRPC_ENABLE_FORK_SUPPORT", 1), + # Set runtime GRPC_ENABLE_FORK_SUPPORT setting in core to "off". + # + # By default, gRPC core GRPC_ENABLE_FORK_SUPPORT runtime config_var + # is "on" when it's compiled with GRPC_ENABLE_FORK_SUPPORT macro. + # However, in python GRPC_ENABLE_FORK_SUPPORT by default is "off". + # Compare config_vars.cc and fork_posix.pyx.pxi. + # This leads to an inconsistent and broken behavior. + # + # Important! This must by in sync with the default value for the + # GRPC_ENABLE_FORK_SUPPORT env var parsed in fork_posix.pyx.pxi + ("GRPC_ENABLE_FORK_SUPPORT_DEFAULT", "false"), ) # Fix for multiprocessing support on Apple devices. diff --git a/src/core/BUILD b/src/core/BUILD index 26924ebc82498..a47d41da61cfb 100644 --- a/src/core/BUILD +++ b/src/core/BUILD @@ -3762,6 +3762,7 @@ grpc_cc_library( external_deps = [ "absl/functional:any_invocable", ], + visibility = ["//bazel:client_channel_internal_header"], deps = [ "arena", "call_destination", @@ -3812,6 +3813,19 @@ grpc_cc_library( ], ) +grpc_cc_library( + name = "filter_chain", + hdrs = [ + "filter/filter_chain.h", + ], + deps = [ + "filter_args", + "interception_chain", + "ref_counted", + "//:ref_counted_ptr", + ], +) + grpc_cc_library( name = "fused_filters", srcs = [ @@ -3902,6 +3916,7 @@ grpc_cc_library( "blackboard", "channel_fwd", "client_channel_internal_header", + "filter_chain", "grpc_check", "grpc_service_config", "interception_chain", @@ -6062,7 +6077,7 @@ grpc_cc_library( "blackboard", "channel_args", "channel_fwd", - "interception_chain", + "filter_chain", "json", "json_writer", "validation_errors", @@ -6434,7 +6449,6 @@ grpc_cc_library( "grpc_tls_credentials", "grpc_transport_chttp2_client_connector", "init_internally", - "interception_chain", "iomgr_fwd", "json", "json_args", @@ -10620,6 +10634,7 @@ grpc_cc_library( ], deps = [ "avl", + "bitset", "channelz_property_list", "dual_ref_counted", "grpc_check", diff --git a/src/core/channelz/property_list.h b/src/core/channelz/property_list.h index 8ea4936b26429..0ce30bde7b9e2 100644 --- a/src/core/channelz/property_list.h +++ b/src/core/channelz/property_list.h @@ -146,6 +146,11 @@ class PropertyList final : public OtherPropertyValue { void FillUpbProto(grpc_channelz_v2_PropertyList* proto, upb_Arena* arena); void FillAny(google_protobuf_Any* any, upb_Arena* arena) override; + const std::vector>& property_list() + const { + return property_list_; + } + private: void SetInternal(absl::string_view key, std::optional value); diff --git a/src/core/channelz/v2tov1/legacy_api.cc b/src/core/channelz/v2tov1/legacy_api.cc index a9effcb55f73d..e5ccc87eb5020 100644 --- a/src/core/channelz/v2tov1/legacy_api.cc +++ b/src/core/channelz/v2tov1/legacy_api.cc @@ -37,6 +37,16 @@ namespace grpc_core { namespace channelz { namespace v2tov1 { + +std::string StripAdditionalInfoFromJson(absl::string_view json_str) { + auto json = JsonParse(json_str); + if (!json.ok()) return std::string(json_str); + if (json->type() != Json::Type::kObject) return std::string(json_str); + Json::Object object = json->object(); + object.erase("additionalInfo"); + return JsonDump(Json::FromObject(std::move(object))); +} + namespace { class RegistryEntityFetcher : public EntityFetcher { @@ -69,61 +79,8 @@ class RegistryEntityFetcher : public EntityFetcher { } }; -template -std::string RenderArray(std::tuple values_and_end, - const std::string& key) { - auto& [values, end] = values_and_end; - Json::Object object; - if (!values.empty()) { - // Create list of channels. - Json::Array array; - for (size_t i = 0; i < values.size(); ++i) { - array.emplace_back(values[i]->RenderJson()); - } - object[key] = Json::FromArray(std::move(array)); - } - if (end) { - object["end"] = Json::FromBool(true); - } - return JsonDump(Json::FromObject(std::move(object))); -} - -Json RemoveAdditionalInfo(const Json& json) { - switch (json.type()) { - case Json::Type::kArray: { - Json::Array out; - for (const auto& node : json.array()) { - out.emplace_back(RemoveAdditionalInfo(node)); - } - return Json::FromArray(std::move(out)); - } break; - case Json::Type::kObject: { - Json::Object out; - for (const auto& [key, value] : json.object()) { - if (key == "additionalInfo") continue; - out[key] = RemoveAdditionalInfo(value); - } - return Json::FromObject(std::move(out)); - } break; - default: - return json; - } -} - } // namespace -std::string StripAdditionalInfoFromJson(absl::string_view json_str) { - auto json = JsonParse(json_str); - if (!json.ok()) return std::string(json_str); - return JsonDump(RemoveAdditionalInfo(*json)); -} - -// TODO(ctiller): Temporary hack to remove fields that are objectionable to the -// protobuf parser (because we've not published them in protobuf yet). -char* ApplyHacks(const std::string& json_str) { - return gpr_strdup(StripAdditionalInfoFromJson(json_str).c_str()); -} - } // namespace v2tov1 } // namespace channelz } // namespace grpc_core @@ -133,299 +90,199 @@ using grpc_core::channelz::v2tov1::RegistryEntityFetcher; char* grpc_channelz_get_top_channels(intptr_t start_channel_id) { grpc_core::ExecCtx exec_ctx; - if (grpc_core::IsChannelzUseV2ForV1ApiEnabled()) { - RegistryEntityFetcher fetcher; - auto [channels, end] = ChannelzRegistry::GetTopChannels(start_channel_id); - grpc_core::Json::Array array; - for (const auto& channel_node : channels) { - if (channel_node == nullptr) continue; - auto serialized_v2 = - channel_node->SerializeEntityToString(absl::ZeroDuration()); - auto serialized_v1 = grpc_core::channelz::v2tov1::ConvertChannel( - serialized_v2, fetcher, true); - if (!serialized_v1.ok()) { - LOG(ERROR) << "Failed to convert channel: " << serialized_v1.status(); - continue; - } - auto json = grpc_core::JsonParse(*serialized_v1); - if (!json.ok()) { - LOG(ERROR) << "Failed to parse converted channel json: " - << json.status(); - continue; - } - array.emplace_back(std::move(*json)); + RegistryEntityFetcher fetcher; + auto [channels, end] = ChannelzRegistry::GetTopChannels(start_channel_id); + grpc_core::Json::Array array; + for (const auto& channel_node : channels) { + if (channel_node == nullptr) continue; + auto serialized_v2 = + channel_node->SerializeEntityToString(absl::ZeroDuration()); + auto serialized_v1 = grpc_core::channelz::v2tov1::ConvertChannel( + serialized_v2, fetcher, true); + if (!serialized_v1.ok()) { + LOG(ERROR) << "Failed to convert channel: " << serialized_v1.status(); + continue; } - grpc_core::Json json = grpc_core::Json::FromObject({ - {"channel", grpc_core::Json::FromArray(std::move(array))}, - {"end", grpc_core::Json::FromBool(end)}, - }); - std::string json_str = grpc_core::JsonDump(json); - return gpr_strdup(json_str.c_str()); - } else { - return grpc_core::channelz::v2tov1::ApplyHacks( - grpc_core::channelz::v2tov1::RenderArray( - grpc_core::channelz::ChannelzRegistry::GetTopChannels( - start_channel_id), - "channel")); - } -} - -char* grpc_channelz_get_servers(intptr_t start_server_id) { - grpc_core::ExecCtx exec_ctx; - if (grpc_core::IsChannelzUseV2ForV1ApiEnabled()) { - RegistryEntityFetcher fetcher; - auto [servers, end] = ChannelzRegistry::GetServers(start_server_id); - grpc_core::Json::Array array; - for (const auto& server_node : servers) { - if (server_node == nullptr) continue; - auto serialized_v2 = - server_node->SerializeEntityToString(absl::ZeroDuration()); - auto serialized_v1 = grpc_core::channelz::v2tov1::ConvertServer( - serialized_v2, fetcher, true); - if (!serialized_v1.ok()) { - LOG(ERROR) << "Failed to convert server: " << serialized_v1.status(); - continue; - } - auto json = grpc_core::JsonParse(*serialized_v1); - if (!json.ok()) { - LOG(ERROR) << "Failed to parse converted server json: " - << json.status(); - continue; - } - array.emplace_back(std::move(*json)); + auto json = grpc_core::JsonParse(*serialized_v1); + if (!json.ok()) { + LOG(ERROR) << "Failed to parse converted channel json: " << json.status(); + continue; } - grpc_core::Json json = grpc_core::Json::FromObject({ - {"server", grpc_core::Json::FromArray(std::move(array))}, - {"end", grpc_core::Json::FromBool(end)}, - }); - std::string json_str = grpc_core::JsonDump(json); - return gpr_strdup(json_str.c_str()); - } else { - return grpc_core::channelz::v2tov1::ApplyHacks( - grpc_core::channelz::v2tov1::RenderArray( - grpc_core::channelz::ChannelzRegistry::GetServers(start_server_id), - "server")); + array.emplace_back(std::move(*json)); } + grpc_core::Json json = grpc_core::Json::FromObject({ + {"channel", grpc_core::Json::FromArray(std::move(array))}, + {"end", grpc_core::Json::FromBool(end)}, + }); + std::string json_str = grpc_core::JsonDump(json); + return gpr_strdup(json_str.c_str()); } -char* grpc_channelz_get_server(intptr_t server_id) { +char* grpc_channelz_get_servers(intptr_t start_server_id) { grpc_core::ExecCtx exec_ctx; - if (grpc_core::IsChannelzUseV2ForV1ApiEnabled()) { - auto server_node = ChannelzRegistry::GetServer(server_id); - if (server_node == nullptr) return nullptr; - RegistryEntityFetcher fetcher; + RegistryEntityFetcher fetcher; + auto [servers, end] = ChannelzRegistry::GetServers(start_server_id); + grpc_core::Json::Array array; + for (const auto& server_node : servers) { + if (server_node == nullptr) continue; auto serialized_v2 = server_node->SerializeEntityToString(absl::ZeroDuration()); auto serialized_v1 = grpc_core::channelz::v2tov1::ConvertServer( serialized_v2, fetcher, true); if (!serialized_v1.ok()) { LOG(ERROR) << "Failed to convert server: " << serialized_v1.status(); - return nullptr; + continue; } auto json = grpc_core::JsonParse(*serialized_v1); if (!json.ok()) { LOG(ERROR) << "Failed to parse converted server json: " << json.status(); - return nullptr; - } - grpc_core::Json wrapped_json = grpc_core::Json::FromObject({ - {"server", std::move(*json)}, - }); - std::string json_str = grpc_core::JsonDump(wrapped_json); - return gpr_strdup(json_str.c_str()); - } else { - grpc_core::WeakRefCountedPtr server_node = - grpc_core::channelz::ChannelzRegistry::Get(server_id); - if (server_node == nullptr || - server_node->type() != - grpc_core::channelz::BaseNode::EntityType::kServer) { - return nullptr; + continue; } - grpc_core::Json json = grpc_core::Json::FromObject({ - {"server", server_node->RenderJson()}, - }); - return grpc_core::channelz::v2tov1::ApplyHacks( - grpc_core::JsonDump(json).c_str()); + array.emplace_back(std::move(*json)); } + grpc_core::Json json = grpc_core::Json::FromObject({ + {"server", grpc_core::Json::FromArray(std::move(array))}, + {"end", grpc_core::Json::FromBool(end)}, + }); + std::string json_str = grpc_core::JsonDump(json); + return gpr_strdup(json_str.c_str()); +} + +char* grpc_channelz_get_server(intptr_t server_id) { + grpc_core::ExecCtx exec_ctx; + auto server_node = ChannelzRegistry::GetServer(server_id); + if (server_node == nullptr) return nullptr; + RegistryEntityFetcher fetcher; + auto serialized_v2 = + server_node->SerializeEntityToString(absl::ZeroDuration()); + auto serialized_v1 = + grpc_core::channelz::v2tov1::ConvertServer(serialized_v2, fetcher, true); + if (!serialized_v1.ok()) { + LOG(ERROR) << "Failed to convert server: " << serialized_v1.status(); + return nullptr; + } + auto json = grpc_core::JsonParse(*serialized_v1); + if (!json.ok()) { + LOG(ERROR) << "Failed to parse converted server json: " << json.status(); + return nullptr; + } + grpc_core::Json wrapped_json = grpc_core::Json::FromObject({ + {"server", std::move(*json)}, + }); + std::string json_str = grpc_core::JsonDump(wrapped_json); + return gpr_strdup(json_str.c_str()); } char* grpc_channelz_get_server_sockets(intptr_t server_id, intptr_t start_socket_id, intptr_t max_results) { grpc_core::ExecCtx exec_ctx; - if (grpc_core::IsChannelzUseV2ForV1ApiEnabled()) { - auto server_node = ChannelzRegistry::GetServer(server_id); - if (server_node == nullptr) return nullptr; - size_t max = - max_results == 0 ? std::numeric_limits::max() : max_results; - auto [sockets, end] = ChannelzRegistry::GetChildrenOfType( - start_socket_id, server_node.get(), - grpc_core::channelz::BaseNode::EntityType::kSocket, max); - grpc_core::Json::Array array; - for (const auto& socket_node : sockets) { - if (socket_node == nullptr) continue; - array.emplace_back(grpc_core::Json::FromObject({ - {"socketId", - grpc_core::Json::FromString(absl::StrCat(socket_node->uuid()))}, - {"name", grpc_core::Json::FromString(socket_node->name())}, - })); - } - grpc_core::Json json = grpc_core::Json::FromObject({ - {"socketRef", grpc_core::Json::FromArray(std::move(array))}, - {"end", grpc_core::Json::FromBool(end)}, - }); - std::string json_str = grpc_core::JsonDump(json); - return gpr_strdup(json_str.c_str()); - } else { - // Validate inputs before handing them of to the renderer. - grpc_core::WeakRefCountedPtr base_node = - grpc_core::channelz::ChannelzRegistry::Get(server_id); - if (base_node == nullptr || - base_node->type() != - grpc_core::channelz::BaseNode::EntityType::kServer || - start_socket_id < 0 || max_results < 0) { - return nullptr; - } - // This cast is ok since we have just checked to make sure base_node is - // actually a server node. - grpc_core::channelz::ServerNode* server_node = - static_cast(base_node.get()); - return grpc_core::channelz::v2tov1::ApplyHacks( - server_node->RenderServerSockets(start_socket_id, max_results).c_str()); + auto server_node = ChannelzRegistry::GetServer(server_id); + if (server_node == nullptr) return nullptr; + size_t max = + max_results == 0 ? std::numeric_limits::max() : max_results; + auto [sockets, end] = ChannelzRegistry::GetChildrenOfType( + start_socket_id, server_node.get(), + grpc_core::channelz::BaseNode::EntityType::kSocket, max); + grpc_core::Json::Array array; + for (const auto& socket_node : sockets) { + if (socket_node == nullptr) continue; + array.emplace_back(grpc_core::Json::FromObject({ + {"socketId", + grpc_core::Json::FromString(absl::StrCat(socket_node->uuid()))}, + {"name", grpc_core::Json::FromString(socket_node->name())}, + })); } + grpc_core::Json json = grpc_core::Json::FromObject({ + {"socketRef", grpc_core::Json::FromArray(std::move(array))}, + {"end", grpc_core::Json::FromBool(end)}, + }); + std::string json_str = grpc_core::JsonDump(json); + return gpr_strdup(json_str.c_str()); } char* grpc_channelz_get_channel(intptr_t channel_id) { grpc_core::ExecCtx exec_ctx; - if (grpc_core::IsChannelzUseV2ForV1ApiEnabled()) { - auto channel_node = ChannelzRegistry::GetChannel(channel_id); - if (channel_node == nullptr) return nullptr; - RegistryEntityFetcher fetcher; - auto serialized_v2 = - channel_node->SerializeEntityToString(absl::ZeroDuration()); - auto serialized_v1 = grpc_core::channelz::v2tov1::ConvertChannel( - serialized_v2, fetcher, true); - if (!serialized_v1.ok()) { - LOG(ERROR) << "Failed to convert channel: " << serialized_v1.status(); - return nullptr; - } - auto json = grpc_core::JsonParse(*serialized_v1); - if (!json.ok()) { - LOG(ERROR) << "Failed to parse converted channel json: " << json.status(); - return nullptr; - } - grpc_core::Json wrapped_json = grpc_core::Json::FromObject({ - {"channel", std::move(*json)}, - }); - std::string json_str = grpc_core::JsonDump(wrapped_json); - return gpr_strdup(json_str.c_str()); - } else { - grpc_core::WeakRefCountedPtr channel_node = - grpc_core::channelz::ChannelzRegistry::Get(channel_id); - if (channel_node == nullptr || - (channel_node->type() != - grpc_core::channelz::BaseNode::EntityType::kTopLevelChannel && - channel_node->type() != - grpc_core::channelz::BaseNode::EntityType::kInternalChannel)) { - return nullptr; - } - grpc_core::Json json = grpc_core::Json::FromObject({ - {"channel", channel_node->RenderJson()}, - }); - return grpc_core::channelz::v2tov1::ApplyHacks( - grpc_core::JsonDump(json).c_str()); + auto channel_node = ChannelzRegistry::GetChannel(channel_id); + if (channel_node == nullptr) return nullptr; + RegistryEntityFetcher fetcher; + auto serialized_v2 = + channel_node->SerializeEntityToString(absl::ZeroDuration()); + auto serialized_v1 = + grpc_core::channelz::v2tov1::ConvertChannel(serialized_v2, fetcher, true); + if (!serialized_v1.ok()) { + LOG(ERROR) << "Failed to convert channel: " << serialized_v1.status(); + return nullptr; } + auto json = grpc_core::JsonParse(*serialized_v1); + if (!json.ok()) { + LOG(ERROR) << "Failed to parse converted channel json: " << json.status(); + return nullptr; + } + grpc_core::Json wrapped_json = grpc_core::Json::FromObject({ + {"channel", std::move(*json)}, + }); + std::string json_str = grpc_core::JsonDump(wrapped_json); + return gpr_strdup(json_str.c_str()); } char* grpc_channelz_get_subchannel(intptr_t subchannel_id) { grpc_core::ExecCtx exec_ctx; - if (grpc_core::IsChannelzUseV2ForV1ApiEnabled()) { - auto subchannel_node = ChannelzRegistry::GetSubchannel(subchannel_id); - if (subchannel_node == nullptr) return nullptr; - RegistryEntityFetcher fetcher; - auto serialized_v2 = - subchannel_node->SerializeEntityToString(absl::ZeroDuration()); - auto serialized_v1 = grpc_core::channelz::v2tov1::ConvertSubchannel( - serialized_v2, fetcher, true); - if (!serialized_v1.ok()) { - LOG(ERROR) << "Failed to convert subchannel: " << serialized_v1.status(); - return nullptr; - } - auto json = grpc_core::JsonParse(*serialized_v1); - if (!json.ok()) { - LOG(ERROR) << "Failed to parse converted subchannel json: " - << json.status(); - return nullptr; - } - grpc_core::Json wrapped_json = grpc_core::Json::FromObject({ - {"subchannel", std::move(*json)}, - }); - std::string json_str = grpc_core::JsonDump(wrapped_json); - return gpr_strdup(json_str.c_str()); - } else { - grpc_core::WeakRefCountedPtr - subchannel_node = - grpc_core::channelz::ChannelzRegistry::Get(subchannel_id); - if (subchannel_node == nullptr || - subchannel_node->type() != - grpc_core::channelz::BaseNode::EntityType::kSubchannel) { - return nullptr; - } - grpc_core::Json json = grpc_core::Json::FromObject({ - {"subchannel", subchannel_node->RenderJson()}, - }); - return grpc_core::channelz::v2tov1::ApplyHacks( - grpc_core::JsonDump(json).c_str()); + auto subchannel_node = ChannelzRegistry::GetSubchannel(subchannel_id); + if (subchannel_node == nullptr) return nullptr; + RegistryEntityFetcher fetcher; + auto serialized_v2 = + subchannel_node->SerializeEntityToString(absl::ZeroDuration()); + auto serialized_v1 = grpc_core::channelz::v2tov1::ConvertSubchannel( + serialized_v2, fetcher, true); + if (!serialized_v1.ok()) { + LOG(ERROR) << "Failed to convert subchannel: " << serialized_v1.status(); + return nullptr; + } + auto json = grpc_core::JsonParse(*serialized_v1); + if (!json.ok()) { + LOG(ERROR) << "Failed to parse converted subchannel json: " + << json.status(); + return nullptr; } + grpc_core::Json wrapped_json = grpc_core::Json::FromObject({ + {"subchannel", std::move(*json)}, + }); + std::string json_str = grpc_core::JsonDump(wrapped_json); + return gpr_strdup(json_str.c_str()); } char* grpc_channelz_get_socket(intptr_t socket_id) { grpc_core::ExecCtx exec_ctx; - if (grpc_core::IsChannelzUseV2ForV1ApiEnabled()) { - auto node = ChannelzRegistry::GetNode(socket_id); - if (node == nullptr) return nullptr; - RegistryEntityFetcher fetcher; - auto serialized_v2 = node->SerializeEntityToString(absl::ZeroDuration()); - absl::StatusOr serialized_v1; - if (node->type() == grpc_core::channelz::BaseNode::EntityType::kSocket) { - serialized_v1 = grpc_core::channelz::v2tov1::ConvertSocket(serialized_v2, - fetcher, true); - } else if (node->type() == - grpc_core::channelz::BaseNode::EntityType::kListenSocket) { - serialized_v1 = grpc_core::channelz::v2tov1::ConvertListenSocket( - serialized_v2, fetcher, true); - } else { - return nullptr; - } - if (!serialized_v1.ok()) { - LOG(ERROR) << "Failed to convert socket: " << serialized_v1.status(); - return nullptr; - } - // The old API returned a JSON object with a "socket" key. - // The new converter returns the socket JSON directly. We need to wrap it. - auto json = grpc_core::JsonParse(*serialized_v1); - if (!json.ok()) { - LOG(ERROR) << "Failed to parse converted socket json: " << json.status(); - return nullptr; - } - grpc_core::Json wrapped_json = grpc_core::Json::FromObject({ - {"socket", std::move(*json)}, - }); - std::string json_str = grpc_core::JsonDump(wrapped_json); - return gpr_strdup(json_str.c_str()); + auto node = ChannelzRegistry::GetNode(socket_id); + if (node == nullptr) return nullptr; + RegistryEntityFetcher fetcher; + auto serialized_v2 = node->SerializeEntityToString(absl::ZeroDuration()); + absl::StatusOr serialized_v1; + if (node->type() == grpc_core::channelz::BaseNode::EntityType::kSocket) { + serialized_v1 = grpc_core::channelz::v2tov1::ConvertSocket(serialized_v2, + fetcher, true); + } else if (node->type() == + grpc_core::channelz::BaseNode::EntityType::kListenSocket) { + serialized_v1 = grpc_core::channelz::v2tov1::ConvertListenSocket( + serialized_v2, fetcher, true); } else { - grpc_core::WeakRefCountedPtr socket_node = - grpc_core::channelz::ChannelzRegistry::Get(socket_id); - if (socket_node == nullptr || - (socket_node->type() != - grpc_core::channelz::BaseNode::EntityType::kSocket && - socket_node->type() != - grpc_core::channelz::BaseNode::EntityType::kListenSocket)) { - return nullptr; - } - grpc_core::Json json = grpc_core::Json::FromObject({ - {"socket", socket_node->RenderJson()}, - }); - return grpc_core::channelz::v2tov1::ApplyHacks( - grpc_core::JsonDump(json).c_str()); + return nullptr; + } + if (!serialized_v1.ok()) { + LOG(ERROR) << "Failed to convert socket: " << serialized_v1.status(); + return nullptr; + } + // The old API returned a JSON object with a "socket" key. + // The new converter returns the socket JSON directly. We need to wrap it. + auto json = grpc_core::JsonParse(*serialized_v1); + if (!json.ok()) { + LOG(ERROR) << "Failed to parse converted socket json: " << json.status(); + return nullptr; } + grpc_core::Json wrapped_json = grpc_core::Json::FromObject({ + {"socket", std::move(*json)}, + }); + std::string json_str = grpc_core::JsonDump(wrapped_json); + return gpr_strdup(json_str.c_str()); } diff --git a/src/core/channelz/zviz/data.cc b/src/core/channelz/zviz/data.cc index fa356b507b796..f9c5f6cbf9eb8 100644 --- a/src/core/channelz/zviz/data.cc +++ b/src/core/channelz/zviz/data.cc @@ -262,7 +262,7 @@ bool PromiseFormatter(Environment&, google::protobuf::Any value, layout::Element& element) { grpc::channelz::v2::Promise promise; if (!value.UnpackTo(&promise)) return false; - element.AppendText(layout::Intent::kData, grpc_zviz::Format(promise)); + element.AppendText(layout::Intent::kCode, grpc_zviz::Format(promise)); return true; } diff --git a/src/core/channelz/zviz/layout.h b/src/core/channelz/zviz/layout.h index 9fe76d1f61263..bb82466277bc9 100644 --- a/src/core/channelz/zviz/layout.h +++ b/src/core/channelz/zviz/layout.h @@ -37,11 +37,15 @@ enum class Intent { kKey, kValue, kWarning, + kCode, }; template void AbslStringify(Sink& sink, Intent intent) { switch (intent) { + case Intent::kCode: + sink.Append("code"); + break; case Intent::kBanner: sink.Append("banner"); break; diff --git a/src/core/channelz/zviz/style.cc b/src/core/channelz/zviz/style.cc index 88066594f4402..f2202c3d18e8e 100644 --- a/src/core/channelz/zviz/style.cc +++ b/src/core/channelz/zviz/style.cc @@ -50,6 +50,8 @@ body { margin-top: 0; } .zviz-data { + white-space: pre-wrap; + font-family: monospace; } .zviz-key { font-weight: bold; diff --git a/src/core/client_channel/buffered_call.cc b/src/core/client_channel/buffered_call.cc index 82b779a4f0c70..6eb4f37ea8a0e 100644 --- a/src/core/client_channel/buffered_call.cc +++ b/src/core/client_channel/buffered_call.cc @@ -111,7 +111,8 @@ void BufferedCall::ResumePendingBatchInCallCombiner( // This is called via the call combiner, so access to calld is synchronized. void BufferedCall::Resume( - absl::AnyInvocable start_batch) { + absl::AnyInvocable start_batch, + YieldCallCombinerPredicate yield_call_combiner_predicate) { if (GRPC_TRACE_FLAG_ENABLED_OBJ(*tracer_)) { size_t num_batches = 0; for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) { @@ -133,8 +134,11 @@ void BufferedCall::Resume( batch = nullptr; } } - // Note: This will release the call combiner. - closures.RunClosures(call_combiner_); + if (yield_call_combiner_predicate(closures)) { + closures.RunClosures(call_combiner_); + } else { + closures.RunClosuresWithoutYielding(call_combiner_); + } } } // namespace grpc_core diff --git a/src/core/client_channel/buffered_call.h b/src/core/client_channel/buffered_call.h index 395348d0c022c..08379ce4a41da 100644 --- a/src/core/client_channel/buffered_call.h +++ b/src/core/client_channel/buffered_call.h @@ -45,11 +45,6 @@ class BufferedCall { // Must be called from within the call combiner. void EnqueueBatch(grpc_transport_stream_op_batch* batch); - // Resumes all queued batches by passing them to start_batch(). - // Must be called from within the call combiner. - void Resume( - absl::AnyInvocable start_batch); - // A predicate type and some useful implementations for Fail(). typedef bool (*YieldCallCombinerPredicate)( const CallCombinerClosureList& closures); @@ -63,6 +58,17 @@ class BufferedCall { const CallCombinerClosureList& closures) { return closures.size() > 0; } + + // Resumes all queued batches by passing them to start_batch(). + // Must be called from within the call combiner. + void Resume( + absl::AnyInvocable start_batch) { + Resume(std::move(start_batch), YieldCallCombiner); + } + void Resume( + absl::AnyInvocable start_batch, + YieldCallCombinerPredicate yield_call_combiner_predicate); + // Fails all queued batches. // Must be called from within the call combiner. // If yield_call_combiner_predicate returns true, assumes responsibility for diff --git a/src/core/client_channel/client_channel.cc b/src/core/client_channel/client_channel.cc index 502fa0789d9b2..24e34cda8786d 100644 --- a/src/core/client_channel/client_channel.cc +++ b/src/core/client_channel/client_channel.cc @@ -679,7 +679,7 @@ ClientChannel::ClientChannel( client_channel_factory_(client_channel_factory), channelz_node_(channel_args_.GetObject()), idle_timeout_(GetClientIdleTimeout(channel_args_)), - resolver_data_for_calls_(ResolverDataForCalls{}), + resolver_data_for_calls_(nullptr), picker_(nullptr), call_destination_( call_destination_factory->CreateCallDestination(picker_)), @@ -906,6 +906,72 @@ grpc_call* ClientChannel::CreateCall( compression_options(), std::move(arena), Ref()); } +namespace { + +class FilterChainImpl final : public FilterChain { + public: + explicit FilterChainImpl(RefCountedPtr destination) + : destination_(std::move(destination)) {} + + UnstartedCallDestination* destination() const { return destination_.get(); } + + private: + RefCountedPtr destination_; +}; + +class FilterChainBuilderImpl final : public FilterChainBuilder { + public: + FilterChainBuilderImpl( + bool enable_retries, const ChannelArgs& channel_args, + Blackboard* blackboard, + std::function on_server_trailing_metadata, + RefCountedPtr destination) + : enable_retries_(enable_retries), + channel_args_(channel_args), + blackboard_(blackboard), + on_server_trailing_metadata_(std::move(on_server_trailing_metadata)), + destination_(std::move(destination)) {} + + absl::StatusOr> Build() override { + if (builder_ == nullptr) InitBuilder(); + if (enable_retries_) builder_->Add(nullptr); + auto top_of_stack_destination = builder_->Build(destination_); + if (!top_of_stack_destination.ok()) { + return MaybeRewriteIllegalStatusCode(top_of_stack_destination.status(), + "channel construction"); + } + builder_.reset(); + return MakeRefCounted( + std::move(*top_of_stack_destination)); + } + + private: + void AddFilter(const FilterHandle& filter_handle, + RefCountedPtr config) override { + if (builder_ == nullptr) InitBuilder(); + filter_handle.AddToBuilder(builder_.get(), std::move(config)); + } + + void InitBuilder() { + builder_ = + std::make_unique(channel_args_, blackboard_); + if (on_server_trailing_metadata_ != nullptr) { + builder_->AddOnServerTrailingMetadata(on_server_trailing_metadata_); + } + CoreConfiguration::Get().channel_init().AddToInterceptionChainBuilder( + GRPC_CLIENT_CHANNEL, *builder_); + } + + const bool enable_retries_; + const ChannelArgs channel_args_; + const Blackboard* blackboard_; + const std::function on_server_trailing_metadata_; + const RefCountedPtr destination_; + std::unique_ptr builder_; +}; + +} // namespace + void ClientChannel::StartCall(UnstartedCallHandler unstarted_handler) { // Increment call count. if (idle_timeout_ != Duration::Zero()) idle_state_.IncreaseCallCount(); @@ -924,31 +990,32 @@ void ClientChannel::StartCall(UnstartedCallHandler unstarted_handler) { // Wait for the resolver result. CheckDelayed(self->resolver_data_for_calls_.NextWhen( [wait_for_ready]( - const absl::StatusOr result) { + const absl::StatusOr> + config_selector) { bool got_result = false; // If the resolver reports an error but the call is // wait_for_ready, keep waiting for the next result // instead of failing the call. - if (!result.ok()) { + if (!config_selector.ok()) { got_result = !wait_for_ready; } else { // Not an error. Make sure we actually have a result. - got_result = result->config_selector != nullptr; + got_result = *config_selector != nullptr; } return got_result; })), // Handle resolver result. [self, unstarted_handler]( - std::tuple, bool> + std::tuple>, bool> result_and_delayed) mutable { - auto& resolver_data = std::get<0>(result_and_delayed); - const bool was_queued = std::get<1>(result_and_delayed); - if (!resolver_data.ok()) return resolver_data.status(); + auto& [config_selector, was_queued] = result_and_delayed; + if (!config_selector.ok()) return config_selector.status(); // Apply service config to call. - absl::Status status = self->ApplyServiceConfigToCall( - *resolver_data->config_selector, - unstarted_handler.UnprocessedClientInitialMetadata()); - if (!status.ok()) return status; + absl::StatusOr> filter_chain = + self->ApplyServiceConfigToCall( + **config_selector, + unstarted_handler.UnprocessedClientInitialMetadata()); + if (!filter_chain.ok()) return filter_chain.status(); // If the call was queued, add trace annotation. if (was_queued) { auto* call_tracer = MaybeGetContext(); @@ -959,8 +1026,10 @@ void ClientChannel::StartCall(UnstartedCallHandler unstarted_handler) { } // Start the call on the destination provided by the // resolver. - resolver_data->call_destination->StartCall( - std::move(unstarted_handler)); + auto destination = + DownCast(filter_chain->get()) + ->destination(); + destination->StartCall(std::move(unstarted_handler)); return absl::OkStatus(); }); }); @@ -992,7 +1061,7 @@ void ClientChannel::DestroyResolverAndLbPolicyLocked() { resolver_.reset(); saved_service_config_.reset(); saved_config_selector_.reset(); - resolver_data_for_calls_.Set(ResolverDataForCalls{nullptr, nullptr}); + resolver_data_for_calls_.Set(nullptr); // Clear LB policy if set. if (lb_policy_ != nullptr) { GRPC_TRACE_LOG(client_channel, INFO) @@ -1324,35 +1393,26 @@ void ClientChannel::UpdateServiceConfigInDataPlaneLocked( ChannelArgs new_args = args.SetObject(this).SetObject(saved_service_config_); // Construct filter stack. auto new_blackboard = MakeRefCounted(); - InterceptionChainBuilder builder(new_args, new_blackboard.get()); - if (idle_timeout_ != Duration::Zero()) { - builder.AddOnServerTrailingMetadata([this](ServerMetadata&) { - if (idle_state_.DecreaseCallCount()) StartIdleTimer(); - }); - } - CoreConfiguration::Get().channel_init().AddToInterceptionChainBuilder( - GRPC_CLIENT_CHANNEL, builder); - // Add filters returned by the config selector (e.g., xDS HTTP filters). - config_selector->AddFilters(builder, blackboard_.get(), new_blackboard.get()); const bool enable_retries = !channel_args_.WantMinimalStack() && channel_args_.GetBool(GRPC_ARG_ENABLE_RETRIES).value_or(true); if (enable_retries) { RetryInterceptor::UpdateBlackboard(*saved_service_config_, blackboard_.get(), new_blackboard.get()); - builder.Add(nullptr); } - blackboard_ = std::move(new_blackboard); - // Create call destination. - auto top_of_stack_call_destination = builder.Build(call_destination_); - // Send result to data plane. - if (!top_of_stack_call_destination.ok()) { - resolver_data_for_calls_.Set(MaybeRewriteIllegalStatusCode( - top_of_stack_call_destination.status(), "channel construction")); - } else { - resolver_data_for_calls_.Set(ResolverDataForCalls{ - std::move(config_selector), std::move(*top_of_stack_call_destination)}); + std::function on_server_trailing_metadata; + if (idle_timeout_ != Duration::Zero()) { + on_server_trailing_metadata = [this](ServerMetadata&) { + if (idle_state_.DecreaseCallCount()) StartIdleTimer(); + }; } + FilterChainBuilderImpl filter_chain_builder( + enable_retries, new_args, new_blackboard.get(), + std::move(on_server_trailing_metadata), call_destination_); + config_selector->BuildFilterChains(filter_chain_builder, blackboard_.get(), + new_blackboard.get()); + blackboard_ = std::move(new_blackboard); + resolver_data_for_calls_.Set(std::move(config_selector)); } void ClientChannel::UpdateStateLocked(grpc_connectivity_state state, @@ -1423,7 +1483,8 @@ void ClientChannel::StartIdleTimer() { std::move(arena))); } -absl::Status ClientChannel::ApplyServiceConfigToCall( +absl::StatusOr> +ClientChannel::ApplyServiceConfigToCall( ConfigSelector& config_selector, ClientMetadata& client_initial_metadata) const { GRPC_TRACE_LOG(client_channel_call, INFO) @@ -1438,11 +1499,12 @@ absl::Status ClientChannel::ApplyServiceConfigToCall( GetContext()->New( GetContext()); // Use the ConfigSelector to determine the config for the call. - absl::Status call_config_status = config_selector.GetCallConfig( - {&client_initial_metadata, GetContext(), - service_config_call_data}); - if (!call_config_status.ok()) { - return MaybeRewriteIllegalStatusCode(call_config_status, "ConfigSelector"); + auto filter_chain = config_selector.GetCallConfig({&client_initial_metadata, + GetContext(), + service_config_call_data}); + if (!filter_chain.ok()) { + return MaybeRewriteIllegalStatusCode(filter_chain.status(), + "ConfigSelector"); } // Apply our own method params to the call. auto* method_params = DownCast( @@ -1467,7 +1529,7 @@ absl::Status ClientChannel::ApplyServiceConfigToCall( wait_for_ready->value = method_params->wait_for_ready().value(); } } - return absl::OkStatus(); + return filter_chain; } } // namespace grpc_core diff --git a/src/core/client_channel/client_channel.h b/src/core/client_channel/client_channel.h index 55e5f438c4a2e..43f1ce663cd4f 100644 --- a/src/core/client_channel/client_channel.h +++ b/src/core/client_channel/client_channel.h @@ -166,7 +166,7 @@ class ClientChannel : public Channel { // Applies service config settings from config_selector to the call. // May modify call context and client_initial_metadata. - absl::Status ApplyServiceConfigToCall( + absl::StatusOr> ApplyServiceConfigToCall( ConfigSelector& config_selector, ClientMetadata& client_initial_metadata) const; @@ -192,11 +192,8 @@ class ClientChannel : public Channel { // // Fields related to name resolution. // - struct ResolverDataForCalls { - RefCountedPtr config_selector; - RefCountedPtr call_destination; - }; - Observable> resolver_data_for_calls_; + Observable>> + resolver_data_for_calls_; // // Fields related to LB picks. diff --git a/src/core/client_channel/client_channel_filter.cc b/src/core/client_channel/client_channel_filter.cc index 68e69a5a242dc..22182b9067062 100644 --- a/src/core/client_channel/client_channel_filter.cc +++ b/src/core/client_channel/client_channel_filter.cc @@ -217,7 +217,7 @@ class ClientChannelFilter::CallData { grpc_closure* original_recv_trailing_metadata_ready_ = nullptr; grpc_closure recv_trailing_metadata_ready_; - RefCountedPtr dynamic_filters_; + RefCountedPtr dynamic_filters_; RefCountedPtr dynamic_call_; BufferedCall buffered_call_; @@ -1417,6 +1417,46 @@ void ClientChannelFilter::UpdateServiceConfigInControlPlaneLocked( << saved_config_selector_.get(); } +namespace { + +// Filter chain builder impl to inject into ConfigSelector. +class LegacyFilterChainBuilder final : public FilterChainBuilder { + public: + LegacyFilterChainBuilder(bool enable_retries, const ChannelArgs& channel_args, + const Blackboard* blackboard) + : enable_retries_(enable_retries), + channel_args_(channel_args), + blackboard_(blackboard) {} + + absl::StatusOr> Build() override { + if (enable_retries_) { + filters_.push_back({&RetryFilter::kFilterVtable, nullptr}); + } else { + filters_.push_back({&DynamicTerminationFilter::kFilterVtable, nullptr}); + } + RefCountedPtr dynamic_filters = + DynamicFilters::Create(channel_args_, std::move(filters_), blackboard_); + if (dynamic_filters == nullptr) { + return absl::InternalError("error constructing dynamic filter stack"); + } + filters_.clear(); + return dynamic_filters; + } + + private: + void AddFilter(const FilterHandle& filter_handle, + RefCountedPtr config) override { + filter_handle.AddToBuilder(&filters_, std::move(config)); + } + + const bool enable_retries_; + const ChannelArgs channel_args_; + const Blackboard* blackboard_; + std::vector filters_; +}; + +} // namespace + void ClientChannelFilter::UpdateServiceConfigInDataPlaneLocked( const ChannelArgs& args) { // Grab ref to service config. @@ -1437,19 +1477,15 @@ void ClientChannelFilter::UpdateServiceConfigInDataPlaneLocked( new_args.GetBool(GRPC_ARG_ENABLE_RETRIES).value_or(true); // Construct dynamic filter stack. auto new_blackboard = MakeRefCounted(); - std::vector filters = - config_selector->GetFilters(blackboard_.get(), new_blackboard.get()); if (enable_retries) { RetryFilter::UpdateBlackboard(*service_config, blackboard_.get(), new_blackboard.get()); - filters.push_back(&RetryFilter::kVtable); - } else { - filters.push_back(&DynamicTerminationFilter::kFilterVtable); } + LegacyFilterChainBuilder filter_chain_builder(enable_retries, new_args, + new_blackboard.get()); + config_selector->BuildFilterChains(filter_chain_builder, blackboard_.get(), + new_blackboard.get()); blackboard_ = std::move(new_blackboard); - RefCountedPtr dynamic_filters = - DynamicFilters::Create(new_args, std::move(filters), blackboard_.get()); - GRPC_CHECK(dynamic_filters != nullptr); // Grab data plane lock to update service config. // // We defer unreffing the old values (and deallocating memory) until @@ -1462,7 +1498,6 @@ void ClientChannelFilter::UpdateServiceConfigInDataPlaneLocked( // Old values will be unreffed after lock is released. service_config_.swap(service_config); config_selector_.swap(config_selector); - dynamic_filters_.swap(dynamic_filters); // Re-process queued calls asynchronously. ReprocessQueuedResolverCalls(); } @@ -1500,13 +1535,11 @@ void ClientChannelFilter::DestroyResolverAndLbPolicyLocked() { // after we release the lock. RefCountedPtr service_config_to_unref; RefCountedPtr config_selector_to_unref; - RefCountedPtr dynamic_filters_to_unref; { MutexLock lock(&resolution_mu_); received_service_config_data_ = false; service_config_to_unref = std::move(service_config_); config_selector_to_unref = std::move(config_selector_); - dynamic_filters_to_unref = std::move(dynamic_filters_); } // Clear LB policy if set. if (lb_policy_ != nullptr) { @@ -1849,14 +1882,14 @@ grpc_error_handle ClientChannelFilter::CallData::ApplyServiceConfigToCallLocked( auto* service_config_call_data = arena_->New(arena_); // Use the ConfigSelector to determine the config for the call. - absl::Status call_config_status = - (*config_selector) - ->GetCallConfig( - {send_initial_metadata(), arena_, service_config_call_data}); - if (!call_config_status.ok()) { + auto filter_chain = (*config_selector) + ->GetCallConfig({send_initial_metadata(), arena_, + service_config_call_data}); + if (!filter_chain.ok()) { return absl_status_to_grpc_error( - MaybeRewriteIllegalStatusCode(call_config_status, "ConfigSelector")); + MaybeRewriteIllegalStatusCode(filter_chain.status(), "ConfigSelector")); } + dynamic_filters_ = filter_chain->TakeAsSubclass(); // Apply our own method params to the call. auto* method_params = static_cast( service_config_call_data->GetMethodParsedConfig( @@ -1937,7 +1970,6 @@ bool ClientChannelFilter::CallData::CheckResolutionLocked( } // Result found. *config_selector = chand()->config_selector_; - dynamic_filters_ = chand()->dynamic_filters_; return true; } @@ -2105,7 +2137,7 @@ void ClientChannelFilter::CallData::CreateDynamicCall() { call_start_time_, deadline_, arena_, call_combiner_}; grpc_error_handle error; - DynamicFilters* channel_stack = args.channel_stack.get(); + const DynamicFilters* channel_stack = args.channel_stack.get(); GRPC_TRACE_LOG(client_channel_call, INFO) << "chand=" << chand() << " calld=" << this << ": creating dynamic call stack on channel_stack=" << channel_stack; diff --git a/src/core/client_channel/client_channel_filter.h b/src/core/client_channel/client_channel_filter.h index 025674fc8c48e..ca2ffba7934eb 100644 --- a/src/core/client_channel/client_channel_filter.h +++ b/src/core/client_channel/client_channel_filter.h @@ -276,8 +276,6 @@ class ClientChannelFilter final { RefCountedPtr service_config_ ABSL_GUARDED_BY(resolution_mu_); RefCountedPtr config_selector_ ABSL_GUARDED_BY(resolution_mu_); - RefCountedPtr dynamic_filters_ - ABSL_GUARDED_BY(resolution_mu_); // // Fields related to LB picks. Guarded by lb_mu_. diff --git a/src/core/client_channel/client_channel_internal.h b/src/core/client_channel/client_channel_internal.h index 392cfc18d854e..ca14d8fd36e7b 100644 --- a/src/core/client_channel/client_channel_internal.h +++ b/src/core/client_channel/client_channel_internal.h @@ -45,6 +45,11 @@ #define GRPC_ARG_MAX_CONNECTIONS_PER_SUBCHANNEL \ "grpc.internal.max_connections_per_subchannel" +// EXPERIMENTAL: Fail requests at the client if the client is over max +// concurrent streams, so they may be retried elsewhere. +#define GRPC_ARG_MAX_CONCURRENT_STREAMS_REJECT_ON_CLIENT \ + "grpc.http.max_concurrent_streams_reject_on_client" + namespace grpc_core { // Internal type for LB call state interface. Provides an interface for diff --git a/src/core/client_channel/config_selector.h b/src/core/client_channel/config_selector.h index 89dd23809798c..d94f920ebf144 100644 --- a/src/core/client_channel/config_selector.h +++ b/src/core/client_channel/config_selector.h @@ -28,6 +28,7 @@ #include "src/core/call/metadata_batch.h" #include "src/core/client_channel/client_channel_internal.h" #include "src/core/filter/blackboard.h" +#include "src/core/filter/filter_chain.h" #include "src/core/lib/channel/channel_fwd.h" #include "src/core/lib/resource_quota/arena.h" #include "src/core/lib/slice/slice.h" @@ -61,15 +62,10 @@ class ConfigSelector : public RefCounted { } // The channel will call this when the resolver returns a new ConfigSelector - // to determine what set of dynamic filters will be configured. - virtual void AddFilters(InterceptionChainBuilder& /*builder*/, - const Blackboard* /*old_blackboard*/, - Blackboard* /*new_blackboard*/) {} - // TODO(roth): Remove this once the legacy filter stack goes away. - virtual std::vector GetFilters( - const Blackboard* /*old_blackboard*/, Blackboard* /*new_blackboard*/) { - return {}; - } + // to initialize the filter chains that the ConfigSelector may need. + virtual void BuildFilterChains(FilterChainBuilder& builder, + const Blackboard* old_blackboard, + Blackboard* new_blackboard) = 0; // Gets the configuration for the call and stores it in service config // call data. @@ -78,7 +74,8 @@ class ConfigSelector : public RefCounted { Arena* arena; ClientChannelServiceConfigCallData* service_config_call_data; }; - virtual absl::Status GetCallConfig(GetCallConfigArgs args) = 0; + virtual absl::StatusOr> GetCallConfig( + GetCallConfigArgs args) = 0; static absl::string_view ChannelArgName() { return GRPC_ARG_CONFIG_SELECTOR; } static int ChannelArgsCompare(const ConfigSelector* a, @@ -108,14 +105,21 @@ class DefaultConfigSelector final : public ConfigSelector { return kFactory.Create(); } - absl::Status GetCallConfig(GetCallConfigArgs args) override { + void BuildFilterChains(FilterChainBuilder& builder, + const Blackboard* /*old_blackboard*/, + Blackboard* /*new_blackboard*/) override { + filter_chain_ = builder.Build(); + } + + absl::StatusOr> GetCallConfig( + GetCallConfigArgs args) override { Slice* path = args.initial_metadata->get_pointer(HttpPathMetadata()); GRPC_CHECK_NE(path, nullptr); auto* parsed_method_configs = service_config_->GetMethodParsedConfigVector(path->c_slice()); args.service_config_call_data->SetServiceConfig(service_config_, parsed_method_configs); - return absl::OkStatus(); + return filter_chain_; } // Only comparing the ConfigSelector itself, not the underlying @@ -124,6 +128,7 @@ class DefaultConfigSelector final : public ConfigSelector { private: RefCountedPtr service_config_; + absl::StatusOr> filter_chain_; }; } // namespace grpc_core diff --git a/src/core/client_channel/dynamic_filters.cc b/src/core/client_channel/dynamic_filters.cc index 70abb90a1aab3..989156856dd88 100644 --- a/src/core/client_channel/dynamic_filters.cc +++ b/src/core/client_channel/dynamic_filters.cc @@ -109,7 +109,8 @@ void DynamicFilters::Call::Destroy(void* arg, grpc_error_handle /*error*/) { DynamicFilters::Call* self = static_cast(arg); // Keep some members before destroying the subchannel call. grpc_closure* after_call_stack_destroy = self->after_call_stack_destroy_; - RefCountedPtr channel_stack = std::move(self->channel_stack_); + RefCountedPtr channel_stack = + std::move(self->channel_stack_); // Destroy the subchannel call. self->~Call(); // Destroy the call stack. This should be after destroying the call, because @@ -136,12 +137,12 @@ void DynamicFilters::Call::IncrementRefCount(const DebugLocation& /*location*/, namespace { absl::StatusOr> CreateChannelStack( - const ChannelArgs& args, std::vector filters, + const ChannelArgs& args, std::vector filters, const Blackboard* blackboard) { ChannelStackBuilderImpl builder("DynamicFilters", GRPC_CLIENT_DYNAMIC, args); builder.SetBlackboard(blackboard); - for (auto filter : filters) { - builder.AppendFilter(filter); + for (auto& [filter, config] : filters) { + builder.AppendFilter(filter, std::move(config)); } return builder.Build(); } @@ -149,7 +150,7 @@ absl::StatusOr> CreateChannelStack( } // namespace RefCountedPtr DynamicFilters::Create( - const ChannelArgs& args, std::vector filters, + const ChannelArgs& args, std::vector filters, const Blackboard* blackboard) { // Attempt to create channel stack from requested filters. auto p = CreateChannelStack(args, std::move(filters), blackboard); @@ -158,13 +159,13 @@ RefCountedPtr DynamicFilters::Create( // Create with lame filter instead. auto error = p.status(); p = CreateChannelStack(args.Set(MakeLameClientErrorArg(&error)), - {&LameClientFilter::kFilter}, nullptr); + {{&LameClientFilter::kFilter, nullptr}}, nullptr); } return MakeRefCounted(std::move(p.value())); } RefCountedPtr DynamicFilters::CreateCall( - DynamicFilters::Call::Args args, grpc_error_handle* error) { + DynamicFilters::Call::Args args, grpc_error_handle* error) const { size_t allocation_size = GPR_ROUND_UP_TO_ALIGNMENT_SIZE(sizeof(Call)) + channel_stack_->call_stack_size; Call* call = static_cast(args.arena->Alloc(allocation_size)); diff --git a/src/core/client_channel/dynamic_filters.h b/src/core/client_channel/dynamic_filters.h index 7e81a5d709f8b..263d41bb48918 100644 --- a/src/core/client_channel/dynamic_filters.h +++ b/src/core/client_channel/dynamic_filters.h @@ -24,6 +24,7 @@ #include #include "src/core/filter/blackboard.h" +#include "src/core/filter/filter_chain.h" #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/channel/channel_fwd.h" #include "src/core/lib/channel/channel_stack.h" @@ -41,13 +42,13 @@ namespace grpc_core { -class DynamicFilters final : public RefCounted { +class DynamicFilters final : public FilterChain { public: // Implements the interface of RefCounted<>. class Call { public: struct Args { - RefCountedPtr channel_stack; + RefCountedPtr channel_stack; grpc_polling_entity* pollent; gpr_cycle_counter start_time; Timestamp deadline; @@ -84,18 +85,19 @@ class DynamicFilters final : public RefCounted { static void Destroy(void* arg, grpc_error_handle error); - RefCountedPtr channel_stack_; + RefCountedPtr channel_stack_; grpc_closure* after_call_stack_destroy_ = nullptr; }; static RefCountedPtr Create( - const ChannelArgs& args, std::vector filters, + const ChannelArgs& args, std::vector filters, const Blackboard* blackboard); explicit DynamicFilters(RefCountedPtr channel_stack) : channel_stack_(std::move(channel_stack)) {} - RefCountedPtr CreateCall(Call::Args args, grpc_error_handle* error); + RefCountedPtr CreateCall(Call::Args args, + grpc_error_handle* error) const; grpc_channel_stack* channel_stack() const { return channel_stack_.get(); } diff --git a/src/core/client_channel/retry_filter.cc b/src/core/client_channel/retry_filter.cc index ac494396b27dd..2e28c0565de79 100644 --- a/src/core/client_channel/retry_filter.cc +++ b/src/core/client_channel/retry_filter.cc @@ -127,7 +127,7 @@ const RetryMethodConfig* RetryFilter::GetRetryPolicy(Arena* arena) { svc_cfg_call_data->GetMethodParsedConfig(service_config_parser_index_)); } -const grpc_channel_filter RetryFilter::kVtable = { +const grpc_channel_filter RetryFilter::kFilterVtable = { RetryFilter::LegacyCallData::StartTransportStreamOpBatch, RetryFilter::StartTransportOp, sizeof(RetryFilter::LegacyCallData), diff --git a/src/core/client_channel/retry_filter.h b/src/core/client_channel/retry_filter.h index aa1286e3008e3..53430cb8de2eb 100644 --- a/src/core/client_channel/retry_filter.h +++ b/src/core/client_channel/retry_filter.h @@ -43,7 +43,7 @@ namespace grpc_core { class RetryFilter final { public: - static const grpc_channel_filter kVtable; + static const grpc_channel_filter kFilterVtable; static void UpdateBlackboard(const ServiceConfig& service_config, const Blackboard* old_blackboard, @@ -89,7 +89,7 @@ class RetryFilter final { static grpc_error_handle Init(grpc_channel_element* elem, grpc_channel_element_args* args) { GRPC_CHECK(args->is_last); - GRPC_CHECK(elem->filter == &kVtable); + GRPC_CHECK(elem->filter == &kFilterVtable); new (elem->channel_data) RetryFilter(*args); return absl::OkStatus(); } diff --git a/src/core/client_channel/subchannel.cc b/src/core/client_channel/subchannel.cc index 2b7c1ef0064d6..8524e02757b7c 100644 --- a/src/core/client_channel/subchannel.cc +++ b/src/core/client_channel/subchannel.cc @@ -32,8 +32,10 @@ #include "src/core/call/interception_chain.h" #include "src/core/channelz/channel_trace.h" #include "src/core/channelz/channelz.h" +#include "src/core/client_channel/buffered_call.h" #include "src/core/client_channel/client_channel_internal.h" #include "src/core/client_channel/subchannel_pool_interface.h" +#include "src/core/client_channel/subchannel_stream_limiter.h" #include "src/core/config/core_configuration.h" #include "src/core/handshaker/proxy_mapper_registry.h" #include "src/core/lib/address_utils/sockaddr_utils.h" @@ -1061,9 +1063,14 @@ OldSubchannel::GetConnectedSubchannel() { // class NewSubchannel::ConnectedSubchannel - : public RefCounted { + : public DualRefCounted { public: + ~ConnectedSubchannel() override { + subchannel_.reset(DEBUG_LOCATION, "ConnectedSubchannel"); + } + const ChannelArgs& args() const { return args_; } + NewSubchannel* subchannel() const { return subchannel_.get(); } virtual void StartWatch( grpc_pollset_set* interested_parties, @@ -1079,15 +1086,41 @@ class NewSubchannel::ConnectedSubchannel grpc_error_handle* error) = 0; virtual void Ping(grpc_closure* on_initiate, grpc_closure* on_ack) = 0; + // Returns true if there is quota for another RPC to start on this + // connection. + GRPC_MUST_USE_RESULT bool SetMaxConcurrentStreams( + uint32_t max_concurrent_streams) { + return stream_limiter_.SetMaxConcurrentStreams(max_concurrent_streams); + } + + // Returns true if the RPC can start. + bool GetQuotaForRpc() { + GRPC_TRACE_LOG(subchannel_call, INFO) + << "subchannel " << subchannel_.get() << " connection " << this + << ": attempting to get quota for an RPC..."; + bool result = stream_limiter_.GetQuotaForRpc(); + GRPC_TRACE_LOG(subchannel_call, INFO) << " quota acquired: " << result; + return result; + } + + // Returns true if this RPC finishing brought the connection below quota. + bool ReturnQuotaForRpc() { return stream_limiter_.ReturnQuotaForRpc(); } + protected: - explicit ConnectedSubchannel(const ChannelArgs& args) - : RefCounted( + explicit ConnectedSubchannel(WeakRefCountedPtr subchannel, + const ChannelArgs& args, + uint32_t max_concurrent_streams) + : DualRefCounted( GRPC_TRACE_FLAG_ENABLED(subchannel_refcount) ? "ConnectedSubchannel" : nullptr), - args_(args) {} + subchannel_(std::move(subchannel)), + args_(args), + stream_limiter_(max_concurrent_streams) {} private: + WeakRefCountedPtr subchannel_; ChannelArgs args_; + SubchannelStreamLimiter stream_limiter_; }; // @@ -1098,13 +1131,16 @@ class NewSubchannel::LegacyConnectedSubchannel final : public ConnectedSubchannel { public: LegacyConnectedSubchannel( + WeakRefCountedPtr subchannel, RefCountedPtr channel_stack, const ChannelArgs& args, - RefCountedPtr channelz_node) - : ConnectedSubchannel(args), + RefCountedPtr channelz_node, + uint32_t max_concurrent_streams) + : ConnectedSubchannel(std::move(subchannel), args, + max_concurrent_streams), channelz_node_(std::move(channelz_node)), channel_stack_(std::move(channel_stack)) {} - ~LegacyConnectedSubchannel() override { + void Orphaned() override { channel_stack_.reset(DEBUG_LOCATION, "ConnectedSubchannel"); } @@ -1181,6 +1217,10 @@ class NewSubchannel::LegacyConnectedSubchannel final static void Destroy(void* arg, grpc_error_handle error); + // Returns the quota for this RPC. If that brings the connection + // below quota, then try to drain the queue. + void MaybeReturnQuota(); + RefCountedPtr connected_subchannel_; grpc_closure* after_call_stack_destroy_ = nullptr; // State needed to support channelz interception of recv trailing metadata. @@ -1188,6 +1228,7 @@ class NewSubchannel::LegacyConnectedSubchannel final grpc_closure* original_recv_trailing_metadata_ = nullptr; grpc_metadata_batch* recv_trailing_metadata_ = nullptr; Timestamp deadline_; + bool returned_quota_ = false; }; RefCountedPtr channelz_node_; @@ -1203,6 +1244,9 @@ NewSubchannel::LegacyConnectedSubchannel::SubchannelCall::SubchannelCall( CreateCallArgs args, grpc_error_handle* error) : connected_subchannel_(std::move(connected_subchannel)), deadline_(args.deadline) { + GRPC_TRACE_LOG(subchannel_call, INFO) + << "subchannel " << connected_subchannel_->subchannel() << " connection " + << connected_subchannel_.get() << ": created call " << this; grpc_call_stack* callstk = SUBCHANNEL_CALL_TO_CALL_STACK(this); const grpc_call_element_args call_args = { callstk, // call_stack @@ -1226,6 +1270,10 @@ NewSubchannel::LegacyConnectedSubchannel::SubchannelCall::SubchannelCall( void NewSubchannel::LegacyConnectedSubchannel::SubchannelCall:: StartTransportStreamOpBatch(grpc_transport_stream_op_batch* batch) { + GRPC_TRACE_LOG(subchannel_call, INFO) + << "subchannel " << connected_subchannel_->subchannel() << " connection " + << connected_subchannel_.get() << " call " << this << ": starting batch: " + << grpc_transport_stream_op_batch_string(batch, false); MaybeInterceptRecvTrailingMetadata(batch); grpc_call_stack* call_stack = SUBCHANNEL_CALL_TO_CALL_STACK(this); grpc_call_element* top_elem = grpc_call_stack_element(call_stack, 0); @@ -1254,6 +1302,9 @@ void NewSubchannel::LegacyConnectedSubchannel::SubchannelCall::Unref( void NewSubchannel::LegacyConnectedSubchannel::SubchannelCall::Destroy( void* arg, grpc_error_handle /*error*/) { SubchannelCall* self = static_cast(arg); + // Just in case we didn't already take care of this in the + // recv_trailing_metadata callback, return the quota now. + self->MaybeReturnQuota(); // Keep some members before destroying the subchannel call. grpc_closure* after_call_stack_destroy = self->after_call_stack_destroy_; RefCountedPtr connected_subchannel = @@ -1274,8 +1325,6 @@ void NewSubchannel::LegacyConnectedSubchannel::SubchannelCall:: MaybeInterceptRecvTrailingMetadata(grpc_transport_stream_op_batch* batch) { // only intercept payloads with recv trailing. if (!batch->recv_trailing_metadata) return; - // only add interceptor is channelz is enabled. - if (connected_subchannel_->channelz_node_ == nullptr) return; GRPC_CLOSURE_INIT(&recv_trailing_metadata_ready_, RecvTrailingMetadataReady, this, grpc_schedule_on_exec_ctx); // save some state needed for the interception callback. @@ -1292,19 +1341,37 @@ void NewSubchannel::LegacyConnectedSubchannel::SubchannelCall:: RecvTrailingMetadataReady(void* arg, grpc_error_handle error) { SubchannelCall* call = static_cast(arg); GRPC_CHECK_NE(call->recv_trailing_metadata_, nullptr); - grpc_status_code status = GRPC_STATUS_OK; - GetCallStatus(&status, call->deadline_, call->recv_trailing_metadata_, error); - channelz::SubchannelNode* channelz_node = - call->connected_subchannel_->channelz_node_.get(); - GRPC_CHECK_NE(channelz_node, nullptr); - if (status == GRPC_STATUS_OK) { - channelz_node->RecordCallSucceeded(); - } else { - channelz_node->RecordCallFailed(); + // Return MAX_CONCURRENT_STREAMS quota. + call->MaybeReturnQuota(); + // If channelz is enabled, record the success or failure of the call. + if (auto* channelz_node = call->connected_subchannel_->channelz_node_.get(); + channelz_node != nullptr) { + grpc_status_code status = GRPC_STATUS_OK; + GetCallStatus(&status, call->deadline_, call->recv_trailing_metadata_, + error); + GRPC_CHECK_NE(channelz_node, nullptr); + if (status == GRPC_STATUS_OK) { + channelz_node->RecordCallSucceeded(); + } else { + channelz_node->RecordCallFailed(); + } } Closure::Run(DEBUG_LOCATION, call->original_recv_trailing_metadata_, error); } +void NewSubchannel::LegacyConnectedSubchannel::SubchannelCall:: + MaybeReturnQuota() { + if (returned_quota_) return; // Already returned. + returned_quota_ = true; + GRPC_TRACE_LOG(subchannel_call, INFO) + << "subchannel " << connected_subchannel_->subchannel() << " connection " + << connected_subchannel_.get() << ": call " << this + << " complete, returning quota"; + if (connected_subchannel_->ReturnQuotaForRpc()) { + connected_subchannel_->subchannel()->RetryQueuedRpcs(); + } +} + void NewSubchannel::LegacyConnectedSubchannel::SubchannelCall:: IncrementRefCount() { GRPC_CALL_STACK_REF(SUBCHANNEL_CALL_TO_CALL_STACK(this), ""); @@ -1315,6 +1382,269 @@ void NewSubchannel::LegacyConnectedSubchannel::SubchannelCall:: GRPC_CALL_STACK_REF(SUBCHANNEL_CALL_TO_CALL_STACK(this), reason); } +// +// NewSubchannel::QueuedCall +// + +class NewSubchannel::QueuedCall final : public Subchannel::Call { + public: + QueuedCall(WeakRefCountedPtr subchannel, CreateCallArgs args); + ~QueuedCall() override; + + void StartTransportStreamOpBatch( + grpc_transport_stream_op_batch* batch) override; + + void SetAfterCallStackDestroy(grpc_closure* closure) override; + + // Interface of RefCounted<>. + // When refcount drops to 0, the dtor is called, but we do not + // free memory, because it's allocated on the arena. + void Unref() override { + if (ref_count_.Unref()) this->~QueuedCall(); + } + void Unref(const DebugLocation& location, const char* reason) override { + if (ref_count_.Unref(location, reason)) this->~QueuedCall(); + } + + void ResumeOnConnectionLocked(ConnectedSubchannel* connected_subchannel) + ABSL_EXCLUSIVE_LOCKS_REQUIRED(&NewSubchannel::mu_); + + void FailLocked(absl::Status status) + ABSL_EXCLUSIVE_LOCKS_REQUIRED(&NewSubchannel::mu_); + + private: + // Allow RefCountedPtr<> to access IncrementRefCount(). + template + friend class RefCountedPtr; + + class Canceller; + + // Interface of RefCounted<>. + void IncrementRefCount() override { ref_count_.Ref(); } + void IncrementRefCount(const DebugLocation& location, + const char* reason) override { + ref_count_.Ref(location, reason); + } + + static void RecvTrailingMetadataReady(void* arg, grpc_error_handle error); + + RefCount ref_count_; + WeakRefCountedPtr subchannel_; + CreateCallArgs args_; + + // Note that unlike in the resolver and LB code, the subchannel code + // adds the call to the queue before adding batches to buffered_call_, + // so it's possible that the subchannel will get quota for the call + // and try to resume it before buffered_call_ contains any batches. + // In that case, we will not be holding the call combiner here, so we + // need a mutex for synchronization. + Mutex mu_ ABSL_ACQUIRED_AFTER(NewSubchannel::mu_); + grpc_closure* after_call_stack_destroy_ ABSL_GUARDED_BY(&mu_) = nullptr; + grpc_error_handle cancel_error_ ABSL_GUARDED_BY(&mu_); + BufferedCall buffered_call_ ABSL_GUARDED_BY(&mu_); + RefCountedPtr subchannel_call_ ABSL_GUARDED_BY(&mu_); + + // The queue holds a raw pointer to this QueuedCall object, and this + // is a reference to that pointer. If the call gets cancelled while + // in the queue, we set this pointer to null. The queuing code knows to + // ignore null pointers when draining the queue, which ensures that we + // don't try to dequeue this call after it's been cancelled. + QueuedCall*& queue_entry_; + + Canceller* canceller_ ABSL_GUARDED_BY(&NewSubchannel::mu_); + + std::atomic is_retriable_{false}; + grpc_closure recv_trailing_metadata_ready_; + grpc_closure* original_recv_trailing_metadata_ = nullptr; + grpc_metadata_batch* recv_trailing_metadata_ = nullptr; +}; + +// Handles call combiner cancellation. We don't yield the call combiner +// when queuing the call, which means that if the call gets cancelled +// while we're queued, the surface will be unable to immediately start the +// cancel_stream batch to let us know about the cancellation. Instead, +// this object registers itself with the call combiner to be called if +// the call is cancelled. In that case, it removes the call from the +// queue and fails any pending batches, thus immediately releasing the +// call combiner and allowing the cancellation to proceed. +class NewSubchannel::QueuedCall::Canceller final { + public: + explicit Canceller(RefCountedPtr call) : call_(std::move(call)) { + GRPC_CLOSURE_INIT(&cancel_, CancelLocked, this, nullptr); + call_->args_.call_combiner->SetNotifyOnCancel(&cancel_); + } + + private: + static void CancelLocked(void* arg, grpc_error_handle error) { + auto* self = static_cast(arg); + bool cancelled = false; + { + MutexLock lock(&self->call_->subchannel_->mu_); + if (self->call_->canceller_ == self && !error.ok()) { + GRPC_TRACE_LOG(subchannel_call, INFO) + << "subchannel " << self->call_->subchannel_.get() + << " queued call " << self->call_.get() + << ": call combiner canceller called"; + // Remove from queue. + self->call_->queue_entry_ = nullptr; + cancelled = true; + } + } + if (cancelled) { + MutexLock lock(&self->call_->mu_); + // Fail pending batches on the call. + self->call_->buffered_call_.Fail( + error, BufferedCall::YieldCallCombinerIfPendingBatchesFound); + } + delete self; + } + + RefCountedPtr call_; + grpc_closure cancel_; +}; + +NewSubchannel::QueuedCall::QueuedCall( + WeakRefCountedPtr subchannel, CreateCallArgs args) + : subchannel_(std::move(subchannel)), + args_(args), + buffered_call_(args_.call_combiner, &subchannel_call_trace), + queue_entry_(subchannel_->queued_calls_.emplace_back(this)) { + GRPC_TRACE_LOG(subchannel_call, INFO) + << "subchannel " << subchannel_.get() << ": created queued call " << this + << ", queue size=" << subchannel_->queued_calls_.size(); + canceller_ = new Canceller(Ref().TakeAsSubclass()); +} + +NewSubchannel::QueuedCall::~QueuedCall() { + GRPC_TRACE_LOG(subchannel_call, INFO) << "subchannel " << subchannel_.get() + << ": destroying queued call " << this; + if (after_call_stack_destroy_ != nullptr) { + ExecCtx::Run(DEBUG_LOCATION, after_call_stack_destroy_, absl::OkStatus()); + } +} + +void NewSubchannel::QueuedCall::SetAfterCallStackDestroy( + grpc_closure* closure) { + GRPC_CHECK_NE(closure, nullptr); + MutexLock lock(&mu_); + if (subchannel_call_ != nullptr) { + subchannel_call_->SetAfterCallStackDestroy(closure); + } else { + GRPC_CHECK_EQ(after_call_stack_destroy_, nullptr); + after_call_stack_destroy_ = closure; + } +} + +void NewSubchannel::QueuedCall::StartTransportStreamOpBatch( + grpc_transport_stream_op_batch* batch) { + GRPC_TRACE_LOG(subchannel_call, INFO) + << "subchannel " << subchannel_.get() << " queued call " << this + << ": starting batch: " + << grpc_transport_stream_op_batch_string(batch, false); + MutexLock lock(&mu_); + // If we already have a real subchannel call, pass the batch down to it. + if (subchannel_call_ != nullptr) { + subchannel_call_->StartTransportStreamOpBatch(batch); + return; + } + // Intercept recv_trailing_metadata, so that we can mark the call as + // eligible for transparent retries if we fail it due to all + // connections failing. + if (batch->recv_trailing_metadata) { + GRPC_CLOSURE_INIT(&recv_trailing_metadata_ready_, RecvTrailingMetadataReady, + this, grpc_schedule_on_exec_ctx); + GRPC_CHECK_EQ(recv_trailing_metadata_, nullptr); + recv_trailing_metadata_ = + batch->payload->recv_trailing_metadata.recv_trailing_metadata; + original_recv_trailing_metadata_ = + batch->payload->recv_trailing_metadata.recv_trailing_metadata_ready; + batch->payload->recv_trailing_metadata.recv_trailing_metadata_ready = + &recv_trailing_metadata_ready_; + } + // If we've previously been cancelled, immediately fail the new batch. + if (!cancel_error_.ok()) { + // Note: This will release the call combiner. + grpc_transport_stream_op_batch_finish_with_failure(batch, cancel_error_, + args_.call_combiner); + return; + } + // Handle cancellation batches. + if (batch->cancel_stream) { + cancel_error_ = batch->payload->cancel_stream.cancel_error; + buffered_call_.Fail(cancel_error_, BufferedCall::NoYieldCallCombiner); + // Note: This will release the call combiner. + grpc_transport_stream_op_batch_finish_with_failure(batch, cancel_error_, + args_.call_combiner); + return; + } + // Enqueue the batch. + buffered_call_.EnqueueBatch(batch); + // We hold on to the call combiner for the send_initial_metadata batch, + // but yield it for other batches. This ensures that we are holding on + // to the call combiner exactly once when we are ready to resume. + if (!batch->send_initial_metadata) { + GRPC_CALL_COMBINER_STOP(args_.call_combiner, + "batch does not include send_initial_metadata"); + } +} + +void NewSubchannel::QueuedCall::RecvTrailingMetadataReady( + void* arg, grpc_error_handle error) { + QueuedCall* call = static_cast(arg); + GRPC_CHECK_NE(call->recv_trailing_metadata_, nullptr); + if (call->is_retriable_.load()) { + call->recv_trailing_metadata_->Set(GrpcStreamNetworkState(), + GrpcStreamNetworkState::kNotSentOnWire); + } + Closure::Run(DEBUG_LOCATION, call->original_recv_trailing_metadata_, error); +} + +void NewSubchannel::QueuedCall::ResumeOnConnectionLocked( + ConnectedSubchannel* connected_subchannel) { + GRPC_TRACE_LOG(subchannel_call, INFO) + << "subchannel " << subchannel_.get() << " queued call " << this + << ": resuming on connected_subchannel " << connected_subchannel; + canceller_ = nullptr; + queue_entry_ = nullptr; + MutexLock lock(&mu_); + grpc_error_handle error; + subchannel_call_ = connected_subchannel->CreateCall(args_, &error); + if (after_call_stack_destroy_ != nullptr) { + subchannel_call_->SetAfterCallStackDestroy(after_call_stack_destroy_); + after_call_stack_destroy_ = nullptr; + } + // It's possible that the subchannel will get quota for the call + // and try to resume it before buffered_call_ contains any batches. + // In that case, we will not be holding the call combiner here, so we + // must not yeild it. That's why we use + // YieldCallCombinerIfPendingBatchesFound here. + if (!error.ok()) { + buffered_call_.Fail(error, + BufferedCall::YieldCallCombinerIfPendingBatchesFound); + } else { + buffered_call_.Resume( + [subchannel_call = + subchannel_call_](grpc_transport_stream_op_batch* batch) { + // This will release the call combiner. + subchannel_call->StartTransportStreamOpBatch(batch); + }, + BufferedCall::YieldCallCombinerIfPendingBatchesFound); + } +} + +void NewSubchannel::QueuedCall::FailLocked(absl::Status status) { + GRPC_TRACE_LOG(subchannel_call, INFO) + << "subchannel " << subchannel_.get() << " queued call " << this + << ": failing: " << status; + canceller_ = nullptr; + queue_entry_ = nullptr; + is_retriable_.store(true); + MutexLock lock(&mu_); + cancel_error_ = status; + buffered_call_.Fail(status, + BufferedCall::YieldCallCombinerIfPendingBatchesFound); +} + // // NewSubchannel::NewConnectedSubchannel // @@ -1339,13 +1669,20 @@ class NewSubchannel::NewConnectedSubchannel final : public ConnectedSubchannel { }; NewConnectedSubchannel( + WeakRefCountedPtr subchannel, RefCountedPtr call_destination, RefCountedPtr transport, - const ChannelArgs& args) - : ConnectedSubchannel(args), + const ChannelArgs& args, uint32_t max_concurrent_streams) + : ConnectedSubchannel(std::move(subchannel), args, + max_concurrent_streams), call_destination_(std::move(call_destination)), transport_(std::move(transport)) {} + void Orphaned() override { + call_destination_.reset(); + transport_.reset(); + } + void StartWatch( grpc_pollset_set*, OrphanablePtr watcher) override { @@ -1382,59 +1719,62 @@ class NewSubchannel::NewConnectedSubchannel final : public ConnectedSubchannel { class NewSubchannel::ConnectionStateWatcher final : public Transport::StateWatcher { public: - explicit ConnectionStateWatcher(WeakRefCountedPtr subchannel) - : subchannel_(std::move(subchannel)) {} - - ~ConnectionStateWatcher() override { - subchannel_.reset(DEBUG_LOCATION, "state_watcher"); - } + explicit ConnectionStateWatcher( + WeakRefCountedPtr connected_subchannel) + : connected_subchannel_(std::move(connected_subchannel)) {} void OnDisconnect(absl::Status status, DisconnectInfo disconnect_info) override { - MutexLock lock(&subchannel_->mu_); + NewSubchannel* subchannel = connected_subchannel_->subchannel(); + GRPC_TRACE_LOG(subchannel, INFO) + << "subchannel " << subchannel << " " << subchannel->key_.ToString() + << ": connected subchannel " << connected_subchannel_.get() + << " reports disconnection: " << status; + MutexLock lock(&subchannel->mu_); // Handle keepalive update. if (disconnect_info.keepalive_time.has_value()) { - subchannel_->ThrottleKeepaliveTimeLocked(*disconnect_info.keepalive_time); - subchannel_->watcher_list_.NotifyOnKeepaliveUpdateLocked( + subchannel->ThrottleKeepaliveTimeLocked(*disconnect_info.keepalive_time); + subchannel->watcher_list_.NotifyOnKeepaliveUpdateLocked( *disconnect_info.keepalive_time); } - // We shouldn't ever see OnDisconnect() more than once for a given - // connection, but we'll be defensive just in case: if the connected - // subchannel has already been cleared, then this becomes a no-op. - RefCountedPtr connected_subchannel = - std::move(subchannel_->connected_subchannel_); - if (connected_subchannel == nullptr) return; - GRPC_TRACE_LOG(subchannel, INFO) - << "subchannel " << subchannel_.get() << " " - << subchannel_->key_.ToString() << ": connected subchannel " - << connected_subchannel.get() << " reports disconnection: " << status; - // If the subchannel was created from an endpoint, then we report - // TRANSIENT_FAILURE here instead of IDLE. The subchannel will never - // leave TRANSIENT_FAILURE state, because there is no way for us to - // establish a new connection. Otherwise, we report IDLE here. - if (subchannel_->created_from_endpoint_) { - subchannel_->SetConnectivityStateLocked(GRPC_CHANNEL_TRANSIENT_FAILURE, - status); + // Remove the connection from the subchannel's list of connections. + subchannel->RemoveConnectionLocked(connected_subchannel_.get()); + // If this was the last connection, then fail all queued RPCs and + // update the connectivity state. + if (subchannel->connections_.empty()) { + subchannel->FailAllQueuedRpcsLocked( + absl::UnavailableError("subchannel lost all connections")); + subchannel->MaybeUpdateConnectivityStateLocked(); } else { - subchannel_->SetConnectivityStateLocked(GRPC_CHANNEL_IDLE, - absl::OkStatus()); + // Otherwise, retry queued RPCs, which may trigger a new + // connection attempt. + subchannel->RetryQueuedRpcsLocked(); } - subchannel_->backoff_.Reset(); + // Reset backoff. + subchannel->backoff_.Reset(); } void OnPeerMaxConcurrentStreamsUpdate( - uint32_t /*max_concurrent_streams*/, + uint32_t max_concurrent_streams, std::unique_ptr /*on_done*/) override { - // TODO(roth): Implement this as part of adding connection scaling. + NewSubchannel* subchannel = connected_subchannel_->subchannel(); + GRPC_TRACE_LOG(subchannel, INFO) + << "subchannel " << subchannel << " " << subchannel->key_.ToString() + << ": connection " << connected_subchannel_.get() + << ": setting MAX_CONCURRENT_STREAMS=" << max_concurrent_streams; + if (connected_subchannel_->SetMaxConcurrentStreams( + max_concurrent_streams)) { + subchannel->RetryQueuedRpcs(); + } } grpc_pollset_set* interested_parties() const override { - return subchannel_->pollset_set_; + return connected_subchannel_->subchannel()->pollset_set_; } private: - WeakRefCountedPtr subchannel_; + WeakRefCountedPtr connected_subchannel_; }; // @@ -1497,6 +1837,8 @@ NewSubchannel::NewSubchannel(SubchannelKey key, work_serializer_(args_.GetObjectRef()), backoff_(ParseArgsForBackoffValues(args_, &min_connect_timeout_)), event_engine_(args_.GetObjectRef()) { + GRPC_TRACE_LOG(subchannel, INFO) + << "subchannel " << this << " " << key_.ToString() << ": created"; // A grpc_init is added here to ensure that grpc_shutdown does not happen // until the subchannel is destroyed. Subchannels can persist longer than // channels because they maybe reused/shared among multiple channels. As a @@ -1560,7 +1902,7 @@ RefCountedPtr NewSubchannel::Create( // We don't interact with the subchannel pool in this case. // Instead, we unconditionally return the newly created subchannel. // Before returning, we explicitly trigger a connection attempt - // by calling RequestConnection(), which sets the subchannel’s + // by calling RequestConnection(), which sets the subchannel's // connectivity state to CONNECTING. c->RequestConnection(); return c; @@ -1604,11 +1946,14 @@ void NewSubchannel::WatchConnectivityState( grpc_pollset_set_add_pollset_set(pollset_set_, interested_parties); } work_serializer_.Run( - [watcher, state = state_, status = status_]() { + [watcher, state = state_, status = ConnectivityStatusToReportLocked()]() { watcher->OnConnectivityStateChange(state, status); }, DEBUG_LOCATION); watcher_list_.AddWatcherLocked(std::move(watcher)); + // The max_connections_per_subchannel setting may have changed, so + // this may trigger another connection attempt. + RetryQueuedRpcsLocked(); } void NewSubchannel::CancelConnectivityStateWatch( @@ -1622,6 +1967,9 @@ void NewSubchannel::CancelConnectivityStateWatch( } void NewSubchannel::RequestConnection() { + GRPC_TRACE_LOG(subchannel, INFO) + << "subchannel " << this << " " << key_.ToString() + << ": RequestConnection()"; MutexLock lock(&mu_); if (state_ == GRPC_CHANNEL_IDLE) { StartConnectingLocked(); @@ -1629,21 +1977,25 @@ void NewSubchannel::RequestConnection() { } void NewSubchannel::ResetBackoff() { + GRPC_TRACE_LOG(subchannel, INFO) + << "subchannel " << this << " " << key_.ToString() << ": ResetBackoff()"; // Hold a ref to ensure cancellation and subsequent deletion of the closure // does not eliminate the last ref and destroy the Subchannel before the // method returns. auto self = WeakRef(DEBUG_LOCATION, "ResetBackoff"); MutexLock lock(&mu_); backoff_.Reset(); - if (state_ == GRPC_CHANNEL_TRANSIENT_FAILURE && - event_engine_->Cancel(retry_timer_handle_)) { + if (retry_timer_handle_.has_value() && + event_engine_->Cancel(*retry_timer_handle_)) { OnRetryTimerLocked(); - } else if (state_ == GRPC_CHANNEL_CONNECTING) { + } else if (connection_attempt_in_flight_) { next_attempt_time_ = Timestamp::Now(); } } void NewSubchannel::Orphaned() { + GRPC_TRACE_LOG(subchannel, INFO) + << "subchannel " << this << " " << key_.ToString() << ": shutting down"; // The subchannel_pool is only used once here in this subchannel, so the // access can be outside of the lock. if (subchannel_pool_ != nullptr) { @@ -1654,7 +2006,10 @@ void NewSubchannel::Orphaned() { GRPC_CHECK(!shutdown_); shutdown_ = true; connector_.reset(); - connected_subchannel_.reset(); + connections_.clear(); + if (retry_timer_handle_.has_value()) { + event_engine_->Cancel(*retry_timer_handle_); + } } void NewSubchannel::GetOrAddDataProducer( @@ -1673,39 +2028,85 @@ void NewSubchannel::RemoveDataProducer(DataProducerInterface* data_producer) { } } -// Note: Must be called with a state that is different from the current state. -void NewSubchannel::SetConnectivityStateLocked(grpc_connectivity_state state, - const absl::Status& status) { - state_ = state; - if (status.ok()) { - status_ = status; - } else { - // Augment status message to include IP address. - status_ = absl::Status(status.code(), - absl::StrCat(grpc_sockaddr_to_uri(&key_.address()) - .value_or(""), - ": ", status.message())); - status.ForEachPayload( - [this](absl::string_view key, const absl::Cord& value) - // Want to use ABSL_EXCLUSIVE_LOCKS_REQUIRED(&mu_) here, - // but that won't work, because we can't pass the lock - // annotation through absl::Status::ForEachPayload(). - ABSL_NO_THREAD_SAFETY_ANALYSIS { status_.SetPayload(key, value); }); +namespace { + +absl::Status PrependAddressToStatusMessage(const SubchannelKey& key, + const absl::Status& status) { + return AddMessagePrefix( + grpc_sockaddr_to_uri(&key.address()).value_or(""), + status); +} + +} // namespace + +void NewSubchannel::SetLastFailureLocked(const absl::Status& status) { + // Augment status message to include IP address. + last_failure_status_ = PrependAddressToStatusMessage(key_, status); +} + +grpc_connectivity_state NewSubchannel::ComputeConnectivityStateLocked() const { + // If we have at least one connection, report READY. + if (!connections_.empty()) return GRPC_CHANNEL_READY; + // If we were created from an endpoint and the connection is closed, + // we have no way to create a new connection, so we report + // TRANSIENT_FAILURE, and we'll never leave that state. + if (created_from_endpoint_) return GRPC_CHANNEL_TRANSIENT_FAILURE; + // If there's a connection attempt in flight, report CONNECTING. + if (connection_attempt_in_flight_) return GRPC_CHANNEL_CONNECTING; + // If we're in backoff delay, report TRANSIENT_FAILURE. + if (retry_timer_handle_.has_value()) { + return GRPC_CHANNEL_TRANSIENT_FAILURE; } + // Otherwise, report IDLE. + return GRPC_CHANNEL_IDLE; +} + +absl::Status NewSubchannel::ConnectivityStatusToReportLocked() const { + // Report status in TRANSIENT_FAILURE state. + if (state_ == GRPC_CHANNEL_TRANSIENT_FAILURE) return last_failure_status_; + return absl::OkStatus(); +} + +void NewSubchannel::MaybeUpdateConnectivityStateLocked() { + // Determine what state we are in. + grpc_connectivity_state new_state = ComputeConnectivityStateLocked(); + // If we're already in that state, no need to report a change. + if (new_state == state_) return; + state_ = new_state; + absl::Status status = ConnectivityStatusToReportLocked(); + GRPC_TRACE_LOG(subchannel, INFO) + << "subchannel " << this << " " << key_.ToString() + << ": reporting connectivity state " << ConnectivityStateName(new_state) + << ", status: " << status; + // Update channelz. if (channelz_node_ != nullptr) { - channelz_node_->UpdateConnectivityState(state); + channelz_node_->UpdateConnectivityState(new_state); if (status.ok()) { GRPC_CHANNELZ_LOG(channelz_node_) << "Subchannel connectivity state changed to " - << ConnectivityStateName(state); + << ConnectivityStateName(new_state); } else { GRPC_CHANNELZ_LOG(channelz_node_) << "Subchannel connectivity state changed to " - << ConnectivityStateName(state) << ": " << status; + << ConnectivityStateName(new_state) << ": " << status; } } // Notify watchers. - watcher_list_.NotifyLocked(state, status_); + watcher_list_.NotifyLocked(new_state, status); +} + +bool NewSubchannel::RemoveConnectionLocked( + ConnectedSubchannel* connected_subchannel) { + for (auto it = connections_.begin(); it != connections_.end(); ++it) { + if (*it == connected_subchannel) { + GRPC_TRACE_LOG(subchannel, INFO) + << "subchannel " << this << " " << key_.ToString() + << ": removing connection " << connected_subchannel; + connections_.erase(it); + return true; + } + } + return false; } void NewSubchannel::OnRetryTimer() { @@ -1714,11 +2115,13 @@ void NewSubchannel::OnRetryTimer() { } void NewSubchannel::OnRetryTimerLocked() { + retry_timer_handle_.reset(); if (shutdown_) return; GRPC_TRACE_LOG(subchannel, INFO) << "subchannel " << this << " " << key_.ToString() - << ": backoff delay elapsed, reporting IDLE"; - SetConnectivityStateLocked(GRPC_CHANNEL_IDLE, absl::OkStatus()); + << ": backoff delay elapsed"; + RetryQueuedRpcsLocked(); // May trigger another connection attempt. + MaybeUpdateConnectivityStateLocked(); } void NewSubchannel::StartConnectingLocked() { @@ -1726,14 +2129,16 @@ void NewSubchannel::StartConnectingLocked() { const Timestamp now = Timestamp::Now(); const Timestamp min_deadline = now + min_connect_timeout_; next_attempt_time_ = now + backoff_.NextAttemptDelay(); - // Report CONNECTING. - SetConnectivityStateLocked(GRPC_CHANNEL_CONNECTING, absl::OkStatus()); + // Change connectivity state if needed. + connection_attempt_in_flight_ = true; + MaybeUpdateConnectivityStateLocked(); // Start connection attempt. SubchannelConnector::Args args; args.address = &address_for_connect_; args.interested_parties = pollset_set_; args.deadline = std::max(next_attempt_time_, min_deadline); - args.channel_args = args_; + args.channel_args = + args_.Set(GRPC_ARG_MAX_CONCURRENT_STREAMS_REJECT_ON_CLIENT, true); WeakRef(DEBUG_LOCATION, "Connect").release(); // Ref held by callback. connector_->Connect(args, &connecting_result_, &on_connecting_finished_); } @@ -1748,6 +2153,7 @@ void NewSubchannel::OnConnectingFinished(void* arg, grpc_error_handle error) { } void NewSubchannel::OnConnectingFinishedLocked(grpc_error_handle error) { + connection_attempt_in_flight_ = false; if (shutdown_) { connecting_result_.Reset(); return; @@ -1768,34 +2174,33 @@ void NewSubchannel::OnConnectingFinishedLocked(grpc_error_handle error) { "remaining in TRANSIENT_FAILURE" : ", backing off for " + std::to_string(time_until_next_attempt.millis()) + " ms"); - SetConnectivityStateLocked(GRPC_CHANNEL_TRANSIENT_FAILURE, - grpc_error_to_absl_status(error)); - if (created_from_endpoint_) return; - retry_timer_handle_ = event_engine_->RunAfter( - time_until_next_attempt, - [self = WeakRef(DEBUG_LOCATION, "RetryTimer") - .TakeAsSubclass()]() mutable { - { - ExecCtx exec_ctx; - self->OnRetryTimer(); - // Subchannel deletion might require an active ExecCtx. So if - // self.reset() is not called here, the WeakRefCountedPtr - // destructor may run after the ExecCtx declared in the callback - // is destroyed. Since subchannel may get destroyed when the - // WeakRefCountedPtr destructor runs, it may not have an active - // ExecCtx - thus leading to crashes. - self.reset(); - } - }); + if (!created_from_endpoint_) { + retry_timer_handle_ = event_engine_->RunAfter( + time_until_next_attempt, + [self = WeakRef(DEBUG_LOCATION, "RetryTimer") + .TakeAsSubclass()]() mutable { + { + ExecCtx exec_ctx; + self->OnRetryTimer(); + // Subchannel deletion might require an active ExecCtx. So if + // self.reset() is not called here, the WeakRefCountedPtr + // destructor may run after the ExecCtx declared in the callback + // is destroyed. Since subchannel may get destroyed when the + // WeakRefCountedPtr destructor runs, it may not have an active + // ExecCtx - thus leading to crashes. + self.reset(); + } + }); + } + SetLastFailureLocked(grpc_error_to_absl_status(error)); + MaybeUpdateConnectivityStateLocked(); } } bool NewSubchannel::PublishTransportLocked() { auto socket_node = connecting_result_.transport->GetSocketNode(); - connecting_result_.transport->StartWatch( - MakeRefCounted( - WeakRef(DEBUG_LOCATION, "state_watcher") - .TakeAsSubclass())); + Transport* transport = connecting_result_.transport; + RefCountedPtr connected_subchannel; if (connecting_result_.transport->filter_stack_transport() != nullptr) { // Construct channel stack. // Builder takes ownership of transport. @@ -1813,8 +2218,9 @@ bool NewSubchannel::PublishTransportLocked() { << ": error initializing subchannel stack: " << stack.status(); return false; } - connected_subchannel_ = MakeRefCounted( - std::move(*stack), args_, channelz_node_); + connected_subchannel = MakeRefCounted( + WeakRef().TakeAsSubclass(), std::move(*stack), args_, + channelz_node_, connecting_result_.max_concurrent_streams); } else { OrphanablePtr transport( std::exchange(connecting_result_.transport, nullptr) @@ -1852,44 +2258,156 @@ bool NewSubchannel::PublishTransportLocked() { << call_destination.status(); return false; } - connected_subchannel_ = MakeRefCounted( - std::move(*call_destination), std::move(transport_destination), args_); + connected_subchannel = MakeRefCounted( + WeakRef().TakeAsSubclass(), std::move(*call_destination), + std::move(transport_destination), args_, + connecting_result_.max_concurrent_streams); } connecting_result_.Reset(); // Publish. GRPC_TRACE_LOG(subchannel, INFO) << "subchannel " << this << " " << key_.ToString() - << ": new connected subchannel at " << connected_subchannel_.get(); + << ": new connected subchannel at " << connected_subchannel.get() + << ", max_concurrent_streams=" + << connecting_result_.max_concurrent_streams; if (channelz_node_ != nullptr) { if (socket_node != nullptr) { socket_node->AddParent(channelz_node_.get()); } } - // Report initial state. - SetConnectivityStateLocked(GRPC_CHANNEL_READY, absl::Status()); + transport->StartWatch( + MakeRefCounted(connected_subchannel->WeakRef())); + connections_.push_back(std::move(connected_subchannel)); + RetryQueuedRpcsLocked(); + MaybeUpdateConnectivityStateLocked(); return true; } RefCountedPtr NewSubchannel::CreateCall( CreateCallArgs args, grpc_error_handle* error) { - auto connected_subchannel = GetConnectedSubchannel(); - if (connected_subchannel == nullptr) return nullptr; + RefCountedPtr connected_subchannel; + { + MutexLock lock(&mu_); + // If we hit a race condition where the LB picker chose the subchannel + // at the same time as the last connection was closed, then tell the + // channel to re-queue the pick. + if (connections_.empty()) return nullptr; + // Otherwise, choose a connection. + // Optimization: If the queue is non-empty, then we know there won't be + // a connection that we can send this RPC on, so we don't bother looking. + if (queued_calls_.empty()) connected_subchannel = ChooseConnectionLocked(); + // If we don't have a connection to send the RPC on, queue it. + if (connected_subchannel == nullptr) { + // The QueuedCall object adds itself to queued_calls_. + auto queued_call = RefCountedPtr(args.arena->New( + WeakRef().TakeAsSubclass(), args)); + MaybeFailAllQueuedRpcsLocked(); + return queued_call; + } + } + // Found a connection, so create a call on it. + GRPC_TRACE_LOG(subchannel_call, INFO) + << "subchannel " << this << " " << key_.ToString() + << ": creating call on connection " << connected_subchannel.get(); return connected_subchannel->CreateCall(args, error); } RefCountedPtr NewSubchannel::call_destination() { - auto connected_subchannel = GetConnectedSubchannel(); + // TODO(roth): Implement connection scaling for v3. + RefCountedPtr connected_subchannel; + { + MutexLock lock(&mu_); + if (!connections_.empty()) connected_subchannel = connections_[0]; + } if (connected_subchannel == nullptr) return nullptr; return connected_subchannel->unstarted_call_destination(); } +RefCountedPtr +NewSubchannel::ChooseConnectionLocked() { + // Try to find a connection with quota available for the RPC. + for (auto& connection : connections_) { + if (connection->GetQuotaForRpc()) return connection; + } + // If we didn't find a connection for the RPC, we'll queue it. + // Trigger a new connection attempt if we need to scale up the number + // of connections. + if (connections_.size() < watcher_list_.GetMaxConnectionsPerSubchannel() && + !connection_attempt_in_flight_ && !retry_timer_handle_.has_value()) { + GRPC_TRACE_LOG(subchannel, INFO) + << "subchannel " << this << " " << key_.ToString() + << ": adding a new connection"; + StartConnectingLocked(); + } + return nullptr; +} + +void NewSubchannel::RetryQueuedRpcs() { + MutexLock lock(&mu_); + RetryQueuedRpcsLocked(); +} + +void NewSubchannel::RetryQueuedRpcsLocked() { + GRPC_TRACE_LOG(subchannel_call, INFO) + << "subchannel " << this << " " << key_.ToString() + << ": retrying RPCs from queue, queue size=" << queued_calls_.size(); + while (!queued_calls_.empty()) { + GRPC_TRACE_LOG(subchannel_call, INFO) + << " retrying first queued RPC, queue size=" << queued_calls_.size(); + QueuedCall* queued_call = queued_calls_.front(); + if (queued_call == nullptr) { + GRPC_TRACE_LOG(subchannel_call, INFO) << " RPC already cancelled"; + } else { + auto connected_subchannel = ChooseConnectionLocked(); + // If we don't have a connection to dispatch this RPC on, then + // we've drained as much from the queue as we can, so stop here. + if (connected_subchannel == nullptr) { + GRPC_TRACE_LOG(subchannel_call, INFO) + << " no usable connection found; will stop retrying from queue"; + MaybeFailAllQueuedRpcsLocked(); + return; + } + GRPC_TRACE_LOG(subchannel_call, INFO) + << " starting RPC on connection " << connected_subchannel.get(); + queued_call->ResumeOnConnectionLocked(connected_subchannel.get()); + } + queued_calls_.pop_front(); + } +} + +void NewSubchannel::MaybeFailAllQueuedRpcsLocked() { + bool fail_instead_of_queuing = + args_.GetInt(GRPC_ARG_MAX_CONCURRENT_STREAMS_REJECT_ON_CLIENT) + .value_or(false); + if (fail_instead_of_queuing && + connections_.size() == watcher_list_.GetMaxConnectionsPerSubchannel()) { + FailAllQueuedRpcsLocked( + absl::ResourceExhaustedError("subchannel at max number of connections, " + "but no quota to send RPC")); + } +} + +void NewSubchannel::FailAllQueuedRpcsLocked(absl::Status status) { + GRPC_TRACE_LOG(subchannel_call, INFO) + << "subchannel " << this << ": failing all queued RPCs: " << status; + status = PrependAddressToStatusMessage(key_, status); + for (QueuedCall* queued_call : queued_calls_) { + if (queued_call != nullptr) queued_call->FailLocked(status); + } + queued_calls_.clear(); +} + void NewSubchannel::Ping(absl::AnyInvocable) { // TODO(ctiller): Implement } absl::Status NewSubchannel::Ping(grpc_closure* on_initiate, grpc_closure* on_ack) { - auto connected_subchannel = GetConnectedSubchannel(); + RefCountedPtr connected_subchannel; + { + MutexLock lock(&mu_); + if (!connections_.empty()) connected_subchannel = connections_[0]; + } if (connected_subchannel == nullptr) { return absl::UnavailableError("no connection"); } @@ -1897,10 +2415,4 @@ absl::Status NewSubchannel::Ping(grpc_closure* on_initiate, return absl::OkStatus(); } -RefCountedPtr -NewSubchannel::GetConnectedSubchannel() { - MutexLock lock(&mu_); - return connected_subchannel_; -} - } // namespace grpc_core diff --git a/src/core/client_channel/subchannel.h b/src/core/client_channel/subchannel.h index b7aefabbdc080..ba55e5e0cc748 100644 --- a/src/core/client_channel/subchannel.h +++ b/src/core/client_channel/subchannel.h @@ -58,9 +58,8 @@ #include "absl/container/flat_hash_set.h" #include "absl/status/status.h" -/** This arg is intended for internal use only, primarily - * for passing endpoint information during subchannel creation or connection. - */ +// This arg is intended for internal use only, primarily for passing +// endpoint information during subchannel creation or connection. #define GRPC_ARG_SUBCHANNEL_ENDPOINT "grpc.internal.subchannel_endpoint" namespace grpc_core { @@ -571,14 +570,30 @@ class NewSubchannel final : public Subchannel { class ConnectionStateWatcher; + class QueuedCall; + // Tears down any existing connection, and arranges for destruction void Orphaned() override ABSL_LOCKS_EXCLUDED(mu_); - RefCountedPtr GetConnectedSubchannel(); + RefCountedPtr ChooseConnectionLocked() + ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_); + void RetryQueuedRpcs() ABSL_LOCKS_EXCLUDED(mu_); + void RetryQueuedRpcsLocked() ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_); + void MaybeFailAllQueuedRpcsLocked() ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_); + void FailAllQueuedRpcsLocked(absl::Status status) + ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_); - // Sets the subchannel's connectivity state to \a state. - void SetConnectivityStateLocked(grpc_connectivity_state state, - const absl::Status& status) + // Updates the subchannel's connectivity state. + void SetLastFailureLocked(const absl::Status& status) + ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_); + grpc_connectivity_state ComputeConnectivityStateLocked() const + ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_); + absl::Status ConnectivityStatusToReportLocked() const + ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_); + void MaybeUpdateConnectivityStateLocked() ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_); + + // Returns true if the connection was removed. + bool RemoveConnectionLocked(ConnectedSubchannel* connected_subchannel) ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_); void ThrottleKeepaliveTimeLocked(Duration new_keepalive_time) @@ -621,6 +636,7 @@ class NewSubchannel final : public Subchannel { // Protects the other members. Mutex mu_; + bool connection_attempt_in_flight_ ABSL_GUARDED_BY(mu_) = false; bool shutdown_ ABSL_GUARDED_BY(mu_) = false; // Connectivity state tracking. @@ -631,20 +647,21 @@ class NewSubchannel final : public Subchannel { // - READY: connection attempt succeeded, connected_subchannel_ created // - TRANSIENT_FAILURE: connection attempt failed, retry timer pending grpc_connectivity_state state_ ABSL_GUARDED_BY(mu_) = GRPC_CHANNEL_IDLE; - absl::Status status_ ABSL_GUARDED_BY(mu_); + absl::Status last_failure_status_ ABSL_GUARDED_BY(mu_); // The list of connectivity state watchers. ConnectivityStateWatcherList watcher_list_ ABSL_GUARDED_BY(mu_); // Used for sending connectivity state notifications. WorkSerializer work_serializer_; - // Active connection, or null. - RefCountedPtr connected_subchannel_ ABSL_GUARDED_BY(mu_); + // Established connections. + std::vector> connections_ + ABSL_GUARDED_BY(mu_); // Backoff state. BackOff backoff_ ABSL_GUARDED_BY(mu_); Timestamp next_attempt_time_ ABSL_GUARDED_BY(mu_); - grpc_event_engine::experimental::EventEngine::TaskHandle retry_timer_handle_ - ABSL_GUARDED_BY(mu_); + std::optional + retry_timer_handle_ ABSL_GUARDED_BY(mu_); // Keepalive time period Duration keepalive_time_ ABSL_GUARDED_BY(mu_); @@ -653,6 +670,17 @@ class NewSubchannel final : public Subchannel { std::map data_producer_map_ ABSL_GUARDED_BY(mu_); std::shared_ptr event_engine_; + + // A queue of calls waiting to be dispatched to a connection. + // If a call is cancelled while in the queue, its entry will be reset + // to null, so we ignore null values when draining the queue. + // + // Note that each queued call holds a C++ reference to its entry in the + // queue, which it will set to null if it gets cancelled. Therefore, + // this data structure must guarantee that references to entries are not + // invalidated as entries are added or removed from the queue (i.e., + // std::vector<> would not work). + std::deque queued_calls_ ABSL_GUARDED_BY(mu_); }; } // namespace grpc_core diff --git a/src/core/client_channel/subchannel_stream_limiter.cc b/src/core/client_channel/subchannel_stream_limiter.cc new file mode 100644 index 0000000000000..6df100dc35e16 --- /dev/null +++ b/src/core/client_channel/subchannel_stream_limiter.cc @@ -0,0 +1,76 @@ +// +// Copyright 2026 gRPC authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +#include "src/core/client_channel/subchannel_stream_limiter.h" + +namespace grpc_core { + +namespace { + +uint64_t MakeStreamCounts(uint32_t max_concurrent_streams, + uint32_t rpcs_in_flight) { + return (static_cast(max_concurrent_streams) << 32) + + static_cast(rpcs_in_flight); +} + +uint32_t GetMaxConcurrentStreams(uint64_t stream_counts) { + return static_cast(stream_counts >> 32); +} + +uint32_t GetRpcsInFlight(uint64_t stream_counts) { + return static_cast(stream_counts & 0xffffffffu); +} + +} // namespace + +SubchannelStreamLimiter::SubchannelStreamLimiter( + uint32_t max_concurrent_streams) + : stream_counts_(MakeStreamCounts(max_concurrent_streams, 0)) {} + +bool SubchannelStreamLimiter::SetMaxConcurrentStreams( + uint32_t max_concurrent_streams) { + uint64_t prev_stream_counts = stream_counts_.load(std::memory_order_acquire); + uint32_t rpcs_in_flight; + do { + rpcs_in_flight = GetRpcsInFlight(prev_stream_counts); + } while (!stream_counts_.compare_exchange_weak( + prev_stream_counts, + MakeStreamCounts(max_concurrent_streams, rpcs_in_flight), + std::memory_order_acq_rel, std::memory_order_acquire)); + return rpcs_in_flight < max_concurrent_streams; +} + +bool SubchannelStreamLimiter::GetQuotaForRpc() { + uint64_t prev_stream_counts = stream_counts_.load(std::memory_order_acquire); + do { + const uint32_t rpcs_in_flight = GetRpcsInFlight(prev_stream_counts); + const uint32_t max_concurrent_streams = + GetMaxConcurrentStreams(prev_stream_counts); + if (rpcs_in_flight == max_concurrent_streams) return false; + } while (!stream_counts_.compare_exchange_weak( + prev_stream_counts, prev_stream_counts + MakeStreamCounts(0, 1), + std::memory_order_acq_rel, std::memory_order_acquire)); + return true; +} + +bool SubchannelStreamLimiter::ReturnQuotaForRpc() { + const uint64_t prev_stream_counts = + stream_counts_.fetch_sub(MakeStreamCounts(0, 1)); + return GetRpcsInFlight(prev_stream_counts) == + GetMaxConcurrentStreams(prev_stream_counts); +} + +} // namespace grpc_core diff --git a/src/core/client_channel/subchannel_stream_limiter.h b/src/core/client_channel/subchannel_stream_limiter.h new file mode 100644 index 0000000000000..7ad089a282c66 --- /dev/null +++ b/src/core/client_channel/subchannel_stream_limiter.h @@ -0,0 +1,51 @@ +// +// Copyright 2026 gRPC authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +#ifndef GRPC_SRC_CORE_CLIENT_CHANNEL_SUBCHANNEL_STREAM_LIMITER_H +#define GRPC_SRC_CORE_CLIENT_CHANNEL_SUBCHANNEL_STREAM_LIMITER_H + +#include +#include + +namespace grpc_core { + +class SubchannelStreamLimiter { + public: + explicit SubchannelStreamLimiter(uint32_t max_concurrent_streams); + + // Sets the maximum number of concurrent streams. + // Returns true if the current number of RPCs in flight is less than the new + // maximum. + bool SetMaxConcurrentStreams(uint32_t max_concurrent_streams); + + // Attempts to get quota for a new RPC. + // Returns true if quota was acquired, false otherwise. + bool GetQuotaForRpc(); + + // Returns quota for a completed RPC. + // Returns true if the connection is no longer above its quota. + bool ReturnQuotaForRpc(); + + private: + // First 32 bits are the MAX_CONCURRENT_STREAMS value reported by + // the transport. + // Last 32 bits are the current number of RPCs in flight on the connection. + std::atomic stream_counts_{0}; +}; + +} // namespace grpc_core + +#endif // GRPC_SRC_CORE_CLIENT_CHANNEL_SUBCHANNEL_STREAM_LIMITER_H diff --git a/src/core/credentials/transport/channel_creds_registry_init.cc b/src/core/credentials/transport/channel_creds_registry_init.cc index 5ea3b0393e379..1be4723a4681a 100644 --- a/src/core/credentials/transport/channel_creds_registry_init.cc +++ b/src/core/credentials/transport/channel_creds_registry_init.cc @@ -89,14 +89,15 @@ class TlsChannelCredsFactory : public ChannelCredsFactory<> { !config->ca_certificate_file().empty()) { // TODO(gtcooke94): Expose the spiffe_bundle_map option in the XDS // bootstrap config to use here. - options->set_certificate_provider( - MakeRefCounted( - config->private_key_file(), config->certificate_file(), - config->ca_certificate_file(), /*spiffe_bundle_map_file=*/"", - config->refresh_interval().millis() / GPR_MS_PER_SEC)); + auto provider = MakeRefCounted( + config->private_key_file(), config->certificate_file(), + config->ca_certificate_file(), /*spiffe_bundle_map_file=*/"", + config->refresh_interval().millis() / GPR_MS_PER_SEC); + options->set_root_certificate_provider( + config->ca_certificate_file().empty() ? nullptr : provider); + options->set_identity_certificate_provider( + config->certificate_file().empty() ? nullptr : provider); } - options->set_watch_root_cert(!config->ca_certificate_file().empty()); - options->set_watch_identity_pair(!config->certificate_file().empty()); options->set_certificate_verifier( MakeRefCounted()); return MakeRefCounted(std::move(options)); diff --git a/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.h b/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.h index cf79878dd28eb..37f93855d5c3a 100644 --- a/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.h +++ b/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.h @@ -27,20 +27,22 @@ #include #include -#include "src/core/credentials/transport/tls/spiffe_utils.h" #include "src/core/credentials/transport/tls/ssl_utils.h" #include "src/core/lib/iomgr/error.h" #include "src/core/tsi/ssl_transport_security.h" #include "src/core/util/ref_counted.h" #include "src/core/util/sync.h" #include "absl/base/thread_annotations.h" -#include "absl/strings/string_view.h" struct grpc_tls_identity_pairs { grpc_core::PemKeyCertPairList pem_key_cert_pairs; }; // TLS certificate distributor. +// TODO(anasalazar): Since there are no use-cases where we need to update root +// and identity certs as an atomic unit, the flow of the certs through the cert +// providers and to the TLS security connector can be greatly simplified. We may +// even be able to remove the distributor code completely. struct grpc_tls_certificate_distributor : public grpc_core::RefCounted { public: diff --git a/src/core/credentials/transport/tls/grpc_tls_credentials_options.cc b/src/core/credentials/transport/tls/grpc_tls_credentials_options.cc index 12d5c9f94f706..a72acf3be9221 100644 --- a/src/core/credentials/transport/tls/grpc_tls_credentials_options.cc +++ b/src/core/credentials/transport/tls/grpc_tls_credentials_options.cc @@ -61,34 +61,12 @@ void grpc_tls_credentials_options_set_verify_server_cert( options->set_verify_server_cert(verify_server_cert); } -void grpc_tls_credentials_options_set_certificate_provider( - grpc_tls_credentials_options* options, - grpc_tls_certificate_provider* provider) { - GRPC_CHECK_NE(options, nullptr); - GRPC_CHECK_NE(provider, nullptr); - grpc_core::ExecCtx exec_ctx; - options->set_certificate_provider( - provider->Ref(DEBUG_LOCATION, "set_certificate_provider")); -} - -void grpc_tls_credentials_options_watch_root_certs( - grpc_tls_credentials_options* options) { - GRPC_CHECK_NE(options, nullptr); - options->set_watch_root_cert(true); -} - void grpc_tls_credentials_options_set_root_cert_name( grpc_tls_credentials_options* options, const char* root_cert_name) { GRPC_CHECK_NE(options, nullptr); options->set_root_cert_name(root_cert_name); } -void grpc_tls_credentials_options_watch_identity_key_cert_pairs( - grpc_tls_credentials_options* options) { - GRPC_CHECK_NE(options, nullptr); - options->set_watch_identity_pair(true); -} - void grpc_tls_credentials_options_set_identity_cert_name( grpc_tls_credentials_options* options, const char* identity_cert_name) { GRPC_CHECK_NE(options, nullptr); @@ -160,6 +138,26 @@ void grpc_tls_credentials_options_set_max_tls_version( options->set_max_tls_version(max_tls_version); } +void grpc_tls_credentials_options_set_identity_certificate_provider( + grpc_tls_credentials_options* options, + grpc_tls_certificate_provider* provider) { + GRPC_CHECK_NE(options, nullptr); + GRPC_CHECK_NE(provider, nullptr); + grpc_core::ExecCtx exec_ctx; + options->set_identity_certificate_provider( + provider->Ref(DEBUG_LOCATION, "set_identity_certificate_provider")); +} + +void grpc_tls_credentials_options_set_root_certificate_provider( + grpc_tls_credentials_options* options, + grpc_tls_certificate_provider* provider) { + GRPC_CHECK_NE(options, nullptr); + GRPC_CHECK_NE(provider, nullptr); + grpc_core::ExecCtx exec_ctx; + options->set_root_certificate_provider( + provider->Ref(DEBUG_LOCATION, "set_root_certificate_provider")); +} + GRPCAPI void grpc_tls_credentials_options_set_sni_override( grpc_tls_credentials_options* options, std::optional sni_override) { diff --git a/src/core/credentials/transport/tls/grpc_tls_credentials_options.h b/src/core/credentials/transport/tls/grpc_tls_credentials_options.h index 21e015609fa1d..d40b6868aa9b6 100644 --- a/src/core/credentials/transport/tls/grpc_tls_credentials_options.h +++ b/src/core/credentials/transport/tls/grpc_tls_credentials_options.h @@ -52,20 +52,23 @@ struct grpc_tls_credentials_options return certificate_verifier_.get(); } bool check_call_host() const { return check_call_host_; } - // Returns the distributor from certificate_provider_ if it is set, nullptr otherwise. - grpc_tls_certificate_distributor* certificate_distributor() { - if (certificate_provider_ != nullptr) { return certificate_provider_->distributor().get(); } - return nullptr; - } - bool watch_root_cert() const { return watch_root_cert_; } const std::string& root_cert_name() const { return root_cert_name_; } - bool watch_identity_pair() const { return watch_identity_pair_; } const std::string& identity_cert_name() const { return identity_cert_name_; } const std::string& tls_session_key_log_file_path() const { return tls_session_key_log_file_path_; } const std::string& crl_directory() const { return crl_directory_; } // Returns the CRL Provider std::shared_ptr crl_provider() const { return crl_provider_; } bool send_client_ca_list() const { return send_client_ca_list_; } + // Returns the distributor from identity_certificate_provider_ if it is set, nullptr otherwise. + grpc_tls_certificate_distributor* identity_certificate_distributor() { + if (identity_certificate_provider_ != nullptr) { return identity_certificate_provider_->distributor().get(); } + return nullptr; + } + // Returns the distributor from root_certificate_provider_ if it is set, nullptr otherwise. + grpc_tls_certificate_distributor* root_certificate_distributor() { + if (root_certificate_provider_ != nullptr) { return root_certificate_provider_->distributor().get(); } + return nullptr; + } const std::optional& sni_override() const { return sni_override_; } // Setters for member fields. @@ -75,13 +78,8 @@ struct grpc_tls_credentials_options void set_max_tls_version(grpc_tls_version max_tls_version) { max_tls_version_ = max_tls_version; } void set_certificate_verifier(grpc_core::RefCountedPtr certificate_verifier) { certificate_verifier_ = std::move(certificate_verifier); } void set_check_call_host(bool check_call_host) { check_call_host_ = check_call_host; } - void set_certificate_provider(grpc_core::RefCountedPtr certificate_provider) { certificate_provider_ = std::move(certificate_provider); } - // If need to watch the updates of root certificates with name |root_cert_name|. The default value is false. If used in tls_credentials, it should always be set to true unless the root certificates are not needed. - void set_watch_root_cert(bool watch_root_cert) { watch_root_cert_ = watch_root_cert; } // Sets the name of root certificates being watched, if |set_watch_root_cert| is called. If not set, an empty string will be used as the name. void set_root_cert_name(std::string root_cert_name) { root_cert_name_ = std::move(root_cert_name); } - // If need to watch the updates of identity certificates with name |identity_cert_name|. The default value is false. If used in tls_credentials, it should always be set to true unless the identity key-cert pairs are not needed. - void set_watch_identity_pair(bool watch_identity_pair) { watch_identity_pair_ = watch_identity_pair; } // Sets the name of identity key-cert pairs being watched, if |set_watch_identity_pair| is called. If not set, an empty string will be used as the name. void set_identity_cert_name(std::string identity_cert_name) { identity_cert_name_ = std::move(identity_cert_name); } void set_tls_session_key_log_file_path(std::string tls_session_key_log_file_path) { tls_session_key_log_file_path_ = std::move(tls_session_key_log_file_path); } @@ -89,6 +87,8 @@ struct grpc_tls_credentials_options void set_crl_directory(std::string crl_directory) { crl_directory_ = std::move(crl_directory); } void set_crl_provider(std::shared_ptr crl_provider) { crl_provider_ = std::move(crl_provider); } void set_send_client_ca_list(bool send_client_ca_list) { send_client_ca_list_ = send_client_ca_list; } + void set_identity_certificate_provider(grpc_core::RefCountedPtr identity_certificate_provider) { identity_certificate_provider_ = std::move(identity_certificate_provider); } + void set_root_certificate_provider(grpc_core::RefCountedPtr root_certificate_provider) { root_certificate_provider_ = std::move(root_certificate_provider); } // If set to nullopt, do not override. If set to empty string, disable sending SNI. Otherwise, override SNI void set_sni_override(std::optional sni_override) { sni_override_ = std::move(sni_override); } @@ -99,15 +99,14 @@ struct grpc_tls_credentials_options max_tls_version_ == other.max_tls_version_ && (certificate_verifier_ == other.certificate_verifier_ || (certificate_verifier_ != nullptr && other.certificate_verifier_ != nullptr && certificate_verifier_->Compare(other.certificate_verifier_.get()) == 0)) && check_call_host_ == other.check_call_host_ && - (certificate_provider_ == other.certificate_provider_ || (certificate_provider_ != nullptr && other.certificate_provider_ != nullptr && certificate_provider_->Compare(other.certificate_provider_.get()) == 0)) && - watch_root_cert_ == other.watch_root_cert_ && root_cert_name_ == other.root_cert_name_ && - watch_identity_pair_ == other.watch_identity_pair_ && identity_cert_name_ == other.identity_cert_name_ && tls_session_key_log_file_path_ == other.tls_session_key_log_file_path_ && crl_directory_ == other.crl_directory_ && (crl_provider_ == other.crl_provider_) && send_client_ca_list_ == other.send_client_ca_list_ && + (identity_certificate_provider_ == other.identity_certificate_provider_ || (identity_certificate_provider_ != nullptr && other.identity_certificate_provider_ != nullptr && identity_certificate_provider_->Compare(other.identity_certificate_provider_.get()) == 0)) && + (root_certificate_provider_ == other.root_certificate_provider_ || (root_certificate_provider_ != nullptr && other.root_certificate_provider_ != nullptr && root_certificate_provider_->Compare(other.root_certificate_provider_.get()) == 0)) && sni_override_ == other.sni_override_; } @@ -118,15 +117,14 @@ struct grpc_tls_credentials_options max_tls_version_(other.max_tls_version_), certificate_verifier_(other.certificate_verifier_), check_call_host_(other.check_call_host_), - certificate_provider_(other.certificate_provider_), - watch_root_cert_(other.watch_root_cert_), root_cert_name_(other.root_cert_name_), - watch_identity_pair_(other.watch_identity_pair_), identity_cert_name_(other.identity_cert_name_), tls_session_key_log_file_path_(other.tls_session_key_log_file_path_), crl_directory_(other.crl_directory_), crl_provider_(other.crl_provider_), send_client_ca_list_(other.send_client_ca_list_), + identity_certificate_provider_(other.identity_certificate_provider_), + root_certificate_provider_(other.root_certificate_provider_), sni_override_(other.sni_override_) {} private: @@ -136,15 +134,14 @@ struct grpc_tls_credentials_options grpc_tls_version max_tls_version_ = grpc_tls_version::TLS1_3; grpc_core::RefCountedPtr certificate_verifier_; bool check_call_host_ = true; - grpc_core::RefCountedPtr certificate_provider_; - bool watch_root_cert_ = false; std::string root_cert_name_; - bool watch_identity_pair_ = false; std::string identity_cert_name_; std::string tls_session_key_log_file_path_; std::string crl_directory_; std::shared_ptr crl_provider_; bool send_client_ca_list_ = false; + grpc_core::RefCountedPtr identity_certificate_provider_; + grpc_core::RefCountedPtr root_certificate_provider_; std::optional sni_override_; }; diff --git a/src/core/credentials/transport/tls/tls_security_connector.cc b/src/core/credentials/transport/tls/tls_security_connector.cc index 8dcdba0a5f34a..75c4516a01317 100644 --- a/src/core/credentials/transport/tls/tls_security_connector.cc +++ b/src/core/credentials/transport/tls/tls_security_connector.cc @@ -291,17 +291,20 @@ TlsChannelSecurityConnector::TlsChannelSecurityConnector( SplitHostPort(target_name, &host, &port); target_name_ = std::string(host); // Create a watcher. - auto watcher_ptr = std::make_unique(this); - certificate_watcher_ = watcher_ptr.get(); - // Register the watcher with the distributor. - grpc_tls_certificate_distributor* distributor = - options_->certificate_distributor(); + auto identity_watcher_ptr = + std::make_unique(this); + auto root_watcher_ptr = std::make_unique(this); + root_certificate_watcher_ = root_watcher_ptr.get(); + identity_certificate_watcher_ = identity_watcher_ptr.get(); + bool watch_root_cert = options_->root_certificate_distributor() != nullptr; + bool watch_identity_cert = + options_->identity_certificate_distributor() != nullptr; std::optional watched_root_cert_name; - if (options_->watch_root_cert()) { + if (watch_root_cert) { watched_root_cert_name = options_->root_cert_name(); } std::optional watched_identity_cert_name; - if (options_->watch_identity_pair()) { + if (watch_identity_cert) { watched_identity_cert_name = options_->identity_cert_name(); } // We will use the root certs stored in system default locations if not @@ -310,13 +313,19 @@ TlsChannelSecurityConnector::TlsChannelSecurityConnector( // certs" is a valid case(and hence we will need to call // OnCertificatesChanged), but it requires nothing from the provider, and // hence no need to register the watcher. - bool use_default_roots = !options_->watch_root_cert(); - if (use_default_roots && !options_->watch_identity_pair()) { - watcher_ptr->OnCertificatesChanged(nullptr, std::nullopt); + if (!watch_root_cert && !watch_identity_cert) { + root_certificate_watcher_->OnCertificatesChanged(nullptr, std::nullopt); } else { - distributor->WatchTlsCertificates(std::move(watcher_ptr), - watched_root_cert_name, - watched_identity_cert_name); + if (watch_root_cert) { + options_->root_certificate_distributor()->WatchTlsCertificates( + std::move(root_watcher_ptr), watched_root_cert_name, + watched_identity_cert_name); + } + if (watch_identity_cert) { + options_->identity_certificate_distributor()->WatchTlsCertificates( + std::move(identity_watcher_ptr), watched_root_cert_name, + watched_identity_cert_name); + } } } @@ -325,10 +334,16 @@ TlsChannelSecurityConnector::~TlsChannelSecurityConnector() { tsi_ssl_session_cache_unref(ssl_session_cache_); } // Cancel all the watchers. - grpc_tls_certificate_distributor* distributor = - options_->certificate_distributor(); - if (distributor != nullptr) { - distributor->CancelTlsCertificatesWatch(certificate_watcher_); + grpc_tls_certificate_distributor* root_distributor = + options_->root_certificate_distributor(); + if (root_distributor != nullptr) { + root_distributor->CancelTlsCertificatesWatch(root_certificate_watcher_); + } + grpc_tls_certificate_distributor* identity_distributor = + options_->identity_certificate_distributor(); + if (identity_distributor != nullptr) { + identity_distributor->CancelTlsCertificatesWatch( + identity_certificate_watcher_); } if (client_handshaker_factory_ != nullptr) { tsi_ssl_client_handshaker_factory_unref(client_handshaker_factory_); @@ -449,10 +464,13 @@ void TlsChannelSecurityConnector::TlsChannelCertificateWatcher:: if (key_cert_pairs.has_value()) { security_connector_->pem_key_cert_pair_list_ = std::move(key_cert_pairs); } - const bool root_ready = !security_connector_->options_->watch_root_cert() || - security_connector_->root_cert_info_ != nullptr; + const bool root_ready = + security_connector_->options_->root_certificate_distributor() == + nullptr || + security_connector_->root_cert_info_ != nullptr; const bool identity_ready = - !security_connector_->options_->watch_identity_pair() || + security_connector_->options_->identity_certificate_distributor() == + nullptr || security_connector_->pem_key_cert_pair_list_.has_value(); if (root_ready && identity_ready) { if (security_connector_->UpdateHandshakerFactoryLocked() != @@ -539,7 +557,7 @@ TlsChannelSecurityConnector::UpdateHandshakerFactoryLocked() { if (pem_key_cert_pair_list_.has_value()) { pem_key_cert_pair = ConvertToTsiPemKeyCertPair(*pem_key_cert_pair_list_); } - bool use_default_roots = !options_->watch_root_cert(); + bool use_default_roots = options_->root_certificate_distributor() == nullptr; grpc_security_status status = grpc_ssl_tsi_client_handshaker_factory_init( pem_key_cert_pair, use_default_roots ? nullptr : root_cert_info_, skip_server_certificate_verification, @@ -586,30 +604,48 @@ TlsServerSecurityConnector::TlsServerSecurityConnector( tsi::TlsSessionKeyLoggerCache::Get(tls_session_key_log_file_path); } // Create a watcher. - auto watcher_ptr = std::make_unique(this); - certificate_watcher_ = watcher_ptr.get(); - // Register the watcher with the distributor. - grpc_tls_certificate_distributor* distributor = - options_->certificate_distributor(); + auto root_watcher_ptr = std::make_unique(this); + auto identity_watcher_ptr = + std::make_unique(this); + root_certificate_watcher_ = root_watcher_ptr.get(); + identity_certificate_watcher_ = identity_watcher_ptr.get(); + bool watch_root_cert = options_->root_certificate_distributor() != nullptr; + bool watch_identity_cert = + options_->identity_certificate_distributor() != nullptr; std::optional watched_root_cert_name; - if (options_->watch_root_cert()) { + if (watch_root_cert) { watched_root_cert_name = options_->root_cert_name(); } std::optional watched_identity_cert_name; - if (options_->watch_identity_pair()) { + if (watch_identity_cert) { watched_identity_cert_name = options_->identity_cert_name(); } - // Server side won't use default system roots at any time. - distributor->WatchTlsCertificates(std::move(watcher_ptr), - watched_root_cert_name, - watched_identity_cert_name); + // Register the watcher with the distributor. + if (watch_root_cert) { + options_->root_certificate_distributor()->WatchTlsCertificates( + std::move(root_watcher_ptr), watched_root_cert_name, + watched_identity_cert_name); + } + if (watch_identity_cert) { + options_->identity_certificate_distributor()->WatchTlsCertificates( + std::move(identity_watcher_ptr), watched_root_cert_name, + watched_identity_cert_name); + } } TlsServerSecurityConnector::~TlsServerSecurityConnector() { // Cancel all the watchers. - grpc_tls_certificate_distributor* distributor = - options_->certificate_distributor(); - distributor->CancelTlsCertificatesWatch(certificate_watcher_); + grpc_tls_certificate_distributor* root_distributor = + options_->root_certificate_distributor(); + if (root_distributor != nullptr) { + root_distributor->CancelTlsCertificatesWatch(root_certificate_watcher_); + } + grpc_tls_certificate_distributor* identity_distributor = + options_->identity_certificate_distributor(); + if (identity_distributor != nullptr) { + identity_distributor->CancelTlsCertificatesWatch( + identity_certificate_watcher_); + } if (server_handshaker_factory_ != nullptr) { tsi_ssl_server_handshaker_factory_unref(server_handshaker_factory_); } @@ -701,10 +737,12 @@ void TlsServerSecurityConnector::TlsServerCertificateWatcher:: if (key_cert_pairs.has_value()) { security_connector_->pem_key_cert_pair_list_ = std::move(key_cert_pairs); } - bool root_being_watched = security_connector_->options_->watch_root_cert(); + bool root_being_watched = + security_connector_->options_->root_certificate_distributor() != nullptr; bool root_has_value = security_connector_->root_cert_info_ != nullptr; bool identity_being_watched = - security_connector_->options_->watch_identity_pair(); + security_connector_->options_->identity_certificate_distributor() != + nullptr; bool identity_has_value = security_connector_->pem_key_cert_pair_list_.has_value(); if ((root_being_watched && root_has_value && identity_being_watched && diff --git a/src/core/credentials/transport/tls/tls_security_connector.h b/src/core/credentials/transport/tls/tls_security_connector.h index 9efdc235e0383..7d5eabf6f104f 100644 --- a/src/core/credentials/transport/tls/tls_security_connector.h +++ b/src/core/credentials/transport/tls/tls_security_connector.h @@ -158,7 +158,9 @@ class TlsChannelSecurityConnector final Mutex verifier_request_map_mu_; RefCountedPtr options_; grpc_tls_certificate_distributor::TlsCertificatesWatcherInterface* - certificate_watcher_ = nullptr; + root_certificate_watcher_ = nullptr; + grpc_tls_certificate_distributor::TlsCertificatesWatcherInterface* + identity_certificate_watcher_ = nullptr; std::string target_name_; std::string overridden_target_name_; tsi_ssl_client_handshaker_factory* client_handshaker_factory_ @@ -269,7 +271,9 @@ class TlsServerSecurityConnector final : public grpc_server_security_connector { Mutex verifier_request_map_mu_; RefCountedPtr options_; grpc_tls_certificate_distributor::TlsCertificatesWatcherInterface* - certificate_watcher_ = nullptr; + root_certificate_watcher_ = nullptr; + grpc_tls_certificate_distributor::TlsCertificatesWatcherInterface* + identity_certificate_watcher_ = nullptr; tsi_ssl_server_handshaker_factory* server_handshaker_factory_ ABSL_GUARDED_BY(mu_) = nullptr; std::optional pem_key_cert_pair_list_ diff --git a/src/core/credentials/transport/xds/xds_credentials.cc b/src/core/credentials/transport/xds/xds_credentials.cc index 6e439fec34a20..57ce337052a0d 100644 --- a/src/core/credentials/transport/xds/xds_credentials.cc +++ b/src/core/credentials/transport/xds/xds_credentials.cc @@ -175,15 +175,13 @@ XdsCredentials::create_security_connector( if (watch_root || use_system_root_certs || watch_identity) { auto tls_credentials_options = MakeRefCounted(); - if (watch_root || watch_identity) { - tls_credentials_options->set_certificate_provider( + if (watch_root) { + tls_credentials_options->set_root_certificate_provider( + xds_certificate_provider); + } + if (watch_identity) { + tls_credentials_options->set_identity_certificate_provider( xds_certificate_provider); - if (watch_root) { - tls_credentials_options->set_watch_root_cert(true); - } - if (watch_identity) { - tls_credentials_options->set_watch_identity_pair(true); - } } tls_credentials_options->set_verify_server_cert(true); auto hostname = args->GetOwnedString(GRPC_ARG_ADDRESS_NAME); @@ -233,10 +231,11 @@ XdsServerCredentials::create_security_connector(const ChannelArgs& args) { xds_certificate_provider->ProvidesIdentityCerts()) { auto tls_credentials_options = MakeRefCounted(); - tls_credentials_options->set_watch_identity_pair(true); - tls_credentials_options->set_certificate_provider(xds_certificate_provider); + tls_credentials_options->set_identity_certificate_provider( + xds_certificate_provider); if (xds_certificate_provider->ProvidesRootCerts()) { - tls_credentials_options->set_watch_root_cert(true); + tls_credentials_options->set_root_certificate_provider( + xds_certificate_provider); tls_credentials_options->set_cert_request_type( xds_certificate_provider->require_client_certificate() ? GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY diff --git a/src/core/ext/filters/fault_injection/fault_injection_filter.cc b/src/core/ext/filters/fault_injection/fault_injection_filter.cc index 7e0c5e4824c28..e09c4b92bf20d 100644 --- a/src/core/ext/filters/fault_injection/fault_injection_filter.cc +++ b/src/core/ext/filters/fault_injection/fault_injection_filter.cc @@ -264,7 +264,7 @@ std::string FaultInjectionFilter::InjectionDecision::ToString() const { " abort=", abort_request_.has_value()); } -const grpc_channel_filter FaultInjectionFilter::kFilter = +const grpc_channel_filter FaultInjectionFilter::kFilterVtable = MakePromiseBasedFilter(); void FaultInjectionFilterRegister(CoreConfiguration::Builder* builder) { diff --git a/src/core/ext/filters/fault_injection/fault_injection_filter.h b/src/core/ext/filters/fault_injection/fault_injection_filter.h index 0567df55ba5e9..b38cb228db18b 100644 --- a/src/core/ext/filters/fault_injection/fault_injection_filter.h +++ b/src/core/ext/filters/fault_injection/fault_injection_filter.h @@ -41,7 +41,7 @@ namespace grpc_core { class FaultInjectionFilter : public ImplementChannelFilter { public: - static const grpc_channel_filter kFilter; + static const grpc_channel_filter kFilterVtable; static absl::string_view TypeName() { return "fault_injection_filter"; } diff --git a/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc b/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc index 3a4978eb70c5f..78626f636854b 100644 --- a/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +++ b/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc @@ -137,7 +137,7 @@ GcpAuthenticationFilter::CallCredentialsCache::Get( // GcpAuthenticationFilter // -const grpc_channel_filter GcpAuthenticationFilter::kFilter = +const grpc_channel_filter GcpAuthenticationFilter::kFilterVtable = MakePromiseBasedFilter(); diff --git a/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h b/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h index a8fcf3e5f7d3b..6e6b4eb6af1ba 100644 --- a/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +++ b/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h @@ -58,7 +58,7 @@ class GcpAuthenticationFilter cache_ ABSL_GUARDED_BY(&mu_); }; - static const grpc_channel_filter kFilter; + static const grpc_channel_filter kFilterVtable; static absl::string_view TypeName() { return "gcp_authentication_filter"; } diff --git a/src/core/ext/filters/stateful_session/stateful_session_filter.cc b/src/core/ext/filters/stateful_session/stateful_session_filter.cc index 53cb0d7d0fade..c4ab31ab3ae78 100644 --- a/src/core/ext/filters/stateful_session/stateful_session_filter.cc +++ b/src/core/ext/filters/stateful_session/stateful_session_filter.cc @@ -59,7 +59,7 @@ UniqueTypeName XdsOverrideHostAttribute::TypeName() { return kFactory.Create(); } -const grpc_channel_filter StatefulSessionFilter::kFilter = +const grpc_channel_filter StatefulSessionFilter::kFilterVtable = MakePromiseBasedFilter(); diff --git a/src/core/ext/filters/stateful_session/stateful_session_filter.h b/src/core/ext/filters/stateful_session/stateful_session_filter.h index 6d242ce045a15..f15cca6ff22b7 100644 --- a/src/core/ext/filters/stateful_session/stateful_session_filter.h +++ b/src/core/ext/filters/stateful_session/stateful_session_filter.h @@ -70,7 +70,7 @@ class XdsOverrideHostAttribute class StatefulSessionFilter : public ImplementChannelFilter { public: - static const grpc_channel_filter kFilter; + static const grpc_channel_filter kFilterVtable; static absl::string_view TypeName() { return "stateful_session_filter"; } diff --git a/src/core/ext/transport/chaotic_good/client_transport.cc b/src/core/ext/transport/chaotic_good/client_transport.cc index a9c122f21d7e1..ee7540ff3d9e0 100644 --- a/src/core/ext/transport/chaotic_good/client_transport.cc +++ b/src/core/ext/transport/chaotic_good/client_transport.cc @@ -285,6 +285,7 @@ void ChaoticGoodClientTransport::Orphan() { void ChaoticGoodClientTransport::AddData(channelz::DataSink sink) { // TODO(ctiller): add calls in stream dispatch party_->ExportToChannelz("transport_party", sink); + message_chunker_.AddData(sink); } auto ChaoticGoodClientTransport::CallOutboundLoop(uint32_t stream_id, diff --git a/src/core/ext/transport/chaotic_good/data_endpoints.cc b/src/core/ext/transport/chaotic_good/data_endpoints.cc index e0173f7c4921b..014c71b8ede30 100644 --- a/src/core/ext/transport/chaotic_good/data_endpoints.cc +++ b/src/core/ext/transport/chaotic_good/data_endpoints.cc @@ -508,21 +508,64 @@ class MetricsCollector delivery_rate_ = telemetry_info_->GetMetricKey("delivery_rate"); rtt_ = telemetry_info_->GetMetricKey("net_rtt_usec"); if (!rtt_.has_value()) rtt_ = telemetry_info_->GetMetricKey("srtt"); + min_rtt_ = telemetry_info_->GetMetricKey("min_rtt"); data_notsent_ = telemetry_info_->GetMetricKey("data_notsent"); byte_offset_ = telemetry_info_->GetMetricKey("byte_offset"); - absl::InlinedVector keys; - if (delivery_rate_.has_value()) { - keys.push_back(*delivery_rate_); - } + congestion_window_ = telemetry_info_->GetMetricKey("congestion_window"); + snd_ssthresh_ = telemetry_info_->GetMetricKey("snd_ssthresh"); + packet_retx_ = telemetry_info_->GetMetricKey("packet_retx"); + packet_spurious_retx_ = + telemetry_info_->GetMetricKey("packet_spurious_retx"); + packet_sent_ = telemetry_info_->GetMetricKey("packet_sent"); + packet_delivered_ = telemetry_info_->GetMetricKey("packet_delivered"); + packet_delivered_ce_ = telemetry_info_->GetMetricKey("packet_delivered_ce"); + data_retx_ = telemetry_info_->GetMetricKey("data_retx"); + data_sent_ = telemetry_info_->GetMetricKey("data_sent"); + pacing_rate_ = telemetry_info_->GetMetricKey("pacing_rate"); + reordering_ = telemetry_info_->GetMetricKey("reordering"); + recurring_retrans_ = telemetry_info_->GetMetricKey("recurring_retrans"); + busy_usec_ = telemetry_info_->GetMetricKey("busy_usec"); + rwnd_limited_usec_ = telemetry_info_->GetMetricKey("rwnd_limited_usec"); + sndbuf_limited_usec_ = telemetry_info_->GetMetricKey("sndbuf_limited_usec"); + is_delivery_rate_app_limited_ = + telemetry_info_->GetMetricKey("is_delivery_rate_app_limited"); + + absl::InlinedVector keys; + if (delivery_rate_.has_value()) keys.push_back(*delivery_rate_); if (byte_offset_.has_value()) keys.push_back(*byte_offset_); if (rtt_.has_value()) keys.push_back(*rtt_); + if (min_rtt_.has_value()) keys.push_back(*min_rtt_); if (data_notsent_.has_value()) keys.push_back(*data_notsent_); + if (congestion_window_.has_value()) keys.push_back(*congestion_window_); + if (snd_ssthresh_.has_value()) keys.push_back(*snd_ssthresh_); + if (packet_retx_.has_value()) keys.push_back(*packet_retx_); + if (packet_spurious_retx_.has_value()) { + keys.push_back(*packet_spurious_retx_); + } + if (packet_sent_.has_value()) keys.push_back(*packet_sent_); + if (packet_delivered_.has_value()) keys.push_back(*packet_delivered_); + if (packet_delivered_ce_.has_value()) keys.push_back(*packet_delivered_ce_); + if (data_retx_.has_value()) keys.push_back(*data_retx_); + if (data_sent_.has_value()) keys.push_back(*data_sent_); + if (pacing_rate_.has_value()) keys.push_back(*pacing_rate_); + if (reordering_.has_value()) keys.push_back(*reordering_); + if (recurring_retrans_.has_value()) keys.push_back(*recurring_retrans_); + if (busy_usec_.has_value()) keys.push_back(*busy_usec_); + if (rwnd_limited_usec_.has_value()) keys.push_back(*rwnd_limited_usec_); + if (sndbuf_limited_usec_.has_value()) keys.push_back(*sndbuf_limited_usec_); + if (is_delivery_rate_app_limited_.has_value()) { + keys.push_back(*is_delivery_rate_app_limited_); + } requested_metrics_ = telemetry_info_->GetMetricsSet(keys); } bool HasAnyMetrics() const { + // Checking this subset of metrics is sufficient to determine if it has + // any metrics return delivery_rate_.has_value() || rtt_.has_value() || - data_notsent_.has_value(); + min_rtt_.has_value() || data_notsent_.has_value() || + byte_offset_.has_value() || congestion_window_.has_value() || + snd_ssthresh_.has_value() || packet_retx_.has_value(); } std::shared_ptr< @@ -612,8 +655,25 @@ class MetricsCollector Clock* const clock_; std::optional delivery_rate_; std::optional rtt_; + std::optional min_rtt_; std::optional data_notsent_; std::optional byte_offset_; + std::optional congestion_window_; + std::optional snd_ssthresh_; + std::optional packet_retx_; + std::optional packet_spurious_retx_; + std::optional packet_sent_; + std::optional packet_delivered_; + std::optional packet_delivered_ce_; + std::optional data_retx_; + std::optional data_sent_; + std::optional pacing_rate_; + std::optional reordering_; + std::optional recurring_retrans_; + std::optional busy_usec_; + std::optional rwnd_limited_usec_; + std::optional sndbuf_limited_usec_; + std::optional is_delivery_rate_app_limited_; std::shared_ptr< grpc_event_engine::experimental::EventEngine::Endpoint::MetricsSet> requested_metrics_; diff --git a/src/core/ext/transport/chaotic_good/message_chunker.h b/src/core/ext/transport/chaotic_good/message_chunker.h index 285694171ee0b..1513c93eabba1 100644 --- a/src/core/ext/transport/chaotic_good/message_chunker.h +++ b/src/core/ext/transport/chaotic_good/message_chunker.h @@ -132,6 +132,12 @@ class MessageChunker { uint32_t max_chunk_size() const { return max_chunk_size_; } uint32_t alignment() const { return alignment_; } + void AddData(channelz::DataSink sink) { + sink.AddData("message_chunker", channelz::PropertyList() + .Set("max_chunk_size", max_chunk_size_) + .Set("alignment", alignment_)); + } + private: bool ShouldChunk(Message& message) { return max_chunk_size_ != 0 && diff --git a/src/core/ext/transport/chaotic_good/server_transport.cc b/src/core/ext/transport/chaotic_good/server_transport.cc index f1af9d6a42bc8..70691959a89b9 100644 --- a/src/core/ext/transport/chaotic_good/server_transport.cc +++ b/src/core/ext/transport/chaotic_good/server_transport.cc @@ -294,6 +294,7 @@ void ChaoticGoodServerTransport::StreamDispatch::AddData( channelz::DataSink sink) { party_->ExportToChannelz("transport_party", sink); MutexLock lock(&mu_); + message_chunker_.AddData(sink); sink.AddData("transport_state", channelz::PropertyList() .Set("stream_map_size", stream_map_.size()) diff --git a/src/core/ext/transport/chaotic_good/tcp_ztrace_collector.h b/src/core/ext/transport/chaotic_good/tcp_ztrace_collector.h index c6e1b0fed6d68..0c3b89ce5e2ad 100644 --- a/src/core/ext/transport/chaotic_good/tcp_ztrace_collector.h +++ b/src/core/ext/transport/chaotic_good/tcp_ztrace_collector.h @@ -82,7 +82,7 @@ struct EndpointWriteMetricsTrace { return channelz::PropertyList() .Set("metadata_type", grpc_event_engine::experimental::WriteEventToString(write_event)) - .Set("fathom_timestamp", timestamp) + .Set("fathom_timestamp", absl::FormatTime(timestamp)) .Merge([this]() { channelz::PropertyList props; for (const auto& [name, value] : metrics) { diff --git a/src/core/ext/transport/chttp2/GEMINI.md b/src/core/ext/transport/chttp2/GEMINI.md index 078616da65e12..4b84519a87f96 100644 --- a/src/core/ext/transport/chttp2/GEMINI.md +++ b/src/core/ext/transport/chttp2/GEMINI.md @@ -246,5 +246,6 @@ that we use in the transport. | AddData | Misc | ChannelZ AddData | 1 | On demand | Immediate | Immediate | | CloseTransport | Misc | Close transport | 1 | While closing transport. Only once in the life of a transport | As long as it takes to close the transport | Transport Close | | WaitForSettingsTimeout | Timeout | Settings Timeout | 1 | When we write SETTINGS | Settings timeout | Settings Ack Received or Settings Timeout | -|`TODO(akshitpatel) [PH2][P4] Fill this out for Ping, Keepalive etc. Also update the total.` | -| | | **Total** | ** 7 + Ping ** | | | | +| Keepalive | Loop | Keepalive Loop | 1 | If Keepalive is enabled, after constructor | Lifetime of the transport | Transport Close +| Ping | Timeout + Misc | | 4 | Sending a ping request | Timeout or a specific duration | +| | | **Total** | 12 | | | | diff --git a/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.h b/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.h index 592c8dfca77f4..3fb03d04c57e9 100644 --- a/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.h +++ b/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.h @@ -45,6 +45,11 @@ class Chttp2CallTracerWrapper final : public CallTracerInterface { void MutateSendInitialMetadata( grpc_metadata_batch* /*send_initial_metadata*/) override {} void RecordSendTrailingMetadata( + grpc_metadata_batch* send_trailing_metadata) override { + GRPC_CHECK(!IsCallTracerSendTrailingMetadataIsAnAnnotationEnabled()); + MutateSendTrailingMetadata(send_trailing_metadata); + } + void MutateSendTrailingMetadata( grpc_metadata_batch* /*send_trailing_metadata*/) override {} void RecordSendMessage(const Message& /*send_message*/) override {} void RecordSendCompressedMessage( diff --git a/src/core/ext/transport/chttp2/transport/chttp2_transport.cc b/src/core/ext/transport/chttp2/transport/chttp2_transport.cc index c2cef6c4d741d..ff9f0b7f9abae 100644 --- a/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +++ b/src/core/ext/transport/chttp2/transport/chttp2_transport.cc @@ -44,9 +44,11 @@ #include #include +#include "src/core/call/metadata.h" #include "src/core/call/metadata_batch.h" #include "src/core/call/metadata_info.h" #include "src/core/channelz/property_list.h" +#include "src/core/client_channel/client_channel_internal.h" #include "src/core/config/config_vars.h" #include "src/core/ext/transport/chttp2/transport/call_tracer_wrapper.h" #include "src/core/ext/transport/chttp2/transport/flow_control.h" @@ -169,8 +171,9 @@ static void read_action_locked(grpc_core::RefCountedPtr, static void continue_read_action_locked( grpc_core::RefCountedPtr t); -static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s, - grpc_error_handle error, bool tarpit); +static void close_from_api( + grpc_chttp2_transport* t, grpc_chttp2_stream* s, grpc_error_handle error, + bool tarpit, grpc_core::ServerMetadataHandle send_trailing_metadata); // Start new streams that have been created if we can static void maybe_start_some_streams(grpc_chttp2_transport* t); @@ -1842,8 +1845,10 @@ static void perform_stream_op_locked(void* stream_op, } if (op->cancel_stream) { - grpc_chttp2_cancel_stream(t, s, op_payload->cancel_stream.cancel_error, - op_payload->cancel_stream.tarpit); + grpc_chttp2_cancel_stream( + t, s, op_payload->cancel_stream.cancel_error, + op_payload->cancel_stream.tarpit, + std::move(op_payload->cancel_stream.send_trailing_metadata)); } if (op->send_initial_metadata) { @@ -2456,15 +2461,23 @@ void MaybeTarpit(grpc_chttp2_transport* t, bool tarpit, F fn) { } // namespace } // namespace grpc_core -void grpc_chttp2_cancel_stream(grpc_chttp2_transport* t, grpc_chttp2_stream* s, - grpc_error_handle due_to_error, bool tarpit) { +void grpc_chttp2_cancel_stream( + grpc_chttp2_transport* t, grpc_chttp2_stream* s, + grpc_error_handle due_to_error, bool tarpit, + grpc_core::ServerMetadataHandle send_trailing_metadata) { if (!t->is_client && !s->sent_trailing_metadata && grpc_error_has_clear_grpc_status(due_to_error) && !(s->read_closed && s->write_closed)) { - close_from_api(t, s, due_to_error, tarpit); + close_from_api(t, s, due_to_error, tarpit, + std::move(send_trailing_metadata)); return; } + if (grpc_core::IsPromiseFilterSendCancelMetadataEnabled()) { + send_trailing_metadata.reset(); + } + GRPC_DCHECK(send_trailing_metadata == nullptr); + if (!due_to_error.ok() && !s->seen_error) { s->seen_error = true; } @@ -2650,8 +2663,9 @@ grpc_chttp2_transport::RemovedStreamHandle grpc_chttp2_mark_stream_closed( return rsh; } -static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s, - grpc_error_handle error, bool tarpit) { +static void close_from_api( + grpc_chttp2_transport* t, grpc_chttp2_stream* s, grpc_error_handle error, + bool tarpit, grpc_core::ServerMetadataHandle send_trailing_metadata) { grpc_status_code grpc_status; std::string message; grpc_error_get_status(error, s->deadline, &grpc_status, &message, nullptr, @@ -2663,9 +2677,9 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s, auto remove_stream_handle = grpc_chttp2_mark_stream_closed(t, s, 1, 1, error); grpc_core::MaybeTarpit( t, tarpit, - [error = std::move(error), - sent_initial_metadata = s->sent_initial_metadata, id = s->id, + [sent_initial_metadata = s->sent_initial_metadata, id = s->id, grpc_status, message = std::move(message), + send_trailing_metadata = std::move(send_trailing_metadata), remove_stream_handle = std::move(remove_stream_handle)](grpc_chttp2_transport* t) mutable { grpc_slice hdr; @@ -2673,6 +2687,9 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s, grpc_slice http_status_hdr; grpc_slice content_type_hdr; grpc_slice message_pfx; + size_t msg_len = message.length(); + grpc_core::Slice message_slice = + grpc_core::Slice::FromCopiedString(std::move(message)); uint8_t* p; uint32_t len = 0; @@ -2739,57 +2756,70 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s, len += static_cast GRPC_SLICE_LENGTH(content_type_hdr); } - status_hdr = GRPC_SLICE_MALLOC(15 + (grpc_status >= 10)); - p = GRPC_SLICE_START_PTR(status_hdr); - *p++ = 0x00; // literal header, not indexed - *p++ = 11; // len(grpc-status) - *p++ = 'g'; - *p++ = 'r'; - *p++ = 'p'; - *p++ = 'c'; - *p++ = '-'; - *p++ = 's'; - *p++ = 't'; - *p++ = 'a'; - *p++ = 't'; - *p++ = 'u'; - *p++ = 's'; - if (grpc_status < 10) { - *p++ = 1; - *p++ = static_cast('0' + grpc_status); + grpc_core::RawEncoder raw_encoder( + t->settings.peer().allow_true_binary_metadata()); + + if (grpc_core::IsPromiseFilterSendCancelMetadataEnabled()) { + raw_encoder.Encode(grpc_core::GrpcStatusMetadata(), grpc_status); + raw_encoder.Encode(grpc_core::GrpcMessageMetadata(), message_slice); + if (send_trailing_metadata != nullptr) { + send_trailing_metadata->Encode(&raw_encoder); + send_trailing_metadata.reset(); + } + len += raw_encoder.Length(); } else { - *p++ = 2; - *p++ = static_cast('0' + (grpc_status / 10)); - *p++ = static_cast('0' + (grpc_status % 10)); + status_hdr = GRPC_SLICE_MALLOC(15 + (grpc_status >= 10)); + p = GRPC_SLICE_START_PTR(status_hdr); + *p++ = 0x00; // literal header, not indexed + *p++ = 11; // len(grpc-status) + *p++ = 'g'; + *p++ = 'r'; + *p++ = 'p'; + *p++ = 'c'; + *p++ = '-'; + *p++ = 's'; + *p++ = 't'; + *p++ = 'a'; + *p++ = 't'; + *p++ = 'u'; + *p++ = 's'; + if (grpc_status < 10) { + *p++ = 1; + *p++ = static_cast('0' + grpc_status); + } else { + *p++ = 2; + *p++ = static_cast('0' + (grpc_status / 10)); + *p++ = static_cast('0' + (grpc_status % 10)); + } + GRPC_CHECK(p == GRPC_SLICE_END_PTR(status_hdr)); + len += static_cast GRPC_SLICE_LENGTH(status_hdr); + + GRPC_CHECK(msg_len <= UINT32_MAX); + grpc_core::VarintWriter<1> msg_len_writer( + static_cast(msg_len)); + message_pfx = GRPC_SLICE_MALLOC(14 + msg_len_writer.length()); + p = GRPC_SLICE_START_PTR(message_pfx); + *p++ = 0x00; // literal header, not indexed + *p++ = 12; // len(grpc-message) + *p++ = 'g'; + *p++ = 'r'; + *p++ = 'p'; + *p++ = 'c'; + *p++ = '-'; + *p++ = 'm'; + *p++ = 'e'; + *p++ = 's'; + *p++ = 's'; + *p++ = 'a'; + *p++ = 'g'; + *p++ = 'e'; + msg_len_writer.Write(0, p); + p += msg_len_writer.length(); + GRPC_CHECK(p == GRPC_SLICE_END_PTR(message_pfx)); + len += static_cast GRPC_SLICE_LENGTH(message_pfx); + len += static_cast(msg_len); } - GRPC_CHECK(p == GRPC_SLICE_END_PTR(status_hdr)); - len += static_cast GRPC_SLICE_LENGTH(status_hdr); - - size_t msg_len = message.length(); - GRPC_CHECK(msg_len <= UINT32_MAX); - grpc_core::VarintWriter<1> msg_len_writer( - static_cast(msg_len)); - message_pfx = GRPC_SLICE_MALLOC(14 + msg_len_writer.length()); - p = GRPC_SLICE_START_PTR(message_pfx); - *p++ = 0x00; // literal header, not indexed - *p++ = 12; // len(grpc-message) - *p++ = 'g'; - *p++ = 'r'; - *p++ = 'p'; - *p++ = 'c'; - *p++ = '-'; - *p++ = 'm'; - *p++ = 'e'; - *p++ = 's'; - *p++ = 's'; - *p++ = 'a'; - *p++ = 'g'; - *p++ = 'e'; - msg_len_writer.Write(0, p); - p += msg_len_writer.length(); - GRPC_CHECK(p == GRPC_SLICE_END_PTR(message_pfx)); - len += static_cast GRPC_SLICE_LENGTH(message_pfx); - len += static_cast(msg_len); + GRPC_DCHECK(send_trailing_metadata == nullptr); hdr = GRPC_SLICE_MALLOC(9); p = GRPC_SLICE_START_PTR(hdr); @@ -2810,10 +2840,13 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s, grpc_slice_buffer_add(&t->qbuf, http_status_hdr); grpc_slice_buffer_add(&t->qbuf, content_type_hdr); } - grpc_slice_buffer_add(&t->qbuf, status_hdr); - grpc_slice_buffer_add(&t->qbuf, message_pfx); - grpc_slice_buffer_add(&t->qbuf, - grpc_slice_from_cpp_string(std::move(message))); + if (grpc_core::IsPromiseFilterSendCancelMetadataEnabled()) { + std::move(raw_encoder).Flush(&t->qbuf); + } else { + grpc_slice_buffer_add(&t->qbuf, status_hdr); + grpc_slice_buffer_add(&t->qbuf, message_pfx); + grpc_slice_buffer_add(&t->qbuf, message_slice.TakeCSlice()); + } grpc_chttp2_reset_ping_clock(t); grpc_chttp2_add_rst_stream_to_next_write( t, id, static_cast(Http2ErrorCode::kNoError), nullptr); diff --git a/src/core/ext/transport/chttp2/transport/hpack_encoder.cc b/src/core/ext/transport/chttp2/transport/hpack_encoder.cc index 57aec834863e9..69b311aef2c7f 100644 --- a/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +++ b/src/core/ext/transport/chttp2/transport/hpack_encoder.cc @@ -20,11 +20,14 @@ #include #include +#include #include #include #include +#include +#include "src/core/call/metadata_batch.h" #include "src/core/ext/transport/chttp2/transport/bin_encoder.h" #include "src/core/ext/transport/chttp2/transport/hpack_constants.h" #include "src/core/ext/transport/chttp2/transport/hpack_encoder_table.h" @@ -246,72 +249,77 @@ class StringKey { } // namespace namespace hpack_encoder_detail { -void Encoder::EmitIndexed(uint32_t elem_index) { - VarintWriter<1> w(elem_index); - w.Write(0x80, output_.AddTiny(w.length())); -} - -uint32_t Encoder::EmitLitHdrWithNonBinaryStringKeyIncIdx(Slice key_slice, - Slice value_slice) { +uint32_t HPackWriter::EmitLitHdrWithNonBinaryStringKeyIncIdx( + Slice key_slice, Slice value_slice, SliceBuffer& output, + HPackEncoderTable& table) { auto key_len = key_slice.length(); auto value_len = value_slice.length(); StringKey key(std::move(key_slice)); - key.WritePrefix(0x40, output_.AddTiny(key.prefix_length())); - output_.Append(key.key()); + key.WritePrefix(0x40, output.AddTiny(key.prefix_length())); + output.Append(key.key()); NonBinaryStringValue emit(std::move(value_slice)); - emit.WritePrefix(output_.AddTiny(emit.prefix_length())); + emit.WritePrefix(output.AddTiny(emit.prefix_length())); // Allocate an index in the hpack table for this newly emitted entry. // (we do so here because we know the length of the key and value) - uint32_t index = compressor_->table_.AllocateIndex( - key_len + value_len + hpack_constants::kEntryOverhead); - output_.Append(emit.data()); + uint32_t index = table.AllocateIndex(key_len + value_len + + hpack_constants::kEntryOverhead); + output.Append(emit.data()); return index; } -void Encoder::EmitLitHdrWithBinaryStringKeyNotIdx(Slice key_slice, - Slice value_slice) { +void HPackWriter::EmitLitHdrWithBinaryStringKeyNotIdx( + Slice key_slice, Slice value_slice, SliceBuffer& output, + bool use_true_binary_metadata) { StringKey key(std::move(key_slice)); - key.WritePrefix(0x00, output_.AddTiny(key.prefix_length())); - output_.Append(key.key()); - BinaryStringValue emit(std::move(value_slice), use_true_binary_metadata_); - emit.WritePrefix(output_.AddTiny(emit.prefix_length())); - output_.Append(emit.data()); + key.WritePrefix(0x00, output.AddTiny(key.prefix_length())); + output.Append(key.key()); + BinaryStringValue emit(std::move(value_slice), use_true_binary_metadata); + emit.WritePrefix(output.AddTiny(emit.prefix_length())); + output.Append(emit.data()); } -uint32_t Encoder::EmitLitHdrWithBinaryStringKeyIncIdx(Slice key_slice, - Slice value_slice) { +uint32_t HPackWriter::EmitLitHdrWithBinaryStringKeyIncIdx( + Slice key_slice, Slice value_slice, SliceBuffer& output, + HPackEncoderTable& table, bool use_true_binary_metadata) { auto key_len = key_slice.length(); StringKey key(std::move(key_slice)); - key.WritePrefix(0x40, output_.AddTiny(key.prefix_length())); - output_.Append(key.key()); - BinaryStringValue emit(std::move(value_slice), use_true_binary_metadata_); - emit.WritePrefix(output_.AddTiny(emit.prefix_length())); + key.WritePrefix(0x40, output.AddTiny(key.prefix_length())); + output.Append(key.key()); + BinaryStringValue emit(std::move(value_slice), use_true_binary_metadata); + emit.WritePrefix(output.AddTiny(emit.prefix_length())); // Allocate an index in the hpack table for this newly emitted entry. // (we do so here because we know the length of the key and value) - uint32_t index = compressor_->table_.AllocateIndex( - key_len + emit.hpack_length() + hpack_constants::kEntryOverhead); - output_.Append(emit.data()); + uint32_t index = table.AllocateIndex(key_len + emit.hpack_length() + + hpack_constants::kEntryOverhead); + output.Append(emit.data()); return index; } -void Encoder::EmitLitHdrWithBinaryStringKeyNotIdx(uint32_t key_index, - Slice value_slice) { - BinaryStringValue emit(std::move(value_slice), use_true_binary_metadata_); +void HPackWriter::EmitLitHdrWithBinaryStringKeyNotIdx( + uint32_t key_index, Slice value_slice, SliceBuffer& output, + bool use_true_binary_metadata) { + BinaryStringValue emit(std::move(value_slice), use_true_binary_metadata); VarintWriter<4> key(key_index); - uint8_t* data = output_.AddTiny(key.length() + emit.prefix_length()); + uint8_t* data = output.AddTiny(key.length() + emit.prefix_length()); key.Write(0x00, data); emit.WritePrefix(data + key.length()); - output_.Append(emit.data()); + output.Append(emit.data()); } -void Encoder::EmitLitHdrWithNonBinaryStringKeyNotIdx(Slice key_slice, - Slice value_slice) { +void HPackWriter::EmitLitHdrWithNonBinaryStringKeyNotIdx(Slice key_slice, + Slice value_slice, + SliceBuffer& output) { StringKey key(std::move(key_slice)); - key.WritePrefix(0x00, output_.AddTiny(key.prefix_length())); - output_.Append(key.key()); + key.WritePrefix(0x00, output.AddTiny(key.prefix_length())); + output.Append(key.key()); NonBinaryStringValue emit(std::move(value_slice)); - emit.WritePrefix(output_.AddTiny(emit.prefix_length())); - output_.Append(emit.data()); + emit.WritePrefix(output.AddTiny(emit.prefix_length())); + output.Append(emit.data()); +} + +void Encoder::EmitIndexed(uint32_t elem_index) { + VarintWriter<1> w(elem_index); + w.Write(0x80, output_.AddTiny(w.length())); } void Encoder::AdvertiseTableSizeChange() { @@ -513,4 +521,57 @@ Encoder::Encoder(HPackCompressor* compressor, bool use_true_binary_metadata, } } // namespace hpack_encoder_detail + +RawEncoder::RawEncoder(bool is_true_binary_metadata) + : is_true_binary_metadata_(is_true_binary_metadata) {} + +void RawEncoder::Encode(const Slice& key, const Slice& value) { + SliceBuffer temp_buffer; + if (absl::EndsWith(key.as_string_view(), "-bin")) { + hpack_encoder_detail::HPackWriter::EmitLitHdrWithBinaryStringKeyNotIdx( + key.Ref(), value.Ref(), temp_buffer, is_true_binary_metadata_); + } else { + hpack_encoder_detail::HPackWriter::EmitLitHdrWithNonBinaryStringKeyNotIdx( + key.Ref(), value.Ref(), temp_buffer); + } + MaybeAppend(std::move(temp_buffer)); +} + +void RawEncoder::Encode(GrpcStatusMetadata, grpc_status_code status) { + if (std::exchange(status_encoded_, true)) return; + SliceBuffer temp_buffer; + hpack_encoder_detail::HPackWriter::EmitLitHdrWithNonBinaryStringKeyNotIdx( + Slice::FromCopiedString(GrpcStatusMetadata::key()), + MetadataValueAsSlice(status).Ref(), temp_buffer); + MaybeAppend(std::move(temp_buffer)); +} + +void RawEncoder::Encode(GrpcMessageMetadata, const Slice& message) { + if (std::exchange(message_encoded_, true)) return; + SliceBuffer temp_buffer; + hpack_encoder_detail::HPackWriter::EmitLitHdrWithNonBinaryStringKeyNotIdx( + Slice::FromCopiedString(GrpcMessageMetadata::key()), message.Ref(), + temp_buffer); + MaybeAppend(std::move(temp_buffer)); +} + +void RawEncoder::Flush(grpc_slice_buffer* output_buffer) && { + grpc_slice_buffer_move_into(buffer_.c_slice_buffer(), output_buffer); +} + +bool RawEncoder::CheckLength(const size_t length) { + return (length <= kMaxKeyValueSize) && (Length() <= kMaxSize - length); +} + +void RawEncoder::MaybeAppend(SliceBuffer&& buffer) { + if (CheckLength(buffer.Length())) { + buffer_.TakeAndAppend(buffer); + } else { + LOG(ERROR) + << "Ignoring key value pair due to size limit. Current buffer size: " + << buffer_.Length() << " new key value size: " << buffer.Length() + << " KeyValueSizeLimit: " << kMaxKeyValueSize + << " TotalSizeLimit: " << kMaxSize; + } +} } // namespace grpc_core diff --git a/src/core/ext/transport/chttp2/transport/hpack_encoder.h b/src/core/ext/transport/chttp2/transport/hpack_encoder.h index a31ead5de7b82..369fd79b07a09 100644 --- a/src/core/ext/transport/chttp2/transport/hpack_encoder.h +++ b/src/core/ext/transport/chttp2/transport/hpack_encoder.h @@ -50,6 +50,26 @@ class HPackCompressor; namespace hpack_encoder_detail { +struct HPackWriter { + GRPC_MUST_USE_RESULT + static uint32_t EmitLitHdrWithNonBinaryStringKeyIncIdx( + Slice key_slice, Slice value_slice, SliceBuffer& output, + HPackEncoderTable& table); + GRPC_MUST_USE_RESULT + static uint32_t EmitLitHdrWithBinaryStringKeyIncIdx( + Slice key_slice, Slice value_slice, SliceBuffer& output, + HPackEncoderTable& table, bool use_true_binary_metadata); + static void EmitLitHdrWithBinaryStringKeyNotIdx( + Slice key_slice, Slice value_slice, SliceBuffer& output, + bool use_true_binary_metadata); + static void EmitLitHdrWithBinaryStringKeyNotIdx( + uint32_t key_index, Slice value_slice, SliceBuffer& output, + bool use_true_binary_metadata); + static void EmitLitHdrWithNonBinaryStringKeyNotIdx(Slice key_slice, + Slice value_slice, + SliceBuffer& output); +}; + class Encoder { public: Encoder(HPackCompressor* compressor, bool use_true_binary_metadata, @@ -407,10 +427,85 @@ void Encoder::Encode(MetadataTrait, EncodeWith(MetadataTrait(), value, this); } +inline uint32_t Encoder::EmitLitHdrWithNonBinaryStringKeyIncIdx( + Slice key_slice, Slice value_slice) { + return HPackWriter::EmitLitHdrWithNonBinaryStringKeyIncIdx( + std::move(key_slice), std::move(value_slice), output_, + compressor_->table_); +} + +inline void Encoder::EmitLitHdrWithBinaryStringKeyNotIdx(Slice key_slice, + Slice value_slice) { + HPackWriter::EmitLitHdrWithBinaryStringKeyNotIdx( + std::move(key_slice), std::move(value_slice), output_, + use_true_binary_metadata_); +} + +inline uint32_t Encoder::EmitLitHdrWithBinaryStringKeyIncIdx( + Slice key_slice, Slice value_slice) { + return HPackWriter::EmitLitHdrWithBinaryStringKeyIncIdx( + std::move(key_slice), std::move(value_slice), output_, + compressor_->table_, use_true_binary_metadata_); +} + +inline void Encoder::EmitLitHdrWithBinaryStringKeyNotIdx(uint32_t key_index, + Slice value_slice) { + HPackWriter::EmitLitHdrWithBinaryStringKeyNotIdx( + key_index, std::move(value_slice), output_, use_true_binary_metadata_); +} + +inline void Encoder::EmitLitHdrWithNonBinaryStringKeyNotIdx(Slice key_slice, + Slice value_slice) { + HPackWriter::EmitLitHdrWithNonBinaryStringKeyNotIdx( + std::move(key_slice), std::move(value_slice), output_); +} + inline HPackEncoderTable& Encoder::hpack_table() { return compressor_->table_; } } // namespace hpack_encoder_detail +// Class to encode metadata in uncompressed and un-indexed form. +class RawEncoder { + public: + explicit RawEncoder(bool is_true_binary_metadata); + + void Encode(const Slice& key, const Slice& value); + + // Status MUST be encoded at most once. + void Encode(GrpcStatusMetadata, grpc_status_code status); + + // Message MUST be encoded at most once. + void Encode(GrpcMessageMetadata, const Slice& message); + + template + void Encode(const MetadataTraits&, + const typename MetadataTraits::ValueType& value); + + uint32_t Length() const { return buffer_.Length(); } + void Flush(grpc_slice_buffer* output_buffer) &&; + + private: + bool CheckLength(size_t length); + void MaybeAppend(SliceBuffer&& buffer); + + // Size limit on all the key values combined. This is set to the minimum + // frame size that HTTP/2 can send. This is done to avoid sending a + // CONTINUATION frame in all cases. + static constexpr uint32_t kMaxSize = (1 << 14u); + static constexpr uint32_t kMaxKeyValueSize = /*2kb*/ 2 * 1024u; + bool status_encoded_ = false; + bool message_encoded_ = false; + const bool is_true_binary_metadata_ = false; + SliceBuffer buffer_; +}; + +template +void RawEncoder::Encode(const MetadataTraits&, + const typename MetadataTraits::ValueType& value) { + Encode(Slice::FromCopiedString(MetadataTraits::key()), + MetadataValueAsSlice(value).Ref()); +} + } // namespace grpc_core #endif // GRPC_SRC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HPACK_ENCODER_H diff --git a/src/core/ext/transport/chttp2/transport/http2_client_transport.cc b/src/core/ext/transport/chttp2/transport/http2_client_transport.cc index 50ec2dfe39863..53e9a51523344 100644 --- a/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +++ b/src/core/ext/transport/chttp2/transport/http2_client_transport.cc @@ -1773,7 +1773,6 @@ void Http2ClientTransport::CloseTransport() { transport_closed_latch_.Set(); settings_->HandleTransportShutdown(event_engine_.get()); - MutexLock lock(&transport_mutex_); // This is the only place where the general_party_ is reset. general_party_.reset(); } @@ -1902,45 +1901,36 @@ void Http2ClientTransport::AddData(channelz::DataSink sink) { event_engine_->Run([self = RefAsSubclass(), sink = std::move(sink)]() mutable { - bool is_party_null = false; + RefCountedPtr party = nullptr; { - // Apart from CloseTransport, this is the only place where a lock is taken - // to access general_party_. All other access to general_party_ happens - // on the general party itself and hence do not race with CloseTransport. - // TODO(akshitpatel) : [PH2][P4] : Check if a new mutex is needed to - // protect general_party_. Curently transport_mutex_ can is used in - // these places: - // 1. In promises running on the transport party - // 2. In AddData promise - // 3. In Orphan function. - // 4. Stream creation (this will be removed soon). - // Given that #1 is already serialized (guaranteed by party), #2 is on - // demand and #3 happens once for the lifetime of the transport while - // closing the transport, the contention should be minimal. MutexLock lock(&self->transport_mutex_); - // TODO(akshitpatel) : [PH2][P2] : There is still a potential for a race - // here where the general_party_ is reset between the lock being - // released and the spawn. We cannot just do a spawn inside the mutex as - // that may result in deadlock. - // Potential fix to hold a ref to the party inside the mutex and do a - // spawn outside the mutex. The only side effect is that this introduces - // an additional ref to the party other the transport's copy. - if (GPR_UNLIKELY(self->general_party_ == nullptr)) { - is_party_null = true; + if (GPR_LIKELY(!self->is_transport_closed_)) { + GRPC_DCHECK(self->general_party_ != nullptr); + party = self->general_party_; + } else { GRPC_HTTP2_CLIENT_DLOG - << "Http2ClientTransport::AddData general_party_ is " - "null. Transport is closed."; + << "Http2ClientTransport::AddData Transport is closed."; } } ExecCtx exec_ctx; - if (!is_party_null) { - self->SpawnAddChannelzData(self->general_party_, std::move(sink)); + if (party != nullptr) { + self->SpawnAddChannelzData(std::move(party), std::move(sink)); } self.reset(); // Cleanup with exec_ctx in scope }); } +RefCountedPtr Http2ClientTransport::GetSocketNode() + const { + const channelz::BaseNode* node = channelz::DataSource::channelz_node(); + if (node == nullptr) { + return nullptr; + } + return const_cast(node) + ->RefAsSubclass(); +} + /////////////////////////////////////////////////////////////////////////////// // Stream Related Operations diff --git a/src/core/ext/transport/chttp2/transport/http2_client_transport.h b/src/core/ext/transport/chttp2/transport/http2_client_transport.h index c65b3a73531a5..fc88efa4acf22 100644 --- a/src/core/ext/transport/chttp2/transport/http2_client_transport.h +++ b/src/core/ext/transport/chttp2/transport/http2_client_transport.h @@ -123,11 +123,7 @@ class Http2ClientTransport final : public ClientTransport, void Orphan() override; - RefCountedPtr GetSocketNode() const override { - return const_cast( - channelz::DataSource::channelz_node()) - ->RefAsSubclass(); - } + RefCountedPtr GetSocketNode() const override; std::unique_ptr GetZTrace(absl::string_view name) override { if (name == "transport_frames") return ztrace_collector_->MakeZTrace(); @@ -428,6 +424,9 @@ class Http2ClientTransport final : public ClientTransport, Promise PingTimeout() override; private: + // Holding a raw pointer to transport works because all the promises + // invoking the methods of this class are invoked while holding a ref to the + // transport. Http2ClientTransport* transport_; explicit PingSystemInterfaceImpl(Http2ClientTransport* transport) : transport_(transport) {} @@ -444,7 +443,9 @@ class Http2ClientTransport final : public ClientTransport, Promise SendPingAndWaitForAck() override; Promise OnKeepAliveTimeout() override; bool NeedToSendKeepAlivePing() override; - + // Holding a raw pointer to transport works because all the promises + // invoking the methods of this class are invoked while holding a ref to the + // transport. Http2ClientTransport* transport_; }; @@ -464,7 +465,9 @@ class Http2ClientTransport final : public ClientTransport, private: explicit GoawayInterfaceImpl(Http2ClientTransport* transport) : transport_(transport) {} - + // Holding a raw pointer to transport works because all the promises + // invoking the methods of this class are invoked while holding a ref to the + // transport. Http2ClientTransport* transport_; }; diff --git a/src/core/ext/transport/chttp2/transport/internal.h b/src/core/ext/transport/chttp2/transport/internal.h index 4735af46a529e..205e3752f46f1 100644 --- a/src/core/ext/transport/chttp2/transport/internal.h +++ b/src/core/ext/transport/chttp2/transport/internal.h @@ -34,6 +34,7 @@ #include #include +#include "src/core/call/metadata.h" #include "src/core/call/metadata_batch.h" #include "src/core/channelz/channelz.h" #include "src/core/ext/transport/chttp2/transport/call_tracer_wrapper.h" @@ -892,8 +893,10 @@ void grpc_chttp2_reset_ping_clock(grpc_chttp2_transport* t); void grpc_chttp2_mark_stream_writable(grpc_chttp2_transport* t, grpc_chttp2_stream* s); -void grpc_chttp2_cancel_stream(grpc_chttp2_transport* t, grpc_chttp2_stream* s, - grpc_error_handle due_to_error, bool tarpit); +void grpc_chttp2_cancel_stream( + grpc_chttp2_transport* t, grpc_chttp2_stream* s, + grpc_error_handle due_to_error, bool tarpit, + grpc_core::ServerMetadataHandle send_trailing_metadata = nullptr); void grpc_chttp2_maybe_complete_recv_initial_metadata(grpc_chttp2_transport* t, grpc_chttp2_stream* s); diff --git a/src/core/ext/transport/chttp2/transport/transport_common.h b/src/core/ext/transport/chttp2/transport/transport_common.h index 685a1bfb73c55..26c01fb69195b 100644 --- a/src/core/ext/transport/chttp2/transport/transport_common.h +++ b/src/core/ext/transport/chttp2/transport/transport_common.h @@ -39,11 +39,6 @@ #define GRPC_ARG_MAX_CONCURRENT_STREAMS_OVERLOAD_PROTECTION \ "grpc.http.overload_protection" -// EXPERIMENTAL: Fail requests at the client if the client is over max -// concurrent streams, so they may be retried elsewhere. -#define GRPC_ARG_MAX_CONCURRENT_STREAMS_REJECT_ON_CLIENT \ - "grpc.http.max_concurrent_streams_reject_on_client" - #define KEEPALIVE_TIME_BACKOFF_MULTIPLIER 2 #define GRPC_CHTTP2_PING_TIMEOUT_STR "ping timeout" diff --git a/src/core/ext/transport/chttp2/transport/writing.cc b/src/core/ext/transport/chttp2/transport/writing.cc index 3d3c367905d2e..30f6caa033a45 100644 --- a/src/core/ext/transport/chttp2/transport/writing.cc +++ b/src/core/ext/transport/chttp2/transport/writing.cc @@ -341,19 +341,9 @@ class WriteContext { } grpc_chttp2_stream* NextStream() { - if (grpc_core::IsChttp2BoundWriteSizeEnabled()) { - if (t_->outbuf.c_slice_buffer()->length >= target_write_size_) { - result_.partial = true; - return nullptr; - } - } else { - // TODO(ctiller): this is likely buggy now, but everything seems to be - // working, so I'm keeping the above fix just for the experiment until - // we've had time to soak it fully. - if (t_->outbuf.c_slice_buffer()->length > target_write_size_) { - result_.partial = true; - return nullptr; - } + if (t_->outbuf.c_slice_buffer()->length >= target_write_size_) { + result_.partial = true; + return nullptr; } grpc_chttp2_stream* s; @@ -422,9 +412,7 @@ class DataSendContext { {t_->settings.peer().max_frame_size(), stream_remote_window(), t_->flow_control.remote_window(), static_cast(write_context_->target_write_size()) - - (grpc_core::IsChttp2BoundWriteSizeEnabled() - ? static_cast(t_->outbuf.Length()) - : static_cast(0))}), + static_cast(t_->outbuf.Length())}), 0, std::numeric_limits::max()); } @@ -564,7 +552,7 @@ class StreamWriteContext { t_->http2_stats->IncrementHttp2StreamStalls(); report_stall(t_, s_, "stream"); grpc_chttp2_list_add_stalled_by_stream(t_, s_); - } else if (grpc_core::IsChttp2BoundWriteSizeEnabled()) { + } else { GRPC_CHTTP2_STREAM_REF(s_, "chttp2_writing:fork"); grpc_chttp2_list_add_writable_stream(t_, s_); stream_became_writable_ = true; diff --git a/src/core/ext/upb-gen/cel/expr/checked.upb.h b/src/core/ext/upb-gen/cel/expr/checked.upb.h new file mode 100644 index 0000000000000..eeecd952f16f2 --- /dev/null +++ b/src/core/ext/upb-gen/cel/expr/checked.upb.h @@ -0,0 +1,1875 @@ +/* This file was generated by upb_generator from the input file: + * + * cel/expr/checked.proto + * + * Do not edit -- your changes will be discarded when the file is + * regenerated. + * NO CHECKED-IN PROTOBUF GENCODE */ + +#ifndef CEL_EXPR_CHECKED_PROTO_UPB_H__UPB_H_ +#define CEL_EXPR_CHECKED_PROTO_UPB_H__UPB_H_ + +#include "upb/generated_code_support.h" + +#include "cel/expr/checked.upb_minitable.h" + +#include "cel/expr/syntax.upb_minitable.h" +#include "google/protobuf/empty.upb_minitable.h" +#include "google/protobuf/struct.upb_minitable.h" + +// Must be last. +#include "upb/port/def.inc" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct cel_expr_CheckedExpr { upb_Message UPB_PRIVATE(base); } cel_expr_CheckedExpr; +typedef struct cel_expr_Type { upb_Message UPB_PRIVATE(base); } cel_expr_Type; +typedef struct cel_expr_Type_ListType { upb_Message UPB_PRIVATE(base); } cel_expr_Type_ListType; +typedef struct cel_expr_Type_MapType { upb_Message UPB_PRIVATE(base); } cel_expr_Type_MapType; +typedef struct cel_expr_Type_FunctionType { upb_Message UPB_PRIVATE(base); } cel_expr_Type_FunctionType; +typedef struct cel_expr_Type_AbstractType { upb_Message UPB_PRIVATE(base); } cel_expr_Type_AbstractType; +typedef struct cel_expr_Decl { upb_Message UPB_PRIVATE(base); } cel_expr_Decl; +typedef struct cel_expr_Decl_IdentDecl { upb_Message UPB_PRIVATE(base); } cel_expr_Decl_IdentDecl; +typedef struct cel_expr_Decl_FunctionDecl { upb_Message UPB_PRIVATE(base); } cel_expr_Decl_FunctionDecl; +typedef struct cel_expr_Decl_FunctionDecl_Overload { upb_Message UPB_PRIVATE(base); } cel_expr_Decl_FunctionDecl_Overload; +typedef struct cel_expr_Reference { upb_Message UPB_PRIVATE(base); } cel_expr_Reference; +struct cel_expr_Constant; +struct cel_expr_Expr; +struct cel_expr_SourceInfo; +struct google_protobuf_Empty; + +typedef enum { + cel_expr_Type_PRIMITIVE_TYPE_UNSPECIFIED = 0, + cel_expr_Type_BOOL = 1, + cel_expr_Type_INT64 = 2, + cel_expr_Type_UINT64 = 3, + cel_expr_Type_DOUBLE = 4, + cel_expr_Type_STRING = 5, + cel_expr_Type_BYTES = 6 +} cel_expr_Type_PrimitiveType; + +typedef enum { + cel_expr_Type_WELL_KNOWN_TYPE_UNSPECIFIED = 0, + cel_expr_Type_ANY = 1, + cel_expr_Type_TIMESTAMP = 2, + cel_expr_Type_DURATION = 3 +} cel_expr_Type_WellKnownType; + + + +/* cel.expr.CheckedExpr */ + +UPB_INLINE cel_expr_CheckedExpr* cel_expr_CheckedExpr_new(upb_Arena* arena) { + return (cel_expr_CheckedExpr*)_upb_Message_New(&cel__expr__CheckedExpr_msg_init, arena); +} +UPB_INLINE cel_expr_CheckedExpr* cel_expr_CheckedExpr_parse(const char* buf, size_t size, upb_Arena* arena) { + cel_expr_CheckedExpr* ret = cel_expr_CheckedExpr_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__CheckedExpr_msg_init, NULL, 0, arena) != + kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE cel_expr_CheckedExpr* cel_expr_CheckedExpr_parse_ex(const char* buf, size_t size, + const upb_ExtensionRegistry* extreg, + int options, upb_Arena* arena) { + cel_expr_CheckedExpr* ret = cel_expr_CheckedExpr_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__CheckedExpr_msg_init, extreg, options, + arena) != kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE char* cel_expr_CheckedExpr_serialize(const cel_expr_CheckedExpr* msg, upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__CheckedExpr_msg_init, 0, arena, &ptr, len); + return ptr; +} +UPB_INLINE char* cel_expr_CheckedExpr_serialize_ex(const cel_expr_CheckedExpr* msg, int options, + upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__CheckedExpr_msg_init, options, arena, &ptr, len); + return ptr; +} +UPB_INLINE void cel_expr_CheckedExpr_clear_reference_map(cel_expr_CheckedExpr* msg) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, 0, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE size_t cel_expr_CheckedExpr_reference_map_size(const cel_expr_CheckedExpr* msg) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, 0, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_Map* map = upb_Message_GetMap(UPB_UPCAST(msg), &field); + return map ? _upb_Map_Size(map) : 0; +} +UPB_INLINE bool cel_expr_CheckedExpr_reference_map_get(const cel_expr_CheckedExpr* msg, int64_t key, cel_expr_Reference** val) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, 0, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__CheckedExpr__ReferenceMapEntry_msg_init); + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Reference_msg_init); + const upb_Map* map = upb_Message_GetMap(UPB_UPCAST(msg), &field); + if (!map) return false; + return _upb_Map_Get(map, &key, sizeof(key), val, sizeof(*val)); +} +UPB_INLINE bool cel_expr_CheckedExpr_reference_map_next(const cel_expr_CheckedExpr* msg, int64_t* key, const cel_expr_Reference** val, + size_t* iter) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, 0, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__CheckedExpr__ReferenceMapEntry_msg_init); + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Reference_msg_init); + const upb_Map* map = upb_Message_GetMap(UPB_UPCAST(msg), &field); + if (!map) return false; + upb_MessageValue k; + upb_MessageValue v; + if (!upb_Map_Next(map, &k, &v, iter)) return false; + memcpy(key, &k, sizeof(*key)); + memcpy(val, &v, sizeof(*val)); + return true; +} +UPB_INLINE const upb_Map* _cel_expr_CheckedExpr_reference_map_upb_map(cel_expr_CheckedExpr* msg) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, 0, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__CheckedExpr__ReferenceMapEntry_msg_init); + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Reference_msg_init); + return upb_Message_GetMap(UPB_UPCAST(msg), &field); +} +UPB_INLINE upb_Map* _cel_expr_CheckedExpr_reference_map_mutable_upb_map(cel_expr_CheckedExpr* msg, upb_Arena* a) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, 0, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__CheckedExpr__ReferenceMapEntry_msg_init); + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Reference_msg_init); + return _upb_Message_GetOrCreateMutableMap(UPB_UPCAST(msg), &field, sizeof(int64_t), sizeof(cel_expr_Reference*), a); +} +UPB_INLINE void cel_expr_CheckedExpr_clear_type_map(cel_expr_CheckedExpr* msg) { + const upb_MiniTableField field = {3, UPB_SIZE(16, 40), 0, 1, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE size_t cel_expr_CheckedExpr_type_map_size(const cel_expr_CheckedExpr* msg) { + const upb_MiniTableField field = {3, UPB_SIZE(16, 40), 0, 1, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_Map* map = upb_Message_GetMap(UPB_UPCAST(msg), &field); + return map ? _upb_Map_Size(map) : 0; +} +UPB_INLINE bool cel_expr_CheckedExpr_type_map_get(const cel_expr_CheckedExpr* msg, int64_t key, cel_expr_Type** val) { + const upb_MiniTableField field = {3, UPB_SIZE(16, 40), 0, 1, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__CheckedExpr__TypeMapEntry_msg_init); + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + const upb_Map* map = upb_Message_GetMap(UPB_UPCAST(msg), &field); + if (!map) return false; + return _upb_Map_Get(map, &key, sizeof(key), val, sizeof(*val)); +} +UPB_INLINE bool cel_expr_CheckedExpr_type_map_next(const cel_expr_CheckedExpr* msg, int64_t* key, const cel_expr_Type** val, + size_t* iter) { + const upb_MiniTableField field = {3, UPB_SIZE(16, 40), 0, 1, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__CheckedExpr__TypeMapEntry_msg_init); + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + const upb_Map* map = upb_Message_GetMap(UPB_UPCAST(msg), &field); + if (!map) return false; + upb_MessageValue k; + upb_MessageValue v; + if (!upb_Map_Next(map, &k, &v, iter)) return false; + memcpy(key, &k, sizeof(*key)); + memcpy(val, &v, sizeof(*val)); + return true; +} +UPB_INLINE const upb_Map* _cel_expr_CheckedExpr_type_map_upb_map(cel_expr_CheckedExpr* msg) { + const upb_MiniTableField field = {3, UPB_SIZE(16, 40), 0, 1, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__CheckedExpr__TypeMapEntry_msg_init); + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + return upb_Message_GetMap(UPB_UPCAST(msg), &field); +} +UPB_INLINE upb_Map* _cel_expr_CheckedExpr_type_map_mutable_upb_map(cel_expr_CheckedExpr* msg, upb_Arena* a) { + const upb_MiniTableField field = {3, UPB_SIZE(16, 40), 0, 1, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__CheckedExpr__TypeMapEntry_msg_init); + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + return _upb_Message_GetOrCreateMutableMap(UPB_UPCAST(msg), &field, sizeof(int64_t), sizeof(cel_expr_Type*), a); +} +UPB_INLINE void cel_expr_CheckedExpr_clear_expr(cel_expr_CheckedExpr* msg) { + const upb_MiniTableField field = {4, UPB_SIZE(20, 48), 64, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const struct cel_expr_Expr* cel_expr_CheckedExpr_expr(const cel_expr_CheckedExpr* msg) { + const struct cel_expr_Expr* default_val = NULL; + const struct cel_expr_Expr* ret; + const upb_MiniTableField field = {4, UPB_SIZE(20, 48), 64, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_CheckedExpr_has_expr(const cel_expr_CheckedExpr* msg) { + const upb_MiniTableField field = {4, UPB_SIZE(20, 48), 64, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_CheckedExpr_clear_source_info(cel_expr_CheckedExpr* msg) { + const upb_MiniTableField field = {5, UPB_SIZE(24, 56), 65, 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const struct cel_expr_SourceInfo* cel_expr_CheckedExpr_source_info(const cel_expr_CheckedExpr* msg) { + const struct cel_expr_SourceInfo* default_val = NULL; + const struct cel_expr_SourceInfo* ret; + const upb_MiniTableField field = {5, UPB_SIZE(24, 56), 65, 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_CheckedExpr_has_source_info(const cel_expr_CheckedExpr* msg) { + const upb_MiniTableField field = {5, UPB_SIZE(24, 56), 65, 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_CheckedExpr_clear_expr_version(cel_expr_CheckedExpr* msg) { + const upb_MiniTableField field = {6, UPB_SIZE(28, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE upb_StringView cel_expr_CheckedExpr_expr_version(const cel_expr_CheckedExpr* msg) { + upb_StringView default_val = upb_StringView_FromString(""); + upb_StringView ret; + const upb_MiniTableField field = {6, UPB_SIZE(28, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} + +UPB_INLINE void cel_expr_CheckedExpr_reference_map_clear(cel_expr_CheckedExpr* msg) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, 0, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Map* map = (upb_Map*)upb_Message_GetMap(UPB_UPCAST(msg), &field); + if (!map) return; + _upb_Map_Clear(map); +} +UPB_INLINE bool cel_expr_CheckedExpr_reference_map_set(cel_expr_CheckedExpr* msg, int64_t key, cel_expr_Reference* val, upb_Arena* a) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, 0, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__CheckedExpr__ReferenceMapEntry_msg_init); + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Reference_msg_init); + upb_Map* map = _upb_Message_GetOrCreateMutableMap(UPB_UPCAST(msg), + &field, sizeof(key), sizeof(val), a); + return _upb_Map_Insert(map, &key, sizeof(key), &val, sizeof(val), a) != + kUpb_MapInsertStatus_OutOfMemory; +} +UPB_INLINE bool cel_expr_CheckedExpr_reference_map_delete(cel_expr_CheckedExpr* msg, int64_t key) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, 0, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Map* map = (upb_Map*)upb_Message_GetMap(UPB_UPCAST(msg), &field); + if (!map) return false; + return _upb_Map_Delete(map, &key, sizeof(key), NULL); +} +UPB_INLINE void cel_expr_CheckedExpr_type_map_clear(cel_expr_CheckedExpr* msg) { + const upb_MiniTableField field = {3, UPB_SIZE(16, 40), 0, 1, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Map* map = (upb_Map*)upb_Message_GetMap(UPB_UPCAST(msg), &field); + if (!map) return; + _upb_Map_Clear(map); +} +UPB_INLINE bool cel_expr_CheckedExpr_type_map_set(cel_expr_CheckedExpr* msg, int64_t key, cel_expr_Type* val, upb_Arena* a) { + const upb_MiniTableField field = {3, UPB_SIZE(16, 40), 0, 1, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__CheckedExpr__TypeMapEntry_msg_init); + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + upb_Map* map = _upb_Message_GetOrCreateMutableMap(UPB_UPCAST(msg), + &field, sizeof(key), sizeof(val), a); + return _upb_Map_Insert(map, &key, sizeof(key), &val, sizeof(val), a) != + kUpb_MapInsertStatus_OutOfMemory; +} +UPB_INLINE bool cel_expr_CheckedExpr_type_map_delete(cel_expr_CheckedExpr* msg, int64_t key) { + const upb_MiniTableField field = {3, UPB_SIZE(16, 40), 0, 1, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Map* map = (upb_Map*)upb_Message_GetMap(UPB_UPCAST(msg), &field); + if (!map) return false; + return _upb_Map_Delete(map, &key, sizeof(key), NULL); +} +UPB_INLINE void cel_expr_CheckedExpr_set_expr(cel_expr_CheckedExpr *msg, struct cel_expr_Expr* value) { + const upb_MiniTableField field = {4, UPB_SIZE(20, 48), 64, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_Expr* cel_expr_CheckedExpr_mutable_expr(cel_expr_CheckedExpr* msg, upb_Arena* arena) { + struct cel_expr_Expr* sub = (struct cel_expr_Expr*)cel_expr_CheckedExpr_expr(msg); + if (sub == NULL) { + sub = (struct cel_expr_Expr*)_upb_Message_New(&cel__expr__Expr_msg_init, arena); + if (sub) cel_expr_CheckedExpr_set_expr(msg, sub); + } + return sub; +} +UPB_INLINE void cel_expr_CheckedExpr_set_source_info(cel_expr_CheckedExpr *msg, struct cel_expr_SourceInfo* value) { + const upb_MiniTableField field = {5, UPB_SIZE(24, 56), 65, 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_SourceInfo* cel_expr_CheckedExpr_mutable_source_info(cel_expr_CheckedExpr* msg, upb_Arena* arena) { + struct cel_expr_SourceInfo* sub = (struct cel_expr_SourceInfo*)cel_expr_CheckedExpr_source_info(msg); + if (sub == NULL) { + sub = (struct cel_expr_SourceInfo*)_upb_Message_New(&cel__expr__SourceInfo_msg_init, arena); + if (sub) cel_expr_CheckedExpr_set_source_info(msg, sub); + } + return sub; +} +UPB_INLINE void cel_expr_CheckedExpr_set_expr_version(cel_expr_CheckedExpr *msg, upb_StringView value) { + const upb_MiniTableField field = {6, UPB_SIZE(28, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} + +/* cel.expr.Type */ + +UPB_INLINE cel_expr_Type* cel_expr_Type_new(upb_Arena* arena) { + return (cel_expr_Type*)_upb_Message_New(&cel__expr__Type_msg_init, arena); +} +UPB_INLINE cel_expr_Type* cel_expr_Type_parse(const char* buf, size_t size, upb_Arena* arena) { + cel_expr_Type* ret = cel_expr_Type_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Type_msg_init, NULL, 0, arena) != + kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE cel_expr_Type* cel_expr_Type_parse_ex(const char* buf, size_t size, + const upb_ExtensionRegistry* extreg, + int options, upb_Arena* arena) { + cel_expr_Type* ret = cel_expr_Type_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Type_msg_init, extreg, options, + arena) != kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE char* cel_expr_Type_serialize(const cel_expr_Type* msg, upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Type_msg_init, 0, arena, &ptr, len); + return ptr; +} +UPB_INLINE char* cel_expr_Type_serialize_ex(const cel_expr_Type* msg, int options, + upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Type_msg_init, options, arena, &ptr, len); + return ptr; +} +typedef enum { + cel_expr_Type_type_kind_dyn = 1, + cel_expr_Type_type_kind_null = 2, + cel_expr_Type_type_kind_primitive = 3, + cel_expr_Type_type_kind_wrapper = 4, + cel_expr_Type_type_kind_well_known = 5, + cel_expr_Type_type_kind_list_type = 6, + cel_expr_Type_type_kind_map_type = 7, + cel_expr_Type_type_kind_function = 8, + cel_expr_Type_type_kind_message_type = 9, + cel_expr_Type_type_kind_type_param = 10, + cel_expr_Type_type_kind_type = 11, + cel_expr_Type_type_kind_error = 12, + cel_expr_Type_type_kind_abstract_type = 14, + cel_expr_Type_type_kind_NOT_SET = 0 +} cel_expr_Type_type_kind_oneofcases; +UPB_INLINE cel_expr_Type_type_kind_oneofcases cel_expr_Type_type_kind_case(const cel_expr_Type* msg) { + const upb_MiniTableField field = {1, UPB_SIZE(12, 16), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return (cel_expr_Type_type_kind_oneofcases)upb_Message_WhichOneofFieldNumber( + UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Type_clear_type_kind(cel_expr_Type* msg) { + const upb_MiniTableField field = {1, UPB_SIZE(12, 16), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearOneof(UPB_UPCAST(msg), &cel__expr__Type_msg_init, &field); +} +UPB_INLINE void cel_expr_Type_clear_dyn(cel_expr_Type* msg) { + const upb_MiniTableField field = {1, UPB_SIZE(12, 16), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const struct google_protobuf_Empty* cel_expr_Type_dyn(const cel_expr_Type* msg) { + const struct google_protobuf_Empty* default_val = NULL; + const struct google_protobuf_Empty* ret; + const upb_MiniTableField field = {1, UPB_SIZE(12, 16), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__Empty_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Type_has_dyn(const cel_expr_Type* msg) { + const upb_MiniTableField field = {1, UPB_SIZE(12, 16), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Type_clear_null(cel_expr_Type* msg) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 16), -9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE int32_t cel_expr_Type_null(const cel_expr_Type* msg) { + int32_t default_val = 0; + int32_t ret; + const upb_MiniTableField field = {2, UPB_SIZE(12, 16), -9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Type_has_null(const cel_expr_Type* msg) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 16), -9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Type_clear_primitive(cel_expr_Type* msg) { + const upb_MiniTableField field = {3, UPB_SIZE(12, 16), -9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE int32_t cel_expr_Type_primitive(const cel_expr_Type* msg) { + int32_t default_val = 0; + int32_t ret; + const upb_MiniTableField field = {3, UPB_SIZE(12, 16), -9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Type_has_primitive(const cel_expr_Type* msg) { + const upb_MiniTableField field = {3, UPB_SIZE(12, 16), -9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Type_clear_wrapper(cel_expr_Type* msg) { + const upb_MiniTableField field = {4, UPB_SIZE(12, 16), -9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE int32_t cel_expr_Type_wrapper(const cel_expr_Type* msg) { + int32_t default_val = 0; + int32_t ret; + const upb_MiniTableField field = {4, UPB_SIZE(12, 16), -9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Type_has_wrapper(const cel_expr_Type* msg) { + const upb_MiniTableField field = {4, UPB_SIZE(12, 16), -9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Type_clear_well_known(cel_expr_Type* msg) { + const upb_MiniTableField field = {5, UPB_SIZE(12, 16), -9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE int32_t cel_expr_Type_well_known(const cel_expr_Type* msg) { + int32_t default_val = 0; + int32_t ret; + const upb_MiniTableField field = {5, UPB_SIZE(12, 16), -9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Type_has_well_known(const cel_expr_Type* msg) { + const upb_MiniTableField field = {5, UPB_SIZE(12, 16), -9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Type_clear_list_type(cel_expr_Type* msg) { + const upb_MiniTableField field = {6, UPB_SIZE(12, 16), -9, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Type_ListType* cel_expr_Type_list_type(const cel_expr_Type* msg) { + const cel_expr_Type_ListType* default_val = NULL; + const cel_expr_Type_ListType* ret; + const upb_MiniTableField field = {6, UPB_SIZE(12, 16), -9, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type__ListType_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Type_has_list_type(const cel_expr_Type* msg) { + const upb_MiniTableField field = {6, UPB_SIZE(12, 16), -9, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Type_clear_map_type(cel_expr_Type* msg) { + const upb_MiniTableField field = {7, UPB_SIZE(12, 16), -9, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Type_MapType* cel_expr_Type_map_type(const cel_expr_Type* msg) { + const cel_expr_Type_MapType* default_val = NULL; + const cel_expr_Type_MapType* ret; + const upb_MiniTableField field = {7, UPB_SIZE(12, 16), -9, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type__MapType_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Type_has_map_type(const cel_expr_Type* msg) { + const upb_MiniTableField field = {7, UPB_SIZE(12, 16), -9, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Type_clear_function(cel_expr_Type* msg) { + const upb_MiniTableField field = {8, UPB_SIZE(12, 16), -9, 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Type_FunctionType* cel_expr_Type_function(const cel_expr_Type* msg) { + const cel_expr_Type_FunctionType* default_val = NULL; + const cel_expr_Type_FunctionType* ret; + const upb_MiniTableField field = {8, UPB_SIZE(12, 16), -9, 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type__FunctionType_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Type_has_function(const cel_expr_Type* msg) { + const upb_MiniTableField field = {8, UPB_SIZE(12, 16), -9, 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Type_clear_message_type(cel_expr_Type* msg) { + const upb_MiniTableField field = {9, UPB_SIZE(12, 16), -9, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE upb_StringView cel_expr_Type_message_type(const cel_expr_Type* msg) { + upb_StringView default_val = upb_StringView_FromString(""); + upb_StringView ret; + const upb_MiniTableField field = {9, UPB_SIZE(12, 16), -9, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Type_has_message_type(const cel_expr_Type* msg) { + const upb_MiniTableField field = {9, UPB_SIZE(12, 16), -9, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Type_clear_type_param(cel_expr_Type* msg) { + const upb_MiniTableField field = {10, UPB_SIZE(12, 16), -9, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE upb_StringView cel_expr_Type_type_param(const cel_expr_Type* msg) { + upb_StringView default_val = upb_StringView_FromString(""); + upb_StringView ret; + const upb_MiniTableField field = {10, UPB_SIZE(12, 16), -9, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Type_has_type_param(const cel_expr_Type* msg) { + const upb_MiniTableField field = {10, UPB_SIZE(12, 16), -9, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Type_clear_type(cel_expr_Type* msg) { + const upb_MiniTableField field = {11, UPB_SIZE(12, 16), -9, 4, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Type* cel_expr_Type_type(const cel_expr_Type* msg) { + const cel_expr_Type* default_val = NULL; + const cel_expr_Type* ret; + const upb_MiniTableField field = {11, UPB_SIZE(12, 16), -9, 4, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Type_has_type(const cel_expr_Type* msg) { + const upb_MiniTableField field = {11, UPB_SIZE(12, 16), -9, 4, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Type_clear_error(cel_expr_Type* msg) { + const upb_MiniTableField field = {12, UPB_SIZE(12, 16), -9, 5, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const struct google_protobuf_Empty* cel_expr_Type_error(const cel_expr_Type* msg) { + const struct google_protobuf_Empty* default_val = NULL; + const struct google_protobuf_Empty* ret; + const upb_MiniTableField field = {12, UPB_SIZE(12, 16), -9, 5, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__Empty_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Type_has_error(const cel_expr_Type* msg) { + const upb_MiniTableField field = {12, UPB_SIZE(12, 16), -9, 5, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Type_clear_abstract_type(cel_expr_Type* msg) { + const upb_MiniTableField field = {14, UPB_SIZE(12, 16), -9, 6, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Type_AbstractType* cel_expr_Type_abstract_type(const cel_expr_Type* msg) { + const cel_expr_Type_AbstractType* default_val = NULL; + const cel_expr_Type_AbstractType* ret; + const upb_MiniTableField field = {14, UPB_SIZE(12, 16), -9, 6, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type__AbstractType_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Type_has_abstract_type(const cel_expr_Type* msg) { + const upb_MiniTableField field = {14, UPB_SIZE(12, 16), -9, 6, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} + +UPB_INLINE void cel_expr_Type_set_dyn(cel_expr_Type *msg, struct google_protobuf_Empty* value) { + const upb_MiniTableField field = {1, UPB_SIZE(12, 16), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__Empty_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct google_protobuf_Empty* cel_expr_Type_mutable_dyn(cel_expr_Type* msg, upb_Arena* arena) { + struct google_protobuf_Empty* sub = (struct google_protobuf_Empty*)cel_expr_Type_dyn(msg); + if (sub == NULL) { + sub = (struct google_protobuf_Empty*)_upb_Message_New(&google__protobuf__Empty_msg_init, arena); + if (sub) cel_expr_Type_set_dyn(msg, sub); + } + return sub; +} +UPB_INLINE void cel_expr_Type_set_null(cel_expr_Type *msg, int32_t value) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 16), -9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE void cel_expr_Type_set_primitive(cel_expr_Type *msg, int32_t value) { + const upb_MiniTableField field = {3, UPB_SIZE(12, 16), -9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE void cel_expr_Type_set_wrapper(cel_expr_Type *msg, int32_t value) { + const upb_MiniTableField field = {4, UPB_SIZE(12, 16), -9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE void cel_expr_Type_set_well_known(cel_expr_Type *msg, int32_t value) { + const upb_MiniTableField field = {5, UPB_SIZE(12, 16), -9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE void cel_expr_Type_set_list_type(cel_expr_Type *msg, cel_expr_Type_ListType* value) { + const upb_MiniTableField field = {6, UPB_SIZE(12, 16), -9, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type__ListType_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_Type_ListType* cel_expr_Type_mutable_list_type(cel_expr_Type* msg, upb_Arena* arena) { + struct cel_expr_Type_ListType* sub = (struct cel_expr_Type_ListType*)cel_expr_Type_list_type(msg); + if (sub == NULL) { + sub = (struct cel_expr_Type_ListType*)_upb_Message_New(&cel__expr__Type__ListType_msg_init, arena); + if (sub) cel_expr_Type_set_list_type(msg, sub); + } + return sub; +} +UPB_INLINE void cel_expr_Type_set_map_type(cel_expr_Type *msg, cel_expr_Type_MapType* value) { + const upb_MiniTableField field = {7, UPB_SIZE(12, 16), -9, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type__MapType_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_Type_MapType* cel_expr_Type_mutable_map_type(cel_expr_Type* msg, upb_Arena* arena) { + struct cel_expr_Type_MapType* sub = (struct cel_expr_Type_MapType*)cel_expr_Type_map_type(msg); + if (sub == NULL) { + sub = (struct cel_expr_Type_MapType*)_upb_Message_New(&cel__expr__Type__MapType_msg_init, arena); + if (sub) cel_expr_Type_set_map_type(msg, sub); + } + return sub; +} +UPB_INLINE void cel_expr_Type_set_function(cel_expr_Type *msg, cel_expr_Type_FunctionType* value) { + const upb_MiniTableField field = {8, UPB_SIZE(12, 16), -9, 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type__FunctionType_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_Type_FunctionType* cel_expr_Type_mutable_function(cel_expr_Type* msg, upb_Arena* arena) { + struct cel_expr_Type_FunctionType* sub = (struct cel_expr_Type_FunctionType*)cel_expr_Type_function(msg); + if (sub == NULL) { + sub = (struct cel_expr_Type_FunctionType*)_upb_Message_New(&cel__expr__Type__FunctionType_msg_init, arena); + if (sub) cel_expr_Type_set_function(msg, sub); + } + return sub; +} +UPB_INLINE void cel_expr_Type_set_message_type(cel_expr_Type *msg, upb_StringView value) { + const upb_MiniTableField field = {9, UPB_SIZE(12, 16), -9, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE void cel_expr_Type_set_type_param(cel_expr_Type *msg, upb_StringView value) { + const upb_MiniTableField field = {10, UPB_SIZE(12, 16), -9, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE void cel_expr_Type_set_type(cel_expr_Type *msg, cel_expr_Type* value) { + const upb_MiniTableField field = {11, UPB_SIZE(12, 16), -9, 4, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_Type* cel_expr_Type_mutable_type(cel_expr_Type* msg, upb_Arena* arena) { + struct cel_expr_Type* sub = (struct cel_expr_Type*)cel_expr_Type_type(msg); + if (sub == NULL) { + sub = (struct cel_expr_Type*)_upb_Message_New(&cel__expr__Type_msg_init, arena); + if (sub) cel_expr_Type_set_type(msg, sub); + } + return sub; +} +UPB_INLINE void cel_expr_Type_set_error(cel_expr_Type *msg, struct google_protobuf_Empty* value) { + const upb_MiniTableField field = {12, UPB_SIZE(12, 16), -9, 5, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__Empty_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct google_protobuf_Empty* cel_expr_Type_mutable_error(cel_expr_Type* msg, upb_Arena* arena) { + struct google_protobuf_Empty* sub = (struct google_protobuf_Empty*)cel_expr_Type_error(msg); + if (sub == NULL) { + sub = (struct google_protobuf_Empty*)_upb_Message_New(&google__protobuf__Empty_msg_init, arena); + if (sub) cel_expr_Type_set_error(msg, sub); + } + return sub; +} +UPB_INLINE void cel_expr_Type_set_abstract_type(cel_expr_Type *msg, cel_expr_Type_AbstractType* value) { + const upb_MiniTableField field = {14, UPB_SIZE(12, 16), -9, 6, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type__AbstractType_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_Type_AbstractType* cel_expr_Type_mutable_abstract_type(cel_expr_Type* msg, upb_Arena* arena) { + struct cel_expr_Type_AbstractType* sub = (struct cel_expr_Type_AbstractType*)cel_expr_Type_abstract_type(msg); + if (sub == NULL) { + sub = (struct cel_expr_Type_AbstractType*)_upb_Message_New(&cel__expr__Type__AbstractType_msg_init, arena); + if (sub) cel_expr_Type_set_abstract_type(msg, sub); + } + return sub; +} + +/* cel.expr.Type.ListType */ + +UPB_INLINE cel_expr_Type_ListType* cel_expr_Type_ListType_new(upb_Arena* arena) { + return (cel_expr_Type_ListType*)_upb_Message_New(&cel__expr__Type__ListType_msg_init, arena); +} +UPB_INLINE cel_expr_Type_ListType* cel_expr_Type_ListType_parse(const char* buf, size_t size, upb_Arena* arena) { + cel_expr_Type_ListType* ret = cel_expr_Type_ListType_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Type__ListType_msg_init, NULL, 0, arena) != + kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE cel_expr_Type_ListType* cel_expr_Type_ListType_parse_ex(const char* buf, size_t size, + const upb_ExtensionRegistry* extreg, + int options, upb_Arena* arena) { + cel_expr_Type_ListType* ret = cel_expr_Type_ListType_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Type__ListType_msg_init, extreg, options, + arena) != kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE char* cel_expr_Type_ListType_serialize(const cel_expr_Type_ListType* msg, upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Type__ListType_msg_init, 0, arena, &ptr, len); + return ptr; +} +UPB_INLINE char* cel_expr_Type_ListType_serialize_ex(const cel_expr_Type_ListType* msg, int options, + upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Type__ListType_msg_init, options, arena, &ptr, len); + return ptr; +} +UPB_INLINE void cel_expr_Type_ListType_clear_elem_type(cel_expr_Type_ListType* msg) { + const upb_MiniTableField field = {1, UPB_SIZE(12, 16), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Type* cel_expr_Type_ListType_elem_type(const cel_expr_Type_ListType* msg) { + const cel_expr_Type* default_val = NULL; + const cel_expr_Type* ret; + const upb_MiniTableField field = {1, UPB_SIZE(12, 16), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Type_ListType_has_elem_type(const cel_expr_Type_ListType* msg) { + const upb_MiniTableField field = {1, UPB_SIZE(12, 16), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} + +UPB_INLINE void cel_expr_Type_ListType_set_elem_type(cel_expr_Type_ListType *msg, cel_expr_Type* value) { + const upb_MiniTableField field = {1, UPB_SIZE(12, 16), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_Type* cel_expr_Type_ListType_mutable_elem_type(cel_expr_Type_ListType* msg, upb_Arena* arena) { + struct cel_expr_Type* sub = (struct cel_expr_Type*)cel_expr_Type_ListType_elem_type(msg); + if (sub == NULL) { + sub = (struct cel_expr_Type*)_upb_Message_New(&cel__expr__Type_msg_init, arena); + if (sub) cel_expr_Type_ListType_set_elem_type(msg, sub); + } + return sub; +} + +/* cel.expr.Type.MapType */ + +UPB_INLINE cel_expr_Type_MapType* cel_expr_Type_MapType_new(upb_Arena* arena) { + return (cel_expr_Type_MapType*)_upb_Message_New(&cel__expr__Type__MapType_msg_init, arena); +} +UPB_INLINE cel_expr_Type_MapType* cel_expr_Type_MapType_parse(const char* buf, size_t size, upb_Arena* arena) { + cel_expr_Type_MapType* ret = cel_expr_Type_MapType_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Type__MapType_msg_init, NULL, 0, arena) != + kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE cel_expr_Type_MapType* cel_expr_Type_MapType_parse_ex(const char* buf, size_t size, + const upb_ExtensionRegistry* extreg, + int options, upb_Arena* arena) { + cel_expr_Type_MapType* ret = cel_expr_Type_MapType_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Type__MapType_msg_init, extreg, options, + arena) != kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE char* cel_expr_Type_MapType_serialize(const cel_expr_Type_MapType* msg, upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Type__MapType_msg_init, 0, arena, &ptr, len); + return ptr; +} +UPB_INLINE char* cel_expr_Type_MapType_serialize_ex(const cel_expr_Type_MapType* msg, int options, + upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Type__MapType_msg_init, options, arena, &ptr, len); + return ptr; +} +UPB_INLINE void cel_expr_Type_MapType_clear_key_type(cel_expr_Type_MapType* msg) { + const upb_MiniTableField field = {1, UPB_SIZE(12, 16), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Type* cel_expr_Type_MapType_key_type(const cel_expr_Type_MapType* msg) { + const cel_expr_Type* default_val = NULL; + const cel_expr_Type* ret; + const upb_MiniTableField field = {1, UPB_SIZE(12, 16), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Type_MapType_has_key_type(const cel_expr_Type_MapType* msg) { + const upb_MiniTableField field = {1, UPB_SIZE(12, 16), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Type_MapType_clear_value_type(cel_expr_Type_MapType* msg) { + const upb_MiniTableField field = {2, UPB_SIZE(16, 24), 65, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Type* cel_expr_Type_MapType_value_type(const cel_expr_Type_MapType* msg) { + const cel_expr_Type* default_val = NULL; + const cel_expr_Type* ret; + const upb_MiniTableField field = {2, UPB_SIZE(16, 24), 65, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Type_MapType_has_value_type(const cel_expr_Type_MapType* msg) { + const upb_MiniTableField field = {2, UPB_SIZE(16, 24), 65, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} + +UPB_INLINE void cel_expr_Type_MapType_set_key_type(cel_expr_Type_MapType *msg, cel_expr_Type* value) { + const upb_MiniTableField field = {1, UPB_SIZE(12, 16), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_Type* cel_expr_Type_MapType_mutable_key_type(cel_expr_Type_MapType* msg, upb_Arena* arena) { + struct cel_expr_Type* sub = (struct cel_expr_Type*)cel_expr_Type_MapType_key_type(msg); + if (sub == NULL) { + sub = (struct cel_expr_Type*)_upb_Message_New(&cel__expr__Type_msg_init, arena); + if (sub) cel_expr_Type_MapType_set_key_type(msg, sub); + } + return sub; +} +UPB_INLINE void cel_expr_Type_MapType_set_value_type(cel_expr_Type_MapType *msg, cel_expr_Type* value) { + const upb_MiniTableField field = {2, UPB_SIZE(16, 24), 65, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_Type* cel_expr_Type_MapType_mutable_value_type(cel_expr_Type_MapType* msg, upb_Arena* arena) { + struct cel_expr_Type* sub = (struct cel_expr_Type*)cel_expr_Type_MapType_value_type(msg); + if (sub == NULL) { + sub = (struct cel_expr_Type*)_upb_Message_New(&cel__expr__Type_msg_init, arena); + if (sub) cel_expr_Type_MapType_set_value_type(msg, sub); + } + return sub; +} + +/* cel.expr.Type.FunctionType */ + +UPB_INLINE cel_expr_Type_FunctionType* cel_expr_Type_FunctionType_new(upb_Arena* arena) { + return (cel_expr_Type_FunctionType*)_upb_Message_New(&cel__expr__Type__FunctionType_msg_init, arena); +} +UPB_INLINE cel_expr_Type_FunctionType* cel_expr_Type_FunctionType_parse(const char* buf, size_t size, upb_Arena* arena) { + cel_expr_Type_FunctionType* ret = cel_expr_Type_FunctionType_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Type__FunctionType_msg_init, NULL, 0, arena) != + kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE cel_expr_Type_FunctionType* cel_expr_Type_FunctionType_parse_ex(const char* buf, size_t size, + const upb_ExtensionRegistry* extreg, + int options, upb_Arena* arena) { + cel_expr_Type_FunctionType* ret = cel_expr_Type_FunctionType_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Type__FunctionType_msg_init, extreg, options, + arena) != kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE char* cel_expr_Type_FunctionType_serialize(const cel_expr_Type_FunctionType* msg, upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Type__FunctionType_msg_init, 0, arena, &ptr, len); + return ptr; +} +UPB_INLINE char* cel_expr_Type_FunctionType_serialize_ex(const cel_expr_Type_FunctionType* msg, int options, + upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Type__FunctionType_msg_init, options, arena, &ptr, len); + return ptr; +} +UPB_INLINE void cel_expr_Type_FunctionType_clear_result_type(cel_expr_Type_FunctionType* msg) { + const upb_MiniTableField field = {1, UPB_SIZE(12, 16), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Type* cel_expr_Type_FunctionType_result_type(const cel_expr_Type_FunctionType* msg) { + const cel_expr_Type* default_val = NULL; + const cel_expr_Type* ret; + const upb_MiniTableField field = {1, UPB_SIZE(12, 16), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Type_FunctionType_has_result_type(const cel_expr_Type_FunctionType* msg) { + const upb_MiniTableField field = {1, UPB_SIZE(12, 16), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Type_FunctionType_clear_arg_types(cel_expr_Type_FunctionType* msg) { + const upb_MiniTableField field = {2, UPB_SIZE(16, 24), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Type* const* cel_expr_Type_FunctionType_arg_types(const cel_expr_Type_FunctionType* msg, size_t* size) { + const upb_MiniTableField field = {2, UPB_SIZE(16, 24), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field); + if (arr) { + if (size) *size = arr->UPB_PRIVATE(size); + return (const cel_expr_Type* const*)upb_Array_DataPtr(arr); + } else { + if (size) *size = 0; + return NULL; + } +} +UPB_INLINE const upb_Array* _cel_expr_Type_FunctionType_arg_types_upb_array(const cel_expr_Type_FunctionType* msg, size_t* size) { + const upb_MiniTableField field = {2, UPB_SIZE(16, 24), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field); + if (size) { + *size = arr ? arr->UPB_PRIVATE(size) : 0; + } + return arr; +} +UPB_INLINE upb_Array* _cel_expr_Type_FunctionType_arg_types_mutable_upb_array(cel_expr_Type_FunctionType* msg, size_t* size, upb_Arena* arena) { + const upb_MiniTableField field = {2, UPB_SIZE(16, 24), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg), + &field, arena); + if (size) { + *size = arr ? arr->UPB_PRIVATE(size) : 0; + } + return arr; +} + +UPB_INLINE void cel_expr_Type_FunctionType_set_result_type(cel_expr_Type_FunctionType *msg, cel_expr_Type* value) { + const upb_MiniTableField field = {1, UPB_SIZE(12, 16), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_Type* cel_expr_Type_FunctionType_mutable_result_type(cel_expr_Type_FunctionType* msg, upb_Arena* arena) { + struct cel_expr_Type* sub = (struct cel_expr_Type*)cel_expr_Type_FunctionType_result_type(msg); + if (sub == NULL) { + sub = (struct cel_expr_Type*)_upb_Message_New(&cel__expr__Type_msg_init, arena); + if (sub) cel_expr_Type_FunctionType_set_result_type(msg, sub); + } + return sub; +} +UPB_INLINE cel_expr_Type** cel_expr_Type_FunctionType_mutable_arg_types(cel_expr_Type_FunctionType* msg, size_t* size) { + upb_MiniTableField field = {2, UPB_SIZE(16, 24), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field); + if (arr) { + if (size) *size = arr->UPB_PRIVATE(size); + return (cel_expr_Type**)upb_Array_MutableDataPtr(arr); + } else { + if (size) *size = 0; + return NULL; + } +} +UPB_INLINE cel_expr_Type** cel_expr_Type_FunctionType_resize_arg_types(cel_expr_Type_FunctionType* msg, size_t size, upb_Arena* arena) { + upb_MiniTableField field = {2, UPB_SIZE(16, 24), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return (cel_expr_Type**)upb_Message_ResizeArrayUninitialized(UPB_UPCAST(msg), + &field, size, arena); +} +UPB_INLINE struct cel_expr_Type* cel_expr_Type_FunctionType_add_arg_types(cel_expr_Type_FunctionType* msg, upb_Arena* arena) { + upb_MiniTableField field = {2, UPB_SIZE(16, 24), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + upb_Array* arr = upb_Message_GetOrCreateMutableArray( + UPB_UPCAST(msg), &field, arena); + if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)( + arr, arr->UPB_PRIVATE(size) + 1, arena)) { + return NULL; + } + struct cel_expr_Type* sub = (struct cel_expr_Type*)_upb_Message_New(&cel__expr__Type_msg_init, arena); + if (!arr || !sub) return NULL; + UPB_PRIVATE(_upb_Array_Set) + (arr, arr->UPB_PRIVATE(size) - 1, &sub, sizeof(sub)); + return sub; +} + +/* cel.expr.Type.AbstractType */ + +UPB_INLINE cel_expr_Type_AbstractType* cel_expr_Type_AbstractType_new(upb_Arena* arena) { + return (cel_expr_Type_AbstractType*)_upb_Message_New(&cel__expr__Type__AbstractType_msg_init, arena); +} +UPB_INLINE cel_expr_Type_AbstractType* cel_expr_Type_AbstractType_parse(const char* buf, size_t size, upb_Arena* arena) { + cel_expr_Type_AbstractType* ret = cel_expr_Type_AbstractType_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Type__AbstractType_msg_init, NULL, 0, arena) != + kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE cel_expr_Type_AbstractType* cel_expr_Type_AbstractType_parse_ex(const char* buf, size_t size, + const upb_ExtensionRegistry* extreg, + int options, upb_Arena* arena) { + cel_expr_Type_AbstractType* ret = cel_expr_Type_AbstractType_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Type__AbstractType_msg_init, extreg, options, + arena) != kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE char* cel_expr_Type_AbstractType_serialize(const cel_expr_Type_AbstractType* msg, upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Type__AbstractType_msg_init, 0, arena, &ptr, len); + return ptr; +} +UPB_INLINE char* cel_expr_Type_AbstractType_serialize_ex(const cel_expr_Type_AbstractType* msg, int options, + upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Type__AbstractType_msg_init, options, arena, &ptr, len); + return ptr; +} +UPB_INLINE void cel_expr_Type_AbstractType_clear_name(cel_expr_Type_AbstractType* msg) { + const upb_MiniTableField field = {1, UPB_SIZE(12, 8), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE upb_StringView cel_expr_Type_AbstractType_name(const cel_expr_Type_AbstractType* msg) { + upb_StringView default_val = upb_StringView_FromString(""); + upb_StringView ret; + const upb_MiniTableField field = {1, UPB_SIZE(12, 8), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE void cel_expr_Type_AbstractType_clear_parameter_types(cel_expr_Type_AbstractType* msg) { + const upb_MiniTableField field = {2, UPB_SIZE(8, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Type* const* cel_expr_Type_AbstractType_parameter_types(const cel_expr_Type_AbstractType* msg, size_t* size) { + const upb_MiniTableField field = {2, UPB_SIZE(8, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field); + if (arr) { + if (size) *size = arr->UPB_PRIVATE(size); + return (const cel_expr_Type* const*)upb_Array_DataPtr(arr); + } else { + if (size) *size = 0; + return NULL; + } +} +UPB_INLINE const upb_Array* _cel_expr_Type_AbstractType_parameter_types_upb_array(const cel_expr_Type_AbstractType* msg, size_t* size) { + const upb_MiniTableField field = {2, UPB_SIZE(8, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field); + if (size) { + *size = arr ? arr->UPB_PRIVATE(size) : 0; + } + return arr; +} +UPB_INLINE upb_Array* _cel_expr_Type_AbstractType_parameter_types_mutable_upb_array(cel_expr_Type_AbstractType* msg, size_t* size, upb_Arena* arena) { + const upb_MiniTableField field = {2, UPB_SIZE(8, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg), + &field, arena); + if (size) { + *size = arr ? arr->UPB_PRIVATE(size) : 0; + } + return arr; +} + +UPB_INLINE void cel_expr_Type_AbstractType_set_name(cel_expr_Type_AbstractType *msg, upb_StringView value) { + const upb_MiniTableField field = {1, UPB_SIZE(12, 8), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE cel_expr_Type** cel_expr_Type_AbstractType_mutable_parameter_types(cel_expr_Type_AbstractType* msg, size_t* size) { + upb_MiniTableField field = {2, UPB_SIZE(8, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field); + if (arr) { + if (size) *size = arr->UPB_PRIVATE(size); + return (cel_expr_Type**)upb_Array_MutableDataPtr(arr); + } else { + if (size) *size = 0; + return NULL; + } +} +UPB_INLINE cel_expr_Type** cel_expr_Type_AbstractType_resize_parameter_types(cel_expr_Type_AbstractType* msg, size_t size, upb_Arena* arena) { + upb_MiniTableField field = {2, UPB_SIZE(8, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return (cel_expr_Type**)upb_Message_ResizeArrayUninitialized(UPB_UPCAST(msg), + &field, size, arena); +} +UPB_INLINE struct cel_expr_Type* cel_expr_Type_AbstractType_add_parameter_types(cel_expr_Type_AbstractType* msg, upb_Arena* arena) { + upb_MiniTableField field = {2, UPB_SIZE(8, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + upb_Array* arr = upb_Message_GetOrCreateMutableArray( + UPB_UPCAST(msg), &field, arena); + if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)( + arr, arr->UPB_PRIVATE(size) + 1, arena)) { + return NULL; + } + struct cel_expr_Type* sub = (struct cel_expr_Type*)_upb_Message_New(&cel__expr__Type_msg_init, arena); + if (!arr || !sub) return NULL; + UPB_PRIVATE(_upb_Array_Set) + (arr, arr->UPB_PRIVATE(size) - 1, &sub, sizeof(sub)); + return sub; +} + +/* cel.expr.Decl */ + +UPB_INLINE cel_expr_Decl* cel_expr_Decl_new(upb_Arena* arena) { + return (cel_expr_Decl*)_upb_Message_New(&cel__expr__Decl_msg_init, arena); +} +UPB_INLINE cel_expr_Decl* cel_expr_Decl_parse(const char* buf, size_t size, upb_Arena* arena) { + cel_expr_Decl* ret = cel_expr_Decl_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Decl_msg_init, NULL, 0, arena) != + kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE cel_expr_Decl* cel_expr_Decl_parse_ex(const char* buf, size_t size, + const upb_ExtensionRegistry* extreg, + int options, upb_Arena* arena) { + cel_expr_Decl* ret = cel_expr_Decl_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Decl_msg_init, extreg, options, + arena) != kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE char* cel_expr_Decl_serialize(const cel_expr_Decl* msg, upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Decl_msg_init, 0, arena, &ptr, len); + return ptr; +} +UPB_INLINE char* cel_expr_Decl_serialize_ex(const cel_expr_Decl* msg, int options, + upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Decl_msg_init, options, arena, &ptr, len); + return ptr; +} +typedef enum { + cel_expr_Decl_decl_kind_ident = 2, + cel_expr_Decl_decl_kind_function = 3, + cel_expr_Decl_decl_kind_NOT_SET = 0 +} cel_expr_Decl_decl_kind_oneofcases; +UPB_INLINE cel_expr_Decl_decl_kind_oneofcases cel_expr_Decl_decl_kind_case(const cel_expr_Decl* msg) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 32), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return (cel_expr_Decl_decl_kind_oneofcases)upb_Message_WhichOneofFieldNumber( + UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Decl_clear_decl_kind(cel_expr_Decl* msg) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 32), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearOneof(UPB_UPCAST(msg), &cel__expr__Decl_msg_init, &field); +} +UPB_INLINE void cel_expr_Decl_clear_name(cel_expr_Decl* msg) { + const upb_MiniTableField field = {1, 16, 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE upb_StringView cel_expr_Decl_name(const cel_expr_Decl* msg) { + upb_StringView default_val = upb_StringView_FromString(""); + upb_StringView ret; + const upb_MiniTableField field = {1, 16, 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE void cel_expr_Decl_clear_ident(cel_expr_Decl* msg) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 32), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Decl_IdentDecl* cel_expr_Decl_ident(const cel_expr_Decl* msg) { + const cel_expr_Decl_IdentDecl* default_val = NULL; + const cel_expr_Decl_IdentDecl* ret; + const upb_MiniTableField field = {2, UPB_SIZE(12, 32), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Decl__IdentDecl_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Decl_has_ident(const cel_expr_Decl* msg) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 32), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Decl_clear_function(cel_expr_Decl* msg) { + const upb_MiniTableField field = {3, UPB_SIZE(12, 32), -9, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Decl_FunctionDecl* cel_expr_Decl_function(const cel_expr_Decl* msg) { + const cel_expr_Decl_FunctionDecl* default_val = NULL; + const cel_expr_Decl_FunctionDecl* ret; + const upb_MiniTableField field = {3, UPB_SIZE(12, 32), -9, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Decl__FunctionDecl_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Decl_has_function(const cel_expr_Decl* msg) { + const upb_MiniTableField field = {3, UPB_SIZE(12, 32), -9, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} + +UPB_INLINE void cel_expr_Decl_set_name(cel_expr_Decl *msg, upb_StringView value) { + const upb_MiniTableField field = {1, 16, 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE void cel_expr_Decl_set_ident(cel_expr_Decl *msg, cel_expr_Decl_IdentDecl* value) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 32), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Decl__IdentDecl_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_Decl_IdentDecl* cel_expr_Decl_mutable_ident(cel_expr_Decl* msg, upb_Arena* arena) { + struct cel_expr_Decl_IdentDecl* sub = (struct cel_expr_Decl_IdentDecl*)cel_expr_Decl_ident(msg); + if (sub == NULL) { + sub = (struct cel_expr_Decl_IdentDecl*)_upb_Message_New(&cel__expr__Decl__IdentDecl_msg_init, arena); + if (sub) cel_expr_Decl_set_ident(msg, sub); + } + return sub; +} +UPB_INLINE void cel_expr_Decl_set_function(cel_expr_Decl *msg, cel_expr_Decl_FunctionDecl* value) { + const upb_MiniTableField field = {3, UPB_SIZE(12, 32), -9, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Decl__FunctionDecl_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_Decl_FunctionDecl* cel_expr_Decl_mutable_function(cel_expr_Decl* msg, upb_Arena* arena) { + struct cel_expr_Decl_FunctionDecl* sub = (struct cel_expr_Decl_FunctionDecl*)cel_expr_Decl_function(msg); + if (sub == NULL) { + sub = (struct cel_expr_Decl_FunctionDecl*)_upb_Message_New(&cel__expr__Decl__FunctionDecl_msg_init, arena); + if (sub) cel_expr_Decl_set_function(msg, sub); + } + return sub; +} + +/* cel.expr.Decl.IdentDecl */ + +UPB_INLINE cel_expr_Decl_IdentDecl* cel_expr_Decl_IdentDecl_new(upb_Arena* arena) { + return (cel_expr_Decl_IdentDecl*)_upb_Message_New(&cel__expr__Decl__IdentDecl_msg_init, arena); +} +UPB_INLINE cel_expr_Decl_IdentDecl* cel_expr_Decl_IdentDecl_parse(const char* buf, size_t size, upb_Arena* arena) { + cel_expr_Decl_IdentDecl* ret = cel_expr_Decl_IdentDecl_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Decl__IdentDecl_msg_init, NULL, 0, arena) != + kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE cel_expr_Decl_IdentDecl* cel_expr_Decl_IdentDecl_parse_ex(const char* buf, size_t size, + const upb_ExtensionRegistry* extreg, + int options, upb_Arena* arena) { + cel_expr_Decl_IdentDecl* ret = cel_expr_Decl_IdentDecl_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Decl__IdentDecl_msg_init, extreg, options, + arena) != kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE char* cel_expr_Decl_IdentDecl_serialize(const cel_expr_Decl_IdentDecl* msg, upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Decl__IdentDecl_msg_init, 0, arena, &ptr, len); + return ptr; +} +UPB_INLINE char* cel_expr_Decl_IdentDecl_serialize_ex(const cel_expr_Decl_IdentDecl* msg, int options, + upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Decl__IdentDecl_msg_init, options, arena, &ptr, len); + return ptr; +} +UPB_INLINE void cel_expr_Decl_IdentDecl_clear_type(cel_expr_Decl_IdentDecl* msg) { + const upb_MiniTableField field = {1, UPB_SIZE(12, 32), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Type* cel_expr_Decl_IdentDecl_type(const cel_expr_Decl_IdentDecl* msg) { + const cel_expr_Type* default_val = NULL; + const cel_expr_Type* ret; + const upb_MiniTableField field = {1, UPB_SIZE(12, 32), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Decl_IdentDecl_has_type(const cel_expr_Decl_IdentDecl* msg) { + const upb_MiniTableField field = {1, UPB_SIZE(12, 32), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Decl_IdentDecl_clear_value(cel_expr_Decl_IdentDecl* msg) { + const upb_MiniTableField field = {2, UPB_SIZE(16, 40), 65, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const struct cel_expr_Constant* cel_expr_Decl_IdentDecl_value(const cel_expr_Decl_IdentDecl* msg) { + const struct cel_expr_Constant* default_val = NULL; + const struct cel_expr_Constant* ret; + const upb_MiniTableField field = {2, UPB_SIZE(16, 40), 65, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Constant_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Decl_IdentDecl_has_value(const cel_expr_Decl_IdentDecl* msg) { + const upb_MiniTableField field = {2, UPB_SIZE(16, 40), 65, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Decl_IdentDecl_clear_doc(cel_expr_Decl_IdentDecl* msg) { + const upb_MiniTableField field = {3, UPB_SIZE(20, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE upb_StringView cel_expr_Decl_IdentDecl_doc(const cel_expr_Decl_IdentDecl* msg) { + upb_StringView default_val = upb_StringView_FromString(""); + upb_StringView ret; + const upb_MiniTableField field = {3, UPB_SIZE(20, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} + +UPB_INLINE void cel_expr_Decl_IdentDecl_set_type(cel_expr_Decl_IdentDecl *msg, cel_expr_Type* value) { + const upb_MiniTableField field = {1, UPB_SIZE(12, 32), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_Type* cel_expr_Decl_IdentDecl_mutable_type(cel_expr_Decl_IdentDecl* msg, upb_Arena* arena) { + struct cel_expr_Type* sub = (struct cel_expr_Type*)cel_expr_Decl_IdentDecl_type(msg); + if (sub == NULL) { + sub = (struct cel_expr_Type*)_upb_Message_New(&cel__expr__Type_msg_init, arena); + if (sub) cel_expr_Decl_IdentDecl_set_type(msg, sub); + } + return sub; +} +UPB_INLINE void cel_expr_Decl_IdentDecl_set_value(cel_expr_Decl_IdentDecl *msg, struct cel_expr_Constant* value) { + const upb_MiniTableField field = {2, UPB_SIZE(16, 40), 65, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Constant_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_Constant* cel_expr_Decl_IdentDecl_mutable_value(cel_expr_Decl_IdentDecl* msg, upb_Arena* arena) { + struct cel_expr_Constant* sub = (struct cel_expr_Constant*)cel_expr_Decl_IdentDecl_value(msg); + if (sub == NULL) { + sub = (struct cel_expr_Constant*)_upb_Message_New(&cel__expr__Constant_msg_init, arena); + if (sub) cel_expr_Decl_IdentDecl_set_value(msg, sub); + } + return sub; +} +UPB_INLINE void cel_expr_Decl_IdentDecl_set_doc(cel_expr_Decl_IdentDecl *msg, upb_StringView value) { + const upb_MiniTableField field = {3, UPB_SIZE(20, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} + +/* cel.expr.Decl.FunctionDecl */ + +UPB_INLINE cel_expr_Decl_FunctionDecl* cel_expr_Decl_FunctionDecl_new(upb_Arena* arena) { + return (cel_expr_Decl_FunctionDecl*)_upb_Message_New(&cel__expr__Decl__FunctionDecl_msg_init, arena); +} +UPB_INLINE cel_expr_Decl_FunctionDecl* cel_expr_Decl_FunctionDecl_parse(const char* buf, size_t size, upb_Arena* arena) { + cel_expr_Decl_FunctionDecl* ret = cel_expr_Decl_FunctionDecl_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Decl__FunctionDecl_msg_init, NULL, 0, arena) != + kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE cel_expr_Decl_FunctionDecl* cel_expr_Decl_FunctionDecl_parse_ex(const char* buf, size_t size, + const upb_ExtensionRegistry* extreg, + int options, upb_Arena* arena) { + cel_expr_Decl_FunctionDecl* ret = cel_expr_Decl_FunctionDecl_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Decl__FunctionDecl_msg_init, extreg, options, + arena) != kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE char* cel_expr_Decl_FunctionDecl_serialize(const cel_expr_Decl_FunctionDecl* msg, upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Decl__FunctionDecl_msg_init, 0, arena, &ptr, len); + return ptr; +} +UPB_INLINE char* cel_expr_Decl_FunctionDecl_serialize_ex(const cel_expr_Decl_FunctionDecl* msg, int options, + upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Decl__FunctionDecl_msg_init, options, arena, &ptr, len); + return ptr; +} +UPB_INLINE void cel_expr_Decl_FunctionDecl_clear_overloads(cel_expr_Decl_FunctionDecl* msg) { + const upb_MiniTableField field = {1, UPB_SIZE(8, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Decl_FunctionDecl_Overload* const* cel_expr_Decl_FunctionDecl_overloads(const cel_expr_Decl_FunctionDecl* msg, size_t* size) { + const upb_MiniTableField field = {1, UPB_SIZE(8, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Decl__FunctionDecl__Overload_msg_init); + const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field); + if (arr) { + if (size) *size = arr->UPB_PRIVATE(size); + return (const cel_expr_Decl_FunctionDecl_Overload* const*)upb_Array_DataPtr(arr); + } else { + if (size) *size = 0; + return NULL; + } +} +UPB_INLINE const upb_Array* _cel_expr_Decl_FunctionDecl_overloads_upb_array(const cel_expr_Decl_FunctionDecl* msg, size_t* size) { + const upb_MiniTableField field = {1, UPB_SIZE(8, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Decl__FunctionDecl__Overload_msg_init); + const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field); + if (size) { + *size = arr ? arr->UPB_PRIVATE(size) : 0; + } + return arr; +} +UPB_INLINE upb_Array* _cel_expr_Decl_FunctionDecl_overloads_mutable_upb_array(cel_expr_Decl_FunctionDecl* msg, size_t* size, upb_Arena* arena) { + const upb_MiniTableField field = {1, UPB_SIZE(8, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Decl__FunctionDecl__Overload_msg_init); + upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg), + &field, arena); + if (size) { + *size = arr ? arr->UPB_PRIVATE(size) : 0; + } + return arr; +} +UPB_INLINE void cel_expr_Decl_FunctionDecl_clear_doc(cel_expr_Decl_FunctionDecl* msg) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 8), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE upb_StringView cel_expr_Decl_FunctionDecl_doc(const cel_expr_Decl_FunctionDecl* msg) { + upb_StringView default_val = upb_StringView_FromString(""); + upb_StringView ret; + const upb_MiniTableField field = {2, UPB_SIZE(12, 8), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} + +UPB_INLINE cel_expr_Decl_FunctionDecl_Overload** cel_expr_Decl_FunctionDecl_mutable_overloads(cel_expr_Decl_FunctionDecl* msg, size_t* size) { + upb_MiniTableField field = {1, UPB_SIZE(8, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Decl__FunctionDecl__Overload_msg_init); + upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field); + if (arr) { + if (size) *size = arr->UPB_PRIVATE(size); + return (cel_expr_Decl_FunctionDecl_Overload**)upb_Array_MutableDataPtr(arr); + } else { + if (size) *size = 0; + return NULL; + } +} +UPB_INLINE cel_expr_Decl_FunctionDecl_Overload** cel_expr_Decl_FunctionDecl_resize_overloads(cel_expr_Decl_FunctionDecl* msg, size_t size, upb_Arena* arena) { + upb_MiniTableField field = {1, UPB_SIZE(8, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return (cel_expr_Decl_FunctionDecl_Overload**)upb_Message_ResizeArrayUninitialized(UPB_UPCAST(msg), + &field, size, arena); +} +UPB_INLINE struct cel_expr_Decl_FunctionDecl_Overload* cel_expr_Decl_FunctionDecl_add_overloads(cel_expr_Decl_FunctionDecl* msg, upb_Arena* arena) { + upb_MiniTableField field = {1, UPB_SIZE(8, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Decl__FunctionDecl__Overload_msg_init); + upb_Array* arr = upb_Message_GetOrCreateMutableArray( + UPB_UPCAST(msg), &field, arena); + if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)( + arr, arr->UPB_PRIVATE(size) + 1, arena)) { + return NULL; + } + struct cel_expr_Decl_FunctionDecl_Overload* sub = (struct cel_expr_Decl_FunctionDecl_Overload*)_upb_Message_New(&cel__expr__Decl__FunctionDecl__Overload_msg_init, arena); + if (!arr || !sub) return NULL; + UPB_PRIVATE(_upb_Array_Set) + (arr, arr->UPB_PRIVATE(size) - 1, &sub, sizeof(sub)); + return sub; +} +UPB_INLINE void cel_expr_Decl_FunctionDecl_set_doc(cel_expr_Decl_FunctionDecl *msg, upb_StringView value) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 8), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} + +/* cel.expr.Decl.FunctionDecl.Overload */ + +UPB_INLINE cel_expr_Decl_FunctionDecl_Overload* cel_expr_Decl_FunctionDecl_Overload_new(upb_Arena* arena) { + return (cel_expr_Decl_FunctionDecl_Overload*)_upb_Message_New(&cel__expr__Decl__FunctionDecl__Overload_msg_init, arena); +} +UPB_INLINE cel_expr_Decl_FunctionDecl_Overload* cel_expr_Decl_FunctionDecl_Overload_parse(const char* buf, size_t size, upb_Arena* arena) { + cel_expr_Decl_FunctionDecl_Overload* ret = cel_expr_Decl_FunctionDecl_Overload_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Decl__FunctionDecl__Overload_msg_init, NULL, 0, arena) != + kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE cel_expr_Decl_FunctionDecl_Overload* cel_expr_Decl_FunctionDecl_Overload_parse_ex(const char* buf, size_t size, + const upb_ExtensionRegistry* extreg, + int options, upb_Arena* arena) { + cel_expr_Decl_FunctionDecl_Overload* ret = cel_expr_Decl_FunctionDecl_Overload_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Decl__FunctionDecl__Overload_msg_init, extreg, options, + arena) != kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE char* cel_expr_Decl_FunctionDecl_Overload_serialize(const cel_expr_Decl_FunctionDecl_Overload* msg, upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Decl__FunctionDecl__Overload_msg_init, 0, arena, &ptr, len); + return ptr; +} +UPB_INLINE char* cel_expr_Decl_FunctionDecl_Overload_serialize_ex(const cel_expr_Decl_FunctionDecl_Overload* msg, int options, + upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Decl__FunctionDecl__Overload_msg_init, options, arena, &ptr, len); + return ptr; +} +UPB_INLINE void cel_expr_Decl_FunctionDecl_Overload_clear_overload_id(cel_expr_Decl_FunctionDecl_Overload* msg) { + const upb_MiniTableField field = {1, UPB_SIZE(24, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE upb_StringView cel_expr_Decl_FunctionDecl_Overload_overload_id(const cel_expr_Decl_FunctionDecl_Overload* msg) { + upb_StringView default_val = upb_StringView_FromString(""); + upb_StringView ret; + const upb_MiniTableField field = {1, UPB_SIZE(24, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE void cel_expr_Decl_FunctionDecl_Overload_clear_params(cel_expr_Decl_FunctionDecl_Overload* msg) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 48), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Type* const* cel_expr_Decl_FunctionDecl_Overload_params(const cel_expr_Decl_FunctionDecl_Overload* msg, size_t* size) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 48), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field); + if (arr) { + if (size) *size = arr->UPB_PRIVATE(size); + return (const cel_expr_Type* const*)upb_Array_DataPtr(arr); + } else { + if (size) *size = 0; + return NULL; + } +} +UPB_INLINE const upb_Array* _cel_expr_Decl_FunctionDecl_Overload_params_upb_array(const cel_expr_Decl_FunctionDecl_Overload* msg, size_t* size) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 48), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field); + if (size) { + *size = arr ? arr->UPB_PRIVATE(size) : 0; + } + return arr; +} +UPB_INLINE upb_Array* _cel_expr_Decl_FunctionDecl_Overload_params_mutable_upb_array(cel_expr_Decl_FunctionDecl_Overload* msg, size_t* size, upb_Arena* arena) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 48), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg), + &field, arena); + if (size) { + *size = arr ? arr->UPB_PRIVATE(size) : 0; + } + return arr; +} +UPB_INLINE void cel_expr_Decl_FunctionDecl_Overload_clear_type_params(cel_expr_Decl_FunctionDecl_Overload* msg) { + const upb_MiniTableField field = {3, UPB_SIZE(16, 56), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE upb_StringView const* cel_expr_Decl_FunctionDecl_Overload_type_params(const cel_expr_Decl_FunctionDecl_Overload* msg, size_t* size) { + const upb_MiniTableField field = {3, UPB_SIZE(16, 56), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field); + if (arr) { + if (size) *size = arr->UPB_PRIVATE(size); + return (upb_StringView const*)upb_Array_DataPtr(arr); + } else { + if (size) *size = 0; + return NULL; + } +} +UPB_INLINE const upb_Array* _cel_expr_Decl_FunctionDecl_Overload_type_params_upb_array(const cel_expr_Decl_FunctionDecl_Overload* msg, size_t* size) { + const upb_MiniTableField field = {3, UPB_SIZE(16, 56), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field); + if (size) { + *size = arr ? arr->UPB_PRIVATE(size) : 0; + } + return arr; +} +UPB_INLINE upb_Array* _cel_expr_Decl_FunctionDecl_Overload_type_params_mutable_upb_array(cel_expr_Decl_FunctionDecl_Overload* msg, size_t* size, upb_Arena* arena) { + const upb_MiniTableField field = {3, UPB_SIZE(16, 56), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg), + &field, arena); + if (size) { + *size = arr ? arr->UPB_PRIVATE(size) : 0; + } + return arr; +} +UPB_INLINE void cel_expr_Decl_FunctionDecl_Overload_clear_result_type(cel_expr_Decl_FunctionDecl_Overload* msg) { + const upb_MiniTableField field = {4, UPB_SIZE(20, 64), 64, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Type* cel_expr_Decl_FunctionDecl_Overload_result_type(const cel_expr_Decl_FunctionDecl_Overload* msg) { + const cel_expr_Type* default_val = NULL; + const cel_expr_Type* ret; + const upb_MiniTableField field = {4, UPB_SIZE(20, 64), 64, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Decl_FunctionDecl_Overload_has_result_type(const cel_expr_Decl_FunctionDecl_Overload* msg) { + const upb_MiniTableField field = {4, UPB_SIZE(20, 64), 64, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Decl_FunctionDecl_Overload_clear_is_instance_function(cel_expr_Decl_FunctionDecl_Overload* msg) { + const upb_MiniTableField field = {5, 9, 0, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE bool cel_expr_Decl_FunctionDecl_Overload_is_instance_function(const cel_expr_Decl_FunctionDecl_Overload* msg) { + bool default_val = false; + bool ret; + const upb_MiniTableField field = {5, 9, 0, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE void cel_expr_Decl_FunctionDecl_Overload_clear_doc(cel_expr_Decl_FunctionDecl_Overload* msg) { + const upb_MiniTableField field = {6, 32, 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE upb_StringView cel_expr_Decl_FunctionDecl_Overload_doc(const cel_expr_Decl_FunctionDecl_Overload* msg) { + upb_StringView default_val = upb_StringView_FromString(""); + upb_StringView ret; + const upb_MiniTableField field = {6, 32, 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} + +UPB_INLINE void cel_expr_Decl_FunctionDecl_Overload_set_overload_id(cel_expr_Decl_FunctionDecl_Overload *msg, upb_StringView value) { + const upb_MiniTableField field = {1, UPB_SIZE(24, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE cel_expr_Type** cel_expr_Decl_FunctionDecl_Overload_mutable_params(cel_expr_Decl_FunctionDecl_Overload* msg, size_t* size) { + upb_MiniTableField field = {2, UPB_SIZE(12, 48), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field); + if (arr) { + if (size) *size = arr->UPB_PRIVATE(size); + return (cel_expr_Type**)upb_Array_MutableDataPtr(arr); + } else { + if (size) *size = 0; + return NULL; + } +} +UPB_INLINE cel_expr_Type** cel_expr_Decl_FunctionDecl_Overload_resize_params(cel_expr_Decl_FunctionDecl_Overload* msg, size_t size, upb_Arena* arena) { + upb_MiniTableField field = {2, UPB_SIZE(12, 48), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return (cel_expr_Type**)upb_Message_ResizeArrayUninitialized(UPB_UPCAST(msg), + &field, size, arena); +} +UPB_INLINE struct cel_expr_Type* cel_expr_Decl_FunctionDecl_Overload_add_params(cel_expr_Decl_FunctionDecl_Overload* msg, upb_Arena* arena) { + upb_MiniTableField field = {2, UPB_SIZE(12, 48), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + upb_Array* arr = upb_Message_GetOrCreateMutableArray( + UPB_UPCAST(msg), &field, arena); + if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)( + arr, arr->UPB_PRIVATE(size) + 1, arena)) { + return NULL; + } + struct cel_expr_Type* sub = (struct cel_expr_Type*)_upb_Message_New(&cel__expr__Type_msg_init, arena); + if (!arr || !sub) return NULL; + UPB_PRIVATE(_upb_Array_Set) + (arr, arr->UPB_PRIVATE(size) - 1, &sub, sizeof(sub)); + return sub; +} +UPB_INLINE upb_StringView* cel_expr_Decl_FunctionDecl_Overload_mutable_type_params(cel_expr_Decl_FunctionDecl_Overload* msg, size_t* size) { + upb_MiniTableField field = {3, UPB_SIZE(16, 56), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field); + if (arr) { + if (size) *size = arr->UPB_PRIVATE(size); + return (upb_StringView*)upb_Array_MutableDataPtr(arr); + } else { + if (size) *size = 0; + return NULL; + } +} +UPB_INLINE upb_StringView* cel_expr_Decl_FunctionDecl_Overload_resize_type_params(cel_expr_Decl_FunctionDecl_Overload* msg, size_t size, upb_Arena* arena) { + upb_MiniTableField field = {3, UPB_SIZE(16, 56), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return (upb_StringView*)upb_Message_ResizeArrayUninitialized(UPB_UPCAST(msg), + &field, size, arena); +} +UPB_INLINE bool cel_expr_Decl_FunctionDecl_Overload_add_type_params(cel_expr_Decl_FunctionDecl_Overload* msg, upb_StringView val, upb_Arena* arena) { + upb_MiniTableField field = {3, UPB_SIZE(16, 56), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Array* arr = upb_Message_GetOrCreateMutableArray( + UPB_UPCAST(msg), &field, arena); + if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)( + arr, arr->UPB_PRIVATE(size) + 1, arena)) { + return false; + } + UPB_PRIVATE(_upb_Array_Set) + (arr, arr->UPB_PRIVATE(size) - 1, &val, sizeof(val)); + return true; +} +UPB_INLINE void cel_expr_Decl_FunctionDecl_Overload_set_result_type(cel_expr_Decl_FunctionDecl_Overload *msg, cel_expr_Type* value) { + const upb_MiniTableField field = {4, UPB_SIZE(20, 64), 64, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Type_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_Type* cel_expr_Decl_FunctionDecl_Overload_mutable_result_type(cel_expr_Decl_FunctionDecl_Overload* msg, upb_Arena* arena) { + struct cel_expr_Type* sub = (struct cel_expr_Type*)cel_expr_Decl_FunctionDecl_Overload_result_type(msg); + if (sub == NULL) { + sub = (struct cel_expr_Type*)_upb_Message_New(&cel__expr__Type_msg_init, arena); + if (sub) cel_expr_Decl_FunctionDecl_Overload_set_result_type(msg, sub); + } + return sub; +} +UPB_INLINE void cel_expr_Decl_FunctionDecl_Overload_set_is_instance_function(cel_expr_Decl_FunctionDecl_Overload *msg, bool value) { + const upb_MiniTableField field = {5, 9, 0, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE void cel_expr_Decl_FunctionDecl_Overload_set_doc(cel_expr_Decl_FunctionDecl_Overload *msg, upb_StringView value) { + const upb_MiniTableField field = {6, 32, 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} + +/* cel.expr.Reference */ + +UPB_INLINE cel_expr_Reference* cel_expr_Reference_new(upb_Arena* arena) { + return (cel_expr_Reference*)_upb_Message_New(&cel__expr__Reference_msg_init, arena); +} +UPB_INLINE cel_expr_Reference* cel_expr_Reference_parse(const char* buf, size_t size, upb_Arena* arena) { + cel_expr_Reference* ret = cel_expr_Reference_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Reference_msg_init, NULL, 0, arena) != + kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE cel_expr_Reference* cel_expr_Reference_parse_ex(const char* buf, size_t size, + const upb_ExtensionRegistry* extreg, + int options, upb_Arena* arena) { + cel_expr_Reference* ret = cel_expr_Reference_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Reference_msg_init, extreg, options, + arena) != kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE char* cel_expr_Reference_serialize(const cel_expr_Reference* msg, upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Reference_msg_init, 0, arena, &ptr, len); + return ptr; +} +UPB_INLINE char* cel_expr_Reference_serialize_ex(const cel_expr_Reference* msg, int options, + upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Reference_msg_init, options, arena, &ptr, len); + return ptr; +} +UPB_INLINE void cel_expr_Reference_clear_name(cel_expr_Reference* msg) { + const upb_MiniTableField field = {1, UPB_SIZE(20, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE upb_StringView cel_expr_Reference_name(const cel_expr_Reference* msg) { + upb_StringView default_val = upb_StringView_FromString(""); + upb_StringView ret; + const upb_MiniTableField field = {1, UPB_SIZE(20, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE void cel_expr_Reference_clear_overload_id(cel_expr_Reference* msg) { + const upb_MiniTableField field = {3, UPB_SIZE(12, 32), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE upb_StringView const* cel_expr_Reference_overload_id(const cel_expr_Reference* msg, size_t* size) { + const upb_MiniTableField field = {3, UPB_SIZE(12, 32), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field); + if (arr) { + if (size) *size = arr->UPB_PRIVATE(size); + return (upb_StringView const*)upb_Array_DataPtr(arr); + } else { + if (size) *size = 0; + return NULL; + } +} +UPB_INLINE const upb_Array* _cel_expr_Reference_overload_id_upb_array(const cel_expr_Reference* msg, size_t* size) { + const upb_MiniTableField field = {3, UPB_SIZE(12, 32), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field); + if (size) { + *size = arr ? arr->UPB_PRIVATE(size) : 0; + } + return arr; +} +UPB_INLINE upb_Array* _cel_expr_Reference_overload_id_mutable_upb_array(cel_expr_Reference* msg, size_t* size, upb_Arena* arena) { + const upb_MiniTableField field = {3, UPB_SIZE(12, 32), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg), + &field, arena); + if (size) { + *size = arr ? arr->UPB_PRIVATE(size) : 0; + } + return arr; +} +UPB_INLINE void cel_expr_Reference_clear_value(cel_expr_Reference* msg) { + const upb_MiniTableField field = {4, UPB_SIZE(16, 40), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const struct cel_expr_Constant* cel_expr_Reference_value(const cel_expr_Reference* msg) { + const struct cel_expr_Constant* default_val = NULL; + const struct cel_expr_Constant* ret; + const upb_MiniTableField field = {4, UPB_SIZE(16, 40), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Constant_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Reference_has_value(const cel_expr_Reference* msg) { + const upb_MiniTableField field = {4, UPB_SIZE(16, 40), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} + +UPB_INLINE void cel_expr_Reference_set_name(cel_expr_Reference *msg, upb_StringView value) { + const upb_MiniTableField field = {1, UPB_SIZE(20, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE upb_StringView* cel_expr_Reference_mutable_overload_id(cel_expr_Reference* msg, size_t* size) { + upb_MiniTableField field = {3, UPB_SIZE(12, 32), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field); + if (arr) { + if (size) *size = arr->UPB_PRIVATE(size); + return (upb_StringView*)upb_Array_MutableDataPtr(arr); + } else { + if (size) *size = 0; + return NULL; + } +} +UPB_INLINE upb_StringView* cel_expr_Reference_resize_overload_id(cel_expr_Reference* msg, size_t size, upb_Arena* arena) { + upb_MiniTableField field = {3, UPB_SIZE(12, 32), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return (upb_StringView*)upb_Message_ResizeArrayUninitialized(UPB_UPCAST(msg), + &field, size, arena); +} +UPB_INLINE bool cel_expr_Reference_add_overload_id(cel_expr_Reference* msg, upb_StringView val, upb_Arena* arena) { + upb_MiniTableField field = {3, UPB_SIZE(12, 32), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Array* arr = upb_Message_GetOrCreateMutableArray( + UPB_UPCAST(msg), &field, arena); + if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)( + arr, arr->UPB_PRIVATE(size) + 1, arena)) { + return false; + } + UPB_PRIVATE(_upb_Array_Set) + (arr, arr->UPB_PRIVATE(size) - 1, &val, sizeof(val)); + return true; +} +UPB_INLINE void cel_expr_Reference_set_value(cel_expr_Reference *msg, struct cel_expr_Constant* value) { + const upb_MiniTableField field = {4, UPB_SIZE(16, 40), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Constant_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_Constant* cel_expr_Reference_mutable_value(cel_expr_Reference* msg, upb_Arena* arena) { + struct cel_expr_Constant* sub = (struct cel_expr_Constant*)cel_expr_Reference_value(msg); + if (sub == NULL) { + sub = (struct cel_expr_Constant*)_upb_Message_New(&cel__expr__Constant_msg_init, arena); + if (sub) cel_expr_Reference_set_value(msg, sub); + } + return sub; +} + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#include "upb/port/undef.inc" + +#endif /* CEL_EXPR_CHECKED_PROTO_UPB_H__UPB_H_ */ diff --git a/src/core/ext/upb-gen/cel/expr/checked.upb_minitable.c b/src/core/ext/upb-gen/cel/expr/checked.upb_minitable.c new file mode 100644 index 0000000000000..838ec23ee9616 --- /dev/null +++ b/src/core/ext/upb-gen/cel/expr/checked.upb_minitable.c @@ -0,0 +1,409 @@ +/* This file was generated by upb_generator from the input file: + * + * cel/expr/checked.proto + * + * Do not edit -- your changes will be discarded when the file is + * regenerated. + * NO CHECKED-IN PROTOBUF GENCODE */ + +#include +#include "upb/generated_code_support.h" +#include "cel/expr/checked.upb_minitable.h" +#include "cel/expr/syntax.upb_minitable.h" +#include "google/protobuf/empty.upb_minitable.h" +#include "google/protobuf/struct.upb_minitable.h" + +// Must be last. +#include "upb/port/def.inc" + +extern const struct upb_MiniTable UPB_PRIVATE(_kUpb_MiniTable_StaticallyTreeShaken); +static const upb_MiniTableSubInternal cel_expr_CheckedExpr__submsgs[4] = { + {.UPB_PRIVATE(submsg) = &cel__expr__CheckedExpr__ReferenceMapEntry_msg_init_ptr}, + {.UPB_PRIVATE(submsg) = &cel__expr__CheckedExpr__TypeMapEntry_msg_init_ptr}, + {.UPB_PRIVATE(submsg) = &cel__expr__Expr_msg_init_ptr}, + {.UPB_PRIVATE(submsg) = &cel__expr__SourceInfo_msg_init_ptr}, +}; + +static const upb_MiniTableField cel_expr_CheckedExpr__fields[5] = { + {2, UPB_SIZE(12, 32), 0, 0, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {3, UPB_SIZE(16, 40), 0, 1, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {4, UPB_SIZE(20, 48), 64, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {5, UPB_SIZE(24, 56), 65, 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {6, UPB_SIZE(28, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}, +}; + +const upb_MiniTable cel__expr__CheckedExpr_msg_init = { + &cel_expr_CheckedExpr__submsgs[0], + &cel_expr_CheckedExpr__fields[0], + UPB_SIZE(40, 64), 5, kUpb_ExtMode_NonExtendable, 0, UPB_FASTTABLE_MASK(56), 0, +#ifdef UPB_TRACING_ENABLED + "cel.expr.CheckedExpr", +#endif + UPB_FASTTABLE_INIT({ + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x001000003f000032, &upb_pss_1bt}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + }) +}; + +const upb_MiniTable* cel__expr__CheckedExpr_msg_init_ptr = &cel__expr__CheckedExpr_msg_init; +static const upb_MiniTableSubInternal cel_expr_CheckedExpr_ReferenceMapEntry__submsgs[1] = { + {.UPB_PRIVATE(submsg) = &cel__expr__Reference_msg_init_ptr}, +}; + +static const upb_MiniTableField cel_expr_CheckedExpr_ReferenceMapEntry__fields[2] = { + {1, 16, 0, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}, + {2, 32, 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, +}; + +const upb_MiniTable cel__expr__CheckedExpr__ReferenceMapEntry_msg_init = { + &cel_expr_CheckedExpr_ReferenceMapEntry__submsgs[0], + &cel_expr_CheckedExpr_ReferenceMapEntry__fields[0], + 48, 2, kUpb_ExtMode_NonExtendable, 2, UPB_FASTTABLE_MASK(8), 0, +#ifdef UPB_TRACING_ENABLED + "cel.expr.CheckedExpr.ReferenceMapEntry", +#endif + UPB_FASTTABLE_INIT({ + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x001000003f000008, &upb_psv8_1bt}, + }) +}; + +const upb_MiniTable* cel__expr__CheckedExpr__ReferenceMapEntry_msg_init_ptr = &cel__expr__CheckedExpr__ReferenceMapEntry_msg_init; +static const upb_MiniTableSubInternal cel_expr_CheckedExpr_TypeMapEntry__submsgs[1] = { + {.UPB_PRIVATE(submsg) = &cel__expr__Type_msg_init_ptr}, +}; + +static const upb_MiniTableField cel_expr_CheckedExpr_TypeMapEntry__fields[2] = { + {1, 16, 0, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}, + {2, 32, 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, +}; + +const upb_MiniTable cel__expr__CheckedExpr__TypeMapEntry_msg_init = { + &cel_expr_CheckedExpr_TypeMapEntry__submsgs[0], + &cel_expr_CheckedExpr_TypeMapEntry__fields[0], + 48, 2, kUpb_ExtMode_NonExtendable, 2, UPB_FASTTABLE_MASK(8), 0, +#ifdef UPB_TRACING_ENABLED + "cel.expr.CheckedExpr.TypeMapEntry", +#endif + UPB_FASTTABLE_INIT({ + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x001000003f000008, &upb_psv8_1bt}, + }) +}; + +const upb_MiniTable* cel__expr__CheckedExpr__TypeMapEntry_msg_init_ptr = &cel__expr__CheckedExpr__TypeMapEntry_msg_init; +static const upb_MiniTableSubInternal cel_expr_Type__submsgs[7] = { + {.UPB_PRIVATE(submsg) = &google__protobuf__Empty_msg_init_ptr}, + {.UPB_PRIVATE(submsg) = &cel__expr__Type__ListType_msg_init_ptr}, + {.UPB_PRIVATE(submsg) = &cel__expr__Type__MapType_msg_init_ptr}, + {.UPB_PRIVATE(submsg) = &cel__expr__Type__FunctionType_msg_init_ptr}, + {.UPB_PRIVATE(submsg) = &cel__expr__Type_msg_init_ptr}, + {.UPB_PRIVATE(submsg) = &google__protobuf__Empty_msg_init_ptr}, + {.UPB_PRIVATE(submsg) = &cel__expr__Type__AbstractType_msg_init_ptr}, +}; + +static const upb_MiniTableField cel_expr_Type__fields[13] = { + {1, UPB_SIZE(12, 16), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {2, UPB_SIZE(12, 16), -9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)}, + {3, UPB_SIZE(12, 16), -9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)}, + {4, UPB_SIZE(12, 16), -9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)}, + {5, UPB_SIZE(12, 16), -9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)}, + {6, UPB_SIZE(12, 16), -9, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {7, UPB_SIZE(12, 16), -9, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {8, UPB_SIZE(12, 16), -9, 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {9, UPB_SIZE(12, 16), -9, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}, + {10, UPB_SIZE(12, 16), -9, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}, + {11, UPB_SIZE(12, 16), -9, 4, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {12, UPB_SIZE(12, 16), -9, 5, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {14, UPB_SIZE(12, 16), -9, 6, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, +}; + +const upb_MiniTable cel__expr__Type_msg_init = { + &cel_expr_Type__submsgs[0], + &cel_expr_Type__fields[0], + UPB_SIZE(24, 32), 13, kUpb_ExtMode_NonExtendable, 12, UPB_FASTTABLE_MASK(120), 0, +#ifdef UPB_TRACING_ENABLED + "cel.expr.Type", +#endif + UPB_FASTTABLE_INIT({ + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x001000080100000a, &upb_pom_1bt_maxmaxb}, + {0x0010000802000010, &upb_pov4_1bt}, + {0x0010000803000018, &upb_pov4_1bt}, + {0x0010000804000020, &upb_pov4_1bt}, + {0x0010000805000028, &upb_pov4_1bt}, + {0x0010000806010032, &upb_pom_1bt_max64b}, + {0x001000080702003a, &upb_pom_1bt_max64b}, + {0x0010000808030042, &upb_pom_1bt_max64b}, + {0x001000080900004a, &upb_pos_1bt}, + {0x001000080a000052, &upb_pos_1bt}, + {0x001000080b04005a, &upb_pom_1bt_max64b}, + {0x001000080c050062, &upb_pom_1bt_maxmaxb}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x001000080e060072, &upb_pom_1bt_max64b}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + }) +}; + +const upb_MiniTable* cel__expr__Type_msg_init_ptr = &cel__expr__Type_msg_init; +static const upb_MiniTableSubInternal cel_expr_Type_ListType__submsgs[1] = { + {.UPB_PRIVATE(submsg) = &cel__expr__Type_msg_init_ptr}, +}; + +static const upb_MiniTableField cel_expr_Type_ListType__fields[1] = { + {1, UPB_SIZE(12, 16), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, +}; + +const upb_MiniTable cel__expr__Type__ListType_msg_init = { + &cel_expr_Type_ListType__submsgs[0], + &cel_expr_Type_ListType__fields[0], + UPB_SIZE(16, 24), 1, kUpb_ExtMode_NonExtendable, 1, UPB_FASTTABLE_MASK(255), 0, +#ifdef UPB_TRACING_ENABLED + "cel.expr.Type.ListType", +#endif +}; + +const upb_MiniTable* cel__expr__Type__ListType_msg_init_ptr = &cel__expr__Type__ListType_msg_init; +static const upb_MiniTableSubInternal cel_expr_Type_MapType__submsgs[2] = { + {.UPB_PRIVATE(submsg) = &cel__expr__Type_msg_init_ptr}, + {.UPB_PRIVATE(submsg) = &cel__expr__Type_msg_init_ptr}, +}; + +static const upb_MiniTableField cel_expr_Type_MapType__fields[2] = { + {1, UPB_SIZE(12, 16), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {2, UPB_SIZE(16, 24), 65, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, +}; + +const upb_MiniTable cel__expr__Type__MapType_msg_init = { + &cel_expr_Type_MapType__submsgs[0], + &cel_expr_Type_MapType__fields[0], + UPB_SIZE(24, 32), 2, kUpb_ExtMode_NonExtendable, 2, UPB_FASTTABLE_MASK(255), 0, +#ifdef UPB_TRACING_ENABLED + "cel.expr.Type.MapType", +#endif +}; + +const upb_MiniTable* cel__expr__Type__MapType_msg_init_ptr = &cel__expr__Type__MapType_msg_init; +static const upb_MiniTableSubInternal cel_expr_Type_FunctionType__submsgs[2] = { + {.UPB_PRIVATE(submsg) = &cel__expr__Type_msg_init_ptr}, + {.UPB_PRIVATE(submsg) = &cel__expr__Type_msg_init_ptr}, +}; + +static const upb_MiniTableField cel_expr_Type_FunctionType__fields[2] = { + {1, UPB_SIZE(12, 16), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {2, UPB_SIZE(16, 24), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, +}; + +const upb_MiniTable cel__expr__Type__FunctionType_msg_init = { + &cel_expr_Type_FunctionType__submsgs[0], + &cel_expr_Type_FunctionType__fields[0], + UPB_SIZE(24, 32), 2, kUpb_ExtMode_NonExtendable, 2, UPB_FASTTABLE_MASK(24), 0, +#ifdef UPB_TRACING_ENABLED + "cel.expr.Type.FunctionType", +#endif + UPB_FASTTABLE_INIT({ + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x001800003f010012, &upb_prm_1bt_max64b}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + }) +}; + +const upb_MiniTable* cel__expr__Type__FunctionType_msg_init_ptr = &cel__expr__Type__FunctionType_msg_init; +static const upb_MiniTableSubInternal cel_expr_Type_AbstractType__submsgs[1] = { + {.UPB_PRIVATE(submsg) = &cel__expr__Type_msg_init_ptr}, +}; + +static const upb_MiniTableField cel_expr_Type_AbstractType__fields[2] = { + {1, UPB_SIZE(12, 8), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}, + {2, UPB_SIZE(8, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, +}; + +const upb_MiniTable cel__expr__Type__AbstractType_msg_init = { + &cel_expr_Type_AbstractType__submsgs[0], + &cel_expr_Type_AbstractType__fields[0], + UPB_SIZE(24, 32), 2, kUpb_ExtMode_NonExtendable, 2, UPB_FASTTABLE_MASK(24), 0, +#ifdef UPB_TRACING_ENABLED + "cel.expr.Type.AbstractType", +#endif + UPB_FASTTABLE_INIT({ + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x000800003f00000a, &upb_pss_1bt}, + {0x001800003f000012, &upb_prm_1bt_max64b}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + }) +}; + +const upb_MiniTable* cel__expr__Type__AbstractType_msg_init_ptr = &cel__expr__Type__AbstractType_msg_init; +static const upb_MiniTableSubInternal cel_expr_Decl__submsgs[2] = { + {.UPB_PRIVATE(submsg) = &cel__expr__Decl__IdentDecl_msg_init_ptr}, + {.UPB_PRIVATE(submsg) = &cel__expr__Decl__FunctionDecl_msg_init_ptr}, +}; + +static const upb_MiniTableField cel_expr_Decl__fields[3] = { + {1, 16, 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}, + {2, UPB_SIZE(12, 32), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {3, UPB_SIZE(12, 32), -9, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, +}; + +const upb_MiniTable cel__expr__Decl_msg_init = { + &cel_expr_Decl__submsgs[0], + &cel_expr_Decl__fields[0], + UPB_SIZE(24, 40), 3, kUpb_ExtMode_NonExtendable, 3, UPB_FASTTABLE_MASK(24), 0, +#ifdef UPB_TRACING_ENABLED + "cel.expr.Decl", +#endif + UPB_FASTTABLE_INIT({ + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x001000003f00000a, &upb_pss_1bt}, + {0x0020000802000012, &upb_pom_1bt_max64b}, + {0x002000080301001a, &upb_pom_1bt_max64b}, + }) +}; + +const upb_MiniTable* cel__expr__Decl_msg_init_ptr = &cel__expr__Decl_msg_init; +static const upb_MiniTableSubInternal cel_expr_Decl_IdentDecl__submsgs[2] = { + {.UPB_PRIVATE(submsg) = &cel__expr__Type_msg_init_ptr}, + {.UPB_PRIVATE(submsg) = &cel__expr__Constant_msg_init_ptr}, +}; + +static const upb_MiniTableField cel_expr_Decl_IdentDecl__fields[3] = { + {1, UPB_SIZE(12, 32), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {2, UPB_SIZE(16, 40), 65, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {3, UPB_SIZE(20, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}, +}; + +const upb_MiniTable cel__expr__Decl__IdentDecl_msg_init = { + &cel_expr_Decl_IdentDecl__submsgs[0], + &cel_expr_Decl_IdentDecl__fields[0], + UPB_SIZE(32, 48), 3, kUpb_ExtMode_NonExtendable, 3, UPB_FASTTABLE_MASK(24), 0, +#ifdef UPB_TRACING_ENABLED + "cel.expr.Decl.IdentDecl", +#endif + UPB_FASTTABLE_INIT({ + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x001000003f00001a, &upb_pss_1bt}, + }) +}; + +const upb_MiniTable* cel__expr__Decl__IdentDecl_msg_init_ptr = &cel__expr__Decl__IdentDecl_msg_init; +static const upb_MiniTableSubInternal cel_expr_Decl_FunctionDecl__submsgs[1] = { + {.UPB_PRIVATE(submsg) = &cel__expr__Decl__FunctionDecl__Overload_msg_init_ptr}, +}; + +static const upb_MiniTableField cel_expr_Decl_FunctionDecl__fields[2] = { + {1, UPB_SIZE(8, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {2, UPB_SIZE(12, 8), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}, +}; + +const upb_MiniTable cel__expr__Decl__FunctionDecl_msg_init = { + &cel_expr_Decl_FunctionDecl__submsgs[0], + &cel_expr_Decl_FunctionDecl__fields[0], + UPB_SIZE(24, 32), 2, kUpb_ExtMode_NonExtendable, 2, UPB_FASTTABLE_MASK(24), 0, +#ifdef UPB_TRACING_ENABLED + "cel.expr.Decl.FunctionDecl", +#endif + UPB_FASTTABLE_INIT({ + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x001800003f00000a, &upb_prm_1bt_max128b}, + {0x000800003f000012, &upb_pss_1bt}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + }) +}; + +const upb_MiniTable* cel__expr__Decl__FunctionDecl_msg_init_ptr = &cel__expr__Decl__FunctionDecl_msg_init; +static const upb_MiniTableSubInternal cel_expr_Decl_FunctionDecl_Overload__submsgs[2] = { + {.UPB_PRIVATE(submsg) = &cel__expr__Type_msg_init_ptr}, + {.UPB_PRIVATE(submsg) = &cel__expr__Type_msg_init_ptr}, +}; + +static const upb_MiniTableField cel_expr_Decl_FunctionDecl_Overload__fields[6] = { + {1, UPB_SIZE(24, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}, + {2, UPB_SIZE(12, 48), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {3, UPB_SIZE(16, 56), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {4, UPB_SIZE(20, 64), 64, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {5, 9, 0, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)}, + {6, 32, 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}, +}; + +const upb_MiniTable cel__expr__Decl__FunctionDecl__Overload_msg_init = { + &cel_expr_Decl_FunctionDecl_Overload__submsgs[0], + &cel_expr_Decl_FunctionDecl_Overload__fields[0], + UPB_SIZE(40, 72), 6, kUpb_ExtMode_NonExtendable, 6, UPB_FASTTABLE_MASK(56), 0, +#ifdef UPB_TRACING_ENABLED + "cel.expr.Decl.FunctionDecl.Overload", +#endif + UPB_FASTTABLE_INIT({ + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x001000003f00000a, &upb_pss_1bt}, + {0x003000003f000012, &upb_prm_1bt_max64b}, + {0x003800003f00001a, &upb_prs_1bt}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x000900003f000028, &upb_psb1_1bt}, + {0x002000003f000032, &upb_pss_1bt}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + }) +}; + +const upb_MiniTable* cel__expr__Decl__FunctionDecl__Overload_msg_init_ptr = &cel__expr__Decl__FunctionDecl__Overload_msg_init; +static const upb_MiniTableSubInternal cel_expr_Reference__submsgs[1] = { + {.UPB_PRIVATE(submsg) = &cel__expr__Constant_msg_init_ptr}, +}; + +static const upb_MiniTableField cel_expr_Reference__fields[3] = { + {1, UPB_SIZE(20, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}, + {3, UPB_SIZE(12, 32), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {4, UPB_SIZE(16, 40), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, +}; + +const upb_MiniTable cel__expr__Reference_msg_init = { + &cel_expr_Reference__submsgs[0], + &cel_expr_Reference__fields[0], + UPB_SIZE(32, 48), 3, kUpb_ExtMode_NonExtendable, 1, UPB_FASTTABLE_MASK(24), 0, +#ifdef UPB_TRACING_ENABLED + "cel.expr.Reference", +#endif + UPB_FASTTABLE_INIT({ + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x001000003f00000a, &upb_pss_1bt}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x002000003f00001a, &upb_prs_1bt}, + }) +}; + +const upb_MiniTable* cel__expr__Reference_msg_init_ptr = &cel__expr__Reference_msg_init; +static const upb_MiniTable *messages_layout[13] = { + &cel__expr__CheckedExpr_msg_init, + &cel__expr__CheckedExpr__ReferenceMapEntry_msg_init, + &cel__expr__CheckedExpr__TypeMapEntry_msg_init, + &cel__expr__Type_msg_init, + &cel__expr__Type__ListType_msg_init, + &cel__expr__Type__MapType_msg_init, + &cel__expr__Type__FunctionType_msg_init, + &cel__expr__Type__AbstractType_msg_init, + &cel__expr__Decl_msg_init, + &cel__expr__Decl__IdentDecl_msg_init, + &cel__expr__Decl__FunctionDecl_msg_init, + &cel__expr__Decl__FunctionDecl__Overload_msg_init, + &cel__expr__Reference_msg_init, +}; + +const upb_MiniTableFile cel_expr_checked_proto_upb_file_layout = { + messages_layout, + NULL, + NULL, + 13, + 0, + 0, +}; + +#include "upb/port/undef.inc" + diff --git a/src/core/ext/upb-gen/cel/expr/checked.upb_minitable.h b/src/core/ext/upb-gen/cel/expr/checked.upb_minitable.h new file mode 100644 index 0000000000000..9d5bf205af833 --- /dev/null +++ b/src/core/ext/upb-gen/cel/expr/checked.upb_minitable.h @@ -0,0 +1,56 @@ +/* This file was generated by upb_generator from the input file: + * + * cel/expr/checked.proto + * + * Do not edit -- your changes will be discarded when the file is + * regenerated. + * NO CHECKED-IN PROTOBUF GENCODE */ + +#ifndef CEL_EXPR_CHECKED_PROTO_UPB_H__UPB_MINITABLE_H_ +#define CEL_EXPR_CHECKED_PROTO_UPB_H__UPB_MINITABLE_H_ + +#include "upb/generated_code_support.h" + +// Must be last. +#include "upb/port/def.inc" + +#ifdef __cplusplus +extern "C" { +#endif + +extern const upb_MiniTable cel__expr__CheckedExpr_msg_init; +extern const upb_MiniTable* cel__expr__CheckedExpr_msg_init_ptr; +extern const upb_MiniTable cel__expr__CheckedExpr__ReferenceMapEntry_msg_init; +extern const upb_MiniTable* cel__expr__CheckedExpr__ReferenceMapEntry_msg_init_ptr; +extern const upb_MiniTable cel__expr__CheckedExpr__TypeMapEntry_msg_init; +extern const upb_MiniTable* cel__expr__CheckedExpr__TypeMapEntry_msg_init_ptr; +extern const upb_MiniTable cel__expr__Type_msg_init; +extern const upb_MiniTable* cel__expr__Type_msg_init_ptr; +extern const upb_MiniTable cel__expr__Type__ListType_msg_init; +extern const upb_MiniTable* cel__expr__Type__ListType_msg_init_ptr; +extern const upb_MiniTable cel__expr__Type__MapType_msg_init; +extern const upb_MiniTable* cel__expr__Type__MapType_msg_init_ptr; +extern const upb_MiniTable cel__expr__Type__FunctionType_msg_init; +extern const upb_MiniTable* cel__expr__Type__FunctionType_msg_init_ptr; +extern const upb_MiniTable cel__expr__Type__AbstractType_msg_init; +extern const upb_MiniTable* cel__expr__Type__AbstractType_msg_init_ptr; +extern const upb_MiniTable cel__expr__Decl_msg_init; +extern const upb_MiniTable* cel__expr__Decl_msg_init_ptr; +extern const upb_MiniTable cel__expr__Decl__IdentDecl_msg_init; +extern const upb_MiniTable* cel__expr__Decl__IdentDecl_msg_init_ptr; +extern const upb_MiniTable cel__expr__Decl__FunctionDecl_msg_init; +extern const upb_MiniTable* cel__expr__Decl__FunctionDecl_msg_init_ptr; +extern const upb_MiniTable cel__expr__Decl__FunctionDecl__Overload_msg_init; +extern const upb_MiniTable* cel__expr__Decl__FunctionDecl__Overload_msg_init_ptr; +extern const upb_MiniTable cel__expr__Reference_msg_init; +extern const upb_MiniTable* cel__expr__Reference_msg_init_ptr; + +extern const upb_MiniTableFile cel_expr_checked_proto_upb_file_layout; + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#include "upb/port/undef.inc" + +#endif /* CEL_EXPR_CHECKED_PROTO_UPB_H__UPB_MINITABLE_H_ */ diff --git a/src/core/ext/upb-gen/cel/expr/syntax.upb.h b/src/core/ext/upb-gen/cel/expr/syntax.upb.h new file mode 100644 index 0000000000000..027cd0389ccf8 --- /dev/null +++ b/src/core/ext/upb-gen/cel/expr/syntax.upb.h @@ -0,0 +1,2223 @@ +/* This file was generated by upb_generator from the input file: + * + * cel/expr/syntax.proto + * + * Do not edit -- your changes will be discarded when the file is + * regenerated. + * NO CHECKED-IN PROTOBUF GENCODE */ + +#ifndef CEL_EXPR_SYNTAX_PROTO_UPB_H__UPB_H_ +#define CEL_EXPR_SYNTAX_PROTO_UPB_H__UPB_H_ + +#include "upb/generated_code_support.h" + +#include "cel/expr/syntax.upb_minitable.h" + +#include "google/protobuf/duration.upb_minitable.h" +#include "google/protobuf/struct.upb_minitable.h" +#include "google/protobuf/timestamp.upb_minitable.h" + +// Must be last. +#include "upb/port/def.inc" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct cel_expr_ParsedExpr { upb_Message UPB_PRIVATE(base); } cel_expr_ParsedExpr; +typedef struct cel_expr_Expr { upb_Message UPB_PRIVATE(base); } cel_expr_Expr; +typedef struct cel_expr_Expr_Ident { upb_Message UPB_PRIVATE(base); } cel_expr_Expr_Ident; +typedef struct cel_expr_Expr_Select { upb_Message UPB_PRIVATE(base); } cel_expr_Expr_Select; +typedef struct cel_expr_Expr_Call { upb_Message UPB_PRIVATE(base); } cel_expr_Expr_Call; +typedef struct cel_expr_Expr_CreateList { upb_Message UPB_PRIVATE(base); } cel_expr_Expr_CreateList; +typedef struct cel_expr_Expr_CreateStruct { upb_Message UPB_PRIVATE(base); } cel_expr_Expr_CreateStruct; +typedef struct cel_expr_Expr_CreateStruct_Entry { upb_Message UPB_PRIVATE(base); } cel_expr_Expr_CreateStruct_Entry; +typedef struct cel_expr_Expr_Comprehension { upb_Message UPB_PRIVATE(base); } cel_expr_Expr_Comprehension; +typedef struct cel_expr_Constant { upb_Message UPB_PRIVATE(base); } cel_expr_Constant; +typedef struct cel_expr_SourceInfo { upb_Message UPB_PRIVATE(base); } cel_expr_SourceInfo; +typedef struct cel_expr_SourceInfo_Extension { upb_Message UPB_PRIVATE(base); } cel_expr_SourceInfo_Extension; +typedef struct cel_expr_SourceInfo_Extension_Version { upb_Message UPB_PRIVATE(base); } cel_expr_SourceInfo_Extension_Version; +struct google_protobuf_Duration; +struct google_protobuf_Timestamp; + +typedef enum { + cel_expr_SourceInfo_Extension_COMPONENT_UNSPECIFIED = 0, + cel_expr_SourceInfo_Extension_COMPONENT_PARSER = 1, + cel_expr_SourceInfo_Extension_COMPONENT_TYPE_CHECKER = 2, + cel_expr_SourceInfo_Extension_COMPONENT_RUNTIME = 3 +} cel_expr_SourceInfo_Extension_Component; + + + +/* cel.expr.ParsedExpr */ + +UPB_INLINE cel_expr_ParsedExpr* cel_expr_ParsedExpr_new(upb_Arena* arena) { + return (cel_expr_ParsedExpr*)_upb_Message_New(&cel__expr__ParsedExpr_msg_init, arena); +} +UPB_INLINE cel_expr_ParsedExpr* cel_expr_ParsedExpr_parse(const char* buf, size_t size, upb_Arena* arena) { + cel_expr_ParsedExpr* ret = cel_expr_ParsedExpr_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__ParsedExpr_msg_init, NULL, 0, arena) != + kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE cel_expr_ParsedExpr* cel_expr_ParsedExpr_parse_ex(const char* buf, size_t size, + const upb_ExtensionRegistry* extreg, + int options, upb_Arena* arena) { + cel_expr_ParsedExpr* ret = cel_expr_ParsedExpr_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__ParsedExpr_msg_init, extreg, options, + arena) != kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE char* cel_expr_ParsedExpr_serialize(const cel_expr_ParsedExpr* msg, upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__ParsedExpr_msg_init, 0, arena, &ptr, len); + return ptr; +} +UPB_INLINE char* cel_expr_ParsedExpr_serialize_ex(const cel_expr_ParsedExpr* msg, int options, + upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__ParsedExpr_msg_init, options, arena, &ptr, len); + return ptr; +} +UPB_INLINE void cel_expr_ParsedExpr_clear_expr(cel_expr_ParsedExpr* msg) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 16), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Expr* cel_expr_ParsedExpr_expr(const cel_expr_ParsedExpr* msg) { + const cel_expr_Expr* default_val = NULL; + const cel_expr_Expr* ret; + const upb_MiniTableField field = {2, UPB_SIZE(12, 16), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_ParsedExpr_has_expr(const cel_expr_ParsedExpr* msg) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 16), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_ParsedExpr_clear_source_info(cel_expr_ParsedExpr* msg) { + const upb_MiniTableField field = {3, UPB_SIZE(16, 24), 65, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_SourceInfo* cel_expr_ParsedExpr_source_info(const cel_expr_ParsedExpr* msg) { + const cel_expr_SourceInfo* default_val = NULL; + const cel_expr_SourceInfo* ret; + const upb_MiniTableField field = {3, UPB_SIZE(16, 24), 65, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_ParsedExpr_has_source_info(const cel_expr_ParsedExpr* msg) { + const upb_MiniTableField field = {3, UPB_SIZE(16, 24), 65, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} + +UPB_INLINE void cel_expr_ParsedExpr_set_expr(cel_expr_ParsedExpr *msg, cel_expr_Expr* value) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 16), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_Expr* cel_expr_ParsedExpr_mutable_expr(cel_expr_ParsedExpr* msg, upb_Arena* arena) { + struct cel_expr_Expr* sub = (struct cel_expr_Expr*)cel_expr_ParsedExpr_expr(msg); + if (sub == NULL) { + sub = (struct cel_expr_Expr*)_upb_Message_New(&cel__expr__Expr_msg_init, arena); + if (sub) cel_expr_ParsedExpr_set_expr(msg, sub); + } + return sub; +} +UPB_INLINE void cel_expr_ParsedExpr_set_source_info(cel_expr_ParsedExpr *msg, cel_expr_SourceInfo* value) { + const upb_MiniTableField field = {3, UPB_SIZE(16, 24), 65, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_SourceInfo* cel_expr_ParsedExpr_mutable_source_info(cel_expr_ParsedExpr* msg, upb_Arena* arena) { + struct cel_expr_SourceInfo* sub = (struct cel_expr_SourceInfo*)cel_expr_ParsedExpr_source_info(msg); + if (sub == NULL) { + sub = (struct cel_expr_SourceInfo*)_upb_Message_New(&cel__expr__SourceInfo_msg_init, arena); + if (sub) cel_expr_ParsedExpr_set_source_info(msg, sub); + } + return sub; +} + +/* cel.expr.Expr */ + +UPB_INLINE cel_expr_Expr* cel_expr_Expr_new(upb_Arena* arena) { + return (cel_expr_Expr*)_upb_Message_New(&cel__expr__Expr_msg_init, arena); +} +UPB_INLINE cel_expr_Expr* cel_expr_Expr_parse(const char* buf, size_t size, upb_Arena* arena) { + cel_expr_Expr* ret = cel_expr_Expr_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Expr_msg_init, NULL, 0, arena) != + kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE cel_expr_Expr* cel_expr_Expr_parse_ex(const char* buf, size_t size, + const upb_ExtensionRegistry* extreg, + int options, upb_Arena* arena) { + cel_expr_Expr* ret = cel_expr_Expr_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Expr_msg_init, extreg, options, + arena) != kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE char* cel_expr_Expr_serialize(const cel_expr_Expr* msg, upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Expr_msg_init, 0, arena, &ptr, len); + return ptr; +} +UPB_INLINE char* cel_expr_Expr_serialize_ex(const cel_expr_Expr* msg, int options, + upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Expr_msg_init, options, arena, &ptr, len); + return ptr; +} +typedef enum { + cel_expr_Expr_expr_kind_const_expr = 3, + cel_expr_Expr_expr_kind_ident_expr = 4, + cel_expr_Expr_expr_kind_select_expr = 5, + cel_expr_Expr_expr_kind_call_expr = 6, + cel_expr_Expr_expr_kind_list_expr = 7, + cel_expr_Expr_expr_kind_struct_expr = 8, + cel_expr_Expr_expr_kind_comprehension_expr = 9, + cel_expr_Expr_expr_kind_NOT_SET = 0 +} cel_expr_Expr_expr_kind_oneofcases; +UPB_INLINE cel_expr_Expr_expr_kind_oneofcases cel_expr_Expr_expr_kind_case(const cel_expr_Expr* msg) { + const upb_MiniTableField field = {3, UPB_SIZE(12, 24), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return (cel_expr_Expr_expr_kind_oneofcases)upb_Message_WhichOneofFieldNumber( + UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Expr_clear_expr_kind(cel_expr_Expr* msg) { + const upb_MiniTableField field = {3, UPB_SIZE(12, 24), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearOneof(UPB_UPCAST(msg), &cel__expr__Expr_msg_init, &field); +} +UPB_INLINE void cel_expr_Expr_clear_id(cel_expr_Expr* msg) { + const upb_MiniTableField field = {2, 16, 0, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE int64_t cel_expr_Expr_id(const cel_expr_Expr* msg) { + int64_t default_val = (int64_t)0ll; + int64_t ret; + const upb_MiniTableField field = {2, 16, 0, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE void cel_expr_Expr_clear_const_expr(cel_expr_Expr* msg) { + const upb_MiniTableField field = {3, UPB_SIZE(12, 24), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Constant* cel_expr_Expr_const_expr(const cel_expr_Expr* msg) { + const cel_expr_Constant* default_val = NULL; + const cel_expr_Constant* ret; + const upb_MiniTableField field = {3, UPB_SIZE(12, 24), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Constant_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Expr_has_const_expr(const cel_expr_Expr* msg) { + const upb_MiniTableField field = {3, UPB_SIZE(12, 24), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Expr_clear_ident_expr(cel_expr_Expr* msg) { + const upb_MiniTableField field = {4, UPB_SIZE(12, 24), -9, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Expr_Ident* cel_expr_Expr_ident_expr(const cel_expr_Expr* msg) { + const cel_expr_Expr_Ident* default_val = NULL; + const cel_expr_Expr_Ident* ret; + const upb_MiniTableField field = {4, UPB_SIZE(12, 24), -9, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__Ident_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Expr_has_ident_expr(const cel_expr_Expr* msg) { + const upb_MiniTableField field = {4, UPB_SIZE(12, 24), -9, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Expr_clear_select_expr(cel_expr_Expr* msg) { + const upb_MiniTableField field = {5, UPB_SIZE(12, 24), -9, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Expr_Select* cel_expr_Expr_select_expr(const cel_expr_Expr* msg) { + const cel_expr_Expr_Select* default_val = NULL; + const cel_expr_Expr_Select* ret; + const upb_MiniTableField field = {5, UPB_SIZE(12, 24), -9, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__Select_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Expr_has_select_expr(const cel_expr_Expr* msg) { + const upb_MiniTableField field = {5, UPB_SIZE(12, 24), -9, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Expr_clear_call_expr(cel_expr_Expr* msg) { + const upb_MiniTableField field = {6, UPB_SIZE(12, 24), -9, 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Expr_Call* cel_expr_Expr_call_expr(const cel_expr_Expr* msg) { + const cel_expr_Expr_Call* default_val = NULL; + const cel_expr_Expr_Call* ret; + const upb_MiniTableField field = {6, UPB_SIZE(12, 24), -9, 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__Call_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Expr_has_call_expr(const cel_expr_Expr* msg) { + const upb_MiniTableField field = {6, UPB_SIZE(12, 24), -9, 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Expr_clear_list_expr(cel_expr_Expr* msg) { + const upb_MiniTableField field = {7, UPB_SIZE(12, 24), -9, 4, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Expr_CreateList* cel_expr_Expr_list_expr(const cel_expr_Expr* msg) { + const cel_expr_Expr_CreateList* default_val = NULL; + const cel_expr_Expr_CreateList* ret; + const upb_MiniTableField field = {7, UPB_SIZE(12, 24), -9, 4, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__CreateList_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Expr_has_list_expr(const cel_expr_Expr* msg) { + const upb_MiniTableField field = {7, UPB_SIZE(12, 24), -9, 4, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Expr_clear_struct_expr(cel_expr_Expr* msg) { + const upb_MiniTableField field = {8, UPB_SIZE(12, 24), -9, 5, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Expr_CreateStruct* cel_expr_Expr_struct_expr(const cel_expr_Expr* msg) { + const cel_expr_Expr_CreateStruct* default_val = NULL; + const cel_expr_Expr_CreateStruct* ret; + const upb_MiniTableField field = {8, UPB_SIZE(12, 24), -9, 5, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__CreateStruct_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Expr_has_struct_expr(const cel_expr_Expr* msg) { + const upb_MiniTableField field = {8, UPB_SIZE(12, 24), -9, 5, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Expr_clear_comprehension_expr(cel_expr_Expr* msg) { + const upb_MiniTableField field = {9, UPB_SIZE(12, 24), -9, 6, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Expr_Comprehension* cel_expr_Expr_comprehension_expr(const cel_expr_Expr* msg) { + const cel_expr_Expr_Comprehension* default_val = NULL; + const cel_expr_Expr_Comprehension* ret; + const upb_MiniTableField field = {9, UPB_SIZE(12, 24), -9, 6, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__Comprehension_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Expr_has_comprehension_expr(const cel_expr_Expr* msg) { + const upb_MiniTableField field = {9, UPB_SIZE(12, 24), -9, 6, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} + +UPB_INLINE void cel_expr_Expr_set_id(cel_expr_Expr *msg, int64_t value) { + const upb_MiniTableField field = {2, 16, 0, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE void cel_expr_Expr_set_const_expr(cel_expr_Expr *msg, cel_expr_Constant* value) { + const upb_MiniTableField field = {3, UPB_SIZE(12, 24), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Constant_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_Constant* cel_expr_Expr_mutable_const_expr(cel_expr_Expr* msg, upb_Arena* arena) { + struct cel_expr_Constant* sub = (struct cel_expr_Constant*)cel_expr_Expr_const_expr(msg); + if (sub == NULL) { + sub = (struct cel_expr_Constant*)_upb_Message_New(&cel__expr__Constant_msg_init, arena); + if (sub) cel_expr_Expr_set_const_expr(msg, sub); + } + return sub; +} +UPB_INLINE void cel_expr_Expr_set_ident_expr(cel_expr_Expr *msg, cel_expr_Expr_Ident* value) { + const upb_MiniTableField field = {4, UPB_SIZE(12, 24), -9, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__Ident_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_Expr_Ident* cel_expr_Expr_mutable_ident_expr(cel_expr_Expr* msg, upb_Arena* arena) { + struct cel_expr_Expr_Ident* sub = (struct cel_expr_Expr_Ident*)cel_expr_Expr_ident_expr(msg); + if (sub == NULL) { + sub = (struct cel_expr_Expr_Ident*)_upb_Message_New(&cel__expr__Expr__Ident_msg_init, arena); + if (sub) cel_expr_Expr_set_ident_expr(msg, sub); + } + return sub; +} +UPB_INLINE void cel_expr_Expr_set_select_expr(cel_expr_Expr *msg, cel_expr_Expr_Select* value) { + const upb_MiniTableField field = {5, UPB_SIZE(12, 24), -9, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__Select_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_Expr_Select* cel_expr_Expr_mutable_select_expr(cel_expr_Expr* msg, upb_Arena* arena) { + struct cel_expr_Expr_Select* sub = (struct cel_expr_Expr_Select*)cel_expr_Expr_select_expr(msg); + if (sub == NULL) { + sub = (struct cel_expr_Expr_Select*)_upb_Message_New(&cel__expr__Expr__Select_msg_init, arena); + if (sub) cel_expr_Expr_set_select_expr(msg, sub); + } + return sub; +} +UPB_INLINE void cel_expr_Expr_set_call_expr(cel_expr_Expr *msg, cel_expr_Expr_Call* value) { + const upb_MiniTableField field = {6, UPB_SIZE(12, 24), -9, 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__Call_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_Expr_Call* cel_expr_Expr_mutable_call_expr(cel_expr_Expr* msg, upb_Arena* arena) { + struct cel_expr_Expr_Call* sub = (struct cel_expr_Expr_Call*)cel_expr_Expr_call_expr(msg); + if (sub == NULL) { + sub = (struct cel_expr_Expr_Call*)_upb_Message_New(&cel__expr__Expr__Call_msg_init, arena); + if (sub) cel_expr_Expr_set_call_expr(msg, sub); + } + return sub; +} +UPB_INLINE void cel_expr_Expr_set_list_expr(cel_expr_Expr *msg, cel_expr_Expr_CreateList* value) { + const upb_MiniTableField field = {7, UPB_SIZE(12, 24), -9, 4, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__CreateList_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_Expr_CreateList* cel_expr_Expr_mutable_list_expr(cel_expr_Expr* msg, upb_Arena* arena) { + struct cel_expr_Expr_CreateList* sub = (struct cel_expr_Expr_CreateList*)cel_expr_Expr_list_expr(msg); + if (sub == NULL) { + sub = (struct cel_expr_Expr_CreateList*)_upb_Message_New(&cel__expr__Expr__CreateList_msg_init, arena); + if (sub) cel_expr_Expr_set_list_expr(msg, sub); + } + return sub; +} +UPB_INLINE void cel_expr_Expr_set_struct_expr(cel_expr_Expr *msg, cel_expr_Expr_CreateStruct* value) { + const upb_MiniTableField field = {8, UPB_SIZE(12, 24), -9, 5, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__CreateStruct_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_Expr_CreateStruct* cel_expr_Expr_mutable_struct_expr(cel_expr_Expr* msg, upb_Arena* arena) { + struct cel_expr_Expr_CreateStruct* sub = (struct cel_expr_Expr_CreateStruct*)cel_expr_Expr_struct_expr(msg); + if (sub == NULL) { + sub = (struct cel_expr_Expr_CreateStruct*)_upb_Message_New(&cel__expr__Expr__CreateStruct_msg_init, arena); + if (sub) cel_expr_Expr_set_struct_expr(msg, sub); + } + return sub; +} +UPB_INLINE void cel_expr_Expr_set_comprehension_expr(cel_expr_Expr *msg, cel_expr_Expr_Comprehension* value) { + const upb_MiniTableField field = {9, UPB_SIZE(12, 24), -9, 6, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__Comprehension_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_Expr_Comprehension* cel_expr_Expr_mutable_comprehension_expr(cel_expr_Expr* msg, upb_Arena* arena) { + struct cel_expr_Expr_Comprehension* sub = (struct cel_expr_Expr_Comprehension*)cel_expr_Expr_comprehension_expr(msg); + if (sub == NULL) { + sub = (struct cel_expr_Expr_Comprehension*)_upb_Message_New(&cel__expr__Expr__Comprehension_msg_init, arena); + if (sub) cel_expr_Expr_set_comprehension_expr(msg, sub); + } + return sub; +} + +/* cel.expr.Expr.Ident */ + +UPB_INLINE cel_expr_Expr_Ident* cel_expr_Expr_Ident_new(upb_Arena* arena) { + return (cel_expr_Expr_Ident*)_upb_Message_New(&cel__expr__Expr__Ident_msg_init, arena); +} +UPB_INLINE cel_expr_Expr_Ident* cel_expr_Expr_Ident_parse(const char* buf, size_t size, upb_Arena* arena) { + cel_expr_Expr_Ident* ret = cel_expr_Expr_Ident_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Expr__Ident_msg_init, NULL, 0, arena) != + kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE cel_expr_Expr_Ident* cel_expr_Expr_Ident_parse_ex(const char* buf, size_t size, + const upb_ExtensionRegistry* extreg, + int options, upb_Arena* arena) { + cel_expr_Expr_Ident* ret = cel_expr_Expr_Ident_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Expr__Ident_msg_init, extreg, options, + arena) != kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE char* cel_expr_Expr_Ident_serialize(const cel_expr_Expr_Ident* msg, upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Expr__Ident_msg_init, 0, arena, &ptr, len); + return ptr; +} +UPB_INLINE char* cel_expr_Expr_Ident_serialize_ex(const cel_expr_Expr_Ident* msg, int options, + upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Expr__Ident_msg_init, options, arena, &ptr, len); + return ptr; +} +UPB_INLINE void cel_expr_Expr_Ident_clear_name(cel_expr_Expr_Ident* msg) { + const upb_MiniTableField field = {1, 8, 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE upb_StringView cel_expr_Expr_Ident_name(const cel_expr_Expr_Ident* msg) { + upb_StringView default_val = upb_StringView_FromString(""); + upb_StringView ret; + const upb_MiniTableField field = {1, 8, 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} + +UPB_INLINE void cel_expr_Expr_Ident_set_name(cel_expr_Expr_Ident *msg, upb_StringView value) { + const upb_MiniTableField field = {1, 8, 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} + +/* cel.expr.Expr.Select */ + +UPB_INLINE cel_expr_Expr_Select* cel_expr_Expr_Select_new(upb_Arena* arena) { + return (cel_expr_Expr_Select*)_upb_Message_New(&cel__expr__Expr__Select_msg_init, arena); +} +UPB_INLINE cel_expr_Expr_Select* cel_expr_Expr_Select_parse(const char* buf, size_t size, upb_Arena* arena) { + cel_expr_Expr_Select* ret = cel_expr_Expr_Select_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Expr__Select_msg_init, NULL, 0, arena) != + kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE cel_expr_Expr_Select* cel_expr_Expr_Select_parse_ex(const char* buf, size_t size, + const upb_ExtensionRegistry* extreg, + int options, upb_Arena* arena) { + cel_expr_Expr_Select* ret = cel_expr_Expr_Select_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Expr__Select_msg_init, extreg, options, + arena) != kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE char* cel_expr_Expr_Select_serialize(const cel_expr_Expr_Select* msg, upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Expr__Select_msg_init, 0, arena, &ptr, len); + return ptr; +} +UPB_INLINE char* cel_expr_Expr_Select_serialize_ex(const cel_expr_Expr_Select* msg, int options, + upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Expr__Select_msg_init, options, arena, &ptr, len); + return ptr; +} +UPB_INLINE void cel_expr_Expr_Select_clear_operand(cel_expr_Expr_Select* msg) { + const upb_MiniTableField field = {1, UPB_SIZE(12, 32), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Expr* cel_expr_Expr_Select_operand(const cel_expr_Expr_Select* msg) { + const cel_expr_Expr* default_val = NULL; + const cel_expr_Expr* ret; + const upb_MiniTableField field = {1, UPB_SIZE(12, 32), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Expr_Select_has_operand(const cel_expr_Expr_Select* msg) { + const upb_MiniTableField field = {1, UPB_SIZE(12, 32), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Expr_Select_clear_field(cel_expr_Expr_Select* msg) { + const upb_MiniTableField field = {2, 16, 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE upb_StringView cel_expr_Expr_Select_field(const cel_expr_Expr_Select* msg) { + upb_StringView default_val = upb_StringView_FromString(""); + upb_StringView ret; + const upb_MiniTableField field = {2, 16, 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE void cel_expr_Expr_Select_clear_test_only(cel_expr_Expr_Select* msg) { + const upb_MiniTableField field = {3, 9, 0, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE bool cel_expr_Expr_Select_test_only(const cel_expr_Expr_Select* msg) { + bool default_val = false; + bool ret; + const upb_MiniTableField field = {3, 9, 0, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} + +UPB_INLINE void cel_expr_Expr_Select_set_operand(cel_expr_Expr_Select *msg, cel_expr_Expr* value) { + const upb_MiniTableField field = {1, UPB_SIZE(12, 32), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_Expr* cel_expr_Expr_Select_mutable_operand(cel_expr_Expr_Select* msg, upb_Arena* arena) { + struct cel_expr_Expr* sub = (struct cel_expr_Expr*)cel_expr_Expr_Select_operand(msg); + if (sub == NULL) { + sub = (struct cel_expr_Expr*)_upb_Message_New(&cel__expr__Expr_msg_init, arena); + if (sub) cel_expr_Expr_Select_set_operand(msg, sub); + } + return sub; +} +UPB_INLINE void cel_expr_Expr_Select_set_field(cel_expr_Expr_Select *msg, upb_StringView value) { + const upb_MiniTableField field = {2, 16, 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE void cel_expr_Expr_Select_set_test_only(cel_expr_Expr_Select *msg, bool value) { + const upb_MiniTableField field = {3, 9, 0, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} + +/* cel.expr.Expr.Call */ + +UPB_INLINE cel_expr_Expr_Call* cel_expr_Expr_Call_new(upb_Arena* arena) { + return (cel_expr_Expr_Call*)_upb_Message_New(&cel__expr__Expr__Call_msg_init, arena); +} +UPB_INLINE cel_expr_Expr_Call* cel_expr_Expr_Call_parse(const char* buf, size_t size, upb_Arena* arena) { + cel_expr_Expr_Call* ret = cel_expr_Expr_Call_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Expr__Call_msg_init, NULL, 0, arena) != + kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE cel_expr_Expr_Call* cel_expr_Expr_Call_parse_ex(const char* buf, size_t size, + const upb_ExtensionRegistry* extreg, + int options, upb_Arena* arena) { + cel_expr_Expr_Call* ret = cel_expr_Expr_Call_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Expr__Call_msg_init, extreg, options, + arena) != kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE char* cel_expr_Expr_Call_serialize(const cel_expr_Expr_Call* msg, upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Expr__Call_msg_init, 0, arena, &ptr, len); + return ptr; +} +UPB_INLINE char* cel_expr_Expr_Call_serialize_ex(const cel_expr_Expr_Call* msg, int options, + upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Expr__Call_msg_init, options, arena, &ptr, len); + return ptr; +} +UPB_INLINE void cel_expr_Expr_Call_clear_target(cel_expr_Expr_Call* msg) { + const upb_MiniTableField field = {1, UPB_SIZE(12, 32), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Expr* cel_expr_Expr_Call_target(const cel_expr_Expr_Call* msg) { + const cel_expr_Expr* default_val = NULL; + const cel_expr_Expr* ret; + const upb_MiniTableField field = {1, UPB_SIZE(12, 32), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Expr_Call_has_target(const cel_expr_Expr_Call* msg) { + const upb_MiniTableField field = {1, UPB_SIZE(12, 32), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Expr_Call_clear_function(cel_expr_Expr_Call* msg) { + const upb_MiniTableField field = {2, UPB_SIZE(20, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE upb_StringView cel_expr_Expr_Call_function(const cel_expr_Expr_Call* msg) { + upb_StringView default_val = upb_StringView_FromString(""); + upb_StringView ret; + const upb_MiniTableField field = {2, UPB_SIZE(20, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE void cel_expr_Expr_Call_clear_args(cel_expr_Expr_Call* msg) { + const upb_MiniTableField field = {3, UPB_SIZE(16, 40), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Expr* const* cel_expr_Expr_Call_args(const cel_expr_Expr_Call* msg, size_t* size) { + const upb_MiniTableField field = {3, UPB_SIZE(16, 40), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field); + if (arr) { + if (size) *size = arr->UPB_PRIVATE(size); + return (const cel_expr_Expr* const*)upb_Array_DataPtr(arr); + } else { + if (size) *size = 0; + return NULL; + } +} +UPB_INLINE const upb_Array* _cel_expr_Expr_Call_args_upb_array(const cel_expr_Expr_Call* msg, size_t* size) { + const upb_MiniTableField field = {3, UPB_SIZE(16, 40), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field); + if (size) { + *size = arr ? arr->UPB_PRIVATE(size) : 0; + } + return arr; +} +UPB_INLINE upb_Array* _cel_expr_Expr_Call_args_mutable_upb_array(cel_expr_Expr_Call* msg, size_t* size, upb_Arena* arena) { + const upb_MiniTableField field = {3, UPB_SIZE(16, 40), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg), + &field, arena); + if (size) { + *size = arr ? arr->UPB_PRIVATE(size) : 0; + } + return arr; +} + +UPB_INLINE void cel_expr_Expr_Call_set_target(cel_expr_Expr_Call *msg, cel_expr_Expr* value) { + const upb_MiniTableField field = {1, UPB_SIZE(12, 32), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_Expr* cel_expr_Expr_Call_mutable_target(cel_expr_Expr_Call* msg, upb_Arena* arena) { + struct cel_expr_Expr* sub = (struct cel_expr_Expr*)cel_expr_Expr_Call_target(msg); + if (sub == NULL) { + sub = (struct cel_expr_Expr*)_upb_Message_New(&cel__expr__Expr_msg_init, arena); + if (sub) cel_expr_Expr_Call_set_target(msg, sub); + } + return sub; +} +UPB_INLINE void cel_expr_Expr_Call_set_function(cel_expr_Expr_Call *msg, upb_StringView value) { + const upb_MiniTableField field = {2, UPB_SIZE(20, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE cel_expr_Expr** cel_expr_Expr_Call_mutable_args(cel_expr_Expr_Call* msg, size_t* size) { + upb_MiniTableField field = {3, UPB_SIZE(16, 40), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field); + if (arr) { + if (size) *size = arr->UPB_PRIVATE(size); + return (cel_expr_Expr**)upb_Array_MutableDataPtr(arr); + } else { + if (size) *size = 0; + return NULL; + } +} +UPB_INLINE cel_expr_Expr** cel_expr_Expr_Call_resize_args(cel_expr_Expr_Call* msg, size_t size, upb_Arena* arena) { + upb_MiniTableField field = {3, UPB_SIZE(16, 40), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return (cel_expr_Expr**)upb_Message_ResizeArrayUninitialized(UPB_UPCAST(msg), + &field, size, arena); +} +UPB_INLINE struct cel_expr_Expr* cel_expr_Expr_Call_add_args(cel_expr_Expr_Call* msg, upb_Arena* arena) { + upb_MiniTableField field = {3, UPB_SIZE(16, 40), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + upb_Array* arr = upb_Message_GetOrCreateMutableArray( + UPB_UPCAST(msg), &field, arena); + if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)( + arr, arr->UPB_PRIVATE(size) + 1, arena)) { + return NULL; + } + struct cel_expr_Expr* sub = (struct cel_expr_Expr*)_upb_Message_New(&cel__expr__Expr_msg_init, arena); + if (!arr || !sub) return NULL; + UPB_PRIVATE(_upb_Array_Set) + (arr, arr->UPB_PRIVATE(size) - 1, &sub, sizeof(sub)); + return sub; +} + +/* cel.expr.Expr.CreateList */ + +UPB_INLINE cel_expr_Expr_CreateList* cel_expr_Expr_CreateList_new(upb_Arena* arena) { + return (cel_expr_Expr_CreateList*)_upb_Message_New(&cel__expr__Expr__CreateList_msg_init, arena); +} +UPB_INLINE cel_expr_Expr_CreateList* cel_expr_Expr_CreateList_parse(const char* buf, size_t size, upb_Arena* arena) { + cel_expr_Expr_CreateList* ret = cel_expr_Expr_CreateList_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Expr__CreateList_msg_init, NULL, 0, arena) != + kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE cel_expr_Expr_CreateList* cel_expr_Expr_CreateList_parse_ex(const char* buf, size_t size, + const upb_ExtensionRegistry* extreg, + int options, upb_Arena* arena) { + cel_expr_Expr_CreateList* ret = cel_expr_Expr_CreateList_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Expr__CreateList_msg_init, extreg, options, + arena) != kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE char* cel_expr_Expr_CreateList_serialize(const cel_expr_Expr_CreateList* msg, upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Expr__CreateList_msg_init, 0, arena, &ptr, len); + return ptr; +} +UPB_INLINE char* cel_expr_Expr_CreateList_serialize_ex(const cel_expr_Expr_CreateList* msg, int options, + upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Expr__CreateList_msg_init, options, arena, &ptr, len); + return ptr; +} +UPB_INLINE void cel_expr_Expr_CreateList_clear_elements(cel_expr_Expr_CreateList* msg) { + const upb_MiniTableField field = {1, 8, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Expr* const* cel_expr_Expr_CreateList_elements(const cel_expr_Expr_CreateList* msg, size_t* size) { + const upb_MiniTableField field = {1, 8, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field); + if (arr) { + if (size) *size = arr->UPB_PRIVATE(size); + return (const cel_expr_Expr* const*)upb_Array_DataPtr(arr); + } else { + if (size) *size = 0; + return NULL; + } +} +UPB_INLINE const upb_Array* _cel_expr_Expr_CreateList_elements_upb_array(const cel_expr_Expr_CreateList* msg, size_t* size) { + const upb_MiniTableField field = {1, 8, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field); + if (size) { + *size = arr ? arr->UPB_PRIVATE(size) : 0; + } + return arr; +} +UPB_INLINE upb_Array* _cel_expr_Expr_CreateList_elements_mutable_upb_array(cel_expr_Expr_CreateList* msg, size_t* size, upb_Arena* arena) { + const upb_MiniTableField field = {1, 8, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg), + &field, arena); + if (size) { + *size = arr ? arr->UPB_PRIVATE(size) : 0; + } + return arr; +} +UPB_INLINE void cel_expr_Expr_CreateList_clear_optional_indices(cel_expr_Expr_CreateList* msg) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 16), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE int32_t const* cel_expr_Expr_CreateList_optional_indices(const cel_expr_Expr_CreateList* msg, size_t* size) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 16), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field); + if (arr) { + if (size) *size = arr->UPB_PRIVATE(size); + return (int32_t const*)upb_Array_DataPtr(arr); + } else { + if (size) *size = 0; + return NULL; + } +} +UPB_INLINE const upb_Array* _cel_expr_Expr_CreateList_optional_indices_upb_array(const cel_expr_Expr_CreateList* msg, size_t* size) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 16), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field); + if (size) { + *size = arr ? arr->UPB_PRIVATE(size) : 0; + } + return arr; +} +UPB_INLINE upb_Array* _cel_expr_Expr_CreateList_optional_indices_mutable_upb_array(cel_expr_Expr_CreateList* msg, size_t* size, upb_Arena* arena) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 16), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg), + &field, arena); + if (size) { + *size = arr ? arr->UPB_PRIVATE(size) : 0; + } + return arr; +} + +UPB_INLINE cel_expr_Expr** cel_expr_Expr_CreateList_mutable_elements(cel_expr_Expr_CreateList* msg, size_t* size) { + upb_MiniTableField field = {1, 8, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field); + if (arr) { + if (size) *size = arr->UPB_PRIVATE(size); + return (cel_expr_Expr**)upb_Array_MutableDataPtr(arr); + } else { + if (size) *size = 0; + return NULL; + } +} +UPB_INLINE cel_expr_Expr** cel_expr_Expr_CreateList_resize_elements(cel_expr_Expr_CreateList* msg, size_t size, upb_Arena* arena) { + upb_MiniTableField field = {1, 8, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return (cel_expr_Expr**)upb_Message_ResizeArrayUninitialized(UPB_UPCAST(msg), + &field, size, arena); +} +UPB_INLINE struct cel_expr_Expr* cel_expr_Expr_CreateList_add_elements(cel_expr_Expr_CreateList* msg, upb_Arena* arena) { + upb_MiniTableField field = {1, 8, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + upb_Array* arr = upb_Message_GetOrCreateMutableArray( + UPB_UPCAST(msg), &field, arena); + if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)( + arr, arr->UPB_PRIVATE(size) + 1, arena)) { + return NULL; + } + struct cel_expr_Expr* sub = (struct cel_expr_Expr*)_upb_Message_New(&cel__expr__Expr_msg_init, arena); + if (!arr || !sub) return NULL; + UPB_PRIVATE(_upb_Array_Set) + (arr, arr->UPB_PRIVATE(size) - 1, &sub, sizeof(sub)); + return sub; +} +UPB_INLINE int32_t* cel_expr_Expr_CreateList_mutable_optional_indices(cel_expr_Expr_CreateList* msg, size_t* size) { + upb_MiniTableField field = {2, UPB_SIZE(12, 16), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field); + if (arr) { + if (size) *size = arr->UPB_PRIVATE(size); + return (int32_t*)upb_Array_MutableDataPtr(arr); + } else { + if (size) *size = 0; + return NULL; + } +} +UPB_INLINE int32_t* cel_expr_Expr_CreateList_resize_optional_indices(cel_expr_Expr_CreateList* msg, size_t size, upb_Arena* arena) { + upb_MiniTableField field = {2, UPB_SIZE(12, 16), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return (int32_t*)upb_Message_ResizeArrayUninitialized(UPB_UPCAST(msg), + &field, size, arena); +} +UPB_INLINE bool cel_expr_Expr_CreateList_add_optional_indices(cel_expr_Expr_CreateList* msg, int32_t val, upb_Arena* arena) { + upb_MiniTableField field = {2, UPB_SIZE(12, 16), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Array* arr = upb_Message_GetOrCreateMutableArray( + UPB_UPCAST(msg), &field, arena); + if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)( + arr, arr->UPB_PRIVATE(size) + 1, arena)) { + return false; + } + UPB_PRIVATE(_upb_Array_Set) + (arr, arr->UPB_PRIVATE(size) - 1, &val, sizeof(val)); + return true; +} + +/* cel.expr.Expr.CreateStruct */ + +UPB_INLINE cel_expr_Expr_CreateStruct* cel_expr_Expr_CreateStruct_new(upb_Arena* arena) { + return (cel_expr_Expr_CreateStruct*)_upb_Message_New(&cel__expr__Expr__CreateStruct_msg_init, arena); +} +UPB_INLINE cel_expr_Expr_CreateStruct* cel_expr_Expr_CreateStruct_parse(const char* buf, size_t size, upb_Arena* arena) { + cel_expr_Expr_CreateStruct* ret = cel_expr_Expr_CreateStruct_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Expr__CreateStruct_msg_init, NULL, 0, arena) != + kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE cel_expr_Expr_CreateStruct* cel_expr_Expr_CreateStruct_parse_ex(const char* buf, size_t size, + const upb_ExtensionRegistry* extreg, + int options, upb_Arena* arena) { + cel_expr_Expr_CreateStruct* ret = cel_expr_Expr_CreateStruct_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Expr__CreateStruct_msg_init, extreg, options, + arena) != kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE char* cel_expr_Expr_CreateStruct_serialize(const cel_expr_Expr_CreateStruct* msg, upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Expr__CreateStruct_msg_init, 0, arena, &ptr, len); + return ptr; +} +UPB_INLINE char* cel_expr_Expr_CreateStruct_serialize_ex(const cel_expr_Expr_CreateStruct* msg, int options, + upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Expr__CreateStruct_msg_init, options, arena, &ptr, len); + return ptr; +} +UPB_INLINE void cel_expr_Expr_CreateStruct_clear_message_name(cel_expr_Expr_CreateStruct* msg) { + const upb_MiniTableField field = {1, UPB_SIZE(12, 8), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE upb_StringView cel_expr_Expr_CreateStruct_message_name(const cel_expr_Expr_CreateStruct* msg) { + upb_StringView default_val = upb_StringView_FromString(""); + upb_StringView ret; + const upb_MiniTableField field = {1, UPB_SIZE(12, 8), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE void cel_expr_Expr_CreateStruct_clear_entries(cel_expr_Expr_CreateStruct* msg) { + const upb_MiniTableField field = {2, UPB_SIZE(8, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Expr_CreateStruct_Entry* const* cel_expr_Expr_CreateStruct_entries(const cel_expr_Expr_CreateStruct* msg, size_t* size) { + const upb_MiniTableField field = {2, UPB_SIZE(8, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__CreateStruct__Entry_msg_init); + const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field); + if (arr) { + if (size) *size = arr->UPB_PRIVATE(size); + return (const cel_expr_Expr_CreateStruct_Entry* const*)upb_Array_DataPtr(arr); + } else { + if (size) *size = 0; + return NULL; + } +} +UPB_INLINE const upb_Array* _cel_expr_Expr_CreateStruct_entries_upb_array(const cel_expr_Expr_CreateStruct* msg, size_t* size) { + const upb_MiniTableField field = {2, UPB_SIZE(8, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__CreateStruct__Entry_msg_init); + const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field); + if (size) { + *size = arr ? arr->UPB_PRIVATE(size) : 0; + } + return arr; +} +UPB_INLINE upb_Array* _cel_expr_Expr_CreateStruct_entries_mutable_upb_array(cel_expr_Expr_CreateStruct* msg, size_t* size, upb_Arena* arena) { + const upb_MiniTableField field = {2, UPB_SIZE(8, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__CreateStruct__Entry_msg_init); + upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg), + &field, arena); + if (size) { + *size = arr ? arr->UPB_PRIVATE(size) : 0; + } + return arr; +} + +UPB_INLINE void cel_expr_Expr_CreateStruct_set_message_name(cel_expr_Expr_CreateStruct *msg, upb_StringView value) { + const upb_MiniTableField field = {1, UPB_SIZE(12, 8), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE cel_expr_Expr_CreateStruct_Entry** cel_expr_Expr_CreateStruct_mutable_entries(cel_expr_Expr_CreateStruct* msg, size_t* size) { + upb_MiniTableField field = {2, UPB_SIZE(8, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__CreateStruct__Entry_msg_init); + upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field); + if (arr) { + if (size) *size = arr->UPB_PRIVATE(size); + return (cel_expr_Expr_CreateStruct_Entry**)upb_Array_MutableDataPtr(arr); + } else { + if (size) *size = 0; + return NULL; + } +} +UPB_INLINE cel_expr_Expr_CreateStruct_Entry** cel_expr_Expr_CreateStruct_resize_entries(cel_expr_Expr_CreateStruct* msg, size_t size, upb_Arena* arena) { + upb_MiniTableField field = {2, UPB_SIZE(8, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return (cel_expr_Expr_CreateStruct_Entry**)upb_Message_ResizeArrayUninitialized(UPB_UPCAST(msg), + &field, size, arena); +} +UPB_INLINE struct cel_expr_Expr_CreateStruct_Entry* cel_expr_Expr_CreateStruct_add_entries(cel_expr_Expr_CreateStruct* msg, upb_Arena* arena) { + upb_MiniTableField field = {2, UPB_SIZE(8, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__CreateStruct__Entry_msg_init); + upb_Array* arr = upb_Message_GetOrCreateMutableArray( + UPB_UPCAST(msg), &field, arena); + if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)( + arr, arr->UPB_PRIVATE(size) + 1, arena)) { + return NULL; + } + struct cel_expr_Expr_CreateStruct_Entry* sub = (struct cel_expr_Expr_CreateStruct_Entry*)_upb_Message_New(&cel__expr__Expr__CreateStruct__Entry_msg_init, arena); + if (!arr || !sub) return NULL; + UPB_PRIVATE(_upb_Array_Set) + (arr, arr->UPB_PRIVATE(size) - 1, &sub, sizeof(sub)); + return sub; +} + +/* cel.expr.Expr.CreateStruct.Entry */ + +UPB_INLINE cel_expr_Expr_CreateStruct_Entry* cel_expr_Expr_CreateStruct_Entry_new(upb_Arena* arena) { + return (cel_expr_Expr_CreateStruct_Entry*)_upb_Message_New(&cel__expr__Expr__CreateStruct__Entry_msg_init, arena); +} +UPB_INLINE cel_expr_Expr_CreateStruct_Entry* cel_expr_Expr_CreateStruct_Entry_parse(const char* buf, size_t size, upb_Arena* arena) { + cel_expr_Expr_CreateStruct_Entry* ret = cel_expr_Expr_CreateStruct_Entry_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Expr__CreateStruct__Entry_msg_init, NULL, 0, arena) != + kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE cel_expr_Expr_CreateStruct_Entry* cel_expr_Expr_CreateStruct_Entry_parse_ex(const char* buf, size_t size, + const upb_ExtensionRegistry* extreg, + int options, upb_Arena* arena) { + cel_expr_Expr_CreateStruct_Entry* ret = cel_expr_Expr_CreateStruct_Entry_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Expr__CreateStruct__Entry_msg_init, extreg, options, + arena) != kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE char* cel_expr_Expr_CreateStruct_Entry_serialize(const cel_expr_Expr_CreateStruct_Entry* msg, upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Expr__CreateStruct__Entry_msg_init, 0, arena, &ptr, len); + return ptr; +} +UPB_INLINE char* cel_expr_Expr_CreateStruct_Entry_serialize_ex(const cel_expr_Expr_CreateStruct_Entry* msg, int options, + upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Expr__CreateStruct__Entry_msg_init, options, arena, &ptr, len); + return ptr; +} +typedef enum { + cel_expr_Expr_CreateStruct_Entry_key_kind_field_key = 2, + cel_expr_Expr_CreateStruct_Entry_key_kind_map_key = 3, + cel_expr_Expr_CreateStruct_Entry_key_kind_NOT_SET = 0 +} cel_expr_Expr_CreateStruct_Entry_key_kind_oneofcases; +UPB_INLINE cel_expr_Expr_CreateStruct_Entry_key_kind_oneofcases cel_expr_Expr_CreateStruct_Entry_key_kind_case(const cel_expr_Expr_CreateStruct_Entry* msg) { + const upb_MiniTableField field = {2, UPB_SIZE(20, 16), UPB_SIZE(-17, -13), kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + return (cel_expr_Expr_CreateStruct_Entry_key_kind_oneofcases)upb_Message_WhichOneofFieldNumber( + UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Expr_CreateStruct_Entry_clear_key_kind(cel_expr_Expr_CreateStruct_Entry* msg) { + const upb_MiniTableField field = {2, UPB_SIZE(20, 16), UPB_SIZE(-17, -13), kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_ClearOneof(UPB_UPCAST(msg), &cel__expr__Expr__CreateStruct__Entry_msg_init, &field); +} +UPB_INLINE void cel_expr_Expr_CreateStruct_Entry_clear_id(cel_expr_Expr_CreateStruct_Entry* msg) { + const upb_MiniTableField field = {1, 32, 0, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE int64_t cel_expr_Expr_CreateStruct_Entry_id(const cel_expr_Expr_CreateStruct_Entry* msg) { + int64_t default_val = (int64_t)0ll; + int64_t ret; + const upb_MiniTableField field = {1, 32, 0, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE void cel_expr_Expr_CreateStruct_Entry_clear_field_key(cel_expr_Expr_CreateStruct_Entry* msg) { + const upb_MiniTableField field = {2, UPB_SIZE(20, 16), UPB_SIZE(-17, -13), kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE upb_StringView cel_expr_Expr_CreateStruct_Entry_field_key(const cel_expr_Expr_CreateStruct_Entry* msg) { + upb_StringView default_val = upb_StringView_FromString(""); + upb_StringView ret; + const upb_MiniTableField field = {2, UPB_SIZE(20, 16), UPB_SIZE(-17, -13), kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Expr_CreateStruct_Entry_has_field_key(const cel_expr_Expr_CreateStruct_Entry* msg) { + const upb_MiniTableField field = {2, UPB_SIZE(20, 16), UPB_SIZE(-17, -13), kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Expr_CreateStruct_Entry_clear_map_key(cel_expr_Expr_CreateStruct_Entry* msg) { + const upb_MiniTableField field = {3, UPB_SIZE(20, 16), UPB_SIZE(-17, -13), 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Expr* cel_expr_Expr_CreateStruct_Entry_map_key(const cel_expr_Expr_CreateStruct_Entry* msg) { + const cel_expr_Expr* default_val = NULL; + const cel_expr_Expr* ret; + const upb_MiniTableField field = {3, UPB_SIZE(20, 16), UPB_SIZE(-17, -13), 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Expr_CreateStruct_Entry_has_map_key(const cel_expr_Expr_CreateStruct_Entry* msg) { + const upb_MiniTableField field = {3, UPB_SIZE(20, 16), UPB_SIZE(-17, -13), 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Expr_CreateStruct_Entry_clear_value(cel_expr_Expr_CreateStruct_Entry* msg) { + const upb_MiniTableField field = {4, UPB_SIZE(12, 40), 64, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Expr* cel_expr_Expr_CreateStruct_Entry_value(const cel_expr_Expr_CreateStruct_Entry* msg) { + const cel_expr_Expr* default_val = NULL; + const cel_expr_Expr* ret; + const upb_MiniTableField field = {4, UPB_SIZE(12, 40), 64, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Expr_CreateStruct_Entry_has_value(const cel_expr_Expr_CreateStruct_Entry* msg) { + const upb_MiniTableField field = {4, UPB_SIZE(12, 40), 64, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Expr_CreateStruct_Entry_clear_optional_entry(cel_expr_Expr_CreateStruct_Entry* msg) { + const upb_MiniTableField field = {5, 9, 0, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE bool cel_expr_Expr_CreateStruct_Entry_optional_entry(const cel_expr_Expr_CreateStruct_Entry* msg) { + bool default_val = false; + bool ret; + const upb_MiniTableField field = {5, 9, 0, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} + +UPB_INLINE void cel_expr_Expr_CreateStruct_Entry_set_id(cel_expr_Expr_CreateStruct_Entry *msg, int64_t value) { + const upb_MiniTableField field = {1, 32, 0, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE void cel_expr_Expr_CreateStruct_Entry_set_field_key(cel_expr_Expr_CreateStruct_Entry *msg, upb_StringView value) { + const upb_MiniTableField field = {2, UPB_SIZE(20, 16), UPB_SIZE(-17, -13), kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE void cel_expr_Expr_CreateStruct_Entry_set_map_key(cel_expr_Expr_CreateStruct_Entry *msg, cel_expr_Expr* value) { + const upb_MiniTableField field = {3, UPB_SIZE(20, 16), UPB_SIZE(-17, -13), 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_Expr* cel_expr_Expr_CreateStruct_Entry_mutable_map_key(cel_expr_Expr_CreateStruct_Entry* msg, upb_Arena* arena) { + struct cel_expr_Expr* sub = (struct cel_expr_Expr*)cel_expr_Expr_CreateStruct_Entry_map_key(msg); + if (sub == NULL) { + sub = (struct cel_expr_Expr*)_upb_Message_New(&cel__expr__Expr_msg_init, arena); + if (sub) cel_expr_Expr_CreateStruct_Entry_set_map_key(msg, sub); + } + return sub; +} +UPB_INLINE void cel_expr_Expr_CreateStruct_Entry_set_value(cel_expr_Expr_CreateStruct_Entry *msg, cel_expr_Expr* value) { + const upb_MiniTableField field = {4, UPB_SIZE(12, 40), 64, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_Expr* cel_expr_Expr_CreateStruct_Entry_mutable_value(cel_expr_Expr_CreateStruct_Entry* msg, upb_Arena* arena) { + struct cel_expr_Expr* sub = (struct cel_expr_Expr*)cel_expr_Expr_CreateStruct_Entry_value(msg); + if (sub == NULL) { + sub = (struct cel_expr_Expr*)_upb_Message_New(&cel__expr__Expr_msg_init, arena); + if (sub) cel_expr_Expr_CreateStruct_Entry_set_value(msg, sub); + } + return sub; +} +UPB_INLINE void cel_expr_Expr_CreateStruct_Entry_set_optional_entry(cel_expr_Expr_CreateStruct_Entry *msg, bool value) { + const upb_MiniTableField field = {5, 9, 0, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} + +/* cel.expr.Expr.Comprehension */ + +UPB_INLINE cel_expr_Expr_Comprehension* cel_expr_Expr_Comprehension_new(upb_Arena* arena) { + return (cel_expr_Expr_Comprehension*)_upb_Message_New(&cel__expr__Expr__Comprehension_msg_init, arena); +} +UPB_INLINE cel_expr_Expr_Comprehension* cel_expr_Expr_Comprehension_parse(const char* buf, size_t size, upb_Arena* arena) { + cel_expr_Expr_Comprehension* ret = cel_expr_Expr_Comprehension_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Expr__Comprehension_msg_init, NULL, 0, arena) != + kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE cel_expr_Expr_Comprehension* cel_expr_Expr_Comprehension_parse_ex(const char* buf, size_t size, + const upb_ExtensionRegistry* extreg, + int options, upb_Arena* arena) { + cel_expr_Expr_Comprehension* ret = cel_expr_Expr_Comprehension_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Expr__Comprehension_msg_init, extreg, options, + arena) != kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE char* cel_expr_Expr_Comprehension_serialize(const cel_expr_Expr_Comprehension* msg, upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Expr__Comprehension_msg_init, 0, arena, &ptr, len); + return ptr; +} +UPB_INLINE char* cel_expr_Expr_Comprehension_serialize_ex(const cel_expr_Expr_Comprehension* msg, int options, + upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Expr__Comprehension_msg_init, options, arena, &ptr, len); + return ptr; +} +UPB_INLINE void cel_expr_Expr_Comprehension_clear_iter_var(cel_expr_Expr_Comprehension* msg) { + const upb_MiniTableField field = {1, UPB_SIZE(32, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE upb_StringView cel_expr_Expr_Comprehension_iter_var(const cel_expr_Expr_Comprehension* msg) { + upb_StringView default_val = upb_StringView_FromString(""); + upb_StringView ret; + const upb_MiniTableField field = {1, UPB_SIZE(32, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE void cel_expr_Expr_Comprehension_clear_iter_range(cel_expr_Expr_Comprehension* msg) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 64), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Expr* cel_expr_Expr_Comprehension_iter_range(const cel_expr_Expr_Comprehension* msg) { + const cel_expr_Expr* default_val = NULL; + const cel_expr_Expr* ret; + const upb_MiniTableField field = {2, UPB_SIZE(12, 64), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Expr_Comprehension_has_iter_range(const cel_expr_Expr_Comprehension* msg) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 64), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Expr_Comprehension_clear_accu_var(cel_expr_Expr_Comprehension* msg) { + const upb_MiniTableField field = {3, UPB_SIZE(40, 32), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE upb_StringView cel_expr_Expr_Comprehension_accu_var(const cel_expr_Expr_Comprehension* msg) { + upb_StringView default_val = upb_StringView_FromString(""); + upb_StringView ret; + const upb_MiniTableField field = {3, UPB_SIZE(40, 32), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE void cel_expr_Expr_Comprehension_clear_accu_init(cel_expr_Expr_Comprehension* msg) { + const upb_MiniTableField field = {4, UPB_SIZE(16, 72), 65, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Expr* cel_expr_Expr_Comprehension_accu_init(const cel_expr_Expr_Comprehension* msg) { + const cel_expr_Expr* default_val = NULL; + const cel_expr_Expr* ret; + const upb_MiniTableField field = {4, UPB_SIZE(16, 72), 65, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Expr_Comprehension_has_accu_init(const cel_expr_Expr_Comprehension* msg) { + const upb_MiniTableField field = {4, UPB_SIZE(16, 72), 65, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Expr_Comprehension_clear_loop_condition(cel_expr_Expr_Comprehension* msg) { + const upb_MiniTableField field = {5, UPB_SIZE(20, 80), 66, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Expr* cel_expr_Expr_Comprehension_loop_condition(const cel_expr_Expr_Comprehension* msg) { + const cel_expr_Expr* default_val = NULL; + const cel_expr_Expr* ret; + const upb_MiniTableField field = {5, UPB_SIZE(20, 80), 66, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Expr_Comprehension_has_loop_condition(const cel_expr_Expr_Comprehension* msg) { + const upb_MiniTableField field = {5, UPB_SIZE(20, 80), 66, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Expr_Comprehension_clear_loop_step(cel_expr_Expr_Comprehension* msg) { + const upb_MiniTableField field = {6, UPB_SIZE(24, 88), 67, 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Expr* cel_expr_Expr_Comprehension_loop_step(const cel_expr_Expr_Comprehension* msg) { + const cel_expr_Expr* default_val = NULL; + const cel_expr_Expr* ret; + const upb_MiniTableField field = {6, UPB_SIZE(24, 88), 67, 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Expr_Comprehension_has_loop_step(const cel_expr_Expr_Comprehension* msg) { + const upb_MiniTableField field = {6, UPB_SIZE(24, 88), 67, 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Expr_Comprehension_clear_result(cel_expr_Expr_Comprehension* msg) { + const upb_MiniTableField field = {7, UPB_SIZE(28, 96), 68, 4, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_Expr* cel_expr_Expr_Comprehension_result(const cel_expr_Expr_Comprehension* msg) { + const cel_expr_Expr* default_val = NULL; + const cel_expr_Expr* ret; + const upb_MiniTableField field = {7, UPB_SIZE(28, 96), 68, 4, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Expr_Comprehension_has_result(const cel_expr_Expr_Comprehension* msg) { + const upb_MiniTableField field = {7, UPB_SIZE(28, 96), 68, 4, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Expr_Comprehension_clear_iter_var2(cel_expr_Expr_Comprehension* msg) { + const upb_MiniTableField field = {8, 48, 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE upb_StringView cel_expr_Expr_Comprehension_iter_var2(const cel_expr_Expr_Comprehension* msg) { + upb_StringView default_val = upb_StringView_FromString(""); + upb_StringView ret; + const upb_MiniTableField field = {8, 48, 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} + +UPB_INLINE void cel_expr_Expr_Comprehension_set_iter_var(cel_expr_Expr_Comprehension *msg, upb_StringView value) { + const upb_MiniTableField field = {1, UPB_SIZE(32, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE void cel_expr_Expr_Comprehension_set_iter_range(cel_expr_Expr_Comprehension *msg, cel_expr_Expr* value) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 64), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_Expr* cel_expr_Expr_Comprehension_mutable_iter_range(cel_expr_Expr_Comprehension* msg, upb_Arena* arena) { + struct cel_expr_Expr* sub = (struct cel_expr_Expr*)cel_expr_Expr_Comprehension_iter_range(msg); + if (sub == NULL) { + sub = (struct cel_expr_Expr*)_upb_Message_New(&cel__expr__Expr_msg_init, arena); + if (sub) cel_expr_Expr_Comprehension_set_iter_range(msg, sub); + } + return sub; +} +UPB_INLINE void cel_expr_Expr_Comprehension_set_accu_var(cel_expr_Expr_Comprehension *msg, upb_StringView value) { + const upb_MiniTableField field = {3, UPB_SIZE(40, 32), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE void cel_expr_Expr_Comprehension_set_accu_init(cel_expr_Expr_Comprehension *msg, cel_expr_Expr* value) { + const upb_MiniTableField field = {4, UPB_SIZE(16, 72), 65, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_Expr* cel_expr_Expr_Comprehension_mutable_accu_init(cel_expr_Expr_Comprehension* msg, upb_Arena* arena) { + struct cel_expr_Expr* sub = (struct cel_expr_Expr*)cel_expr_Expr_Comprehension_accu_init(msg); + if (sub == NULL) { + sub = (struct cel_expr_Expr*)_upb_Message_New(&cel__expr__Expr_msg_init, arena); + if (sub) cel_expr_Expr_Comprehension_set_accu_init(msg, sub); + } + return sub; +} +UPB_INLINE void cel_expr_Expr_Comprehension_set_loop_condition(cel_expr_Expr_Comprehension *msg, cel_expr_Expr* value) { + const upb_MiniTableField field = {5, UPB_SIZE(20, 80), 66, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_Expr* cel_expr_Expr_Comprehension_mutable_loop_condition(cel_expr_Expr_Comprehension* msg, upb_Arena* arena) { + struct cel_expr_Expr* sub = (struct cel_expr_Expr*)cel_expr_Expr_Comprehension_loop_condition(msg); + if (sub == NULL) { + sub = (struct cel_expr_Expr*)_upb_Message_New(&cel__expr__Expr_msg_init, arena); + if (sub) cel_expr_Expr_Comprehension_set_loop_condition(msg, sub); + } + return sub; +} +UPB_INLINE void cel_expr_Expr_Comprehension_set_loop_step(cel_expr_Expr_Comprehension *msg, cel_expr_Expr* value) { + const upb_MiniTableField field = {6, UPB_SIZE(24, 88), 67, 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_Expr* cel_expr_Expr_Comprehension_mutable_loop_step(cel_expr_Expr_Comprehension* msg, upb_Arena* arena) { + struct cel_expr_Expr* sub = (struct cel_expr_Expr*)cel_expr_Expr_Comprehension_loop_step(msg); + if (sub == NULL) { + sub = (struct cel_expr_Expr*)_upb_Message_New(&cel__expr__Expr_msg_init, arena); + if (sub) cel_expr_Expr_Comprehension_set_loop_step(msg, sub); + } + return sub; +} +UPB_INLINE void cel_expr_Expr_Comprehension_set_result(cel_expr_Expr_Comprehension *msg, cel_expr_Expr* value) { + const upb_MiniTableField field = {7, UPB_SIZE(28, 96), 68, 4, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_Expr* cel_expr_Expr_Comprehension_mutable_result(cel_expr_Expr_Comprehension* msg, upb_Arena* arena) { + struct cel_expr_Expr* sub = (struct cel_expr_Expr*)cel_expr_Expr_Comprehension_result(msg); + if (sub == NULL) { + sub = (struct cel_expr_Expr*)_upb_Message_New(&cel__expr__Expr_msg_init, arena); + if (sub) cel_expr_Expr_Comprehension_set_result(msg, sub); + } + return sub; +} +UPB_INLINE void cel_expr_Expr_Comprehension_set_iter_var2(cel_expr_Expr_Comprehension *msg, upb_StringView value) { + const upb_MiniTableField field = {8, 48, 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} + +/* cel.expr.Constant */ + +UPB_INLINE cel_expr_Constant* cel_expr_Constant_new(upb_Arena* arena) { + return (cel_expr_Constant*)_upb_Message_New(&cel__expr__Constant_msg_init, arena); +} +UPB_INLINE cel_expr_Constant* cel_expr_Constant_parse(const char* buf, size_t size, upb_Arena* arena) { + cel_expr_Constant* ret = cel_expr_Constant_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Constant_msg_init, NULL, 0, arena) != + kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE cel_expr_Constant* cel_expr_Constant_parse_ex(const char* buf, size_t size, + const upb_ExtensionRegistry* extreg, + int options, upb_Arena* arena) { + cel_expr_Constant* ret = cel_expr_Constant_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Constant_msg_init, extreg, options, + arena) != kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE char* cel_expr_Constant_serialize(const cel_expr_Constant* msg, upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Constant_msg_init, 0, arena, &ptr, len); + return ptr; +} +UPB_INLINE char* cel_expr_Constant_serialize_ex(const cel_expr_Constant* msg, int options, + upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Constant_msg_init, options, arena, &ptr, len); + return ptr; +} +typedef enum { + cel_expr_Constant_constant_kind_null_value = 1, + cel_expr_Constant_constant_kind_bool_value = 2, + cel_expr_Constant_constant_kind_int64_value = 3, + cel_expr_Constant_constant_kind_uint64_value = 4, + cel_expr_Constant_constant_kind_double_value = 5, + cel_expr_Constant_constant_kind_string_value = 6, + cel_expr_Constant_constant_kind_bytes_value = 7, + cel_expr_Constant_constant_kind_duration_value = 8, + cel_expr_Constant_constant_kind_timestamp_value = 9, + cel_expr_Constant_constant_kind_NOT_SET = 0 +} cel_expr_Constant_constant_kind_oneofcases; +UPB_INLINE cel_expr_Constant_constant_kind_oneofcases cel_expr_Constant_constant_kind_case(const cel_expr_Constant* msg) { + const upb_MiniTableField field = {1, 16, -9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)}; + return (cel_expr_Constant_constant_kind_oneofcases)upb_Message_WhichOneofFieldNumber( + UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Constant_clear_constant_kind(cel_expr_Constant* msg) { + const upb_MiniTableField field = {1, 16, -9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)}; + upb_Message_ClearOneof(UPB_UPCAST(msg), &cel__expr__Constant_msg_init, &field); +} +UPB_INLINE void cel_expr_Constant_clear_null_value(cel_expr_Constant* msg) { + const upb_MiniTableField field = {1, 16, -9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE int32_t cel_expr_Constant_null_value(const cel_expr_Constant* msg) { + int32_t default_val = 0; + int32_t ret; + const upb_MiniTableField field = {1, 16, -9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Constant_has_null_value(const cel_expr_Constant* msg) { + const upb_MiniTableField field = {1, 16, -9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Constant_clear_bool_value(cel_expr_Constant* msg) { + const upb_MiniTableField field = {2, 16, -9, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE bool cel_expr_Constant_bool_value(const cel_expr_Constant* msg) { + bool default_val = false; + bool ret; + const upb_MiniTableField field = {2, 16, -9, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Constant_has_bool_value(const cel_expr_Constant* msg) { + const upb_MiniTableField field = {2, 16, -9, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Constant_clear_int64_value(cel_expr_Constant* msg) { + const upb_MiniTableField field = {3, 16, -9, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE int64_t cel_expr_Constant_int64_value(const cel_expr_Constant* msg) { + int64_t default_val = (int64_t)0ll; + int64_t ret; + const upb_MiniTableField field = {3, 16, -9, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Constant_has_int64_value(const cel_expr_Constant* msg) { + const upb_MiniTableField field = {3, 16, -9, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Constant_clear_uint64_value(cel_expr_Constant* msg) { + const upb_MiniTableField field = {4, 16, -9, kUpb_NoSub, 4, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE uint64_t cel_expr_Constant_uint64_value(const cel_expr_Constant* msg) { + uint64_t default_val = (uint64_t)0ull; + uint64_t ret; + const upb_MiniTableField field = {4, 16, -9, kUpb_NoSub, 4, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Constant_has_uint64_value(const cel_expr_Constant* msg) { + const upb_MiniTableField field = {4, 16, -9, kUpb_NoSub, 4, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Constant_clear_double_value(cel_expr_Constant* msg) { + const upb_MiniTableField field = {5, 16, -9, kUpb_NoSub, 1, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE double cel_expr_Constant_double_value(const cel_expr_Constant* msg) { + double default_val = 0; + double ret; + const upb_MiniTableField field = {5, 16, -9, kUpb_NoSub, 1, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Constant_has_double_value(const cel_expr_Constant* msg) { + const upb_MiniTableField field = {5, 16, -9, kUpb_NoSub, 1, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Constant_clear_string_value(cel_expr_Constant* msg) { + const upb_MiniTableField field = {6, 16, -9, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE upb_StringView cel_expr_Constant_string_value(const cel_expr_Constant* msg) { + upb_StringView default_val = upb_StringView_FromString(""); + upb_StringView ret; + const upb_MiniTableField field = {6, 16, -9, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Constant_has_string_value(const cel_expr_Constant* msg) { + const upb_MiniTableField field = {6, 16, -9, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Constant_clear_bytes_value(cel_expr_Constant* msg) { + const upb_MiniTableField field = {7, 16, -9, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE upb_StringView cel_expr_Constant_bytes_value(const cel_expr_Constant* msg) { + upb_StringView default_val = upb_StringView_FromString(""); + upb_StringView ret; + const upb_MiniTableField field = {7, 16, -9, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Constant_has_bytes_value(const cel_expr_Constant* msg) { + const upb_MiniTableField field = {7, 16, -9, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Constant_clear_duration_value(cel_expr_Constant* msg) { + const upb_MiniTableField field = {8, 16, -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const struct google_protobuf_Duration* cel_expr_Constant_duration_value(const cel_expr_Constant* msg) { + const struct google_protobuf_Duration* default_val = NULL; + const struct google_protobuf_Duration* ret; + const upb_MiniTableField field = {8, 16, -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__Duration_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Constant_has_duration_value(const cel_expr_Constant* msg) { + const upb_MiniTableField field = {8, 16, -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void cel_expr_Constant_clear_timestamp_value(cel_expr_Constant* msg) { + const upb_MiniTableField field = {9, 16, -9, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const struct google_protobuf_Timestamp* cel_expr_Constant_timestamp_value(const cel_expr_Constant* msg) { + const struct google_protobuf_Timestamp* default_val = NULL; + const struct google_protobuf_Timestamp* ret; + const upb_MiniTableField field = {9, 16, -9, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__Timestamp_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_Constant_has_timestamp_value(const cel_expr_Constant* msg) { + const upb_MiniTableField field = {9, 16, -9, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} + +UPB_INLINE void cel_expr_Constant_set_null_value(cel_expr_Constant *msg, int32_t value) { + const upb_MiniTableField field = {1, 16, -9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE void cel_expr_Constant_set_bool_value(cel_expr_Constant *msg, bool value) { + const upb_MiniTableField field = {2, 16, -9, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE void cel_expr_Constant_set_int64_value(cel_expr_Constant *msg, int64_t value) { + const upb_MiniTableField field = {3, 16, -9, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE void cel_expr_Constant_set_uint64_value(cel_expr_Constant *msg, uint64_t value) { + const upb_MiniTableField field = {4, 16, -9, kUpb_NoSub, 4, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE void cel_expr_Constant_set_double_value(cel_expr_Constant *msg, double value) { + const upb_MiniTableField field = {5, 16, -9, kUpb_NoSub, 1, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE void cel_expr_Constant_set_string_value(cel_expr_Constant *msg, upb_StringView value) { + const upb_MiniTableField field = {6, 16, -9, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE void cel_expr_Constant_set_bytes_value(cel_expr_Constant *msg, upb_StringView value) { + const upb_MiniTableField field = {7, 16, -9, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE void cel_expr_Constant_set_duration_value(cel_expr_Constant *msg, struct google_protobuf_Duration* value) { + const upb_MiniTableField field = {8, 16, -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__Duration_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct google_protobuf_Duration* cel_expr_Constant_mutable_duration_value(cel_expr_Constant* msg, upb_Arena* arena) { + struct google_protobuf_Duration* sub = (struct google_protobuf_Duration*)cel_expr_Constant_duration_value(msg); + if (sub == NULL) { + sub = (struct google_protobuf_Duration*)_upb_Message_New(&google__protobuf__Duration_msg_init, arena); + if (sub) cel_expr_Constant_set_duration_value(msg, sub); + } + return sub; +} +UPB_INLINE void cel_expr_Constant_set_timestamp_value(cel_expr_Constant *msg, struct google_protobuf_Timestamp* value) { + const upb_MiniTableField field = {9, 16, -9, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__Timestamp_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct google_protobuf_Timestamp* cel_expr_Constant_mutable_timestamp_value(cel_expr_Constant* msg, upb_Arena* arena) { + struct google_protobuf_Timestamp* sub = (struct google_protobuf_Timestamp*)cel_expr_Constant_timestamp_value(msg); + if (sub == NULL) { + sub = (struct google_protobuf_Timestamp*)_upb_Message_New(&google__protobuf__Timestamp_msg_init, arena); + if (sub) cel_expr_Constant_set_timestamp_value(msg, sub); + } + return sub; +} + +/* cel.expr.SourceInfo */ + +UPB_INLINE cel_expr_SourceInfo* cel_expr_SourceInfo_new(upb_Arena* arena) { + return (cel_expr_SourceInfo*)_upb_Message_New(&cel__expr__SourceInfo_msg_init, arena); +} +UPB_INLINE cel_expr_SourceInfo* cel_expr_SourceInfo_parse(const char* buf, size_t size, upb_Arena* arena) { + cel_expr_SourceInfo* ret = cel_expr_SourceInfo_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__SourceInfo_msg_init, NULL, 0, arena) != + kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE cel_expr_SourceInfo* cel_expr_SourceInfo_parse_ex(const char* buf, size_t size, + const upb_ExtensionRegistry* extreg, + int options, upb_Arena* arena) { + cel_expr_SourceInfo* ret = cel_expr_SourceInfo_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__SourceInfo_msg_init, extreg, options, + arena) != kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE char* cel_expr_SourceInfo_serialize(const cel_expr_SourceInfo* msg, upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__SourceInfo_msg_init, 0, arena, &ptr, len); + return ptr; +} +UPB_INLINE char* cel_expr_SourceInfo_serialize_ex(const cel_expr_SourceInfo* msg, int options, + upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__SourceInfo_msg_init, options, arena, &ptr, len); + return ptr; +} +UPB_INLINE void cel_expr_SourceInfo_clear_syntax_version(cel_expr_SourceInfo* msg) { + const upb_MiniTableField field = {1, UPB_SIZE(24, 8), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE upb_StringView cel_expr_SourceInfo_syntax_version(const cel_expr_SourceInfo* msg) { + upb_StringView default_val = upb_StringView_FromString(""); + upb_StringView ret; + const upb_MiniTableField field = {1, UPB_SIZE(24, 8), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE void cel_expr_SourceInfo_clear_location(cel_expr_SourceInfo* msg) { + const upb_MiniTableField field = {2, UPB_SIZE(32, 24), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE upb_StringView cel_expr_SourceInfo_location(const cel_expr_SourceInfo* msg) { + upb_StringView default_val = upb_StringView_FromString(""); + upb_StringView ret; + const upb_MiniTableField field = {2, UPB_SIZE(32, 24), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE void cel_expr_SourceInfo_clear_line_offsets(cel_expr_SourceInfo* msg) { + const upb_MiniTableField field = {3, UPB_SIZE(8, 40), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE int32_t const* cel_expr_SourceInfo_line_offsets(const cel_expr_SourceInfo* msg, size_t* size) { + const upb_MiniTableField field = {3, UPB_SIZE(8, 40), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field); + if (arr) { + if (size) *size = arr->UPB_PRIVATE(size); + return (int32_t const*)upb_Array_DataPtr(arr); + } else { + if (size) *size = 0; + return NULL; + } +} +UPB_INLINE const upb_Array* _cel_expr_SourceInfo_line_offsets_upb_array(const cel_expr_SourceInfo* msg, size_t* size) { + const upb_MiniTableField field = {3, UPB_SIZE(8, 40), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field); + if (size) { + *size = arr ? arr->UPB_PRIVATE(size) : 0; + } + return arr; +} +UPB_INLINE upb_Array* _cel_expr_SourceInfo_line_offsets_mutable_upb_array(cel_expr_SourceInfo* msg, size_t* size, upb_Arena* arena) { + const upb_MiniTableField field = {3, UPB_SIZE(8, 40), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg), + &field, arena); + if (size) { + *size = arr ? arr->UPB_PRIVATE(size) : 0; + } + return arr; +} +UPB_INLINE void cel_expr_SourceInfo_clear_positions(cel_expr_SourceInfo* msg) { + const upb_MiniTableField field = {4, UPB_SIZE(12, 48), 0, 0, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE size_t cel_expr_SourceInfo_positions_size(const cel_expr_SourceInfo* msg) { + const upb_MiniTableField field = {4, UPB_SIZE(12, 48), 0, 0, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_Map* map = upb_Message_GetMap(UPB_UPCAST(msg), &field); + return map ? _upb_Map_Size(map) : 0; +} +UPB_INLINE bool cel_expr_SourceInfo_positions_get(const cel_expr_SourceInfo* msg, int64_t key, int32_t* val) { + const upb_MiniTableField field = {4, UPB_SIZE(12, 48), 0, 0, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__PositionsEntry_msg_init); + const upb_Map* map = upb_Message_GetMap(UPB_UPCAST(msg), &field); + if (!map) return false; + return _upb_Map_Get(map, &key, sizeof(key), val, sizeof(*val)); +} +UPB_INLINE bool cel_expr_SourceInfo_positions_next(const cel_expr_SourceInfo* msg, int64_t* key, int32_t* val, + size_t* iter) { + const upb_MiniTableField field = {4, UPB_SIZE(12, 48), 0, 0, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__PositionsEntry_msg_init); + const upb_Map* map = upb_Message_GetMap(UPB_UPCAST(msg), &field); + if (!map) return false; + upb_MessageValue k; + upb_MessageValue v; + if (!upb_Map_Next(map, &k, &v, iter)) return false; + memcpy(key, &k, sizeof(*key)); + memcpy(val, &v, sizeof(*val)); + return true; +} +UPB_INLINE const upb_Map* _cel_expr_SourceInfo_positions_upb_map(cel_expr_SourceInfo* msg) { + const upb_MiniTableField field = {4, UPB_SIZE(12, 48), 0, 0, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__PositionsEntry_msg_init); + return upb_Message_GetMap(UPB_UPCAST(msg), &field); +} +UPB_INLINE upb_Map* _cel_expr_SourceInfo_positions_mutable_upb_map(cel_expr_SourceInfo* msg, upb_Arena* a) { + const upb_MiniTableField field = {4, UPB_SIZE(12, 48), 0, 0, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__PositionsEntry_msg_init); + return _upb_Message_GetOrCreateMutableMap(UPB_UPCAST(msg), &field, sizeof(int64_t), sizeof(int32_t), a); +} +UPB_INLINE void cel_expr_SourceInfo_clear_macro_calls(cel_expr_SourceInfo* msg) { + const upb_MiniTableField field = {5, UPB_SIZE(16, 56), 0, 1, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE size_t cel_expr_SourceInfo_macro_calls_size(const cel_expr_SourceInfo* msg) { + const upb_MiniTableField field = {5, UPB_SIZE(16, 56), 0, 1, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_Map* map = upb_Message_GetMap(UPB_UPCAST(msg), &field); + return map ? _upb_Map_Size(map) : 0; +} +UPB_INLINE bool cel_expr_SourceInfo_macro_calls_get(const cel_expr_SourceInfo* msg, int64_t key, cel_expr_Expr** val) { + const upb_MiniTableField field = {5, UPB_SIZE(16, 56), 0, 1, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__MacroCallsEntry_msg_init); + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + const upb_Map* map = upb_Message_GetMap(UPB_UPCAST(msg), &field); + if (!map) return false; + return _upb_Map_Get(map, &key, sizeof(key), val, sizeof(*val)); +} +UPB_INLINE bool cel_expr_SourceInfo_macro_calls_next(const cel_expr_SourceInfo* msg, int64_t* key, const cel_expr_Expr** val, + size_t* iter) { + const upb_MiniTableField field = {5, UPB_SIZE(16, 56), 0, 1, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__MacroCallsEntry_msg_init); + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + const upb_Map* map = upb_Message_GetMap(UPB_UPCAST(msg), &field); + if (!map) return false; + upb_MessageValue k; + upb_MessageValue v; + if (!upb_Map_Next(map, &k, &v, iter)) return false; + memcpy(key, &k, sizeof(*key)); + memcpy(val, &v, sizeof(*val)); + return true; +} +UPB_INLINE const upb_Map* _cel_expr_SourceInfo_macro_calls_upb_map(cel_expr_SourceInfo* msg) { + const upb_MiniTableField field = {5, UPB_SIZE(16, 56), 0, 1, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__MacroCallsEntry_msg_init); + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + return upb_Message_GetMap(UPB_UPCAST(msg), &field); +} +UPB_INLINE upb_Map* _cel_expr_SourceInfo_macro_calls_mutable_upb_map(cel_expr_SourceInfo* msg, upb_Arena* a) { + const upb_MiniTableField field = {5, UPB_SIZE(16, 56), 0, 1, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__MacroCallsEntry_msg_init); + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + return _upb_Message_GetOrCreateMutableMap(UPB_UPCAST(msg), &field, sizeof(int64_t), sizeof(cel_expr_Expr*), a); +} +UPB_INLINE void cel_expr_SourceInfo_clear_extensions(cel_expr_SourceInfo* msg) { + const upb_MiniTableField field = {6, UPB_SIZE(20, 64), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_SourceInfo_Extension* const* cel_expr_SourceInfo_extensions(const cel_expr_SourceInfo* msg, size_t* size) { + const upb_MiniTableField field = {6, UPB_SIZE(20, 64), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__Extension_msg_init); + const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field); + if (arr) { + if (size) *size = arr->UPB_PRIVATE(size); + return (const cel_expr_SourceInfo_Extension* const*)upb_Array_DataPtr(arr); + } else { + if (size) *size = 0; + return NULL; + } +} +UPB_INLINE const upb_Array* _cel_expr_SourceInfo_extensions_upb_array(const cel_expr_SourceInfo* msg, size_t* size) { + const upb_MiniTableField field = {6, UPB_SIZE(20, 64), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__Extension_msg_init); + const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field); + if (size) { + *size = arr ? arr->UPB_PRIVATE(size) : 0; + } + return arr; +} +UPB_INLINE upb_Array* _cel_expr_SourceInfo_extensions_mutable_upb_array(cel_expr_SourceInfo* msg, size_t* size, upb_Arena* arena) { + const upb_MiniTableField field = {6, UPB_SIZE(20, 64), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__Extension_msg_init); + upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg), + &field, arena); + if (size) { + *size = arr ? arr->UPB_PRIVATE(size) : 0; + } + return arr; +} + +UPB_INLINE void cel_expr_SourceInfo_set_syntax_version(cel_expr_SourceInfo *msg, upb_StringView value) { + const upb_MiniTableField field = {1, UPB_SIZE(24, 8), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE void cel_expr_SourceInfo_set_location(cel_expr_SourceInfo *msg, upb_StringView value) { + const upb_MiniTableField field = {2, UPB_SIZE(32, 24), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE int32_t* cel_expr_SourceInfo_mutable_line_offsets(cel_expr_SourceInfo* msg, size_t* size) { + upb_MiniTableField field = {3, UPB_SIZE(8, 40), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field); + if (arr) { + if (size) *size = arr->UPB_PRIVATE(size); + return (int32_t*)upb_Array_MutableDataPtr(arr); + } else { + if (size) *size = 0; + return NULL; + } +} +UPB_INLINE int32_t* cel_expr_SourceInfo_resize_line_offsets(cel_expr_SourceInfo* msg, size_t size, upb_Arena* arena) { + upb_MiniTableField field = {3, UPB_SIZE(8, 40), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return (int32_t*)upb_Message_ResizeArrayUninitialized(UPB_UPCAST(msg), + &field, size, arena); +} +UPB_INLINE bool cel_expr_SourceInfo_add_line_offsets(cel_expr_SourceInfo* msg, int32_t val, upb_Arena* arena) { + upb_MiniTableField field = {3, UPB_SIZE(8, 40), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Array* arr = upb_Message_GetOrCreateMutableArray( + UPB_UPCAST(msg), &field, arena); + if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)( + arr, arr->UPB_PRIVATE(size) + 1, arena)) { + return false; + } + UPB_PRIVATE(_upb_Array_Set) + (arr, arr->UPB_PRIVATE(size) - 1, &val, sizeof(val)); + return true; +} +UPB_INLINE void cel_expr_SourceInfo_positions_clear(cel_expr_SourceInfo* msg) { + const upb_MiniTableField field = {4, UPB_SIZE(12, 48), 0, 0, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Map* map = (upb_Map*)upb_Message_GetMap(UPB_UPCAST(msg), &field); + if (!map) return; + _upb_Map_Clear(map); +} +UPB_INLINE bool cel_expr_SourceInfo_positions_set(cel_expr_SourceInfo* msg, int64_t key, int32_t val, upb_Arena* a) { + const upb_MiniTableField field = {4, UPB_SIZE(12, 48), 0, 0, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__PositionsEntry_msg_init); + upb_Map* map = _upb_Message_GetOrCreateMutableMap(UPB_UPCAST(msg), + &field, sizeof(key), sizeof(val), a); + return _upb_Map_Insert(map, &key, sizeof(key), &val, sizeof(val), a) != + kUpb_MapInsertStatus_OutOfMemory; +} +UPB_INLINE bool cel_expr_SourceInfo_positions_delete(cel_expr_SourceInfo* msg, int64_t key) { + const upb_MiniTableField field = {4, UPB_SIZE(12, 48), 0, 0, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Map* map = (upb_Map*)upb_Message_GetMap(UPB_UPCAST(msg), &field); + if (!map) return false; + return _upb_Map_Delete(map, &key, sizeof(key), NULL); +} +UPB_INLINE void cel_expr_SourceInfo_macro_calls_clear(cel_expr_SourceInfo* msg) { + const upb_MiniTableField field = {5, UPB_SIZE(16, 56), 0, 1, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Map* map = (upb_Map*)upb_Message_GetMap(UPB_UPCAST(msg), &field); + if (!map) return; + _upb_Map_Clear(map); +} +UPB_INLINE bool cel_expr_SourceInfo_macro_calls_set(cel_expr_SourceInfo* msg, int64_t key, cel_expr_Expr* val, upb_Arena* a) { + const upb_MiniTableField field = {5, UPB_SIZE(16, 56), 0, 1, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__MacroCallsEntry_msg_init); + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init); + upb_Map* map = _upb_Message_GetOrCreateMutableMap(UPB_UPCAST(msg), + &field, sizeof(key), sizeof(val), a); + return _upb_Map_Insert(map, &key, sizeof(key), &val, sizeof(val), a) != + kUpb_MapInsertStatus_OutOfMemory; +} +UPB_INLINE bool cel_expr_SourceInfo_macro_calls_delete(cel_expr_SourceInfo* msg, int64_t key) { + const upb_MiniTableField field = {5, UPB_SIZE(16, 56), 0, 1, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Map* map = (upb_Map*)upb_Message_GetMap(UPB_UPCAST(msg), &field); + if (!map) return false; + return _upb_Map_Delete(map, &key, sizeof(key), NULL); +} +UPB_INLINE cel_expr_SourceInfo_Extension** cel_expr_SourceInfo_mutable_extensions(cel_expr_SourceInfo* msg, size_t* size) { + upb_MiniTableField field = {6, UPB_SIZE(20, 64), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__Extension_msg_init); + upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field); + if (arr) { + if (size) *size = arr->UPB_PRIVATE(size); + return (cel_expr_SourceInfo_Extension**)upb_Array_MutableDataPtr(arr); + } else { + if (size) *size = 0; + return NULL; + } +} +UPB_INLINE cel_expr_SourceInfo_Extension** cel_expr_SourceInfo_resize_extensions(cel_expr_SourceInfo* msg, size_t size, upb_Arena* arena) { + upb_MiniTableField field = {6, UPB_SIZE(20, 64), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return (cel_expr_SourceInfo_Extension**)upb_Message_ResizeArrayUninitialized(UPB_UPCAST(msg), + &field, size, arena); +} +UPB_INLINE struct cel_expr_SourceInfo_Extension* cel_expr_SourceInfo_add_extensions(cel_expr_SourceInfo* msg, upb_Arena* arena) { + upb_MiniTableField field = {6, UPB_SIZE(20, 64), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__Extension_msg_init); + upb_Array* arr = upb_Message_GetOrCreateMutableArray( + UPB_UPCAST(msg), &field, arena); + if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)( + arr, arr->UPB_PRIVATE(size) + 1, arena)) { + return NULL; + } + struct cel_expr_SourceInfo_Extension* sub = (struct cel_expr_SourceInfo_Extension*)_upb_Message_New(&cel__expr__SourceInfo__Extension_msg_init, arena); + if (!arr || !sub) return NULL; + UPB_PRIVATE(_upb_Array_Set) + (arr, arr->UPB_PRIVATE(size) - 1, &sub, sizeof(sub)); + return sub; +} + +/* cel.expr.SourceInfo.Extension */ + +UPB_INLINE cel_expr_SourceInfo_Extension* cel_expr_SourceInfo_Extension_new(upb_Arena* arena) { + return (cel_expr_SourceInfo_Extension*)_upb_Message_New(&cel__expr__SourceInfo__Extension_msg_init, arena); +} +UPB_INLINE cel_expr_SourceInfo_Extension* cel_expr_SourceInfo_Extension_parse(const char* buf, size_t size, upb_Arena* arena) { + cel_expr_SourceInfo_Extension* ret = cel_expr_SourceInfo_Extension_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__SourceInfo__Extension_msg_init, NULL, 0, arena) != + kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE cel_expr_SourceInfo_Extension* cel_expr_SourceInfo_Extension_parse_ex(const char* buf, size_t size, + const upb_ExtensionRegistry* extreg, + int options, upb_Arena* arena) { + cel_expr_SourceInfo_Extension* ret = cel_expr_SourceInfo_Extension_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__SourceInfo__Extension_msg_init, extreg, options, + arena) != kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE char* cel_expr_SourceInfo_Extension_serialize(const cel_expr_SourceInfo_Extension* msg, upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__SourceInfo__Extension_msg_init, 0, arena, &ptr, len); + return ptr; +} +UPB_INLINE char* cel_expr_SourceInfo_Extension_serialize_ex(const cel_expr_SourceInfo_Extension* msg, int options, + upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__SourceInfo__Extension_msg_init, options, arena, &ptr, len); + return ptr; +} +UPB_INLINE void cel_expr_SourceInfo_Extension_clear_id(cel_expr_SourceInfo_Extension* msg) { + const upb_MiniTableField field = {1, UPB_SIZE(20, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE upb_StringView cel_expr_SourceInfo_Extension_id(const cel_expr_SourceInfo_Extension* msg) { + upb_StringView default_val = upb_StringView_FromString(""); + upb_StringView ret; + const upb_MiniTableField field = {1, UPB_SIZE(20, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE void cel_expr_SourceInfo_Extension_clear_affected_components(cel_expr_SourceInfo_Extension* msg) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE int32_t const* cel_expr_SourceInfo_Extension_affected_components(const cel_expr_SourceInfo_Extension* msg, size_t* size) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field); + if (arr) { + if (size) *size = arr->UPB_PRIVATE(size); + return (int32_t const*)upb_Array_DataPtr(arr); + } else { + if (size) *size = 0; + return NULL; + } +} +UPB_INLINE const upb_Array* _cel_expr_SourceInfo_Extension_affected_components_upb_array(const cel_expr_SourceInfo_Extension* msg, size_t* size) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field); + if (size) { + *size = arr ? arr->UPB_PRIVATE(size) : 0; + } + return arr; +} +UPB_INLINE upb_Array* _cel_expr_SourceInfo_Extension_affected_components_mutable_upb_array(cel_expr_SourceInfo_Extension* msg, size_t* size, upb_Arena* arena) { + const upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg), + &field, arena); + if (size) { + *size = arr ? arr->UPB_PRIVATE(size) : 0; + } + return arr; +} +UPB_INLINE void cel_expr_SourceInfo_Extension_clear_version(cel_expr_SourceInfo_Extension* msg) { + const upb_MiniTableField field = {3, UPB_SIZE(16, 40), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const cel_expr_SourceInfo_Extension_Version* cel_expr_SourceInfo_Extension_version(const cel_expr_SourceInfo_Extension* msg) { + const cel_expr_SourceInfo_Extension_Version* default_val = NULL; + const cel_expr_SourceInfo_Extension_Version* ret; + const upb_MiniTableField field = {3, UPB_SIZE(16, 40), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__Extension__Version_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool cel_expr_SourceInfo_Extension_has_version(const cel_expr_SourceInfo_Extension* msg) { + const upb_MiniTableField field = {3, UPB_SIZE(16, 40), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} + +UPB_INLINE void cel_expr_SourceInfo_Extension_set_id(cel_expr_SourceInfo_Extension *msg, upb_StringView value) { + const upb_MiniTableField field = {1, UPB_SIZE(20, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE int32_t* cel_expr_SourceInfo_Extension_mutable_affected_components(cel_expr_SourceInfo_Extension* msg, size_t* size) { + upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field); + if (arr) { + if (size) *size = arr->UPB_PRIVATE(size); + return (int32_t*)upb_Array_MutableDataPtr(arr); + } else { + if (size) *size = 0; + return NULL; + } +} +UPB_INLINE int32_t* cel_expr_SourceInfo_Extension_resize_affected_components(cel_expr_SourceInfo_Extension* msg, size_t size, upb_Arena* arena) { + upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return (int32_t*)upb_Message_ResizeArrayUninitialized(UPB_UPCAST(msg), + &field, size, arena); +} +UPB_INLINE bool cel_expr_SourceInfo_Extension_add_affected_components(cel_expr_SourceInfo_Extension* msg, int32_t val, upb_Arena* arena) { + upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Array* arr = upb_Message_GetOrCreateMutableArray( + UPB_UPCAST(msg), &field, arena); + if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)( + arr, arr->UPB_PRIVATE(size) + 1, arena)) { + return false; + } + UPB_PRIVATE(_upb_Array_Set) + (arr, arr->UPB_PRIVATE(size) - 1, &val, sizeof(val)); + return true; +} +UPB_INLINE void cel_expr_SourceInfo_Extension_set_version(cel_expr_SourceInfo_Extension *msg, cel_expr_SourceInfo_Extension_Version* value) { + const upb_MiniTableField field = {3, UPB_SIZE(16, 40), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__Extension__Version_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_SourceInfo_Extension_Version* cel_expr_SourceInfo_Extension_mutable_version(cel_expr_SourceInfo_Extension* msg, upb_Arena* arena) { + struct cel_expr_SourceInfo_Extension_Version* sub = (struct cel_expr_SourceInfo_Extension_Version*)cel_expr_SourceInfo_Extension_version(msg); + if (sub == NULL) { + sub = (struct cel_expr_SourceInfo_Extension_Version*)_upb_Message_New(&cel__expr__SourceInfo__Extension__Version_msg_init, arena); + if (sub) cel_expr_SourceInfo_Extension_set_version(msg, sub); + } + return sub; +} + +/* cel.expr.SourceInfo.Extension.Version */ + +UPB_INLINE cel_expr_SourceInfo_Extension_Version* cel_expr_SourceInfo_Extension_Version_new(upb_Arena* arena) { + return (cel_expr_SourceInfo_Extension_Version*)_upb_Message_New(&cel__expr__SourceInfo__Extension__Version_msg_init, arena); +} +UPB_INLINE cel_expr_SourceInfo_Extension_Version* cel_expr_SourceInfo_Extension_Version_parse(const char* buf, size_t size, upb_Arena* arena) { + cel_expr_SourceInfo_Extension_Version* ret = cel_expr_SourceInfo_Extension_Version_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__SourceInfo__Extension__Version_msg_init, NULL, 0, arena) != + kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE cel_expr_SourceInfo_Extension_Version* cel_expr_SourceInfo_Extension_Version_parse_ex(const char* buf, size_t size, + const upb_ExtensionRegistry* extreg, + int options, upb_Arena* arena) { + cel_expr_SourceInfo_Extension_Version* ret = cel_expr_SourceInfo_Extension_Version_new(arena); + if (!ret) return NULL; + if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__SourceInfo__Extension__Version_msg_init, extreg, options, + arena) != kUpb_DecodeStatus_Ok) { + return NULL; + } + return ret; +} +UPB_INLINE char* cel_expr_SourceInfo_Extension_Version_serialize(const cel_expr_SourceInfo_Extension_Version* msg, upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__SourceInfo__Extension__Version_msg_init, 0, arena, &ptr, len); + return ptr; +} +UPB_INLINE char* cel_expr_SourceInfo_Extension_Version_serialize_ex(const cel_expr_SourceInfo_Extension_Version* msg, int options, + upb_Arena* arena, size_t* len) { + char* ptr; + (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__SourceInfo__Extension__Version_msg_init, options, arena, &ptr, len); + return ptr; +} +UPB_INLINE void cel_expr_SourceInfo_Extension_Version_clear_major(cel_expr_SourceInfo_Extension_Version* msg) { + const upb_MiniTableField field = {1, 8, 0, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE int64_t cel_expr_SourceInfo_Extension_Version_major(const cel_expr_SourceInfo_Extension_Version* msg) { + int64_t default_val = (int64_t)0ll; + int64_t ret; + const upb_MiniTableField field = {1, 8, 0, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE void cel_expr_SourceInfo_Extension_Version_clear_minor(cel_expr_SourceInfo_Extension_Version* msg) { + const upb_MiniTableField field = {2, 16, 0, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE int64_t cel_expr_SourceInfo_Extension_Version_minor(const cel_expr_SourceInfo_Extension_Version* msg) { + int64_t default_val = (int64_t)0ll; + int64_t ret; + const upb_MiniTableField field = {2, 16, 0, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} + +UPB_INLINE void cel_expr_SourceInfo_Extension_Version_set_major(cel_expr_SourceInfo_Extension_Version *msg, int64_t value) { + const upb_MiniTableField field = {1, 8, 0, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE void cel_expr_SourceInfo_Extension_Version_set_minor(cel_expr_SourceInfo_Extension_Version *msg, int64_t value) { + const upb_MiniTableField field = {2, 16, 0, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#include "upb/port/undef.inc" + +#endif /* CEL_EXPR_SYNTAX_PROTO_UPB_H__UPB_H_ */ diff --git a/src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.c b/src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.c new file mode 100644 index 0000000000000..0977be53c366d --- /dev/null +++ b/src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.c @@ -0,0 +1,489 @@ +/* This file was generated by upb_generator from the input file: + * + * cel/expr/syntax.proto + * + * Do not edit -- your changes will be discarded when the file is + * regenerated. + * NO CHECKED-IN PROTOBUF GENCODE */ + +#include +#include "upb/generated_code_support.h" +#include "cel/expr/syntax.upb_minitable.h" +#include "google/protobuf/duration.upb_minitable.h" +#include "google/protobuf/struct.upb_minitable.h" +#include "google/protobuf/timestamp.upb_minitable.h" + +// Must be last. +#include "upb/port/def.inc" + +extern const struct upb_MiniTable UPB_PRIVATE(_kUpb_MiniTable_StaticallyTreeShaken); +static const upb_MiniTableSubInternal cel_expr_ParsedExpr__submsgs[2] = { + {.UPB_PRIVATE(submsg) = &cel__expr__Expr_msg_init_ptr}, + {.UPB_PRIVATE(submsg) = &cel__expr__SourceInfo_msg_init_ptr}, +}; + +static const upb_MiniTableField cel_expr_ParsedExpr__fields[2] = { + {2, UPB_SIZE(12, 16), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {3, UPB_SIZE(16, 24), 65, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, +}; + +const upb_MiniTable cel__expr__ParsedExpr_msg_init = { + &cel_expr_ParsedExpr__submsgs[0], + &cel_expr_ParsedExpr__fields[0], + UPB_SIZE(24, 32), 2, kUpb_ExtMode_NonExtendable, 0, UPB_FASTTABLE_MASK(255), 0, +#ifdef UPB_TRACING_ENABLED + "cel.expr.ParsedExpr", +#endif +}; + +const upb_MiniTable* cel__expr__ParsedExpr_msg_init_ptr = &cel__expr__ParsedExpr_msg_init; +static const upb_MiniTableSubInternal cel_expr_Expr__submsgs[7] = { + {.UPB_PRIVATE(submsg) = &cel__expr__Constant_msg_init_ptr}, + {.UPB_PRIVATE(submsg) = &cel__expr__Expr__Ident_msg_init_ptr}, + {.UPB_PRIVATE(submsg) = &cel__expr__Expr__Select_msg_init_ptr}, + {.UPB_PRIVATE(submsg) = &cel__expr__Expr__Call_msg_init_ptr}, + {.UPB_PRIVATE(submsg) = &cel__expr__Expr__CreateList_msg_init_ptr}, + {.UPB_PRIVATE(submsg) = &cel__expr__Expr__CreateStruct_msg_init_ptr}, + {.UPB_PRIVATE(submsg) = &cel__expr__Expr__Comprehension_msg_init_ptr}, +}; + +static const upb_MiniTableField cel_expr_Expr__fields[8] = { + {2, 16, 0, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}, + {3, UPB_SIZE(12, 24), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {4, UPB_SIZE(12, 24), -9, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {5, UPB_SIZE(12, 24), -9, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {6, UPB_SIZE(12, 24), -9, 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {7, UPB_SIZE(12, 24), -9, 4, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {8, UPB_SIZE(12, 24), -9, 5, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {9, UPB_SIZE(12, 24), -9, 6, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, +}; + +const upb_MiniTable cel__expr__Expr_msg_init = { + &cel_expr_Expr__submsgs[0], + &cel_expr_Expr__fields[0], + UPB_SIZE(24, 32), 8, kUpb_ExtMode_NonExtendable, 0, UPB_FASTTABLE_MASK(120), 0, +#ifdef UPB_TRACING_ENABLED + "cel.expr.Expr", +#endif + UPB_FASTTABLE_INIT({ + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x001000003f000010, &upb_psv8_1bt}, + {0x001800080300001a, &upb_pom_1bt_max64b}, + {0x0018000804010022, &upb_pom_1bt_max64b}, + {0x001800080502002a, &upb_pom_1bt_max64b}, + {0x0018000806030032, &upb_pom_1bt_max64b}, + {0x001800080704003a, &upb_pom_1bt_max64b}, + {0x0018000808050042, &upb_pom_1bt_max64b}, + {0x001800080906004a, &upb_pom_1bt_max128b}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + }) +}; + +const upb_MiniTable* cel__expr__Expr_msg_init_ptr = &cel__expr__Expr_msg_init; +static const upb_MiniTableField cel_expr_Expr_Ident__fields[1] = { + {1, 8, 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}, +}; + +const upb_MiniTable cel__expr__Expr__Ident_msg_init = { + NULL, + &cel_expr_Expr_Ident__fields[0], + UPB_SIZE(16, 24), 1, kUpb_ExtMode_NonExtendable, 1, UPB_FASTTABLE_MASK(8), 0, +#ifdef UPB_TRACING_ENABLED + "cel.expr.Expr.Ident", +#endif + UPB_FASTTABLE_INIT({ + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x000800003f00000a, &upb_pss_1bt}, + }) +}; + +const upb_MiniTable* cel__expr__Expr__Ident_msg_init_ptr = &cel__expr__Expr__Ident_msg_init; +static const upb_MiniTableSubInternal cel_expr_Expr_Select__submsgs[1] = { + {.UPB_PRIVATE(submsg) = &cel__expr__Expr_msg_init_ptr}, +}; + +static const upb_MiniTableField cel_expr_Expr_Select__fields[3] = { + {1, UPB_SIZE(12, 32), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {2, 16, 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}, + {3, 9, 0, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)}, +}; + +const upb_MiniTable cel__expr__Expr__Select_msg_init = { + &cel_expr_Expr_Select__submsgs[0], + &cel_expr_Expr_Select__fields[0], + UPB_SIZE(24, 40), 3, kUpb_ExtMode_NonExtendable, 3, UPB_FASTTABLE_MASK(24), 0, +#ifdef UPB_TRACING_ENABLED + "cel.expr.Expr.Select", +#endif + UPB_FASTTABLE_INIT({ + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x001000003f000012, &upb_pss_1bt}, + {0x000900003f000018, &upb_psb1_1bt}, + }) +}; + +const upb_MiniTable* cel__expr__Expr__Select_msg_init_ptr = &cel__expr__Expr__Select_msg_init; +static const upb_MiniTableSubInternal cel_expr_Expr_Call__submsgs[2] = { + {.UPB_PRIVATE(submsg) = &cel__expr__Expr_msg_init_ptr}, + {.UPB_PRIVATE(submsg) = &cel__expr__Expr_msg_init_ptr}, +}; + +static const upb_MiniTableField cel_expr_Expr_Call__fields[3] = { + {1, UPB_SIZE(12, 32), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {2, UPB_SIZE(20, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}, + {3, UPB_SIZE(16, 40), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, +}; + +const upb_MiniTable cel__expr__Expr__Call_msg_init = { + &cel_expr_Expr_Call__submsgs[0], + &cel_expr_Expr_Call__fields[0], + UPB_SIZE(32, 48), 3, kUpb_ExtMode_NonExtendable, 3, UPB_FASTTABLE_MASK(24), 0, +#ifdef UPB_TRACING_ENABLED + "cel.expr.Expr.Call", +#endif + UPB_FASTTABLE_INIT({ + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x001000003f000012, &upb_pss_1bt}, + {0x002800003f01001a, &upb_prm_1bt_max64b}, + }) +}; + +const upb_MiniTable* cel__expr__Expr__Call_msg_init_ptr = &cel__expr__Expr__Call_msg_init; +static const upb_MiniTableSubInternal cel_expr_Expr_CreateList__submsgs[1] = { + {.UPB_PRIVATE(submsg) = &cel__expr__Expr_msg_init_ptr}, +}; + +static const upb_MiniTableField cel_expr_Expr_CreateList__fields[2] = { + {1, 8, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {2, UPB_SIZE(12, 16), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, +}; + +const upb_MiniTable cel__expr__Expr__CreateList_msg_init = { + &cel_expr_Expr_CreateList__submsgs[0], + &cel_expr_Expr_CreateList__fields[0], + UPB_SIZE(16, 24), 2, kUpb_ExtMode_NonExtendable, 2, UPB_FASTTABLE_MASK(24), 0, +#ifdef UPB_TRACING_ENABLED + "cel.expr.Expr.CreateList", +#endif + UPB_FASTTABLE_INIT({ + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x000800003f00000a, &upb_prm_1bt_max64b}, + {0x001000003f000012, &upb_ppv4_1bt}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + }) +}; + +const upb_MiniTable* cel__expr__Expr__CreateList_msg_init_ptr = &cel__expr__Expr__CreateList_msg_init; +static const upb_MiniTableSubInternal cel_expr_Expr_CreateStruct__submsgs[1] = { + {.UPB_PRIVATE(submsg) = &cel__expr__Expr__CreateStruct__Entry_msg_init_ptr}, +}; + +static const upb_MiniTableField cel_expr_Expr_CreateStruct__fields[2] = { + {1, UPB_SIZE(12, 8), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}, + {2, UPB_SIZE(8, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, +}; + +const upb_MiniTable cel__expr__Expr__CreateStruct_msg_init = { + &cel_expr_Expr_CreateStruct__submsgs[0], + &cel_expr_Expr_CreateStruct__fields[0], + UPB_SIZE(24, 32), 2, kUpb_ExtMode_NonExtendable, 2, UPB_FASTTABLE_MASK(24), 0, +#ifdef UPB_TRACING_ENABLED + "cel.expr.Expr.CreateStruct", +#endif + UPB_FASTTABLE_INIT({ + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x000800003f00000a, &upb_pss_1bt}, + {0x001800003f000012, &upb_prm_1bt_max64b}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + }) +}; + +const upb_MiniTable* cel__expr__Expr__CreateStruct_msg_init_ptr = &cel__expr__Expr__CreateStruct_msg_init; +static const upb_MiniTableSubInternal cel_expr_Expr_CreateStruct_Entry__submsgs[2] = { + {.UPB_PRIVATE(submsg) = &cel__expr__Expr_msg_init_ptr}, + {.UPB_PRIVATE(submsg) = &cel__expr__Expr_msg_init_ptr}, +}; + +static const upb_MiniTableField cel_expr_Expr_CreateStruct_Entry__fields[5] = { + {1, 32, 0, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}, + {2, UPB_SIZE(20, 16), UPB_SIZE(-17, -13), kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}, + {3, UPB_SIZE(20, 16), UPB_SIZE(-17, -13), 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {4, UPB_SIZE(12, 40), 64, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {5, 9, 0, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)}, +}; + +const upb_MiniTable cel__expr__Expr__CreateStruct__Entry_msg_init = { + &cel_expr_Expr_CreateStruct_Entry__submsgs[0], + &cel_expr_Expr_CreateStruct_Entry__fields[0], + UPB_SIZE(40, 48), 5, kUpb_ExtMode_NonExtendable, 5, UPB_FASTTABLE_MASK(56), 0, +#ifdef UPB_TRACING_ENABLED + "cel.expr.Expr.CreateStruct.Entry", +#endif + UPB_FASTTABLE_INIT({ + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x002000003f000008, &upb_psv8_1bt}, + {0x0010000c02000012, &upb_pos_1bt}, + {0x0010000c0300001a, &upb_pom_1bt_max64b}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x000900003f000028, &upb_psb1_1bt}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + }) +}; + +const upb_MiniTable* cel__expr__Expr__CreateStruct__Entry_msg_init_ptr = &cel__expr__Expr__CreateStruct__Entry_msg_init; +static const upb_MiniTableSubInternal cel_expr_Expr_Comprehension__submsgs[5] = { + {.UPB_PRIVATE(submsg) = &cel__expr__Expr_msg_init_ptr}, + {.UPB_PRIVATE(submsg) = &cel__expr__Expr_msg_init_ptr}, + {.UPB_PRIVATE(submsg) = &cel__expr__Expr_msg_init_ptr}, + {.UPB_PRIVATE(submsg) = &cel__expr__Expr_msg_init_ptr}, + {.UPB_PRIVATE(submsg) = &cel__expr__Expr_msg_init_ptr}, +}; + +static const upb_MiniTableField cel_expr_Expr_Comprehension__fields[8] = { + {1, UPB_SIZE(32, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}, + {2, UPB_SIZE(12, 64), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {3, UPB_SIZE(40, 32), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}, + {4, UPB_SIZE(16, 72), 65, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {5, UPB_SIZE(20, 80), 66, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {6, UPB_SIZE(24, 88), 67, 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {7, UPB_SIZE(28, 96), 68, 4, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {8, 48, 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}, +}; + +const upb_MiniTable cel__expr__Expr__Comprehension_msg_init = { + &cel_expr_Expr_Comprehension__submsgs[0], + &cel_expr_Expr_Comprehension__fields[0], + UPB_SIZE(56, 104), 8, kUpb_ExtMode_NonExtendable, 8, UPB_FASTTABLE_MASK(120), 0, +#ifdef UPB_TRACING_ENABLED + "cel.expr.Expr.Comprehension", +#endif + UPB_FASTTABLE_INIT({ + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x001000003f00000a, &upb_pss_1bt}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x002000003f00001a, &upb_pss_1bt}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x003000003f000042, &upb_pss_1bt}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + }) +}; + +const upb_MiniTable* cel__expr__Expr__Comprehension_msg_init_ptr = &cel__expr__Expr__Comprehension_msg_init; +static const upb_MiniTableSubInternal cel_expr_Constant__submsgs[2] = { + {.UPB_PRIVATE(submsg) = &google__protobuf__Duration_msg_init_ptr}, + {.UPB_PRIVATE(submsg) = &google__protobuf__Timestamp_msg_init_ptr}, +}; + +static const upb_MiniTableField cel_expr_Constant__fields[9] = { + {1, 16, -9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)}, + {2, 16, -9, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)}, + {3, 16, -9, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}, + {4, 16, -9, kUpb_NoSub, 4, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}, + {5, 16, -9, kUpb_NoSub, 1, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}, + {6, 16, -9, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}, + {7, 16, -9, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}, + {8, 16, -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {9, 16, -9, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, +}; + +const upb_MiniTable cel__expr__Constant_msg_init = { + &cel_expr_Constant__submsgs[0], + &cel_expr_Constant__fields[0], + UPB_SIZE(24, 32), 9, kUpb_ExtMode_NonExtendable, 9, UPB_FASTTABLE_MASK(120), 0, +#ifdef UPB_TRACING_ENABLED + "cel.expr.Constant", +#endif + UPB_FASTTABLE_INIT({ + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0010000801000008, &upb_pov4_1bt}, + {0x0010000802000010, &upb_pob1_1bt}, + {0x0010000803000018, &upb_pov8_1bt}, + {0x0010000804000020, &upb_pov8_1bt}, + {0x0010000805000029, &upb_pof8_1bt}, + {0x0010000806000032, &upb_pos_1bt}, + {0x001000080700003a, &upb_pob_1bt}, + {0x0010000808000042, &upb_pom_1bt_maxmaxb}, + {0x001000080901004a, &upb_pom_1bt_maxmaxb}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + }) +}; + +const upb_MiniTable* cel__expr__Constant_msg_init_ptr = &cel__expr__Constant_msg_init; +static const upb_MiniTableSubInternal cel_expr_SourceInfo__submsgs[3] = { + {.UPB_PRIVATE(submsg) = &cel__expr__SourceInfo__PositionsEntry_msg_init_ptr}, + {.UPB_PRIVATE(submsg) = &cel__expr__SourceInfo__MacroCallsEntry_msg_init_ptr}, + {.UPB_PRIVATE(submsg) = &cel__expr__SourceInfo__Extension_msg_init_ptr}, +}; + +static const upb_MiniTableField cel_expr_SourceInfo__fields[6] = { + {1, UPB_SIZE(24, 8), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}, + {2, UPB_SIZE(32, 24), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}, + {3, UPB_SIZE(8, 40), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {4, UPB_SIZE(12, 48), 0, 0, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {5, UPB_SIZE(16, 56), 0, 1, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {6, UPB_SIZE(20, 64), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, +}; + +const upb_MiniTable cel__expr__SourceInfo_msg_init = { + &cel_expr_SourceInfo__submsgs[0], + &cel_expr_SourceInfo__fields[0], + UPB_SIZE(40, 72), 6, kUpb_ExtMode_NonExtendable, 6, UPB_FASTTABLE_MASK(56), 0, +#ifdef UPB_TRACING_ENABLED + "cel.expr.SourceInfo", +#endif + UPB_FASTTABLE_INIT({ + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x000800003f00000a, &upb_pss_1bt}, + {0x001800003f000012, &upb_pss_1bt}, + {0x002800003f00001a, &upb_ppv4_1bt}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x004000003f020032, &upb_prm_1bt_max64b}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + }) +}; + +const upb_MiniTable* cel__expr__SourceInfo_msg_init_ptr = &cel__expr__SourceInfo_msg_init; +static const upb_MiniTableField cel_expr_SourceInfo_PositionsEntry__fields[2] = { + {1, 16, 0, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}, + {2, 32, 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)}, +}; + +const upb_MiniTable cel__expr__SourceInfo__PositionsEntry_msg_init = { + NULL, + &cel_expr_SourceInfo_PositionsEntry__fields[0], + 48, 2, kUpb_ExtMode_NonExtendable, 2, UPB_FASTTABLE_MASK(24), 0, +#ifdef UPB_TRACING_ENABLED + "cel.expr.SourceInfo.PositionsEntry", +#endif + UPB_FASTTABLE_INIT({ + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x001000003f000008, &upb_psv8_1bt}, + {0x002000003f000010, &upb_psv4_1bt}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + }) +}; + +const upb_MiniTable* cel__expr__SourceInfo__PositionsEntry_msg_init_ptr = &cel__expr__SourceInfo__PositionsEntry_msg_init; +static const upb_MiniTableSubInternal cel_expr_SourceInfo_MacroCallsEntry__submsgs[1] = { + {.UPB_PRIVATE(submsg) = &cel__expr__Expr_msg_init_ptr}, +}; + +static const upb_MiniTableField cel_expr_SourceInfo_MacroCallsEntry__fields[2] = { + {1, 16, 0, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}, + {2, 32, 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, +}; + +const upb_MiniTable cel__expr__SourceInfo__MacroCallsEntry_msg_init = { + &cel_expr_SourceInfo_MacroCallsEntry__submsgs[0], + &cel_expr_SourceInfo_MacroCallsEntry__fields[0], + 48, 2, kUpb_ExtMode_NonExtendable, 2, UPB_FASTTABLE_MASK(8), 0, +#ifdef UPB_TRACING_ENABLED + "cel.expr.SourceInfo.MacroCallsEntry", +#endif + UPB_FASTTABLE_INIT({ + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x001000003f000008, &upb_psv8_1bt}, + }) +}; + +const upb_MiniTable* cel__expr__SourceInfo__MacroCallsEntry_msg_init_ptr = &cel__expr__SourceInfo__MacroCallsEntry_msg_init; +static const upb_MiniTableSubInternal cel_expr_SourceInfo_Extension__submsgs[1] = { + {.UPB_PRIVATE(submsg) = &cel__expr__SourceInfo__Extension__Version_msg_init_ptr}, +}; + +static const upb_MiniTableField cel_expr_SourceInfo_Extension__fields[3] = { + {1, UPB_SIZE(20, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}, + {2, UPB_SIZE(12, 32), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {3, UPB_SIZE(16, 40), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, +}; + +const upb_MiniTable cel__expr__SourceInfo__Extension_msg_init = { + &cel_expr_SourceInfo_Extension__submsgs[0], + &cel_expr_SourceInfo_Extension__fields[0], + UPB_SIZE(32, 48), 3, kUpb_ExtMode_NonExtendable, 3, UPB_FASTTABLE_MASK(24), 0, +#ifdef UPB_TRACING_ENABLED + "cel.expr.SourceInfo.Extension", +#endif + UPB_FASTTABLE_INIT({ + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x001000003f00000a, &upb_pss_1bt}, + {0x002000003f000012, &upb_ppv4_1bt}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + }) +}; + +const upb_MiniTable* cel__expr__SourceInfo__Extension_msg_init_ptr = &cel__expr__SourceInfo__Extension_msg_init; +static const upb_MiniTableField cel_expr_SourceInfo_Extension_Version__fields[2] = { + {1, 8, 0, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}, + {2, 16, 0, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)}, +}; + +const upb_MiniTable cel__expr__SourceInfo__Extension__Version_msg_init = { + NULL, + &cel_expr_SourceInfo_Extension_Version__fields[0], + 24, 2, kUpb_ExtMode_NonExtendable, 2, UPB_FASTTABLE_MASK(24), 0, +#ifdef UPB_TRACING_ENABLED + "cel.expr.SourceInfo.Extension.Version", +#endif + UPB_FASTTABLE_INIT({ + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x000800003f000008, &upb_psv8_1bt}, + {0x001000003f000010, &upb_psv8_1bt}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + }) +}; + +const upb_MiniTable* cel__expr__SourceInfo__Extension__Version_msg_init_ptr = &cel__expr__SourceInfo__Extension__Version_msg_init; +static const upb_MiniTable *messages_layout[15] = { + &cel__expr__ParsedExpr_msg_init, + &cel__expr__Expr_msg_init, + &cel__expr__Expr__Ident_msg_init, + &cel__expr__Expr__Select_msg_init, + &cel__expr__Expr__Call_msg_init, + &cel__expr__Expr__CreateList_msg_init, + &cel__expr__Expr__CreateStruct_msg_init, + &cel__expr__Expr__CreateStruct__Entry_msg_init, + &cel__expr__Expr__Comprehension_msg_init, + &cel__expr__Constant_msg_init, + &cel__expr__SourceInfo_msg_init, + &cel__expr__SourceInfo__PositionsEntry_msg_init, + &cel__expr__SourceInfo__MacroCallsEntry_msg_init, + &cel__expr__SourceInfo__Extension_msg_init, + &cel__expr__SourceInfo__Extension__Version_msg_init, +}; + +const upb_MiniTableFile cel_expr_syntax_proto_upb_file_layout = { + messages_layout, + NULL, + NULL, + 15, + 0, + 0, +}; + +#include "upb/port/undef.inc" + diff --git a/src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.h b/src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.h new file mode 100644 index 0000000000000..c1718f9108cdd --- /dev/null +++ b/src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.h @@ -0,0 +1,60 @@ +/* This file was generated by upb_generator from the input file: + * + * cel/expr/syntax.proto + * + * Do not edit -- your changes will be discarded when the file is + * regenerated. + * NO CHECKED-IN PROTOBUF GENCODE */ + +#ifndef CEL_EXPR_SYNTAX_PROTO_UPB_H__UPB_MINITABLE_H_ +#define CEL_EXPR_SYNTAX_PROTO_UPB_H__UPB_MINITABLE_H_ + +#include "upb/generated_code_support.h" + +// Must be last. +#include "upb/port/def.inc" + +#ifdef __cplusplus +extern "C" { +#endif + +extern const upb_MiniTable cel__expr__ParsedExpr_msg_init; +extern const upb_MiniTable* cel__expr__ParsedExpr_msg_init_ptr; +extern const upb_MiniTable cel__expr__Expr_msg_init; +extern const upb_MiniTable* cel__expr__Expr_msg_init_ptr; +extern const upb_MiniTable cel__expr__Expr__Ident_msg_init; +extern const upb_MiniTable* cel__expr__Expr__Ident_msg_init_ptr; +extern const upb_MiniTable cel__expr__Expr__Select_msg_init; +extern const upb_MiniTable* cel__expr__Expr__Select_msg_init_ptr; +extern const upb_MiniTable cel__expr__Expr__Call_msg_init; +extern const upb_MiniTable* cel__expr__Expr__Call_msg_init_ptr; +extern const upb_MiniTable cel__expr__Expr__CreateList_msg_init; +extern const upb_MiniTable* cel__expr__Expr__CreateList_msg_init_ptr; +extern const upb_MiniTable cel__expr__Expr__CreateStruct_msg_init; +extern const upb_MiniTable* cel__expr__Expr__CreateStruct_msg_init_ptr; +extern const upb_MiniTable cel__expr__Expr__CreateStruct__Entry_msg_init; +extern const upb_MiniTable* cel__expr__Expr__CreateStruct__Entry_msg_init_ptr; +extern const upb_MiniTable cel__expr__Expr__Comprehension_msg_init; +extern const upb_MiniTable* cel__expr__Expr__Comprehension_msg_init_ptr; +extern const upb_MiniTable cel__expr__Constant_msg_init; +extern const upb_MiniTable* cel__expr__Constant_msg_init_ptr; +extern const upb_MiniTable cel__expr__SourceInfo_msg_init; +extern const upb_MiniTable* cel__expr__SourceInfo_msg_init_ptr; +extern const upb_MiniTable cel__expr__SourceInfo__PositionsEntry_msg_init; +extern const upb_MiniTable* cel__expr__SourceInfo__PositionsEntry_msg_init_ptr; +extern const upb_MiniTable cel__expr__SourceInfo__MacroCallsEntry_msg_init; +extern const upb_MiniTable* cel__expr__SourceInfo__MacroCallsEntry_msg_init_ptr; +extern const upb_MiniTable cel__expr__SourceInfo__Extension_msg_init; +extern const upb_MiniTable* cel__expr__SourceInfo__Extension_msg_init_ptr; +extern const upb_MiniTable cel__expr__SourceInfo__Extension__Version_msg_init; +extern const upb_MiniTable* cel__expr__SourceInfo__Extension__Version_msg_init_ptr; + +extern const upb_MiniTableFile cel_expr_syntax_proto_upb_file_layout; + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#include "upb/port/undef.inc" + +#endif /* CEL_EXPR_SYNTAX_PROTO_UPB_H__UPB_MINITABLE_H_ */ diff --git a/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb.h b/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb.h index f985f4b93bd73..c00c8c296d5bf 100644 --- a/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb.h +++ b/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb.h @@ -13,7 +13,6 @@ #include "xds/type/matcher/v3/cel.upb_minitable.h" -#include "xds/annotations/v3/status.upb_minitable.h" #include "xds/type/v3/cel.upb_minitable.h" #include "validate/validate.upb_minitable.h" diff --git a/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c b/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c index 1876ca4ea03f5..a552290a60d64 100644 --- a/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c +++ b/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c @@ -9,7 +9,6 @@ #include #include "upb/generated_code_support.h" #include "xds/type/matcher/v3/cel.upb_minitable.h" -#include "xds/annotations/v3/status.upb_minitable.h" #include "xds/type/v3/cel.upb_minitable.h" #include "validate/validate.upb_minitable.h" diff --git a/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb.h b/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb.h index 261e81a0ba41a..49687269e5cb2 100644 --- a/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb.h +++ b/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb.h @@ -13,7 +13,6 @@ #include "xds/type/matcher/v3/http_inputs.upb_minitable.h" -#include "xds/annotations/v3/status.upb_minitable.h" // Must be last. #include "upb/port/def.inc" diff --git a/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.c b/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.c index d7e8bf32e56e9..a6bcef5dbe457 100644 --- a/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.c +++ b/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.c @@ -9,7 +9,6 @@ #include #include "upb/generated_code_support.h" #include "xds/type/matcher/v3/http_inputs.upb_minitable.h" -#include "xds/annotations/v3/status.upb_minitable.h" // Must be last. #include "upb/port/def.inc" diff --git a/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb.h b/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb.h index 0b55ba2b5a55b..7ab77827b86fc 100644 --- a/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb.h +++ b/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb.h @@ -13,7 +13,6 @@ #include "xds/type/matcher/v3/matcher.upb_minitable.h" -#include "xds/annotations/v3/status.upb_minitable.h" #include "xds/core/v3/extension.upb_minitable.h" #include "xds/type/matcher/v3/string.upb_minitable.h" #include "validate/validate.upb_minitable.h" @@ -223,51 +222,63 @@ typedef enum { xds_type_matcher_v3_Matcher_OnMatch_on_match_NOT_SET = 0 } xds_type_matcher_v3_Matcher_OnMatch_on_match_oneofcases; UPB_INLINE xds_type_matcher_v3_Matcher_OnMatch_on_match_oneofcases xds_type_matcher_v3_Matcher_OnMatch_on_match_case(const xds_type_matcher_v3_Matcher_OnMatch* msg) { - const upb_MiniTableField field = {1, UPB_SIZE(12, 16), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_MiniTableField field = {1, 16, -13, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; return (xds_type_matcher_v3_Matcher_OnMatch_on_match_oneofcases)upb_Message_WhichOneofFieldNumber( UPB_UPCAST(msg), &field); } UPB_INLINE void xds_type_matcher_v3_Matcher_OnMatch_clear_on_match(xds_type_matcher_v3_Matcher_OnMatch* msg) { - const upb_MiniTableField field = {1, UPB_SIZE(12, 16), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_MiniTableField field = {1, 16, -13, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; upb_Message_ClearOneof(UPB_UPCAST(msg), &xds__type__matcher__v3__Matcher__OnMatch_msg_init, &field); } UPB_INLINE void xds_type_matcher_v3_Matcher_OnMatch_clear_matcher(xds_type_matcher_v3_Matcher_OnMatch* msg) { - const upb_MiniTableField field = {1, UPB_SIZE(12, 16), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_MiniTableField field = {1, 16, -13, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); } UPB_INLINE const xds_type_matcher_v3_Matcher* xds_type_matcher_v3_Matcher_OnMatch_matcher(const xds_type_matcher_v3_Matcher_OnMatch* msg) { const xds_type_matcher_v3_Matcher* default_val = NULL; const xds_type_matcher_v3_Matcher* ret; - const upb_MiniTableField field = {1, UPB_SIZE(12, 16), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_MiniTableField field = {1, 16, -13, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; UPB_PRIVATE(_upb_MiniTable_StrongReference)(&xds__type__matcher__v3__Matcher_msg_init); _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, &default_val, &ret); return ret; } UPB_INLINE bool xds_type_matcher_v3_Matcher_OnMatch_has_matcher(const xds_type_matcher_v3_Matcher_OnMatch* msg) { - const upb_MiniTableField field = {1, UPB_SIZE(12, 16), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_MiniTableField field = {1, 16, -13, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); } UPB_INLINE void xds_type_matcher_v3_Matcher_OnMatch_clear_action(xds_type_matcher_v3_Matcher_OnMatch* msg) { - const upb_MiniTableField field = {2, UPB_SIZE(12, 16), -9, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_MiniTableField field = {2, 16, -13, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); } UPB_INLINE const struct xds_core_v3_TypedExtensionConfig* xds_type_matcher_v3_Matcher_OnMatch_action(const xds_type_matcher_v3_Matcher_OnMatch* msg) { const struct xds_core_v3_TypedExtensionConfig* default_val = NULL; const struct xds_core_v3_TypedExtensionConfig* ret; - const upb_MiniTableField field = {2, UPB_SIZE(12, 16), -9, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_MiniTableField field = {2, 16, -13, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; UPB_PRIVATE(_upb_MiniTable_StrongReference)(&xds__core__v3__TypedExtensionConfig_msg_init); _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, &default_val, &ret); return ret; } UPB_INLINE bool xds_type_matcher_v3_Matcher_OnMatch_has_action(const xds_type_matcher_v3_Matcher_OnMatch* msg) { - const upb_MiniTableField field = {2, UPB_SIZE(12, 16), -9, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_MiniTableField field = {2, 16, -13, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); } +UPB_INLINE void xds_type_matcher_v3_Matcher_OnMatch_clear_keep_matching(xds_type_matcher_v3_Matcher_OnMatch* msg) { + const upb_MiniTableField field = {3, 8, 0, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE bool xds_type_matcher_v3_Matcher_OnMatch_keep_matching(const xds_type_matcher_v3_Matcher_OnMatch* msg) { + bool default_val = false; + bool ret; + const upb_MiniTableField field = {3, 8, 0, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} UPB_INLINE void xds_type_matcher_v3_Matcher_OnMatch_set_matcher(xds_type_matcher_v3_Matcher_OnMatch *msg, xds_type_matcher_v3_Matcher* value) { - const upb_MiniTableField field = {1, UPB_SIZE(12, 16), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_MiniTableField field = {1, 16, -13, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; UPB_PRIVATE(_upb_MiniTable_StrongReference)(&xds__type__matcher__v3__Matcher_msg_init); upb_Message_SetBaseField((upb_Message *)msg, &field, &value); } @@ -280,7 +291,7 @@ UPB_INLINE struct xds_type_matcher_v3_Matcher* xds_type_matcher_v3_Matcher_OnMat return sub; } UPB_INLINE void xds_type_matcher_v3_Matcher_OnMatch_set_action(xds_type_matcher_v3_Matcher_OnMatch *msg, struct xds_core_v3_TypedExtensionConfig* value) { - const upb_MiniTableField field = {2, UPB_SIZE(12, 16), -9, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_MiniTableField field = {2, 16, -13, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; UPB_PRIVATE(_upb_MiniTable_StrongReference)(&xds__core__v3__TypedExtensionConfig_msg_init); upb_Message_SetBaseField((upb_Message *)msg, &field, &value); } @@ -292,6 +303,10 @@ UPB_INLINE struct xds_core_v3_TypedExtensionConfig* xds_type_matcher_v3_Matcher_ } return sub; } +UPB_INLINE void xds_type_matcher_v3_Matcher_OnMatch_set_keep_matching(xds_type_matcher_v3_Matcher_OnMatch *msg, bool value) { + const upb_MiniTableField field = {3, 8, 0, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} /* xds.type.matcher.v3.Matcher.MatcherList */ diff --git a/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c b/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c index 28289fb5055ff..0e02926e2ba24 100644 --- a/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c +++ b/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c @@ -9,7 +9,6 @@ #include #include "upb/generated_code_support.h" #include "xds/type/matcher/v3/matcher.upb_minitable.h" -#include "xds/annotations/v3/status.upb_minitable.h" #include "xds/core/v3/extension.upb_minitable.h" #include "xds/type/matcher/v3/string.upb_minitable.h" #include "validate/validate.upb_minitable.h" @@ -51,23 +50,24 @@ static const upb_MiniTableSubInternal xds_type_matcher_v3_Matcher_OnMatch__subms {.UPB_PRIVATE(submsg) = &xds__core__v3__TypedExtensionConfig_msg_init_ptr}, }; -static const upb_MiniTableField xds_type_matcher_v3_Matcher_OnMatch__fields[2] = { - {1, UPB_SIZE(12, 16), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, - {2, UPB_SIZE(12, 16), -9, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, +static const upb_MiniTableField xds_type_matcher_v3_Matcher_OnMatch__fields[3] = { + {1, 16, -13, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {2, 16, -13, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {3, 8, 0, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)}, }; const upb_MiniTable xds__type__matcher__v3__Matcher__OnMatch_msg_init = { &xds_type_matcher_v3_Matcher_OnMatch__submsgs[0], &xds_type_matcher_v3_Matcher_OnMatch__fields[0], - UPB_SIZE(16, 24), 2, kUpb_ExtMode_NonExtendable, 2, UPB_FASTTABLE_MASK(24), 0, + 24, 3, kUpb_ExtMode_NonExtendable, 3, UPB_FASTTABLE_MASK(24), 0, #ifdef UPB_TRACING_ENABLED "xds.type.matcher.v3.Matcher.OnMatch", #endif UPB_FASTTABLE_INIT({ {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, - {0x001000080100000a, &upb_pom_1bt_max64b}, - {0x0010000802010012, &upb_pom_1bt_maxmaxb}, - {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0010000c0100000a, &upb_pom_1bt_max64b}, + {0x0010000c02010012, &upb_pom_1bt_maxmaxb}, + {0x000800003f000018, &upb_psb1_1bt}, }) }; diff --git a/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb.h b/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb.h index 5d8c371f8992e..ec261938c331d 100644 --- a/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb.h +++ b/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb.h @@ -13,6 +13,7 @@ #include "xds/type/matcher/v3/string.upb_minitable.h" +#include "xds/core/v3/extension.upb_minitable.h" #include "xds/type/matcher/v3/regex.upb_minitable.h" #include "validate/validate.upb_minitable.h" @@ -25,6 +26,7 @@ extern "C" { typedef struct xds_type_matcher_v3_StringMatcher { upb_Message UPB_PRIVATE(base); } xds_type_matcher_v3_StringMatcher; typedef struct xds_type_matcher_v3_ListStringMatcher { upb_Message UPB_PRIVATE(base); } xds_type_matcher_v3_ListStringMatcher; +struct xds_core_v3_TypedExtensionConfig; struct xds_type_matcher_v3_RegexMatcher; @@ -71,6 +73,7 @@ typedef enum { xds_type_matcher_v3_StringMatcher_match_pattern_suffix = 3, xds_type_matcher_v3_StringMatcher_match_pattern_safe_regex = 5, xds_type_matcher_v3_StringMatcher_match_pattern_contains = 7, + xds_type_matcher_v3_StringMatcher_match_pattern_custom = 8, xds_type_matcher_v3_StringMatcher_match_pattern_NOT_SET = 0 } xds_type_matcher_v3_StringMatcher_match_pattern_oneofcases; UPB_INLINE xds_type_matcher_v3_StringMatcher_match_pattern_oneofcases xds_type_matcher_v3_StringMatcher_match_pattern_case(const xds_type_matcher_v3_StringMatcher* msg) { @@ -175,6 +178,23 @@ UPB_INLINE bool xds_type_matcher_v3_StringMatcher_has_contains(const xds_type_ma const upb_MiniTableField field = {7, 16, -13, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); } +UPB_INLINE void xds_type_matcher_v3_StringMatcher_clear_custom(xds_type_matcher_v3_StringMatcher* msg) { + const upb_MiniTableField field = {8, 16, -13, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const struct xds_core_v3_TypedExtensionConfig* xds_type_matcher_v3_StringMatcher_custom(const xds_type_matcher_v3_StringMatcher* msg) { + const struct xds_core_v3_TypedExtensionConfig* default_val = NULL; + const struct xds_core_v3_TypedExtensionConfig* ret; + const upb_MiniTableField field = {8, 16, -13, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&xds__core__v3__TypedExtensionConfig_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool xds_type_matcher_v3_StringMatcher_has_custom(const xds_type_matcher_v3_StringMatcher* msg) { + const upb_MiniTableField field = {8, 16, -13, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} UPB_INLINE void xds_type_matcher_v3_StringMatcher_set_exact(xds_type_matcher_v3_StringMatcher *msg, upb_StringView value) { const upb_MiniTableField field = {1, 16, -13, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; @@ -209,6 +229,19 @@ UPB_INLINE void xds_type_matcher_v3_StringMatcher_set_contains(xds_type_matcher_ const upb_MiniTableField field = {7, 16, -13, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; upb_Message_SetBaseField((upb_Message *)msg, &field, &value); } +UPB_INLINE void xds_type_matcher_v3_StringMatcher_set_custom(xds_type_matcher_v3_StringMatcher *msg, struct xds_core_v3_TypedExtensionConfig* value) { + const upb_MiniTableField field = {8, 16, -13, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&xds__core__v3__TypedExtensionConfig_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct xds_core_v3_TypedExtensionConfig* xds_type_matcher_v3_StringMatcher_mutable_custom(xds_type_matcher_v3_StringMatcher* msg, upb_Arena* arena) { + struct xds_core_v3_TypedExtensionConfig* sub = (struct xds_core_v3_TypedExtensionConfig*)xds_type_matcher_v3_StringMatcher_custom(msg); + if (sub == NULL) { + sub = (struct xds_core_v3_TypedExtensionConfig*)_upb_Message_New(&xds__core__v3__TypedExtensionConfig_msg_init, arena); + if (sub) xds_type_matcher_v3_StringMatcher_set_custom(msg, sub); + } + return sub; +} /* xds.type.matcher.v3.ListStringMatcher */ diff --git a/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.c b/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.c index f51ab159c6f1b..a7704edd75458 100644 --- a/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.c +++ b/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.c @@ -9,6 +9,7 @@ #include #include "upb/generated_code_support.h" #include "xds/type/matcher/v3/string.upb_minitable.h" +#include "xds/core/v3/extension.upb_minitable.h" #include "xds/type/matcher/v3/regex.upb_minitable.h" #include "validate/validate.upb_minitable.h" @@ -16,23 +17,25 @@ #include "upb/port/def.inc" extern const struct upb_MiniTable UPB_PRIVATE(_kUpb_MiniTable_StaticallyTreeShaken); -static const upb_MiniTableSubInternal xds_type_matcher_v3_StringMatcher__submsgs[1] = { +static const upb_MiniTableSubInternal xds_type_matcher_v3_StringMatcher__submsgs[2] = { {.UPB_PRIVATE(submsg) = &xds__type__matcher__v3__RegexMatcher_msg_init_ptr}, + {.UPB_PRIVATE(submsg) = &xds__core__v3__TypedExtensionConfig_msg_init_ptr}, }; -static const upb_MiniTableField xds_type_matcher_v3_StringMatcher__fields[6] = { +static const upb_MiniTableField xds_type_matcher_v3_StringMatcher__fields[7] = { {1, 16, -13, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}, {2, 16, -13, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}, {3, 16, -13, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}, {5, 16, -13, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, {6, 8, 0, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)}, {7, 16, -13, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}, + {8, 16, -13, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, }; const upb_MiniTable xds__type__matcher__v3__StringMatcher_msg_init = { &xds_type_matcher_v3_StringMatcher__submsgs[0], &xds_type_matcher_v3_StringMatcher__fields[0], - UPB_SIZE(24, 32), 6, kUpb_ExtMode_NonExtendable, 3, UPB_FASTTABLE_MASK(56), 0, + UPB_SIZE(24, 32), 7, kUpb_ExtMode_NonExtendable, 3, UPB_FASTTABLE_MASK(120), 0, #ifdef UPB_TRACING_ENABLED "xds.type.matcher.v3.StringMatcher", #endif @@ -45,6 +48,14 @@ const upb_MiniTable xds__type__matcher__v3__StringMatcher_msg_init = { {0x0010000c0500002a, &upb_pom_1bt_maxmaxb}, {0x000800003f000030, &upb_psb1_1bt}, {0x0010000c0700003a, &upb_pos_1bt}, + {0x0010000c08010042, &upb_pom_1bt_maxmaxb}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, }) }; diff --git a/src/core/ext/upb-gen/xds/type/v3/cel.upb.h b/src/core/ext/upb-gen/xds/type/v3/cel.upb.h index bf4eb08fc12d0..3e50b6515b21d 100644 --- a/src/core/ext/upb-gen/xds/type/v3/cel.upb.h +++ b/src/core/ext/upb-gen/xds/type/v3/cel.upb.h @@ -15,6 +15,8 @@ #include "google/api/expr/v1alpha1/checked.upb_minitable.h" #include "google/api/expr/v1alpha1/syntax.upb_minitable.h" +#include "cel/expr/checked.upb_minitable.h" +#include "cel/expr/syntax.upb_minitable.h" #include "google/protobuf/wrappers.upb_minitable.h" #include "xds/annotations/v3/status.upb_minitable.h" #include "validate/validate.upb_minitable.h" @@ -28,6 +30,8 @@ extern "C" { typedef struct xds_type_v3_CelExpression { upb_Message UPB_PRIVATE(base); } xds_type_v3_CelExpression; typedef struct xds_type_v3_CelExtractString { upb_Message UPB_PRIVATE(base); } xds_type_v3_CelExtractString; +struct cel_expr_CheckedExpr; +struct cel_expr_ParsedExpr; struct google_api_expr_v1alpha1_CheckedExpr; struct google_api_expr_v1alpha1_ParsedExpr; struct google_protobuf_StringValue; @@ -76,51 +80,97 @@ typedef enum { xds_type_v3_CelExpression_expr_specifier_NOT_SET = 0 } xds_type_v3_CelExpression_expr_specifier_oneofcases; UPB_INLINE xds_type_v3_CelExpression_expr_specifier_oneofcases xds_type_v3_CelExpression_expr_specifier_case(const xds_type_v3_CelExpression* msg) { - const upb_MiniTableField field = {1, UPB_SIZE(12, 16), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_MiniTableField field = {1, UPB_SIZE(24, 48), UPB_SIZE(-21, -13), 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; return (xds_type_v3_CelExpression_expr_specifier_oneofcases)upb_Message_WhichOneofFieldNumber( UPB_UPCAST(msg), &field); } UPB_INLINE void xds_type_v3_CelExpression_clear_expr_specifier(xds_type_v3_CelExpression* msg) { - const upb_MiniTableField field = {1, UPB_SIZE(12, 16), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_MiniTableField field = {1, UPB_SIZE(24, 48), UPB_SIZE(-21, -13), 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; upb_Message_ClearOneof(UPB_UPCAST(msg), &xds__type__v3__CelExpression_msg_init, &field); } UPB_INLINE void xds_type_v3_CelExpression_clear_parsed_expr(xds_type_v3_CelExpression* msg) { - const upb_MiniTableField field = {1, UPB_SIZE(12, 16), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_MiniTableField field = {1, UPB_SIZE(24, 48), UPB_SIZE(-21, -13), 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); } UPB_INLINE const struct google_api_expr_v1alpha1_ParsedExpr* xds_type_v3_CelExpression_parsed_expr(const xds_type_v3_CelExpression* msg) { const struct google_api_expr_v1alpha1_ParsedExpr* default_val = NULL; const struct google_api_expr_v1alpha1_ParsedExpr* ret; - const upb_MiniTableField field = {1, UPB_SIZE(12, 16), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_MiniTableField field = {1, UPB_SIZE(24, 48), UPB_SIZE(-21, -13), 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__api__expr__v1alpha1__ParsedExpr_msg_init); _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, &default_val, &ret); return ret; } UPB_INLINE bool xds_type_v3_CelExpression_has_parsed_expr(const xds_type_v3_CelExpression* msg) { - const upb_MiniTableField field = {1, UPB_SIZE(12, 16), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_MiniTableField field = {1, UPB_SIZE(24, 48), UPB_SIZE(-21, -13), 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); } UPB_INLINE void xds_type_v3_CelExpression_clear_checked_expr(xds_type_v3_CelExpression* msg) { - const upb_MiniTableField field = {2, UPB_SIZE(12, 16), -9, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_MiniTableField field = {2, UPB_SIZE(24, 48), UPB_SIZE(-21, -13), 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); } UPB_INLINE const struct google_api_expr_v1alpha1_CheckedExpr* xds_type_v3_CelExpression_checked_expr(const xds_type_v3_CelExpression* msg) { const struct google_api_expr_v1alpha1_CheckedExpr* default_val = NULL; const struct google_api_expr_v1alpha1_CheckedExpr* ret; - const upb_MiniTableField field = {2, UPB_SIZE(12, 16), -9, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_MiniTableField field = {2, UPB_SIZE(24, 48), UPB_SIZE(-21, -13), 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__api__expr__v1alpha1__CheckedExpr_msg_init); _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, &default_val, &ret); return ret; } UPB_INLINE bool xds_type_v3_CelExpression_has_checked_expr(const xds_type_v3_CelExpression* msg) { - const upb_MiniTableField field = {2, UPB_SIZE(12, 16), -9, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_MiniTableField field = {2, UPB_SIZE(24, 48), UPB_SIZE(-21, -13), 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); } +UPB_INLINE void xds_type_v3_CelExpression_clear_cel_expr_parsed(xds_type_v3_CelExpression* msg) { + const upb_MiniTableField field = {3, UPB_SIZE(12, 32), 64, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const struct cel_expr_ParsedExpr* xds_type_v3_CelExpression_cel_expr_parsed(const xds_type_v3_CelExpression* msg) { + const struct cel_expr_ParsedExpr* default_val = NULL; + const struct cel_expr_ParsedExpr* ret; + const upb_MiniTableField field = {3, UPB_SIZE(12, 32), 64, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__ParsedExpr_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool xds_type_v3_CelExpression_has_cel_expr_parsed(const xds_type_v3_CelExpression* msg) { + const upb_MiniTableField field = {3, UPB_SIZE(12, 32), 64, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void xds_type_v3_CelExpression_clear_cel_expr_checked(xds_type_v3_CelExpression* msg) { + const upb_MiniTableField field = {4, UPB_SIZE(16, 40), 65, 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE const struct cel_expr_CheckedExpr* xds_type_v3_CelExpression_cel_expr_checked(const xds_type_v3_CelExpression* msg) { + const struct cel_expr_CheckedExpr* default_val = NULL; + const struct cel_expr_CheckedExpr* ret; + const upb_MiniTableField field = {4, UPB_SIZE(16, 40), 65, 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__CheckedExpr_msg_init); + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} +UPB_INLINE bool xds_type_v3_CelExpression_has_cel_expr_checked(const xds_type_v3_CelExpression* msg) { + const upb_MiniTableField field = {4, UPB_SIZE(16, 40), 65, 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + return upb_Message_HasBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE void xds_type_v3_CelExpression_clear_cel_expr_string(xds_type_v3_CelExpression* msg) { + const upb_MiniTableField field = {5, UPB_SIZE(28, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_ClearBaseField(UPB_UPCAST(msg), &field); +} +UPB_INLINE upb_StringView xds_type_v3_CelExpression_cel_expr_string(const xds_type_v3_CelExpression* msg) { + upb_StringView default_val = upb_StringView_FromString(""); + upb_StringView ret; + const upb_MiniTableField field = {5, UPB_SIZE(28, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field, + &default_val, &ret); + return ret; +} UPB_INLINE void xds_type_v3_CelExpression_set_parsed_expr(xds_type_v3_CelExpression *msg, struct google_api_expr_v1alpha1_ParsedExpr* value) { - const upb_MiniTableField field = {1, UPB_SIZE(12, 16), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_MiniTableField field = {1, UPB_SIZE(24, 48), UPB_SIZE(-21, -13), 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__api__expr__v1alpha1__ParsedExpr_msg_init); upb_Message_SetBaseField((upb_Message *)msg, &field, &value); } @@ -133,7 +183,7 @@ UPB_INLINE struct google_api_expr_v1alpha1_ParsedExpr* xds_type_v3_CelExpression return sub; } UPB_INLINE void xds_type_v3_CelExpression_set_checked_expr(xds_type_v3_CelExpression *msg, struct google_api_expr_v1alpha1_CheckedExpr* value) { - const upb_MiniTableField field = {2, UPB_SIZE(12, 16), -9, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + const upb_MiniTableField field = {2, UPB_SIZE(24, 48), UPB_SIZE(-21, -13), 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__api__expr__v1alpha1__CheckedExpr_msg_init); upb_Message_SetBaseField((upb_Message *)msg, &field, &value); } @@ -145,6 +195,36 @@ UPB_INLINE struct google_api_expr_v1alpha1_CheckedExpr* xds_type_v3_CelExpressio } return sub; } +UPB_INLINE void xds_type_v3_CelExpression_set_cel_expr_parsed(xds_type_v3_CelExpression *msg, struct cel_expr_ParsedExpr* value) { + const upb_MiniTableField field = {3, UPB_SIZE(12, 32), 64, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__ParsedExpr_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_ParsedExpr* xds_type_v3_CelExpression_mutable_cel_expr_parsed(xds_type_v3_CelExpression* msg, upb_Arena* arena) { + struct cel_expr_ParsedExpr* sub = (struct cel_expr_ParsedExpr*)xds_type_v3_CelExpression_cel_expr_parsed(msg); + if (sub == NULL) { + sub = (struct cel_expr_ParsedExpr*)_upb_Message_New(&cel__expr__ParsedExpr_msg_init, arena); + if (sub) xds_type_v3_CelExpression_set_cel_expr_parsed(msg, sub); + } + return sub; +} +UPB_INLINE void xds_type_v3_CelExpression_set_cel_expr_checked(xds_type_v3_CelExpression *msg, struct cel_expr_CheckedExpr* value) { + const upb_MiniTableField field = {4, UPB_SIZE(16, 40), 65, 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}; + UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__CheckedExpr_msg_init); + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} +UPB_INLINE struct cel_expr_CheckedExpr* xds_type_v3_CelExpression_mutable_cel_expr_checked(xds_type_v3_CelExpression* msg, upb_Arena* arena) { + struct cel_expr_CheckedExpr* sub = (struct cel_expr_CheckedExpr*)xds_type_v3_CelExpression_cel_expr_checked(msg); + if (sub == NULL) { + sub = (struct cel_expr_CheckedExpr*)_upb_Message_New(&cel__expr__CheckedExpr_msg_init, arena); + if (sub) xds_type_v3_CelExpression_set_cel_expr_checked(msg, sub); + } + return sub; +} +UPB_INLINE void xds_type_v3_CelExpression_set_cel_expr_string(xds_type_v3_CelExpression *msg, upb_StringView value) { + const upb_MiniTableField field = {5, UPB_SIZE(28, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}; + upb_Message_SetBaseField((upb_Message *)msg, &field, &value); +} /* xds.type.v3.CelExtractString */ diff --git a/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c b/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c index ce3944ad1aafc..de769074f25b0 100644 --- a/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c +++ b/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c @@ -11,6 +11,8 @@ #include "xds/type/v3/cel.upb_minitable.h" #include "google/api/expr/v1alpha1/checked.upb_minitable.h" #include "google/api/expr/v1alpha1/syntax.upb_minitable.h" +#include "cel/expr/checked.upb_minitable.h" +#include "cel/expr/syntax.upb_minitable.h" #include "google/protobuf/wrappers.upb_minitable.h" #include "xds/annotations/v3/status.upb_minitable.h" #include "validate/validate.upb_minitable.h" @@ -19,27 +21,36 @@ #include "upb/port/def.inc" extern const struct upb_MiniTable UPB_PRIVATE(_kUpb_MiniTable_StaticallyTreeShaken); -static const upb_MiniTableSubInternal xds_type_v3_CelExpression__submsgs[2] = { +static const upb_MiniTableSubInternal xds_type_v3_CelExpression__submsgs[4] = { {.UPB_PRIVATE(submsg) = &google__api__expr__v1alpha1__ParsedExpr_msg_init_ptr}, {.UPB_PRIVATE(submsg) = &google__api__expr__v1alpha1__CheckedExpr_msg_init_ptr}, + {.UPB_PRIVATE(submsg) = &cel__expr__ParsedExpr_msg_init_ptr}, + {.UPB_PRIVATE(submsg) = &cel__expr__CheckedExpr_msg_init_ptr}, }; -static const upb_MiniTableField xds_type_v3_CelExpression__fields[2] = { - {1, UPB_SIZE(12, 16), -9, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, - {2, UPB_SIZE(12, 16), -9, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, +static const upb_MiniTableField xds_type_v3_CelExpression__fields[5] = { + {1, UPB_SIZE(24, 48), UPB_SIZE(-21, -13), 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {2, UPB_SIZE(24, 48), UPB_SIZE(-21, -13), 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {3, UPB_SIZE(12, 32), 64, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {4, UPB_SIZE(16, 40), 65, 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)}, + {5, UPB_SIZE(28, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)}, }; const upb_MiniTable xds__type__v3__CelExpression_msg_init = { &xds_type_v3_CelExpression__submsgs[0], &xds_type_v3_CelExpression__fields[0], - UPB_SIZE(16, 24), 2, kUpb_ExtMode_NonExtendable, 2, UPB_FASTTABLE_MASK(24), 0, + UPB_SIZE(40, 56), 5, kUpb_ExtMode_NonExtendable, 5, UPB_FASTTABLE_MASK(56), 0, #ifdef UPB_TRACING_ENABLED "xds.type.v3.CelExpression", #endif UPB_FASTTABLE_INIT({ {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, - {0x001000080100000a, &upb_pom_1bt_maxmaxb}, - {0x0010000802010012, &upb_pom_1bt_maxmaxb}, + {0x0030000c0100000a, &upb_pom_1bt_maxmaxb}, + {0x0030000c02010012, &upb_pom_1bt_maxmaxb}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, + {0x001000003f00002a, &upb_pss_1bt}, + {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric}, }) }; diff --git a/src/core/ext/upbdefs-gen/cel/expr/checked.upbdefs.c b/src/core/ext/upbdefs-gen/cel/expr/checked.upbdefs.c new file mode 100644 index 0000000000000..f8dc075f78f06 --- /dev/null +++ b/src/core/ext/upbdefs-gen/cel/expr/checked.upbdefs.c @@ -0,0 +1,248 @@ +/* This file was generated by upb_generator from the input file: + * + * cel/expr/checked.proto + * + * Do not edit -- your changes will be discarded when the file is + * regenerated. + * NO CHECKED-IN PROTOBUF GENCODE */ + + +#include "upb/reflection/def.h" +#include "cel/expr/checked.upbdefs.h" +#include "cel/expr/checked.upb_minitable.h" + +extern _upb_DefPool_Init cel_expr_syntax_proto_upbdefinit; +extern _upb_DefPool_Init google_protobuf_empty_proto_upbdefinit; +extern _upb_DefPool_Init google_protobuf_struct_proto_upbdefinit; + +static const char descriptor[2579] = { + '\n', '\026', 'c', 'e', 'l', '/', 'e', 'x', 'p', 'r', '/', 'c', + 'h', 'e', 'c', 'k', 'e', 'd', '.', 'p', 'r', 'o', 't', 'o', + '\022', '\010', 'c', 'e', 'l', '.', 'e', 'x', 'p', 'r', '\032', '\025', + 'c', 'e', 'l', '/', 'e', 'x', 'p', 'r', '/', 's', 'y', 'n', + 't', 'a', 'x', '.', 'p', 'r', 'o', 't', 'o', '\032', '\033', 'g', + 'o', 'o', 'g', 'l', 'e', '/', 'p', 'r', 'o', 't', 'o', 'b', + 'u', 'f', '/', 'e', 'm', 'p', 't', 'y', '.', 'p', 'r', 'o', + 't', 'o', '\032', '\034', 'g', 'o', 'o', 'g', 'l', 'e', '/', 'p', + 'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 's', 't', 'r', 'u', + 'c', 't', '.', 'p', 'r', 'o', 't', 'o', '\"', '\272', '\003', '\n', + '\013', 'C', 'h', 'e', 'c', 'k', 'e', 'd', 'E', 'x', 'p', 'r', + '\022', 'L', '\n', '\r', 'r', 'e', 'f', 'e', 'r', 'e', 'n', 'c', + 'e', '_', 'm', 'a', 'p', '\030', '\002', ' ', '\003', '(', '\013', '2', + '\'', '.', 'c', 'e', 'l', '.', 'e', 'x', 'p', 'r', '.', 'C', + 'h', 'e', 'c', 'k', 'e', 'd', 'E', 'x', 'p', 'r', '.', 'R', + 'e', 'f', 'e', 'r', 'e', 'n', 'c', 'e', 'M', 'a', 'p', 'E', + 'n', 't', 'r', 'y', 'R', '\014', 'r', 'e', 'f', 'e', 'r', 'e', + 'n', 'c', 'e', 'M', 'a', 'p', '\022', '=', '\n', '\010', 't', 'y', + 'p', 'e', '_', 'm', 'a', 'p', '\030', '\003', ' ', '\003', '(', '\013', + '2', '\"', '.', 'c', 'e', 'l', '.', 'e', 'x', 'p', 'r', '.', + 'C', 'h', 'e', 'c', 'k', 'e', 'd', 'E', 'x', 'p', 'r', '.', + 'T', 'y', 'p', 'e', 'M', 'a', 'p', 'E', 'n', 't', 'r', 'y', + 'R', '\007', 't', 'y', 'p', 'e', 'M', 'a', 'p', '\022', '5', '\n', + '\013', 's', 'o', 'u', 'r', 'c', 'e', '_', 'i', 'n', 'f', 'o', + '\030', '\005', ' ', '\001', '(', '\013', '2', '\024', '.', 'c', 'e', 'l', + '.', 'e', 'x', 'p', 'r', '.', 'S', 'o', 'u', 'r', 'c', 'e', + 'I', 'n', 'f', 'o', 'R', '\n', 's', 'o', 'u', 'r', 'c', 'e', + 'I', 'n', 'f', 'o', '\022', '!', '\n', '\014', 'e', 'x', 'p', 'r', + '_', 'v', 'e', 'r', 's', 'i', 'o', 'n', '\030', '\006', ' ', '\001', + '(', '\t', 'R', '\013', 'e', 'x', 'p', 'r', 'V', 'e', 'r', 's', + 'i', 'o', 'n', '\022', '\"', '\n', '\004', 'e', 'x', 'p', 'r', '\030', + '\004', ' ', '\001', '(', '\013', '2', '\016', '.', 'c', 'e', 'l', '.', + 'e', 'x', 'p', 'r', '.', 'E', 'x', 'p', 'r', 'R', '\004', 'e', + 'x', 'p', 'r', '\032', 'T', '\n', '\021', 'R', 'e', 'f', 'e', 'r', + 'e', 'n', 'c', 'e', 'M', 'a', 'p', 'E', 'n', 't', 'r', 'y', + '\022', '\020', '\n', '\003', 'k', 'e', 'y', '\030', '\001', ' ', '\001', '(', + '\003', 'R', '\003', 'k', 'e', 'y', '\022', ')', '\n', '\005', 'v', 'a', + 'l', 'u', 'e', '\030', '\002', ' ', '\001', '(', '\013', '2', '\023', '.', + 'c', 'e', 'l', '.', 'e', 'x', 'p', 'r', '.', 'R', 'e', 'f', + 'e', 'r', 'e', 'n', 'c', 'e', 'R', '\005', 'v', 'a', 'l', 'u', + 'e', ':', '\002', '8', '\001', '\032', 'J', '\n', '\014', 'T', 'y', 'p', + 'e', 'M', 'a', 'p', 'E', 'n', 't', 'r', 'y', '\022', '\020', '\n', + '\003', 'k', 'e', 'y', '\030', '\001', ' ', '\001', '(', '\003', 'R', '\003', + 'k', 'e', 'y', '\022', '$', '\n', '\005', 'v', 'a', 'l', 'u', 'e', + '\030', '\002', ' ', '\001', '(', '\013', '2', '\016', '.', 'c', 'e', 'l', + '.', 'e', 'x', 'p', 'r', '.', 'T', 'y', 'p', 'e', 'R', '\005', + 'v', 'a', 'l', 'u', 'e', ':', '\002', '8', '\001', '\"', '\346', '\t', + '\n', '\004', 'T', 'y', 'p', 'e', '\022', '*', '\n', '\003', 'd', 'y', + 'n', '\030', '\001', ' ', '\001', '(', '\013', '2', '\026', '.', 'g', 'o', + 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', + 'f', '.', 'E', 'm', 'p', 't', 'y', 'H', '\000', 'R', '\003', 'd', + 'y', 'n', '\022', '0', '\n', '\004', 'n', 'u', 'l', 'l', '\030', '\002', + ' ', '\001', '(', '\016', '2', '\032', '.', 'g', 'o', 'o', 'g', 'l', + 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'N', + 'u', 'l', 'l', 'V', 'a', 'l', 'u', 'e', 'H', '\000', 'R', '\004', + 'n', 'u', 'l', 'l', '\022', '<', '\n', '\t', 'p', 'r', 'i', 'm', + 'i', 't', 'i', 'v', 'e', '\030', '\003', ' ', '\001', '(', '\016', '2', + '\034', '.', 'c', 'e', 'l', '.', 'e', 'x', 'p', 'r', '.', 'T', + 'y', 'p', 'e', '.', 'P', 'r', 'i', 'm', 'i', 't', 'i', 'v', + 'e', 'T', 'y', 'p', 'e', 'H', '\000', 'R', '\t', 'p', 'r', 'i', + 'm', 'i', 't', 'i', 'v', 'e', '\022', '8', '\n', '\007', 'w', 'r', + 'a', 'p', 'p', 'e', 'r', '\030', '\004', ' ', '\001', '(', '\016', '2', + '\034', '.', 'c', 'e', 'l', '.', 'e', 'x', 'p', 'r', '.', 'T', + 'y', 'p', 'e', '.', 'P', 'r', 'i', 'm', 'i', 't', 'i', 'v', + 'e', 'T', 'y', 'p', 'e', 'H', '\000', 'R', '\007', 'w', 'r', 'a', + 'p', 'p', 'e', 'r', '\022', '=', '\n', '\n', 'w', 'e', 'l', 'l', + '_', 'k', 'n', 'o', 'w', 'n', '\030', '\005', ' ', '\001', '(', '\016', + '2', '\034', '.', 'c', 'e', 'l', '.', 'e', 'x', 'p', 'r', '.', + 'T', 'y', 'p', 'e', '.', 'W', 'e', 'l', 'l', 'K', 'n', 'o', + 'w', 'n', 'T', 'y', 'p', 'e', 'H', '\000', 'R', '\t', 'w', 'e', + 'l', 'l', 'K', 'n', 'o', 'w', 'n', '\022', '6', '\n', '\t', 'l', + 'i', 's', 't', '_', 't', 'y', 'p', 'e', '\030', '\006', ' ', '\001', + '(', '\013', '2', '\027', '.', 'c', 'e', 'l', '.', 'e', 'x', 'p', + 'r', '.', 'T', 'y', 'p', 'e', '.', 'L', 'i', 's', 't', 'T', + 'y', 'p', 'e', 'H', '\000', 'R', '\010', 'l', 'i', 's', 't', 'T', + 'y', 'p', 'e', '\022', '3', '\n', '\010', 'm', 'a', 'p', '_', 't', + 'y', 'p', 'e', '\030', '\007', ' ', '\001', '(', '\013', '2', '\026', '.', + 'c', 'e', 'l', '.', 'e', 'x', 'p', 'r', '.', 'T', 'y', 'p', + 'e', '.', 'M', 'a', 'p', 'T', 'y', 'p', 'e', 'H', '\000', 'R', + '\007', 'm', 'a', 'p', 'T', 'y', 'p', 'e', '\022', '9', '\n', '\010', + 'f', 'u', 'n', 'c', 't', 'i', 'o', 'n', '\030', '\010', ' ', '\001', + '(', '\013', '2', '\033', '.', 'c', 'e', 'l', '.', 'e', 'x', 'p', + 'r', '.', 'T', 'y', 'p', 'e', '.', 'F', 'u', 'n', 'c', 't', + 'i', 'o', 'n', 'T', 'y', 'p', 'e', 'H', '\000', 'R', '\010', 'f', + 'u', 'n', 'c', 't', 'i', 'o', 'n', '\022', '#', '\n', '\014', 'm', + 'e', 's', 's', 'a', 'g', 'e', '_', 't', 'y', 'p', 'e', '\030', + '\t', ' ', '\001', '(', '\t', 'H', '\000', 'R', '\013', 'm', 'e', 's', + 's', 'a', 'g', 'e', 'T', 'y', 'p', 'e', '\022', '\037', '\n', '\n', + 't', 'y', 'p', 'e', '_', 'p', 'a', 'r', 'a', 'm', '\030', '\n', + ' ', '\001', '(', '\t', 'H', '\000', 'R', '\t', 't', 'y', 'p', 'e', + 'P', 'a', 'r', 'a', 'm', '\022', '$', '\n', '\004', 't', 'y', 'p', + 'e', '\030', '\013', ' ', '\001', '(', '\013', '2', '\016', '.', 'c', 'e', + 'l', '.', 'e', 'x', 'p', 'r', '.', 'T', 'y', 'p', 'e', 'H', + '\000', 'R', '\004', 't', 'y', 'p', 'e', '\022', '.', '\n', '\005', 'e', + 'r', 'r', 'o', 'r', '\030', '\014', ' ', '\001', '(', '\013', '2', '\026', + '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', + 'o', 'b', 'u', 'f', '.', 'E', 'm', 'p', 't', 'y', 'H', '\000', + 'R', '\005', 'e', 'r', 'r', 'o', 'r', '\022', 'B', '\n', '\r', 'a', + 'b', 's', 't', 'r', 'a', 'c', 't', '_', 't', 'y', 'p', 'e', + '\030', '\016', ' ', '\001', '(', '\013', '2', '\033', '.', 'c', 'e', 'l', + '.', 'e', 'x', 'p', 'r', '.', 'T', 'y', 'p', 'e', '.', 'A', + 'b', 's', 't', 'r', 'a', 'c', 't', 'T', 'y', 'p', 'e', 'H', + '\000', 'R', '\014', 'a', 'b', 's', 't', 'r', 'a', 'c', 't', 'T', + 'y', 'p', 'e', '\032', '7', '\n', '\010', 'L', 'i', 's', 't', 'T', + 'y', 'p', 'e', '\022', '+', '\n', '\t', 'e', 'l', 'e', 'm', '_', + 't', 'y', 'p', 'e', '\030', '\001', ' ', '\001', '(', '\013', '2', '\016', + '.', 'c', 'e', 'l', '.', 'e', 'x', 'p', 'r', '.', 'T', 'y', + 'p', 'e', 'R', '\010', 'e', 'l', 'e', 'm', 'T', 'y', 'p', 'e', + '\032', 'c', '\n', '\007', 'M', 'a', 'p', 'T', 'y', 'p', 'e', '\022', + ')', '\n', '\010', 'k', 'e', 'y', '_', 't', 'y', 'p', 'e', '\030', + '\001', ' ', '\001', '(', '\013', '2', '\016', '.', 'c', 'e', 'l', '.', + 'e', 'x', 'p', 'r', '.', 'T', 'y', 'p', 'e', 'R', '\007', 'k', + 'e', 'y', 'T', 'y', 'p', 'e', '\022', '-', '\n', '\n', 'v', 'a', + 'l', 'u', 'e', '_', 't', 'y', 'p', 'e', '\030', '\002', ' ', '\001', + '(', '\013', '2', '\016', '.', 'c', 'e', 'l', '.', 'e', 'x', 'p', + 'r', '.', 'T', 'y', 'p', 'e', 'R', '\t', 'v', 'a', 'l', 'u', + 'e', 'T', 'y', 'p', 'e', '\032', 'l', '\n', '\014', 'F', 'u', 'n', + 'c', 't', 'i', 'o', 'n', 'T', 'y', 'p', 'e', '\022', '/', '\n', + '\013', 'r', 'e', 's', 'u', 'l', 't', '_', 't', 'y', 'p', 'e', + '\030', '\001', ' ', '\001', '(', '\013', '2', '\016', '.', 'c', 'e', 'l', + '.', 'e', 'x', 'p', 'r', '.', 'T', 'y', 'p', 'e', 'R', '\n', + 'r', 'e', 's', 'u', 'l', 't', 'T', 'y', 'p', 'e', '\022', '+', + '\n', '\t', 'a', 'r', 'g', '_', 't', 'y', 'p', 'e', 's', '\030', + '\002', ' ', '\003', '(', '\013', '2', '\016', '.', 'c', 'e', 'l', '.', + 'e', 'x', 'p', 'r', '.', 'T', 'y', 'p', 'e', 'R', '\010', 'a', + 'r', 'g', 'T', 'y', 'p', 'e', 's', '\032', '[', '\n', '\014', 'A', + 'b', 's', 't', 'r', 'a', 'c', 't', 'T', 'y', 'p', 'e', '\022', + '\022', '\n', '\004', 'n', 'a', 'm', 'e', '\030', '\001', ' ', '\001', '(', + '\t', 'R', '\004', 'n', 'a', 'm', 'e', '\022', '7', '\n', '\017', 'p', + 'a', 'r', 'a', 'm', 'e', 't', 'e', 'r', '_', 't', 'y', 'p', + 'e', 's', '\030', '\002', ' ', '\003', '(', '\013', '2', '\016', '.', 'c', + 'e', 'l', '.', 'e', 'x', 'p', 'r', '.', 'T', 'y', 'p', 'e', + 'R', '\016', 'p', 'a', 'r', 'a', 'm', 'e', 't', 'e', 'r', 'T', + 'y', 'p', 'e', 's', '\"', 's', '\n', '\r', 'P', 'r', 'i', 'm', + 'i', 't', 'i', 'v', 'e', 'T', 'y', 'p', 'e', '\022', '\036', '\n', + '\032', 'P', 'R', 'I', 'M', 'I', 'T', 'I', 'V', 'E', '_', 'T', + 'Y', 'P', 'E', '_', 'U', 'N', 'S', 'P', 'E', 'C', 'I', 'F', + 'I', 'E', 'D', '\020', '\000', '\022', '\010', '\n', '\004', 'B', 'O', 'O', + 'L', '\020', '\001', '\022', '\t', '\n', '\005', 'I', 'N', 'T', '6', '4', + '\020', '\002', '\022', '\n', '\n', '\006', 'U', 'I', 'N', 'T', '6', '4', + '\020', '\003', '\022', '\n', '\n', '\006', 'D', 'O', 'U', 'B', 'L', 'E', + '\020', '\004', '\022', '\n', '\n', '\006', 'S', 'T', 'R', 'I', 'N', 'G', + '\020', '\005', '\022', '\t', '\n', '\005', 'B', 'Y', 'T', 'E', 'S', '\020', + '\006', '\"', 'V', '\n', '\r', 'W', 'e', 'l', 'l', 'K', 'n', 'o', + 'w', 'n', 'T', 'y', 'p', 'e', '\022', '\037', '\n', '\033', 'W', 'E', + 'L', 'L', '_', 'K', 'N', 'O', 'W', 'N', '_', 'T', 'Y', 'P', + 'E', '_', 'U', 'N', 'S', 'P', 'E', 'C', 'I', 'F', 'I', 'E', + 'D', '\020', '\000', '\022', '\007', '\n', '\003', 'A', 'N', 'Y', '\020', '\001', + '\022', '\r', '\n', '\t', 'T', 'I', 'M', 'E', 'S', 'T', 'A', 'M', + 'P', '\020', '\002', '\022', '\014', '\n', '\010', 'D', 'U', 'R', 'A', 'T', + 'I', 'O', 'N', '\020', '\003', 'B', '\013', '\n', '\t', 't', 'y', 'p', + 'e', '_', 'k', 'i', 'n', 'd', '\"', '\324', '\004', '\n', '\004', 'D', + 'e', 'c', 'l', '\022', '\022', '\n', '\004', 'n', 'a', 'm', 'e', '\030', + '\001', ' ', '\001', '(', '\t', 'R', '\004', 'n', 'a', 'm', 'e', '\022', + '0', '\n', '\005', 'i', 'd', 'e', 'n', 't', '\030', '\002', ' ', '\001', + '(', '\013', '2', '\030', '.', 'c', 'e', 'l', '.', 'e', 'x', 'p', + 'r', '.', 'D', 'e', 'c', 'l', '.', 'I', 'd', 'e', 'n', 't', + 'D', 'e', 'c', 'l', 'H', '\000', 'R', '\005', 'i', 'd', 'e', 'n', + 't', '\022', '9', '\n', '\010', 'f', 'u', 'n', 'c', 't', 'i', 'o', + 'n', '\030', '\003', ' ', '\001', '(', '\013', '2', '\033', '.', 'c', 'e', + 'l', '.', 'e', 'x', 'p', 'r', '.', 'D', 'e', 'c', 'l', '.', + 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 'D', 'e', 'c', 'l', + 'H', '\000', 'R', '\010', 'f', 'u', 'n', 'c', 't', 'i', 'o', 'n', + '\032', 'k', '\n', '\t', 'I', 'd', 'e', 'n', 't', 'D', 'e', 'c', + 'l', '\022', '\"', '\n', '\004', 't', 'y', 'p', 'e', '\030', '\001', ' ', + '\001', '(', '\013', '2', '\016', '.', 'c', 'e', 'l', '.', 'e', 'x', + 'p', 'r', '.', 'T', 'y', 'p', 'e', 'R', '\004', 't', 'y', 'p', + 'e', '\022', '(', '\n', '\005', 'v', 'a', 'l', 'u', 'e', '\030', '\002', + ' ', '\001', '(', '\013', '2', '\022', '.', 'c', 'e', 'l', '.', 'e', + 'x', 'p', 'r', '.', 'C', 'o', 'n', 's', 't', 'a', 'n', 't', + 'R', '\005', 'v', 'a', 'l', 'u', 'e', '\022', '\020', '\n', '\003', 'd', + 'o', 'c', '\030', '\003', ' ', '\001', '(', '\t', 'R', '\003', 'd', 'o', + 'c', '\032', '\320', '\002', '\n', '\014', 'F', 'u', 'n', 'c', 't', 'i', + 'o', 'n', 'D', 'e', 'c', 'l', '\022', 'B', '\n', '\t', 'o', 'v', + 'e', 'r', 'l', 'o', 'a', 'd', 's', '\030', '\001', ' ', '\003', '(', + '\013', '2', '$', '.', 'c', 'e', 'l', '.', 'e', 'x', 'p', 'r', + '.', 'D', 'e', 'c', 'l', '.', 'F', 'u', 'n', 'c', 't', 'i', + 'o', 'n', 'D', 'e', 'c', 'l', '.', 'O', 'v', 'e', 'r', 'l', + 'o', 'a', 'd', 'R', '\t', 'o', 'v', 'e', 'r', 'l', 'o', 'a', + 'd', 's', '\022', '\020', '\n', '\003', 'd', 'o', 'c', '\030', '\002', ' ', + '\001', '(', '\t', 'R', '\003', 'd', 'o', 'c', '\032', '\351', '\001', '\n', + '\010', 'O', 'v', 'e', 'r', 'l', 'o', 'a', 'd', '\022', '\037', '\n', + '\013', 'o', 'v', 'e', 'r', 'l', 'o', 'a', 'd', '_', 'i', 'd', + '\030', '\001', ' ', '\001', '(', '\t', 'R', '\n', 'o', 'v', 'e', 'r', + 'l', 'o', 'a', 'd', 'I', 'd', '\022', '&', '\n', '\006', 'p', 'a', + 'r', 'a', 'm', 's', '\030', '\002', ' ', '\003', '(', '\013', '2', '\016', + '.', 'c', 'e', 'l', '.', 'e', 'x', 'p', 'r', '.', 'T', 'y', + 'p', 'e', 'R', '\006', 'p', 'a', 'r', 'a', 'm', 's', '\022', '\037', + '\n', '\013', 't', 'y', 'p', 'e', '_', 'p', 'a', 'r', 'a', 'm', + 's', '\030', '\003', ' ', '\003', '(', '\t', 'R', '\n', 't', 'y', 'p', + 'e', 'P', 'a', 'r', 'a', 'm', 's', '\022', '/', '\n', '\013', 'r', + 'e', 's', 'u', 'l', 't', '_', 't', 'y', 'p', 'e', '\030', '\004', + ' ', '\001', '(', '\013', '2', '\016', '.', 'c', 'e', 'l', '.', 'e', + 'x', 'p', 'r', '.', 'T', 'y', 'p', 'e', 'R', '\n', 'r', 'e', + 's', 'u', 'l', 't', 'T', 'y', 'p', 'e', '\022', '0', '\n', '\024', + 'i', 's', '_', 'i', 'n', 's', 't', 'a', 'n', 'c', 'e', '_', + 'f', 'u', 'n', 'c', 't', 'i', 'o', 'n', '\030', '\005', ' ', '\001', + '(', '\010', 'R', '\022', 'i', 's', 'I', 'n', 's', 't', 'a', 'n', + 'c', 'e', 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', '\022', '\020', + '\n', '\003', 'd', 'o', 'c', '\030', '\006', ' ', '\001', '(', '\t', 'R', + '\003', 'd', 'o', 'c', 'B', '\013', '\n', '\t', 'd', 'e', 'c', 'l', + '_', 'k', 'i', 'n', 'd', '\"', 'j', '\n', '\t', 'R', 'e', 'f', + 'e', 'r', 'e', 'n', 'c', 'e', '\022', '\022', '\n', '\004', 'n', 'a', + 'm', 'e', '\030', '\001', ' ', '\001', '(', '\t', 'R', '\004', 'n', 'a', + 'm', 'e', '\022', '\037', '\n', '\013', 'o', 'v', 'e', 'r', 'l', 'o', + 'a', 'd', '_', 'i', 'd', '\030', '\003', ' ', '\003', '(', '\t', 'R', + '\n', 'o', 'v', 'e', 'r', 'l', 'o', 'a', 'd', 'I', 'd', '\022', + '(', '\n', '\005', 'v', 'a', 'l', 'u', 'e', '\030', '\004', ' ', '\001', + '(', '\013', '2', '\022', '.', 'c', 'e', 'l', '.', 'e', 'x', 'p', + 'r', '.', 'C', 'o', 'n', 's', 't', 'a', 'n', 't', 'R', '\005', + 'v', 'a', 'l', 'u', 'e', 'B', ',', '\n', '\014', 'd', 'e', 'v', + '.', 'c', 'e', 'l', '.', 'e', 'x', 'p', 'r', 'B', '\t', 'D', + 'e', 'c', 'l', 'P', 'r', 'o', 't', 'o', 'P', '\001', 'Z', '\014', + 'c', 'e', 'l', '.', 'd', 'e', 'v', '/', 'e', 'x', 'p', 'r', + '\370', '\001', '\001', 'b', '\006', 'p', 'r', 'o', 't', 'o', '3', +}; + +static _upb_DefPool_Init *deps[4] = { + &cel_expr_syntax_proto_upbdefinit, + &google_protobuf_empty_proto_upbdefinit, + &google_protobuf_struct_proto_upbdefinit, + NULL, +}; + +_upb_DefPool_Init cel_expr_checked_proto_upbdefinit = { + deps, + &cel_expr_checked_proto_upb_file_layout, + "cel/expr/checked.proto", + UPB_STRINGVIEW_INIT(descriptor, sizeof(descriptor)), +}; diff --git a/src/core/ext/upbdefs-gen/cel/expr/checked.upbdefs.h b/src/core/ext/upbdefs-gen/cel/expr/checked.upbdefs.h new file mode 100644 index 0000000000000..1b96e152dd401 --- /dev/null +++ b/src/core/ext/upbdefs-gen/cel/expr/checked.upbdefs.h @@ -0,0 +1,97 @@ +/* This file was generated by upb_generator from the input file: + * + * cel/expr/checked.proto + * + * Do not edit -- your changes will be discarded when the file is + * regenerated. + * NO CHECKED-IN PROTOBUF GENCODE */ + + + +#ifndef CEL_EXPR_CHECKED_PROTO_UPB_H__UPBDEFS_H_ +#define CEL_EXPR_CHECKED_PROTO_UPB_H__UPBDEFS_H_ + +#include "upb/reflection/def.h" +#include "upb/reflection/internal/def_pool.h" + +#include "upb/port/def.inc" + +#ifdef __cplusplus +extern "C" { +#endif + +extern _upb_DefPool_Init cel_expr_checked_proto_upbdefinit; + +UPB_INLINE const upb_MessageDef *cel_expr_CheckedExpr_getmsgdef(upb_DefPool *s) { + _upb_DefPool_LoadDefInit(s, &cel_expr_checked_proto_upbdefinit); + return upb_DefPool_FindMessageByName(s, "cel.expr.CheckedExpr"); +} + +UPB_INLINE const upb_MessageDef *cel_expr_CheckedExpr_ReferenceMapEntry_getmsgdef(upb_DefPool *s) { + _upb_DefPool_LoadDefInit(s, &cel_expr_checked_proto_upbdefinit); + return upb_DefPool_FindMessageByName(s, "cel.expr.CheckedExpr.ReferenceMapEntry"); +} + +UPB_INLINE const upb_MessageDef *cel_expr_CheckedExpr_TypeMapEntry_getmsgdef(upb_DefPool *s) { + _upb_DefPool_LoadDefInit(s, &cel_expr_checked_proto_upbdefinit); + return upb_DefPool_FindMessageByName(s, "cel.expr.CheckedExpr.TypeMapEntry"); +} + +UPB_INLINE const upb_MessageDef *cel_expr_Type_getmsgdef(upb_DefPool *s) { + _upb_DefPool_LoadDefInit(s, &cel_expr_checked_proto_upbdefinit); + return upb_DefPool_FindMessageByName(s, "cel.expr.Type"); +} + +UPB_INLINE const upb_MessageDef *cel_expr_Type_ListType_getmsgdef(upb_DefPool *s) { + _upb_DefPool_LoadDefInit(s, &cel_expr_checked_proto_upbdefinit); + return upb_DefPool_FindMessageByName(s, "cel.expr.Type.ListType"); +} + +UPB_INLINE const upb_MessageDef *cel_expr_Type_MapType_getmsgdef(upb_DefPool *s) { + _upb_DefPool_LoadDefInit(s, &cel_expr_checked_proto_upbdefinit); + return upb_DefPool_FindMessageByName(s, "cel.expr.Type.MapType"); +} + +UPB_INLINE const upb_MessageDef *cel_expr_Type_FunctionType_getmsgdef(upb_DefPool *s) { + _upb_DefPool_LoadDefInit(s, &cel_expr_checked_proto_upbdefinit); + return upb_DefPool_FindMessageByName(s, "cel.expr.Type.FunctionType"); +} + +UPB_INLINE const upb_MessageDef *cel_expr_Type_AbstractType_getmsgdef(upb_DefPool *s) { + _upb_DefPool_LoadDefInit(s, &cel_expr_checked_proto_upbdefinit); + return upb_DefPool_FindMessageByName(s, "cel.expr.Type.AbstractType"); +} + +UPB_INLINE const upb_MessageDef *cel_expr_Decl_getmsgdef(upb_DefPool *s) { + _upb_DefPool_LoadDefInit(s, &cel_expr_checked_proto_upbdefinit); + return upb_DefPool_FindMessageByName(s, "cel.expr.Decl"); +} + +UPB_INLINE const upb_MessageDef *cel_expr_Decl_IdentDecl_getmsgdef(upb_DefPool *s) { + _upb_DefPool_LoadDefInit(s, &cel_expr_checked_proto_upbdefinit); + return upb_DefPool_FindMessageByName(s, "cel.expr.Decl.IdentDecl"); +} + +UPB_INLINE const upb_MessageDef *cel_expr_Decl_FunctionDecl_getmsgdef(upb_DefPool *s) { + _upb_DefPool_LoadDefInit(s, &cel_expr_checked_proto_upbdefinit); + return upb_DefPool_FindMessageByName(s, "cel.expr.Decl.FunctionDecl"); +} + +UPB_INLINE const upb_MessageDef *cel_expr_Decl_FunctionDecl_Overload_getmsgdef(upb_DefPool *s) { + _upb_DefPool_LoadDefInit(s, &cel_expr_checked_proto_upbdefinit); + return upb_DefPool_FindMessageByName(s, "cel.expr.Decl.FunctionDecl.Overload"); +} + +UPB_INLINE const upb_MessageDef *cel_expr_Reference_getmsgdef(upb_DefPool *s) { + _upb_DefPool_LoadDefInit(s, &cel_expr_checked_proto_upbdefinit); + return upb_DefPool_FindMessageByName(s, "cel.expr.Reference"); +} + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#include "upb/port/undef.inc" + +#endif /* CEL_EXPR_CHECKED_PROTO_UPB_H__UPBDEFS_H_ */ diff --git a/src/core/ext/upbdefs-gen/cel/expr/syntax.upbdefs.c b/src/core/ext/upbdefs-gen/cel/expr/syntax.upbdefs.c new file mode 100644 index 0000000000000..fabadd7ccac02 --- /dev/null +++ b/src/core/ext/upbdefs-gen/cel/expr/syntax.upbdefs.c @@ -0,0 +1,283 @@ +/* This file was generated by upb_generator from the input file: + * + * cel/expr/syntax.proto + * + * Do not edit -- your changes will be discarded when the file is + * regenerated. + * NO CHECKED-IN PROTOBUF GENCODE */ + + +#include "upb/reflection/def.h" +#include "cel/expr/syntax.upbdefs.h" +#include "cel/expr/syntax.upb_minitable.h" + +extern _upb_DefPool_Init google_protobuf_duration_proto_upbdefinit; +extern _upb_DefPool_Init google_protobuf_struct_proto_upbdefinit; +extern _upb_DefPool_Init google_protobuf_timestamp_proto_upbdefinit; + +static const char descriptor[2993] = { + '\n', '\025', 'c', 'e', 'l', '/', 'e', 'x', 'p', 'r', '/', 's', + 'y', 'n', 't', 'a', 'x', '.', 'p', 'r', 'o', 't', 'o', '\022', + '\010', 'c', 'e', 'l', '.', 'e', 'x', 'p', 'r', '\032', '\036', 'g', + 'o', 'o', 'g', 'l', 'e', '/', 'p', 'r', 'o', 't', 'o', 'b', + 'u', 'f', '/', 'd', 'u', 'r', 'a', 't', 'i', 'o', 'n', '.', + 'p', 'r', 'o', 't', 'o', '\032', '\034', 'g', 'o', 'o', 'g', 'l', + 'e', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 's', + 't', 'r', 'u', 'c', 't', '.', 'p', 'r', 'o', 't', 'o', '\032', + '\037', 'g', 'o', 'o', 'g', 'l', 'e', '/', 'p', 'r', 'o', 't', + 'o', 'b', 'u', 'f', '/', 't', 'i', 'm', 'e', 's', 't', 'a', + 'm', 'p', '.', 'p', 'r', 'o', 't', 'o', '\"', 'g', '\n', '\n', + 'P', 'a', 'r', 's', 'e', 'd', 'E', 'x', 'p', 'r', '\022', '\"', + '\n', '\004', 'e', 'x', 'p', 'r', '\030', '\002', ' ', '\001', '(', '\013', + '2', '\016', '.', 'c', 'e', 'l', '.', 'e', 'x', 'p', 'r', '.', + 'E', 'x', 'p', 'r', 'R', '\004', 'e', 'x', 'p', 'r', '\022', '5', + '\n', '\013', 's', 'o', 'u', 'r', 'c', 'e', '_', 'i', 'n', 'f', + 'o', '\030', '\003', ' ', '\001', '(', '\013', '2', '\024', '.', 'c', 'e', + 'l', '.', 'e', 'x', 'p', 'r', '.', 'S', 'o', 'u', 'r', 'c', + 'e', 'I', 'n', 'f', 'o', 'R', '\n', 's', 'o', 'u', 'r', 'c', + 'e', 'I', 'n', 'f', 'o', '\"', '\232', '\013', '\n', '\004', 'E', 'x', + 'p', 'r', '\022', '\016', '\n', '\002', 'i', 'd', '\030', '\002', ' ', '\001', + '(', '\003', 'R', '\002', 'i', 'd', '\022', '3', '\n', '\n', 'c', 'o', + 'n', 's', 't', '_', 'e', 'x', 'p', 'r', '\030', '\003', ' ', '\001', + '(', '\013', '2', '\022', '.', 'c', 'e', 'l', '.', 'e', 'x', 'p', + 'r', '.', 'C', 'o', 'n', 's', 't', 'a', 'n', 't', 'H', '\000', + 'R', '\t', 'c', 'o', 'n', 's', 't', 'E', 'x', 'p', 'r', '\022', + '5', '\n', '\n', 'i', 'd', 'e', 'n', 't', '_', 'e', 'x', 'p', + 'r', '\030', '\004', ' ', '\001', '(', '\013', '2', '\024', '.', 'c', 'e', + 'l', '.', 'e', 'x', 'p', 'r', '.', 'E', 'x', 'p', 'r', '.', + 'I', 'd', 'e', 'n', 't', 'H', '\000', 'R', '\t', 'i', 'd', 'e', + 'n', 't', 'E', 'x', 'p', 'r', '\022', '8', '\n', '\013', 's', 'e', + 'l', 'e', 'c', 't', '_', 'e', 'x', 'p', 'r', '\030', '\005', ' ', + '\001', '(', '\013', '2', '\025', '.', 'c', 'e', 'l', '.', 'e', 'x', + 'p', 'r', '.', 'E', 'x', 'p', 'r', '.', 'S', 'e', 'l', 'e', + 'c', 't', 'H', '\000', 'R', '\n', 's', 'e', 'l', 'e', 'c', 't', + 'E', 'x', 'p', 'r', '\022', '2', '\n', '\t', 'c', 'a', 'l', 'l', + '_', 'e', 'x', 'p', 'r', '\030', '\006', ' ', '\001', '(', '\013', '2', + '\023', '.', 'c', 'e', 'l', '.', 'e', 'x', 'p', 'r', '.', 'E', + 'x', 'p', 'r', '.', 'C', 'a', 'l', 'l', 'H', '\000', 'R', '\010', + 'c', 'a', 'l', 'l', 'E', 'x', 'p', 'r', '\022', '8', '\n', '\t', + 'l', 'i', 's', 't', '_', 'e', 'x', 'p', 'r', '\030', '\007', ' ', + '\001', '(', '\013', '2', '\031', '.', 'c', 'e', 'l', '.', 'e', 'x', + 'p', 'r', '.', 'E', 'x', 'p', 'r', '.', 'C', 'r', 'e', 'a', + 't', 'e', 'L', 'i', 's', 't', 'H', '\000', 'R', '\010', 'l', 'i', + 's', 't', 'E', 'x', 'p', 'r', '\022', '>', '\n', '\013', 's', 't', + 'r', 'u', 'c', 't', '_', 'e', 'x', 'p', 'r', '\030', '\010', ' ', + '\001', '(', '\013', '2', '\033', '.', 'c', 'e', 'l', '.', 'e', 'x', + 'p', 'r', '.', 'E', 'x', 'p', 'r', '.', 'C', 'r', 'e', 'a', + 't', 'e', 'S', 't', 'r', 'u', 'c', 't', 'H', '\000', 'R', '\n', + 's', 't', 'r', 'u', 'c', 't', 'E', 'x', 'p', 'r', '\022', 'M', + '\n', '\022', 'c', 'o', 'm', 'p', 'r', 'e', 'h', 'e', 'n', 's', + 'i', 'o', 'n', '_', 'e', 'x', 'p', 'r', '\030', '\t', ' ', '\001', + '(', '\013', '2', '\034', '.', 'c', 'e', 'l', '.', 'e', 'x', 'p', + 'r', '.', 'E', 'x', 'p', 'r', '.', 'C', 'o', 'm', 'p', 'r', + 'e', 'h', 'e', 'n', 's', 'i', 'o', 'n', 'H', '\000', 'R', '\021', + 'c', 'o', 'm', 'p', 'r', 'e', 'h', 'e', 'n', 's', 'i', 'o', + 'n', 'E', 'x', 'p', 'r', '\032', '\033', '\n', '\005', 'I', 'd', 'e', + 'n', 't', '\022', '\022', '\n', '\004', 'n', 'a', 'm', 'e', '\030', '\001', + ' ', '\001', '(', '\t', 'R', '\004', 'n', 'a', 'm', 'e', '\032', 'e', + '\n', '\006', 'S', 'e', 'l', 'e', 'c', 't', '\022', '(', '\n', '\007', + 'o', 'p', 'e', 'r', 'a', 'n', 'd', '\030', '\001', ' ', '\001', '(', + '\013', '2', '\016', '.', 'c', 'e', 'l', '.', 'e', 'x', 'p', 'r', + '.', 'E', 'x', 'p', 'r', 'R', '\007', 'o', 'p', 'e', 'r', 'a', + 'n', 'd', '\022', '\024', '\n', '\005', 'f', 'i', 'e', 'l', 'd', '\030', + '\002', ' ', '\001', '(', '\t', 'R', '\005', 'f', 'i', 'e', 'l', 'd', + '\022', '\033', '\n', '\t', 't', 'e', 's', 't', '_', 'o', 'n', 'l', + 'y', '\030', '\003', ' ', '\001', '(', '\010', 'R', '\010', 't', 'e', 's', + 't', 'O', 'n', 'l', 'y', '\032', 'n', '\n', '\004', 'C', 'a', 'l', + 'l', '\022', '&', '\n', '\006', 't', 'a', 'r', 'g', 'e', 't', '\030', + '\001', ' ', '\001', '(', '\013', '2', '\016', '.', 'c', 'e', 'l', '.', + 'e', 'x', 'p', 'r', '.', 'E', 'x', 'p', 'r', 'R', '\006', 't', + 'a', 'r', 'g', 'e', 't', '\022', '\032', '\n', '\010', 'f', 'u', 'n', + 'c', 't', 'i', 'o', 'n', '\030', '\002', ' ', '\001', '(', '\t', 'R', + '\010', 'f', 'u', 'n', 'c', 't', 'i', 'o', 'n', '\022', '\"', '\n', + '\004', 'a', 'r', 'g', 's', '\030', '\003', ' ', '\003', '(', '\013', '2', + '\016', '.', 'c', 'e', 'l', '.', 'e', 'x', 'p', 'r', '.', 'E', + 'x', 'p', 'r', 'R', '\004', 'a', 'r', 'g', 's', '\032', 'c', '\n', + '\n', 'C', 'r', 'e', 'a', 't', 'e', 'L', 'i', 's', 't', '\022', + '*', '\n', '\010', 'e', 'l', 'e', 'm', 'e', 'n', 't', 's', '\030', + '\001', ' ', '\003', '(', '\013', '2', '\016', '.', 'c', 'e', 'l', '.', + 'e', 'x', 'p', 'r', '.', 'E', 'x', 'p', 'r', 'R', '\010', 'e', + 'l', 'e', 'm', 'e', 'n', 't', 's', '\022', ')', '\n', '\020', 'o', + 'p', 't', 'i', 'o', 'n', 'a', 'l', '_', 'i', 'n', 'd', 'i', + 'c', 'e', 's', '\030', '\002', ' ', '\003', '(', '\005', 'R', '\017', 'o', + 'p', 't', 'i', 'o', 'n', 'a', 'l', 'I', 'n', 'd', 'i', 'c', + 'e', 's', '\032', '\253', '\002', '\n', '\014', 'C', 'r', 'e', 'a', 't', + 'e', 'S', 't', 'r', 'u', 'c', 't', '\022', '!', '\n', '\014', 'm', + 'e', 's', 's', 'a', 'g', 'e', '_', 'n', 'a', 'm', 'e', '\030', + '\001', ' ', '\001', '(', '\t', 'R', '\013', 'm', 'e', 's', 's', 'a', + 'g', 'e', 'N', 'a', 'm', 'e', '\022', ';', '\n', '\007', 'e', 'n', + 't', 'r', 'i', 'e', 's', '\030', '\002', ' ', '\003', '(', '\013', '2', + '!', '.', 'c', 'e', 'l', '.', 'e', 'x', 'p', 'r', '.', 'E', + 'x', 'p', 'r', '.', 'C', 'r', 'e', 'a', 't', 'e', 'S', 't', + 'r', 'u', 'c', 't', '.', 'E', 'n', 't', 'r', 'y', 'R', '\007', + 'e', 'n', 't', 'r', 'i', 'e', 's', '\032', '\272', '\001', '\n', '\005', + 'E', 'n', 't', 'r', 'y', '\022', '\016', '\n', '\002', 'i', 'd', '\030', + '\001', ' ', '\001', '(', '\003', 'R', '\002', 'i', 'd', '\022', '\035', '\n', + '\t', 'f', 'i', 'e', 'l', 'd', '_', 'k', 'e', 'y', '\030', '\002', + ' ', '\001', '(', '\t', 'H', '\000', 'R', '\010', 'f', 'i', 'e', 'l', + 'd', 'K', 'e', 'y', '\022', ')', '\n', '\007', 'm', 'a', 'p', '_', + 'k', 'e', 'y', '\030', '\003', ' ', '\001', '(', '\013', '2', '\016', '.', + 'c', 'e', 'l', '.', 'e', 'x', 'p', 'r', '.', 'E', 'x', 'p', + 'r', 'H', '\000', 'R', '\006', 'm', 'a', 'p', 'K', 'e', 'y', '\022', + '$', '\n', '\005', 'v', 'a', 'l', 'u', 'e', '\030', '\004', ' ', '\001', + '(', '\013', '2', '\016', '.', 'c', 'e', 'l', '.', 'e', 'x', 'p', + 'r', '.', 'E', 'x', 'p', 'r', 'R', '\005', 'v', 'a', 'l', 'u', + 'e', '\022', '%', '\n', '\016', 'o', 'p', 't', 'i', 'o', 'n', 'a', + 'l', '_', 'e', 'n', 't', 'r', 'y', '\030', '\005', ' ', '\001', '(', + '\010', 'R', '\r', 'o', 'p', 't', 'i', 'o', 'n', 'a', 'l', 'E', + 'n', 't', 'r', 'y', 'B', '\n', '\n', '\010', 'k', 'e', 'y', '_', + 'k', 'i', 'n', 'd', '\032', '\312', '\002', '\n', '\r', 'C', 'o', 'm', + 'p', 'r', 'e', 'h', 'e', 'n', 's', 'i', 'o', 'n', '\022', '\031', + '\n', '\010', 'i', 't', 'e', 'r', '_', 'v', 'a', 'r', '\030', '\001', + ' ', '\001', '(', '\t', 'R', '\007', 'i', 't', 'e', 'r', 'V', 'a', + 'r', '\022', '\033', '\n', '\t', 'i', 't', 'e', 'r', '_', 'v', 'a', + 'r', '2', '\030', '\010', ' ', '\001', '(', '\t', 'R', '\010', 'i', 't', + 'e', 'r', 'V', 'a', 'r', '2', '\022', '-', '\n', '\n', 'i', 't', + 'e', 'r', '_', 'r', 'a', 'n', 'g', 'e', '\030', '\002', ' ', '\001', + '(', '\013', '2', '\016', '.', 'c', 'e', 'l', '.', 'e', 'x', 'p', + 'r', '.', 'E', 'x', 'p', 'r', 'R', '\t', 'i', 't', 'e', 'r', + 'R', 'a', 'n', 'g', 'e', '\022', '\031', '\n', '\010', 'a', 'c', 'c', + 'u', '_', 'v', 'a', 'r', '\030', '\003', ' ', '\001', '(', '\t', 'R', + '\007', 'a', 'c', 'c', 'u', 'V', 'a', 'r', '\022', '+', '\n', '\t', + 'a', 'c', 'c', 'u', '_', 'i', 'n', 'i', 't', '\030', '\004', ' ', + '\001', '(', '\013', '2', '\016', '.', 'c', 'e', 'l', '.', 'e', 'x', + 'p', 'r', '.', 'E', 'x', 'p', 'r', 'R', '\010', 'a', 'c', 'c', + 'u', 'I', 'n', 'i', 't', '\022', '5', '\n', '\016', 'l', 'o', 'o', + 'p', '_', 'c', 'o', 'n', 'd', 'i', 't', 'i', 'o', 'n', '\030', + '\005', ' ', '\001', '(', '\013', '2', '\016', '.', 'c', 'e', 'l', '.', + 'e', 'x', 'p', 'r', '.', 'E', 'x', 'p', 'r', 'R', '\r', 'l', + 'o', 'o', 'p', 'C', 'o', 'n', 'd', 'i', 't', 'i', 'o', 'n', + '\022', '+', '\n', '\t', 'l', 'o', 'o', 'p', '_', 's', 't', 'e', + 'p', '\030', '\006', ' ', '\001', '(', '\013', '2', '\016', '.', 'c', 'e', + 'l', '.', 'e', 'x', 'p', 'r', '.', 'E', 'x', 'p', 'r', 'R', + '\010', 'l', 'o', 'o', 'p', 'S', 't', 'e', 'p', '\022', '&', '\n', + '\006', 'r', 'e', 's', 'u', 'l', 't', '\030', '\007', ' ', '\001', '(', + '\013', '2', '\016', '.', 'c', 'e', 'l', '.', 'e', 'x', 'p', 'r', + '.', 'E', 'x', 'p', 'r', 'R', '\006', 'r', 'e', 's', 'u', 'l', + 't', 'B', '\013', '\n', '\t', 'e', 'x', 'p', 'r', '_', 'k', 'i', + 'n', 'd', '\"', '\301', '\003', '\n', '\010', 'C', 'o', 'n', 's', 't', + 'a', 'n', 't', '\022', ';', '\n', '\n', 'n', 'u', 'l', 'l', '_', + 'v', 'a', 'l', 'u', 'e', '\030', '\001', ' ', '\001', '(', '\016', '2', + '\032', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', + 't', 'o', 'b', 'u', 'f', '.', 'N', 'u', 'l', 'l', 'V', 'a', + 'l', 'u', 'e', 'H', '\000', 'R', '\t', 'n', 'u', 'l', 'l', 'V', + 'a', 'l', 'u', 'e', '\022', '\037', '\n', '\n', 'b', 'o', 'o', 'l', + '_', 'v', 'a', 'l', 'u', 'e', '\030', '\002', ' ', '\001', '(', '\010', + 'H', '\000', 'R', '\t', 'b', 'o', 'o', 'l', 'V', 'a', 'l', 'u', + 'e', '\022', '!', '\n', '\013', 'i', 'n', 't', '6', '4', '_', 'v', + 'a', 'l', 'u', 'e', '\030', '\003', ' ', '\001', '(', '\003', 'H', '\000', + 'R', '\n', 'i', 'n', 't', '6', '4', 'V', 'a', 'l', 'u', 'e', + '\022', '#', '\n', '\014', 'u', 'i', 'n', 't', '6', '4', '_', 'v', + 'a', 'l', 'u', 'e', '\030', '\004', ' ', '\001', '(', '\004', 'H', '\000', + 'R', '\013', 'u', 'i', 'n', 't', '6', '4', 'V', 'a', 'l', 'u', + 'e', '\022', '#', '\n', '\014', 'd', 'o', 'u', 'b', 'l', 'e', '_', + 'v', 'a', 'l', 'u', 'e', '\030', '\005', ' ', '\001', '(', '\001', 'H', + '\000', 'R', '\013', 'd', 'o', 'u', 'b', 'l', 'e', 'V', 'a', 'l', + 'u', 'e', '\022', '#', '\n', '\014', 's', 't', 'r', 'i', 'n', 'g', + '_', 'v', 'a', 'l', 'u', 'e', '\030', '\006', ' ', '\001', '(', '\t', + 'H', '\000', 'R', '\013', 's', 't', 'r', 'i', 'n', 'g', 'V', 'a', + 'l', 'u', 'e', '\022', '!', '\n', '\013', 'b', 'y', 't', 'e', 's', + '_', 'v', 'a', 'l', 'u', 'e', '\030', '\007', ' ', '\001', '(', '\014', + 'H', '\000', 'R', '\n', 'b', 'y', 't', 'e', 's', 'V', 'a', 'l', + 'u', 'e', '\022', 'F', '\n', '\016', 'd', 'u', 'r', 'a', 't', 'i', + 'o', 'n', '_', 'v', 'a', 'l', 'u', 'e', '\030', '\010', ' ', '\001', + '(', '\013', '2', '\031', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', + 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'D', 'u', 'r', + 'a', 't', 'i', 'o', 'n', 'B', '\002', '\030', '\001', 'H', '\000', 'R', + '\r', 'd', 'u', 'r', 'a', 't', 'i', 'o', 'n', 'V', 'a', 'l', + 'u', 'e', '\022', 'I', '\n', '\017', 't', 'i', 'm', 'e', 's', 't', + 'a', 'm', 'p', '_', 'v', 'a', 'l', 'u', 'e', '\030', '\t', ' ', + '\001', '(', '\013', '2', '\032', '.', 'g', 'o', 'o', 'g', 'l', 'e', + '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'T', 'i', + 'm', 'e', 's', 't', 'a', 'm', 'p', 'B', '\002', '\030', '\001', 'H', + '\000', 'R', '\016', 't', 'i', 'm', 'e', 's', 't', 'a', 'm', 'p', + 'V', 'a', 'l', 'u', 'e', 'B', '\017', '\n', '\r', 'c', 'o', 'n', + 's', 't', 'a', 'n', 't', '_', 'k', 'i', 'n', 'd', '\"', '\254', + '\006', '\n', '\n', 'S', 'o', 'u', 'r', 'c', 'e', 'I', 'n', 'f', + 'o', '\022', '%', '\n', '\016', 's', 'y', 'n', 't', 'a', 'x', '_', + 'v', 'e', 'r', 's', 'i', 'o', 'n', '\030', '\001', ' ', '\001', '(', + '\t', 'R', '\r', 's', 'y', 'n', 't', 'a', 'x', 'V', 'e', 'r', + 's', 'i', 'o', 'n', '\022', '\032', '\n', '\010', 'l', 'o', 'c', 'a', + 't', 'i', 'o', 'n', '\030', '\002', ' ', '\001', '(', '\t', 'R', '\010', + 'l', 'o', 'c', 'a', 't', 'i', 'o', 'n', '\022', '!', '\n', '\014', + 'l', 'i', 'n', 'e', '_', 'o', 'f', 'f', 's', 'e', 't', 's', + '\030', '\003', ' ', '\003', '(', '\005', 'R', '\013', 'l', 'i', 'n', 'e', + 'O', 'f', 'f', 's', 'e', 't', 's', '\022', 'A', '\n', '\t', 'p', + 'o', 's', 'i', 't', 'i', 'o', 'n', 's', '\030', '\004', ' ', '\003', + '(', '\013', '2', '#', '.', 'c', 'e', 'l', '.', 'e', 'x', 'p', + 'r', '.', 'S', 'o', 'u', 'r', 'c', 'e', 'I', 'n', 'f', 'o', + '.', 'P', 'o', 's', 'i', 't', 'i', 'o', 'n', 's', 'E', 'n', + 't', 'r', 'y', 'R', '\t', 'p', 'o', 's', 'i', 't', 'i', 'o', + 'n', 's', '\022', 'E', '\n', '\013', 'm', 'a', 'c', 'r', 'o', '_', + 'c', 'a', 'l', 'l', 's', '\030', '\005', ' ', '\003', '(', '\013', '2', + '$', '.', 'c', 'e', 'l', '.', 'e', 'x', 'p', 'r', '.', 'S', + 'o', 'u', 'r', 'c', 'e', 'I', 'n', 'f', 'o', '.', 'M', 'a', + 'c', 'r', 'o', 'C', 'a', 'l', 'l', 's', 'E', 'n', 't', 'r', + 'y', 'R', '\n', 'm', 'a', 'c', 'r', 'o', 'C', 'a', 'l', 'l', + 's', '\022', '>', '\n', '\n', 'e', 'x', 't', 'e', 'n', 's', 'i', + 'o', 'n', 's', '\030', '\006', ' ', '\003', '(', '\013', '2', '\036', '.', + 'c', 'e', 'l', '.', 'e', 'x', 'p', 'r', '.', 'S', 'o', 'u', + 'r', 'c', 'e', 'I', 'n', 'f', 'o', '.', 'E', 'x', 't', 'e', + 'n', 's', 'i', 'o', 'n', 'R', '\n', 'e', 'x', 't', 'e', 'n', + 's', 'i', 'o', 'n', 's', '\032', '<', '\n', '\016', 'P', 'o', 's', + 'i', 't', 'i', 'o', 'n', 's', 'E', 'n', 't', 'r', 'y', '\022', + '\020', '\n', '\003', 'k', 'e', 'y', '\030', '\001', ' ', '\001', '(', '\003', + 'R', '\003', 'k', 'e', 'y', '\022', '\024', '\n', '\005', 'v', 'a', 'l', + 'u', 'e', '\030', '\002', ' ', '\001', '(', '\005', 'R', '\005', 'v', 'a', + 'l', 'u', 'e', ':', '\002', '8', '\001', '\032', 'M', '\n', '\017', 'M', + 'a', 'c', 'r', 'o', 'C', 'a', 'l', 'l', 's', 'E', 'n', 't', + 'r', 'y', '\022', '\020', '\n', '\003', 'k', 'e', 'y', '\030', '\001', ' ', + '\001', '(', '\003', 'R', '\003', 'k', 'e', 'y', '\022', '$', '\n', '\005', + 'v', 'a', 'l', 'u', 'e', '\030', '\002', ' ', '\001', '(', '\013', '2', + '\016', '.', 'c', 'e', 'l', '.', 'e', 'x', 'p', 'r', '.', 'E', + 'x', 'p', 'r', 'R', '\005', 'v', 'a', 'l', 'u', 'e', ':', '\002', + '8', '\001', '\032', '\340', '\002', '\n', '\t', 'E', 'x', 't', 'e', 'n', + 's', 'i', 'o', 'n', '\022', '\016', '\n', '\002', 'i', 'd', '\030', '\001', + ' ', '\001', '(', '\t', 'R', '\002', 'i', 'd', '\022', 'Y', '\n', '\023', + 'a', 'f', 'f', 'e', 'c', 't', 'e', 'd', '_', 'c', 'o', 'm', + 'p', 'o', 'n', 'e', 'n', 't', 's', '\030', '\002', ' ', '\003', '(', + '\016', '2', '(', '.', 'c', 'e', 'l', '.', 'e', 'x', 'p', 'r', + '.', 'S', 'o', 'u', 'r', 'c', 'e', 'I', 'n', 'f', 'o', '.', + 'E', 'x', 't', 'e', 'n', 's', 'i', 'o', 'n', '.', 'C', 'o', + 'm', 'p', 'o', 'n', 'e', 'n', 't', 'R', '\022', 'a', 'f', 'f', + 'e', 'c', 't', 'e', 'd', 'C', 'o', 'm', 'p', 'o', 'n', 'e', + 'n', 't', 's', '\022', '@', '\n', '\007', 'v', 'e', 'r', 's', 'i', + 'o', 'n', '\030', '\003', ' ', '\001', '(', '\013', '2', '&', '.', 'c', + 'e', 'l', '.', 'e', 'x', 'p', 'r', '.', 'S', 'o', 'u', 'r', + 'c', 'e', 'I', 'n', 'f', 'o', '.', 'E', 'x', 't', 'e', 'n', + 's', 'i', 'o', 'n', '.', 'V', 'e', 'r', 's', 'i', 'o', 'n', + 'R', '\007', 'v', 'e', 'r', 's', 'i', 'o', 'n', '\032', '5', '\n', + '\007', 'V', 'e', 'r', 's', 'i', 'o', 'n', '\022', '\024', '\n', '\005', + 'm', 'a', 'j', 'o', 'r', '\030', '\001', ' ', '\001', '(', '\003', 'R', + '\005', 'm', 'a', 'j', 'o', 'r', '\022', '\024', '\n', '\005', 'm', 'i', + 'n', 'o', 'r', '\030', '\002', ' ', '\001', '(', '\003', 'R', '\005', 'm', + 'i', 'n', 'o', 'r', '\"', 'o', '\n', '\t', 'C', 'o', 'm', 'p', + 'o', 'n', 'e', 'n', 't', '\022', '\031', '\n', '\025', 'C', 'O', 'M', + 'P', 'O', 'N', 'E', 'N', 'T', '_', 'U', 'N', 'S', 'P', 'E', + 'C', 'I', 'F', 'I', 'E', 'D', '\020', '\000', '\022', '\024', '\n', '\020', + 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '_', 'P', 'A', + 'R', 'S', 'E', 'R', '\020', '\001', '\022', '\032', '\n', '\026', 'C', 'O', + 'M', 'P', 'O', 'N', 'E', 'N', 'T', '_', 'T', 'Y', 'P', 'E', + '_', 'C', 'H', 'E', 'C', 'K', 'E', 'R', '\020', '\002', '\022', '\025', + '\n', '\021', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '_', + 'R', 'U', 'N', 'T', 'I', 'M', 'E', '\020', '\003', 'B', '.', '\n', + '\014', 'd', 'e', 'v', '.', 'c', 'e', 'l', '.', 'e', 'x', 'p', + 'r', 'B', '\013', 'S', 'y', 'n', 't', 'a', 'x', 'P', 'r', 'o', + 't', 'o', 'P', '\001', 'Z', '\014', 'c', 'e', 'l', '.', 'd', 'e', + 'v', '/', 'e', 'x', 'p', 'r', '\370', '\001', '\001', 'b', '\006', 'p', + 'r', 'o', 't', 'o', '3', +}; + +static _upb_DefPool_Init *deps[4] = { + &google_protobuf_duration_proto_upbdefinit, + &google_protobuf_struct_proto_upbdefinit, + &google_protobuf_timestamp_proto_upbdefinit, + NULL, +}; + +_upb_DefPool_Init cel_expr_syntax_proto_upbdefinit = { + deps, + &cel_expr_syntax_proto_upb_file_layout, + "cel/expr/syntax.proto", + UPB_STRINGVIEW_INIT(descriptor, sizeof(descriptor)), +}; diff --git a/src/core/ext/upbdefs-gen/cel/expr/syntax.upbdefs.h b/src/core/ext/upbdefs-gen/cel/expr/syntax.upbdefs.h new file mode 100644 index 0000000000000..15276078ce70d --- /dev/null +++ b/src/core/ext/upbdefs-gen/cel/expr/syntax.upbdefs.h @@ -0,0 +1,107 @@ +/* This file was generated by upb_generator from the input file: + * + * cel/expr/syntax.proto + * + * Do not edit -- your changes will be discarded when the file is + * regenerated. + * NO CHECKED-IN PROTOBUF GENCODE */ + + + +#ifndef CEL_EXPR_SYNTAX_PROTO_UPB_H__UPBDEFS_H_ +#define CEL_EXPR_SYNTAX_PROTO_UPB_H__UPBDEFS_H_ + +#include "upb/reflection/def.h" +#include "upb/reflection/internal/def_pool.h" + +#include "upb/port/def.inc" + +#ifdef __cplusplus +extern "C" { +#endif + +extern _upb_DefPool_Init cel_expr_syntax_proto_upbdefinit; + +UPB_INLINE const upb_MessageDef *cel_expr_ParsedExpr_getmsgdef(upb_DefPool *s) { + _upb_DefPool_LoadDefInit(s, &cel_expr_syntax_proto_upbdefinit); + return upb_DefPool_FindMessageByName(s, "cel.expr.ParsedExpr"); +} + +UPB_INLINE const upb_MessageDef *cel_expr_Expr_getmsgdef(upb_DefPool *s) { + _upb_DefPool_LoadDefInit(s, &cel_expr_syntax_proto_upbdefinit); + return upb_DefPool_FindMessageByName(s, "cel.expr.Expr"); +} + +UPB_INLINE const upb_MessageDef *cel_expr_Expr_Ident_getmsgdef(upb_DefPool *s) { + _upb_DefPool_LoadDefInit(s, &cel_expr_syntax_proto_upbdefinit); + return upb_DefPool_FindMessageByName(s, "cel.expr.Expr.Ident"); +} + +UPB_INLINE const upb_MessageDef *cel_expr_Expr_Select_getmsgdef(upb_DefPool *s) { + _upb_DefPool_LoadDefInit(s, &cel_expr_syntax_proto_upbdefinit); + return upb_DefPool_FindMessageByName(s, "cel.expr.Expr.Select"); +} + +UPB_INLINE const upb_MessageDef *cel_expr_Expr_Call_getmsgdef(upb_DefPool *s) { + _upb_DefPool_LoadDefInit(s, &cel_expr_syntax_proto_upbdefinit); + return upb_DefPool_FindMessageByName(s, "cel.expr.Expr.Call"); +} + +UPB_INLINE const upb_MessageDef *cel_expr_Expr_CreateList_getmsgdef(upb_DefPool *s) { + _upb_DefPool_LoadDefInit(s, &cel_expr_syntax_proto_upbdefinit); + return upb_DefPool_FindMessageByName(s, "cel.expr.Expr.CreateList"); +} + +UPB_INLINE const upb_MessageDef *cel_expr_Expr_CreateStruct_getmsgdef(upb_DefPool *s) { + _upb_DefPool_LoadDefInit(s, &cel_expr_syntax_proto_upbdefinit); + return upb_DefPool_FindMessageByName(s, "cel.expr.Expr.CreateStruct"); +} + +UPB_INLINE const upb_MessageDef *cel_expr_Expr_CreateStruct_Entry_getmsgdef(upb_DefPool *s) { + _upb_DefPool_LoadDefInit(s, &cel_expr_syntax_proto_upbdefinit); + return upb_DefPool_FindMessageByName(s, "cel.expr.Expr.CreateStruct.Entry"); +} + +UPB_INLINE const upb_MessageDef *cel_expr_Expr_Comprehension_getmsgdef(upb_DefPool *s) { + _upb_DefPool_LoadDefInit(s, &cel_expr_syntax_proto_upbdefinit); + return upb_DefPool_FindMessageByName(s, "cel.expr.Expr.Comprehension"); +} + +UPB_INLINE const upb_MessageDef *cel_expr_Constant_getmsgdef(upb_DefPool *s) { + _upb_DefPool_LoadDefInit(s, &cel_expr_syntax_proto_upbdefinit); + return upb_DefPool_FindMessageByName(s, "cel.expr.Constant"); +} + +UPB_INLINE const upb_MessageDef *cel_expr_SourceInfo_getmsgdef(upb_DefPool *s) { + _upb_DefPool_LoadDefInit(s, &cel_expr_syntax_proto_upbdefinit); + return upb_DefPool_FindMessageByName(s, "cel.expr.SourceInfo"); +} + +UPB_INLINE const upb_MessageDef *cel_expr_SourceInfo_PositionsEntry_getmsgdef(upb_DefPool *s) { + _upb_DefPool_LoadDefInit(s, &cel_expr_syntax_proto_upbdefinit); + return upb_DefPool_FindMessageByName(s, "cel.expr.SourceInfo.PositionsEntry"); +} + +UPB_INLINE const upb_MessageDef *cel_expr_SourceInfo_MacroCallsEntry_getmsgdef(upb_DefPool *s) { + _upb_DefPool_LoadDefInit(s, &cel_expr_syntax_proto_upbdefinit); + return upb_DefPool_FindMessageByName(s, "cel.expr.SourceInfo.MacroCallsEntry"); +} + +UPB_INLINE const upb_MessageDef *cel_expr_SourceInfo_Extension_getmsgdef(upb_DefPool *s) { + _upb_DefPool_LoadDefInit(s, &cel_expr_syntax_proto_upbdefinit); + return upb_DefPool_FindMessageByName(s, "cel.expr.SourceInfo.Extension"); +} + +UPB_INLINE const upb_MessageDef *cel_expr_SourceInfo_Extension_Version_getmsgdef(upb_DefPool *s) { + _upb_DefPool_LoadDefInit(s, &cel_expr_syntax_proto_upbdefinit); + return upb_DefPool_FindMessageByName(s, "cel.expr.SourceInfo.Extension.Version"); +} + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#include "upb/port/undef.inc" + +#endif /* CEL_EXPR_SYNTAX_PROTO_UPB_H__UPBDEFS_H_ */ diff --git a/src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.c b/src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.c index 59fe53cefb896..90f19ce7c93d9 100644 --- a/src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.c +++ b/src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.c @@ -13,7 +13,7 @@ extern _upb_DefPool_Init google_protobuf_descriptor_proto_upbdefinit; -static const char descriptor[893] = { +static const char descriptor[898] = { '\n', '\036', 'u', 'd', 'p', 'a', '/', 'a', 'n', 'n', 'o', 't', 'a', 't', 'i', 'o', 'n', 's', '/', 'm', 'i', 'g', 'r', 'a', 't', 'e', '.', 'p', 'r', 'o', 't', 'o', '\022', '\020', 'u', 'd', @@ -84,11 +84,11 @@ static const char descriptor[893] = { 'o', 't', 'a', 't', 'i', 'o', 'n', 's', '.', 'F', 'i', 'l', 'e', 'M', 'i', 'g', 'r', 'a', 't', 'e', 'A', 'n', 'n', 'o', 't', 'a', 't', 'i', 'o', 'n', 'R', '\013', 'f', 'i', 'l', 'e', - 'M', 'i', 'g', 'r', 'a', 't', 'e', 'B', '$', 'Z', '\"', 'g', + 'M', 'i', 'g', 'r', 'a', 't', 'e', 'B', ')', 'Z', '\'', 'g', 'i', 't', 'h', 'u', 'b', '.', 'c', 'o', 'm', '/', 'c', 'n', - 'c', 'f', '/', 'x', 'd', 's', '/', 'g', 'o', '/', 'a', 'n', - 'n', 'o', 't', 'a', 't', 'i', 'o', 'n', 's', 'b', '\006', 'p', - 'r', 'o', 't', 'o', '3', + 'c', 'f', '/', 'x', 'd', 's', '/', 'g', 'o', '/', 'u', 'd', + 'p', 'a', '/', 'a', 'n', 'n', 'o', 't', 'a', 't', 'i', 'o', + 'n', 's', 'b', '\006', 'p', 'r', 'o', 't', 'o', '3', }; static _upb_DefPool_Init *deps[2] = { diff --git a/src/core/ext/upbdefs-gen/udpa/annotations/security.upbdefs.c b/src/core/ext/upbdefs-gen/udpa/annotations/security.upbdefs.c index 9aea86bf427a8..22390962c550d 100644 --- a/src/core/ext/upbdefs-gen/udpa/annotations/security.upbdefs.c +++ b/src/core/ext/upbdefs-gen/udpa/annotations/security.upbdefs.c @@ -14,7 +14,7 @@ extern _upb_DefPool_Init udpa_annotations_status_proto_upbdefinit; extern _upb_DefPool_Init google_protobuf_descriptor_proto_upbdefinit; -static const char descriptor[453] = { +static const char descriptor[458] = { '\n', '\037', 'u', 'd', 'p', 'a', '/', 'a', 'n', 'n', 'o', 't', 'a', 't', 'i', 'o', 'n', 's', '/', 's', 'e', 'c', 'u', 'r', 'i', 't', 'y', '.', 'p', 'r', 'o', 't', 'o', '\022', '\020', 'u', @@ -48,11 +48,12 @@ static const char descriptor[453] = { 't', 'i', 'o', 'n', 's', '.', 'F', 'i', 'e', 'l', 'd', 'S', 'e', 'c', 'u', 'r', 'i', 't', 'y', 'A', 'n', 'n', 'o', 't', 'a', 't', 'i', 'o', 'n', 'R', '\010', 's', 'e', 'c', 'u', 'r', - 'i', 't', 'y', 'B', ',', 'Z', '\"', 'g', 'i', 't', 'h', 'u', + 'i', 't', 'y', 'B', '1', 'Z', '\'', 'g', 'i', 't', 'h', 'u', 'b', '.', 'c', 'o', 'm', '/', 'c', 'n', 'c', 'f', '/', 'x', - 'd', 's', '/', 'g', 'o', '/', 'a', 'n', 'n', 'o', 't', 'a', - 't', 'i', 'o', 'n', 's', '\272', '\200', '\310', '\321', '\006', '\002', '\010', - '\001', 'b', '\006', 'p', 'r', 'o', 't', 'o', '3', + 'd', 's', '/', 'g', 'o', '/', 'u', 'd', 'p', 'a', '/', 'a', + 'n', 'n', 'o', 't', 'a', 't', 'i', 'o', 'n', 's', '\272', '\200', + '\310', '\321', '\006', '\002', '\010', '\001', 'b', '\006', 'p', 'r', 'o', 't', + 'o', '3', }; static _upb_DefPool_Init *deps[3] = { diff --git a/src/core/ext/upbdefs-gen/udpa/annotations/sensitive.upbdefs.c b/src/core/ext/upbdefs-gen/udpa/annotations/sensitive.upbdefs.c index 8c6bc924b0cbc..2a6f0f7d94510 100644 --- a/src/core/ext/upbdefs-gen/udpa/annotations/sensitive.upbdefs.c +++ b/src/core/ext/upbdefs-gen/udpa/annotations/sensitive.upbdefs.c @@ -13,7 +13,7 @@ extern _upb_DefPool_Init google_protobuf_descriptor_proto_upbdefinit; -static const char descriptor[196] = { +static const char descriptor[201] = { '\n', ' ', 'u', 'd', 'p', 'a', '/', 'a', 'n', 'n', 'o', 't', 'a', 't', 'i', 'o', 'n', 's', '/', 's', 'e', 'n', 's', 'i', 't', 'i', 'v', 'e', '.', 'p', 'r', 'o', 't', 'o', '\022', '\020', @@ -26,11 +26,11 @@ static const char descriptor[196] = { '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'F', 'i', 'e', 'l', 'd', 'O', 'p', 't', 'i', 'o', 'n', 's', '\030', '\367', '\266', '\301', '$', ' ', '\001', '(', '\010', 'R', '\t', 's', 'e', 'n', - 's', 'i', 't', 'i', 'v', 'e', 'B', '$', 'Z', '\"', 'g', 'i', + 's', 'i', 't', 'i', 'v', 'e', 'B', ')', 'Z', '\'', 'g', 'i', 't', 'h', 'u', 'b', '.', 'c', 'o', 'm', '/', 'c', 'n', 'c', - 'f', '/', 'x', 'd', 's', '/', 'g', 'o', '/', 'a', 'n', 'n', - 'o', 't', 'a', 't', 'i', 'o', 'n', 's', 'b', '\006', 'p', 'r', - 'o', 't', 'o', '3', + 'f', '/', 'x', 'd', 's', '/', 'g', 'o', '/', 'u', 'd', 'p', + 'a', '/', 'a', 'n', 'n', 'o', 't', 'a', 't', 'i', 'o', 'n', + 's', 'b', '\006', 'p', 'r', 'o', 't', 'o', '3', }; static _upb_DefPool_Init *deps[2] = { diff --git a/src/core/ext/upbdefs-gen/udpa/annotations/status.upbdefs.c b/src/core/ext/upbdefs-gen/udpa/annotations/status.upbdefs.c index f741cc0268524..16c7a9a4622be 100644 --- a/src/core/ext/upbdefs-gen/udpa/annotations/status.upbdefs.c +++ b/src/core/ext/upbdefs-gen/udpa/annotations/status.upbdefs.c @@ -13,7 +13,7 @@ extern _upb_DefPool_Init google_protobuf_descriptor_proto_upbdefinit; -static const char descriptor[483] = { +static const char descriptor[488] = { '\n', '\035', 'u', 'd', 'p', 'a', '/', 'a', 'n', 'n', 'o', 't', 'a', 't', 'i', 'o', 'n', 's', '/', 's', 't', 'a', 't', 'u', 's', '.', 'p', 'r', 'o', 't', 'o', '\022', '\020', 'u', 'd', 'p', @@ -50,11 +50,11 @@ static const char descriptor[483] = { '.', 'a', 'n', 'n', 'o', 't', 'a', 't', 'i', 'o', 'n', 's', '.', 'S', 't', 'a', 't', 'u', 's', 'A', 'n', 'n', 'o', 't', 'a', 't', 'i', 'o', 'n', 'R', '\n', 'f', 'i', 'l', 'e', 'S', - 't', 'a', 't', 'u', 's', 'B', '$', 'Z', '\"', 'g', 'i', 't', + 't', 'a', 't', 'u', 's', 'B', ')', 'Z', '\'', 'g', 'i', 't', 'h', 'u', 'b', '.', 'c', 'o', 'm', '/', 'c', 'n', 'c', 'f', - '/', 'x', 'd', 's', '/', 'g', 'o', '/', 'a', 'n', 'n', 'o', - 't', 'a', 't', 'i', 'o', 'n', 's', 'b', '\006', 'p', 'r', 'o', - 't', 'o', '3', + '/', 'x', 'd', 's', '/', 'g', 'o', '/', 'u', 'd', 'p', 'a', + '/', 'a', 'n', 'n', 'o', 't', 'a', 't', 'i', 'o', 'n', 's', + 'b', '\006', 'p', 'r', 'o', 't', 'o', '3', }; static _upb_DefPool_Init *deps[2] = { diff --git a/src/core/ext/upbdefs-gen/udpa/annotations/versioning.upbdefs.c b/src/core/ext/upbdefs-gen/udpa/annotations/versioning.upbdefs.c index fa39166088ecc..dd3e583855713 100644 --- a/src/core/ext/upbdefs-gen/udpa/annotations/versioning.upbdefs.c +++ b/src/core/ext/upbdefs-gen/udpa/annotations/versioning.upbdefs.c @@ -13,7 +13,7 @@ extern _upb_DefPool_Init google_protobuf_descriptor_proto_upbdefinit; -static const char descriptor[317] = { +static const char descriptor[322] = { '\n', '!', 'u', 'd', 'p', 'a', '/', 'a', 'n', 'n', 'o', 't', 'a', 't', 'i', 'o', 'n', 's', '/', 'v', 'e', 'r', 's', 'i', 'o', 'n', 'i', 'n', 'g', '.', 'p', 'r', 'o', 't', 'o', '\022', @@ -36,11 +36,11 @@ static const char descriptor[317] = { 'n', 'n', 'o', 't', 'a', 't', 'i', 'o', 'n', 's', '.', 'V', 'e', 'r', 's', 'i', 'o', 'n', 'i', 'n', 'g', 'A', 'n', 'n', 'o', 't', 'a', 't', 'i', 'o', 'n', 'R', '\n', 'v', 'e', 'r', - 's', 'i', 'o', 'n', 'i', 'n', 'g', 'B', '$', 'Z', '\"', 'g', + 's', 'i', 'o', 'n', 'i', 'n', 'g', 'B', ')', 'Z', '\'', 'g', 'i', 't', 'h', 'u', 'b', '.', 'c', 'o', 'm', '/', 'c', 'n', - 'c', 'f', '/', 'x', 'd', 's', '/', 'g', 'o', '/', 'a', 'n', - 'n', 'o', 't', 'a', 't', 'i', 'o', 'n', 's', 'b', '\006', 'p', - 'r', 'o', 't', 'o', '3', + 'c', 'f', '/', 'x', 'd', 's', '/', 'g', 'o', '/', 'u', 'd', + 'p', 'a', '/', 'a', 'n', 'n', 'o', 't', 'a', 't', 'i', 'o', + 'n', 's', 'b', '\006', 'p', 'r', 'o', 't', 'o', '3', }; static _upb_DefPool_Init *deps[2] = { diff --git a/src/core/ext/upbdefs-gen/xds/type/matcher/v3/cel.upbdefs.c b/src/core/ext/upbdefs-gen/xds/type/matcher/v3/cel.upbdefs.c index ad5e00fa640b7..cb939f8b417b2 100644 --- a/src/core/ext/upbdefs-gen/xds/type/matcher/v3/cel.upbdefs.c +++ b/src/core/ext/upbdefs-gen/xds/type/matcher/v3/cel.upbdefs.c @@ -11,45 +11,40 @@ #include "xds/type/matcher/v3/cel.upbdefs.h" #include "xds/type/matcher/v3/cel.upb_minitable.h" -extern _upb_DefPool_Init xds_annotations_v3_status_proto_upbdefinit; extern _upb_DefPool_Init xds_type_v3_cel_proto_upbdefinit; extern _upb_DefPool_Init validate_validate_proto_upbdefinit; -static const char descriptor[356] = { +static const char descriptor[315] = { '\n', '\035', 'x', 'd', 's', '/', 't', 'y', 'p', 'e', '/', 'm', 'a', 't', 'c', 'h', 'e', 'r', '/', 'v', '3', '/', 'c', 'e', 'l', '.', 'p', 'r', 'o', 't', 'o', '\022', '\023', 'x', 'd', 's', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', - 'r', '.', 'v', '3', '\032', '\037', 'x', 'd', 's', '/', 'a', 'n', - 'n', 'o', 't', 'a', 't', 'i', 'o', 'n', 's', '/', 'v', '3', - '/', 's', 't', 'a', 't', 'u', 's', '.', 'p', 'r', 'o', 't', - 'o', '\032', '\025', 'x', 'd', 's', '/', 't', 'y', 'p', 'e', '/', - 'v', '3', '/', 'c', 'e', 'l', '.', 'p', 'r', 'o', 't', 'o', - '\032', '\027', 'v', 'a', 'l', 'i', 'd', 'a', 't', 'e', '/', 'v', - 'a', 'l', 'i', 'd', 'a', 't', 'e', '.', 'p', 'r', 'o', 't', - 'o', '\"', 's', '\n', '\n', 'C', 'e', 'l', 'M', 'a', 't', 'c', - 'h', 'e', 'r', '\022', 'C', '\n', '\n', 'e', 'x', 'p', 'r', '_', - 'm', 'a', 't', 'c', 'h', '\030', '\001', ' ', '\001', '(', '\013', '2', - '\032', '.', 'x', 'd', 's', '.', 't', 'y', 'p', 'e', '.', 'v', - '3', '.', 'C', 'e', 'l', 'E', 'x', 'p', 'r', 'e', 's', 's', - 'i', 'o', 'n', 'B', '\010', '\372', 'B', '\005', '\212', '\001', '\002', '\020', - '\001', 'R', '\t', 'e', 'x', 'p', 'r', 'M', 'a', 't', 'c', 'h', - '\022', ' ', '\n', '\013', 'd', 'e', 's', 'c', 'r', 'i', 'p', 't', - 'i', 'o', 'n', '\030', '\002', ' ', '\001', '(', '\t', 'R', '\013', 'd', - 'e', 's', 'c', 'r', 'i', 'p', 't', 'i', 'o', 'n', 'B', '`', - '\n', '\036', 'c', 'o', 'm', '.', 'g', 'i', 't', 'h', 'u', 'b', - '.', 'x', 'd', 's', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', - 't', 'c', 'h', 'e', 'r', '.', 'v', '3', 'B', '\010', 'C', 'e', - 'l', 'P', 'r', 'o', 't', 'o', 'P', '\001', 'Z', '*', 'g', 'i', - 't', 'h', 'u', 'b', '.', 'c', 'o', 'm', '/', 'c', 'n', 'c', - 'f', '/', 'x', 'd', 's', '/', 'g', 'o', '/', 'x', 'd', 's', - '/', 't', 'y', 'p', 'e', '/', 'm', 'a', 't', 'c', 'h', 'e', - 'r', '/', 'v', '3', '\322', '\306', '\244', '\341', '\006', '\002', '\010', '\001', - 'b', '\006', 'p', 'r', 'o', 't', 'o', '3', + 'r', '.', 'v', '3', '\032', '\025', 'x', 'd', 's', '/', 't', 'y', + 'p', 'e', '/', 'v', '3', '/', 'c', 'e', 'l', '.', 'p', 'r', + 'o', 't', 'o', '\032', '\027', 'v', 'a', 'l', 'i', 'd', 'a', 't', + 'e', '/', 'v', 'a', 'l', 'i', 'd', 'a', 't', 'e', '.', 'p', + 'r', 'o', 't', 'o', '\"', 's', '\n', '\n', 'C', 'e', 'l', 'M', + 'a', 't', 'c', 'h', 'e', 'r', '\022', 'C', '\n', '\n', 'e', 'x', + 'p', 'r', '_', 'm', 'a', 't', 'c', 'h', '\030', '\001', ' ', '\001', + '(', '\013', '2', '\032', '.', 'x', 'd', 's', '.', 't', 'y', 'p', + 'e', '.', 'v', '3', '.', 'C', 'e', 'l', 'E', 'x', 'p', 'r', + 'e', 's', 's', 'i', 'o', 'n', 'B', '\010', '\372', 'B', '\005', '\212', + '\001', '\002', '\020', '\001', 'R', '\t', 'e', 'x', 'p', 'r', 'M', 'a', + 't', 'c', 'h', '\022', ' ', '\n', '\013', 'd', 'e', 's', 'c', 'r', + 'i', 'p', 't', 'i', 'o', 'n', '\030', '\002', ' ', '\001', '(', '\t', + 'R', '\013', 'd', 'e', 's', 'c', 'r', 'i', 'p', 't', 'i', 'o', + 'n', 'B', 'X', '\n', '\036', 'c', 'o', 'm', '.', 'g', 'i', 't', + 'h', 'u', 'b', '.', 'x', 'd', 's', '.', 't', 'y', 'p', 'e', + '.', 'm', 'a', 't', 'c', 'h', 'e', 'r', '.', 'v', '3', 'B', + '\010', 'C', 'e', 'l', 'P', 'r', 'o', 't', 'o', 'P', '\001', 'Z', + '*', 'g', 'i', 't', 'h', 'u', 'b', '.', 'c', 'o', 'm', '/', + 'c', 'n', 'c', 'f', '/', 'x', 'd', 's', '/', 'g', 'o', '/', + 'x', 'd', 's', '/', 't', 'y', 'p', 'e', '/', 'm', 'a', 't', + 'c', 'h', 'e', 'r', '/', 'v', '3', 'b', '\006', 'p', 'r', 'o', + 't', 'o', '3', }; -static _upb_DefPool_Init *deps[4] = { - &xds_annotations_v3_status_proto_upbdefinit, +static _upb_DefPool_Init *deps[3] = { &xds_type_v3_cel_proto_upbdefinit, &validate_validate_proto_upbdefinit, NULL, diff --git a/src/core/ext/upbdefs-gen/xds/type/matcher/v3/http_inputs.upbdefs.c b/src/core/ext/upbdefs-gen/xds/type/matcher/v3/http_inputs.upbdefs.c index 178f55a9a4f84..5ff67b11bace9 100644 --- a/src/core/ext/upbdefs-gen/xds/type/matcher/v3/http_inputs.upbdefs.c +++ b/src/core/ext/upbdefs-gen/xds/type/matcher/v3/http_inputs.upbdefs.c @@ -11,33 +11,27 @@ #include "xds/type/matcher/v3/http_inputs.upbdefs.h" #include "xds/type/matcher/v3/http_inputs.upb_minitable.h" -extern _upb_DefPool_Init xds_annotations_v3_status_proto_upbdefinit; - -static const char descriptor[237] = { +static const char descriptor[196] = { '\n', '%', 'x', 'd', 's', '/', 't', 'y', 'p', 'e', '/', 'm', 'a', 't', 'c', 'h', 'e', 'r', '/', 'v', '3', '/', 'h', 't', 't', 'p', '_', 'i', 'n', 'p', 'u', 't', 's', '.', 'p', 'r', 'o', 't', 'o', '\022', '\023', 'x', 'd', 's', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', 'r', '.', 'v', '3', - '\032', '\037', 'x', 'd', 's', '/', 'a', 'n', 'n', 'o', 't', 'a', - 't', 'i', 'o', 'n', 's', '/', 'v', '3', '/', 's', 't', 'a', - 't', 'u', 's', '.', 'p', 'r', 'o', 't', 'o', '\"', '\035', '\n', - '\033', 'H', 't', 't', 'p', 'A', 't', 't', 'r', 'i', 'b', 'u', - 't', 'e', 's', 'C', 'e', 'l', 'M', 'a', 't', 'c', 'h', 'I', - 'n', 'p', 'u', 't', 'B', 'g', '\n', '\036', 'c', 'o', 'm', '.', - 'g', 'i', 't', 'h', 'u', 'b', '.', 'x', 'd', 's', '.', 't', - 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', 'r', '.', - 'v', '3', 'B', '\017', 'H', 't', 't', 'p', 'I', 'n', 'p', 'u', - 't', 's', 'P', 'r', 'o', 't', 'o', 'P', '\001', 'Z', '*', 'g', - 'i', 't', 'h', 'u', 'b', '.', 'c', 'o', 'm', '/', 'c', 'n', - 'c', 'f', '/', 'x', 'd', 's', '/', 'g', 'o', '/', 'x', 'd', - 's', '/', 't', 'y', 'p', 'e', '/', 'm', 'a', 't', 'c', 'h', - 'e', 'r', '/', 'v', '3', '\322', '\306', '\244', '\341', '\006', '\002', '\010', - '\001', 'b', '\006', 'p', 'r', 'o', 't', 'o', '3', + '\"', '\035', '\n', '\033', 'H', 't', 't', 'p', 'A', 't', 't', 'r', + 'i', 'b', 'u', 't', 'e', 's', 'C', 'e', 'l', 'M', 'a', 't', + 'c', 'h', 'I', 'n', 'p', 'u', 't', 'B', '_', '\n', '\036', 'c', + 'o', 'm', '.', 'g', 'i', 't', 'h', 'u', 'b', '.', 'x', 'd', + 's', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', + 'e', 'r', '.', 'v', '3', 'B', '\017', 'H', 't', 't', 'p', 'I', + 'n', 'p', 'u', 't', 's', 'P', 'r', 'o', 't', 'o', 'P', '\001', + 'Z', '*', 'g', 'i', 't', 'h', 'u', 'b', '.', 'c', 'o', 'm', + '/', 'c', 'n', 'c', 'f', '/', 'x', 'd', 's', '/', 'g', 'o', + '/', 'x', 'd', 's', '/', 't', 'y', 'p', 'e', '/', 'm', 'a', + 't', 'c', 'h', 'e', 'r', '/', 'v', '3', 'b', '\006', 'p', 'r', + 'o', 't', 'o', '3', }; -static _upb_DefPool_Init *deps[2] = { - &xds_annotations_v3_status_proto_upbdefinit, +static _upb_DefPool_Init *deps[1] = { NULL, }; diff --git a/src/core/ext/upbdefs-gen/xds/type/matcher/v3/matcher.upbdefs.c b/src/core/ext/upbdefs-gen/xds/type/matcher/v3/matcher.upbdefs.c index 1a53d758223ab..faeb6451cd169 100644 --- a/src/core/ext/upbdefs-gen/xds/type/matcher/v3/matcher.upbdefs.c +++ b/src/core/ext/upbdefs-gen/xds/type/matcher/v3/matcher.upbdefs.c @@ -11,211 +11,208 @@ #include "xds/type/matcher/v3/matcher.upbdefs.h" #include "xds/type/matcher/v3/matcher.upb_minitable.h" -extern _upb_DefPool_Init xds_annotations_v3_status_proto_upbdefinit; extern _upb_DefPool_Init xds_core_v3_extension_proto_upbdefinit; extern _upb_DefPool_Init xds_type_matcher_v3_string_proto_upbdefinit; extern _upb_DefPool_Init validate_validate_proto_upbdefinit; -static const char descriptor[2330] = { +static const char descriptor[2324] = { '\n', '!', 'x', 'd', 's', '/', 't', 'y', 'p', 'e', '/', 'm', 'a', 't', 'c', 'h', 'e', 'r', '/', 'v', '3', '/', 'm', 'a', 't', 'c', 'h', 'e', 'r', '.', 'p', 'r', 'o', 't', 'o', '\022', '\023', 'x', 'd', 's', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', - 't', 'c', 'h', 'e', 'r', '.', 'v', '3', '\032', '\037', 'x', 'd', - 's', '/', 'a', 'n', 'n', 'o', 't', 'a', 't', 'i', 'o', 'n', - 's', '/', 'v', '3', '/', 's', 't', 'a', 't', 'u', 's', '.', - 'p', 'r', 'o', 't', 'o', '\032', '\033', 'x', 'd', 's', '/', 'c', - 'o', 'r', 'e', '/', 'v', '3', '/', 'e', 'x', 't', 'e', 'n', - 's', 'i', 'o', 'n', '.', 'p', 'r', 'o', 't', 'o', '\032', ' ', - 'x', 'd', 's', '/', 't', 'y', 'p', 'e', '/', 'm', 'a', 't', - 'c', 'h', 'e', 'r', '/', 'v', '3', '/', 's', 't', 'r', 'i', - 'n', 'g', '.', 'p', 'r', 'o', 't', 'o', '\032', '\027', 'v', 'a', - 'l', 'i', 'd', 'a', 't', 'e', '/', 'v', 'a', 'l', 'i', 'd', - 'a', 't', 'e', '.', 'p', 'r', 'o', 't', 'o', '\"', '\200', '\020', - '\n', '\007', 'M', 'a', 't', 'c', 'h', 'e', 'r', '\022', 'M', '\n', - '\014', 'm', 'a', 't', 'c', 'h', 'e', 'r', '_', 'l', 'i', 's', - 't', '\030', '\001', ' ', '\001', '(', '\013', '2', '(', '.', 'x', 'd', - 's', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', - 'e', 'r', '.', 'v', '3', '.', 'M', 'a', 't', 'c', 'h', 'e', - 'r', '.', 'M', 'a', 't', 'c', 'h', 'e', 'r', 'L', 'i', 's', - 't', 'H', '\000', 'R', '\013', 'm', 'a', 't', 'c', 'h', 'e', 'r', - 'L', 'i', 's', 't', '\022', 'M', '\n', '\014', 'm', 'a', 't', 'c', - 'h', 'e', 'r', '_', 't', 'r', 'e', 'e', '\030', '\002', ' ', '\001', - '(', '\013', '2', '(', '.', 'x', 'd', 's', '.', 't', 'y', 'p', - 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', 'r', '.', 'v', '3', - '.', 'M', 'a', 't', 'c', 'h', 'e', 'r', '.', 'M', 'a', 't', - 'c', 'h', 'e', 'r', 'T', 'r', 'e', 'e', 'H', '\000', 'R', '\013', - 'm', 'a', 't', 'c', 'h', 'e', 'r', 'T', 'r', 'e', 'e', '\022', - 'D', '\n', '\013', 'o', 'n', '_', 'n', 'o', '_', 'm', 'a', 't', - 'c', 'h', '\030', '\003', ' ', '\001', '(', '\013', '2', '$', '.', 'x', - 'd', 's', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', - 'h', 'e', 'r', '.', 'v', '3', '.', 'M', 'a', 't', 'c', 'h', - 'e', 'r', '.', 'O', 'n', 'M', 'a', 't', 'c', 'h', 'R', '\t', - 'o', 'n', 'N', 'o', 'M', 'a', 't', 'c', 'h', '\032', '\221', '\001', - '\n', '\007', 'O', 'n', 'M', 'a', 't', 'c', 'h', '\022', '8', '\n', - '\007', 'm', 'a', 't', 'c', 'h', 'e', 'r', '\030', '\001', ' ', '\001', - '(', '\013', '2', '\034', '.', 'x', 'd', 's', '.', 't', 'y', 'p', - 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', 'r', '.', 'v', '3', - '.', 'M', 'a', 't', 'c', 'h', 'e', 'r', 'H', '\000', 'R', '\007', - 'm', 'a', 't', 'c', 'h', 'e', 'r', '\022', ';', '\n', '\006', 'a', - 'c', 't', 'i', 'o', 'n', '\030', '\002', ' ', '\001', '(', '\013', '2', - '!', '.', 'x', 'd', 's', '.', 'c', 'o', 'r', 'e', '.', 'v', - '3', '.', 'T', 'y', 'p', 'e', 'd', 'E', 'x', 't', 'e', 'n', - 's', 'i', 'o', 'n', 'C', 'o', 'n', 'f', 'i', 'g', 'H', '\000', - 'R', '\006', 'a', 'c', 't', 'i', 'o', 'n', 'B', '\017', '\n', '\010', - 'o', 'n', '_', 'm', 'a', 't', 'c', 'h', '\022', '\003', '\370', 'B', - '\001', '\032', '\266', '\010', '\n', '\013', 'M', 'a', 't', 'c', 'h', 'e', - 'r', 'L', 'i', 's', 't', '\022', '[', '\n', '\010', 'm', 'a', 't', - 'c', 'h', 'e', 'r', 's', '\030', '\001', ' ', '\003', '(', '\013', '2', - '5', '.', 'x', 'd', 's', '.', 't', 'y', 'p', 'e', '.', 'm', - 'a', 't', 'c', 'h', 'e', 'r', '.', 'v', '3', '.', 'M', 'a', - 't', 'c', 'h', 'e', 'r', '.', 'M', 'a', 't', 'c', 'h', 'e', - 'r', 'L', 'i', 's', 't', '.', 'F', 'i', 'e', 'l', 'd', 'M', - 'a', 't', 'c', 'h', 'e', 'r', 'B', '\010', '\372', 'B', '\005', '\222', - '\001', '\002', '\010', '\001', 'R', '\010', 'm', 'a', 't', 'c', 'h', 'e', - 'r', 's', '\032', '\221', '\006', '\n', '\t', 'P', 'r', 'e', 'd', 'i', - 'c', 'a', 't', 'e', '\022', 'o', '\n', '\020', 's', 'i', 'n', 'g', - 'l', 'e', '_', 'p', 'r', 'e', 'd', 'i', 'c', 'a', 't', 'e', - '\030', '\001', ' ', '\001', '(', '\013', '2', 'B', '.', 'x', 'd', 's', - '.', 't', 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', - 'r', '.', 'v', '3', '.', 'M', 'a', 't', 'c', 'h', 'e', 'r', - '.', 'M', 'a', 't', 'c', 'h', 'e', 'r', 'L', 'i', 's', 't', - '.', 'P', 'r', 'e', 'd', 'i', 'c', 'a', 't', 'e', '.', 'S', - 'i', 'n', 'g', 'l', 'e', 'P', 'r', 'e', 'd', 'i', 'c', 'a', - 't', 'e', 'H', '\000', 'R', '\017', 's', 'i', 'n', 'g', 'l', 'e', - 'P', 'r', 'e', 'd', 'i', 'c', 'a', 't', 'e', '\022', 'a', '\n', - '\n', 'o', 'r', '_', 'm', 'a', 't', 'c', 'h', 'e', 'r', '\030', - '\002', ' ', '\001', '(', '\013', '2', '@', '.', 'x', 'd', 's', '.', + 't', 'c', 'h', 'e', 'r', '.', 'v', '3', '\032', '\033', 'x', 'd', + 's', '/', 'c', 'o', 'r', 'e', '/', 'v', '3', '/', 'e', 'x', + 't', 'e', 'n', 's', 'i', 'o', 'n', '.', 'p', 'r', 'o', 't', + 'o', '\032', ' ', 'x', 'd', 's', '/', 't', 'y', 'p', 'e', '/', + 'm', 'a', 't', 'c', 'h', 'e', 'r', '/', 'v', '3', '/', 's', + 't', 'r', 'i', 'n', 'g', '.', 'p', 'r', 'o', 't', 'o', '\032', + '\027', 'v', 'a', 'l', 'i', 'd', 'a', 't', 'e', '/', 'v', 'a', + 'l', 'i', 'd', 'a', 't', 'e', '.', 'p', 'r', 'o', 't', 'o', + '\"', '\233', '\020', '\n', '\007', 'M', 'a', 't', 'c', 'h', 'e', 'r', + '\022', 'M', '\n', '\014', 'm', 'a', 't', 'c', 'h', 'e', 'r', '_', + 'l', 'i', 's', 't', '\030', '\001', ' ', '\001', '(', '\013', '2', '(', + '.', 'x', 'd', 's', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', + 't', 'c', 'h', 'e', 'r', '.', 'v', '3', '.', 'M', 'a', 't', + 'c', 'h', 'e', 'r', '.', 'M', 'a', 't', 'c', 'h', 'e', 'r', + 'L', 'i', 's', 't', 'H', '\000', 'R', '\013', 'm', 'a', 't', 'c', + 'h', 'e', 'r', 'L', 'i', 's', 't', '\022', 'M', '\n', '\014', 'm', + 'a', 't', 'c', 'h', 'e', 'r', '_', 't', 'r', 'e', 'e', '\030', + '\002', ' ', '\001', '(', '\013', '2', '(', '.', 'x', 'd', 's', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', 'r', '.', 'v', '3', '.', 'M', 'a', 't', 'c', 'h', 'e', 'r', '.', - 'M', 'a', 't', 'c', 'h', 'e', 'r', 'L', 'i', 's', 't', '.', - 'P', 'r', 'e', 'd', 'i', 'c', 'a', 't', 'e', '.', 'P', 'r', - 'e', 'd', 'i', 'c', 'a', 't', 'e', 'L', 'i', 's', 't', 'H', - '\000', 'R', '\t', 'o', 'r', 'M', 'a', 't', 'c', 'h', 'e', 'r', - '\022', 'c', '\n', '\013', 'a', 'n', 'd', '_', 'm', 'a', 't', 'c', - 'h', 'e', 'r', '\030', '\003', ' ', '\001', '(', '\013', '2', '@', '.', + 'M', 'a', 't', 'c', 'h', 'e', 'r', 'T', 'r', 'e', 'e', 'H', + '\000', 'R', '\013', 'm', 'a', 't', 'c', 'h', 'e', 'r', 'T', 'r', + 'e', 'e', '\022', 'D', '\n', '\013', 'o', 'n', '_', 'n', 'o', '_', + 'm', 'a', 't', 'c', 'h', '\030', '\003', ' ', '\001', '(', '\013', '2', + '$', '.', 'x', 'd', 's', '.', 't', 'y', 'p', 'e', '.', 'm', + 'a', 't', 'c', 'h', 'e', 'r', '.', 'v', '3', '.', 'M', 'a', + 't', 'c', 'h', 'e', 'r', '.', 'O', 'n', 'M', 'a', 't', 'c', + 'h', 'R', '\t', 'o', 'n', 'N', 'o', 'M', 'a', 't', 'c', 'h', + '\032', '\266', '\001', '\n', '\007', 'O', 'n', 'M', 'a', 't', 'c', 'h', + '\022', '8', '\n', '\007', 'm', 'a', 't', 'c', 'h', 'e', 'r', '\030', + '\001', ' ', '\001', '(', '\013', '2', '\034', '.', 'x', 'd', 's', '.', + 't', 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', 'r', + '.', 'v', '3', '.', 'M', 'a', 't', 'c', 'h', 'e', 'r', 'H', + '\000', 'R', '\007', 'm', 'a', 't', 'c', 'h', 'e', 'r', '\022', ';', + '\n', '\006', 'a', 'c', 't', 'i', 'o', 'n', '\030', '\002', ' ', '\001', + '(', '\013', '2', '!', '.', 'x', 'd', 's', '.', 'c', 'o', 'r', + 'e', '.', 'v', '3', '.', 'T', 'y', 'p', 'e', 'd', 'E', 'x', + 't', 'e', 'n', 's', 'i', 'o', 'n', 'C', 'o', 'n', 'f', 'i', + 'g', 'H', '\000', 'R', '\006', 'a', 'c', 't', 'i', 'o', 'n', '\022', + '#', '\n', '\r', 'k', 'e', 'e', 'p', '_', 'm', 'a', 't', 'c', + 'h', 'i', 'n', 'g', '\030', '\003', ' ', '\001', '(', '\010', 'R', '\014', + 'k', 'e', 'e', 'p', 'M', 'a', 't', 'c', 'h', 'i', 'n', 'g', + 'B', '\017', '\n', '\010', 'o', 'n', '_', 'm', 'a', 't', 'c', 'h', + '\022', '\003', '\370', 'B', '\001', '\032', '\266', '\010', '\n', '\013', 'M', 'a', + 't', 'c', 'h', 'e', 'r', 'L', 'i', 's', 't', '\022', '[', '\n', + '\010', 'm', 'a', 't', 'c', 'h', 'e', 'r', 's', '\030', '\001', ' ', + '\003', '(', '\013', '2', '5', '.', 'x', 'd', 's', '.', 't', 'y', + 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', 'r', '.', 'v', + '3', '.', 'M', 'a', 't', 'c', 'h', 'e', 'r', '.', 'M', 'a', + 't', 'c', 'h', 'e', 'r', 'L', 'i', 's', 't', '.', 'F', 'i', + 'e', 'l', 'd', 'M', 'a', 't', 'c', 'h', 'e', 'r', 'B', '\010', + '\372', 'B', '\005', '\222', '\001', '\002', '\010', '\001', 'R', '\010', 'm', 'a', + 't', 'c', 'h', 'e', 'r', 's', '\032', '\221', '\006', '\n', '\t', 'P', + 'r', 'e', 'd', 'i', 'c', 'a', 't', 'e', '\022', 'o', '\n', '\020', + 's', 'i', 'n', 'g', 'l', 'e', '_', 'p', 'r', 'e', 'd', 'i', + 'c', 'a', 't', 'e', '\030', '\001', ' ', '\001', '(', '\013', '2', 'B', + '.', 'x', 'd', 's', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', + 't', 'c', 'h', 'e', 'r', '.', 'v', '3', '.', 'M', 'a', 't', + 'c', 'h', 'e', 'r', '.', 'M', 'a', 't', 'c', 'h', 'e', 'r', + 'L', 'i', 's', 't', '.', 'P', 'r', 'e', 'd', 'i', 'c', 'a', + 't', 'e', '.', 'S', 'i', 'n', 'g', 'l', 'e', 'P', 'r', 'e', + 'd', 'i', 'c', 'a', 't', 'e', 'H', '\000', 'R', '\017', 's', 'i', + 'n', 'g', 'l', 'e', 'P', 'r', 'e', 'd', 'i', 'c', 'a', 't', + 'e', '\022', 'a', '\n', '\n', 'o', 'r', '_', 'm', 'a', 't', 'c', + 'h', 'e', 'r', '\030', '\002', ' ', '\001', '(', '\013', '2', '@', '.', 'x', 'd', 's', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', 'r', '.', 'v', '3', '.', 'M', 'a', 't', 'c', 'h', 'e', 'r', '.', 'M', 'a', 't', 'c', 'h', 'e', 'r', 'L', 'i', 's', 't', '.', 'P', 'r', 'e', 'd', 'i', 'c', 'a', 't', 'e', '.', 'P', 'r', 'e', 'd', 'i', 'c', 'a', 't', 'e', 'L', - 'i', 's', 't', 'H', '\000', 'R', '\n', 'a', 'n', 'd', 'M', 'a', - 't', 'c', 'h', 'e', 'r', '\022', 'U', '\n', '\013', 'n', 'o', 't', - '_', 'm', 'a', 't', 'c', 'h', 'e', 'r', '\030', '\004', ' ', '\001', - '(', '\013', '2', '2', '.', 'x', 'd', 's', '.', 't', 'y', 'p', - 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', 'r', '.', 'v', '3', - '.', 'M', 'a', 't', 'c', 'h', 'e', 'r', '.', 'M', 'a', 't', - 'c', 'h', 'e', 'r', 'L', 'i', 's', 't', '.', 'P', 'r', 'e', - 'd', 'i', 'c', 'a', 't', 'e', 'H', '\000', 'R', '\n', 'n', 'o', - 't', 'M', 'a', 't', 'c', 'h', 'e', 'r', '\032', '\363', '\001', '\n', - '\017', 'S', 'i', 'n', 'g', 'l', 'e', 'P', 'r', 'e', 'd', 'i', - 'c', 'a', 't', 'e', '\022', 'A', '\n', '\005', 'i', 'n', 'p', 'u', - 't', '\030', '\001', ' ', '\001', '(', '\013', '2', '!', '.', 'x', 'd', - 's', '.', 'c', 'o', 'r', 'e', '.', 'v', '3', '.', 'T', 'y', - 'p', 'e', 'd', 'E', 'x', 't', 'e', 'n', 's', 'i', 'o', 'n', - 'C', 'o', 'n', 'f', 'i', 'g', 'B', '\010', '\372', 'B', '\005', '\212', - '\001', '\002', '\020', '\001', 'R', '\005', 'i', 'n', 'p', 'u', 't', '\022', - 'E', '\n', '\013', 'v', 'a', 'l', 'u', 'e', '_', 'm', 'a', 't', - 'c', 'h', '\030', '\002', ' ', '\001', '(', '\013', '2', '\"', '.', 'x', - 'd', 's', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', - 'h', 'e', 'r', '.', 'v', '3', '.', 'S', 't', 'r', 'i', 'n', - 'g', 'M', 'a', 't', 'c', 'h', 'e', 'r', 'H', '\000', 'R', '\n', - 'v', 'a', 'l', 'u', 'e', 'M', 'a', 't', 'c', 'h', '\022', 'F', - '\n', '\014', 'c', 'u', 's', 't', 'o', 'm', '_', 'm', 'a', 't', - 'c', 'h', '\030', '\003', ' ', '\001', '(', '\013', '2', '!', '.', 'x', - 'd', 's', '.', 'c', 'o', 'r', 'e', '.', 'v', '3', '.', 'T', - 'y', 'p', 'e', 'd', 'E', 'x', 't', 'e', 'n', 's', 'i', 'o', - 'n', 'C', 'o', 'n', 'f', 'i', 'g', 'H', '\000', 'R', '\013', 'c', - 'u', 's', 't', 'o', 'm', 'M', 'a', 't', 'c', 'h', 'B', '\016', - '\n', '\007', 'm', 'a', 't', 'c', 'h', 'e', 'r', '\022', '\003', '\370', - 'B', '\001', '\032', 'k', '\n', '\r', 'P', 'r', 'e', 'd', 'i', 'c', - 'a', 't', 'e', 'L', 'i', 's', 't', '\022', 'Z', '\n', '\t', 'p', - 'r', 'e', 'd', 'i', 'c', 'a', 't', 'e', '\030', '\001', ' ', '\003', + 'i', 's', 't', 'H', '\000', 'R', '\t', 'o', 'r', 'M', 'a', 't', + 'c', 'h', 'e', 'r', '\022', 'c', '\n', '\013', 'a', 'n', 'd', '_', + 'm', 'a', 't', 'c', 'h', 'e', 'r', '\030', '\003', ' ', '\001', '(', + '\013', '2', '@', '.', 'x', 'd', 's', '.', 't', 'y', 'p', 'e', + '.', 'm', 'a', 't', 'c', 'h', 'e', 'r', '.', 'v', '3', '.', + 'M', 'a', 't', 'c', 'h', 'e', 'r', '.', 'M', 'a', 't', 'c', + 'h', 'e', 'r', 'L', 'i', 's', 't', '.', 'P', 'r', 'e', 'd', + 'i', 'c', 'a', 't', 'e', '.', 'P', 'r', 'e', 'd', 'i', 'c', + 'a', 't', 'e', 'L', 'i', 's', 't', 'H', '\000', 'R', '\n', 'a', + 'n', 'd', 'M', 'a', 't', 'c', 'h', 'e', 'r', '\022', 'U', '\n', + '\013', 'n', 'o', 't', '_', 'm', 'a', 't', 'c', 'h', 'e', 'r', + '\030', '\004', ' ', '\001', '(', '\013', '2', '2', '.', 'x', 'd', 's', + '.', 't', 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', + 'r', '.', 'v', '3', '.', 'M', 'a', 't', 'c', 'h', 'e', 'r', + '.', 'M', 'a', 't', 'c', 'h', 'e', 'r', 'L', 'i', 's', 't', + '.', 'P', 'r', 'e', 'd', 'i', 'c', 'a', 't', 'e', 'H', '\000', + 'R', '\n', 'n', 'o', 't', 'M', 'a', 't', 'c', 'h', 'e', 'r', + '\032', '\363', '\001', '\n', '\017', 'S', 'i', 'n', 'g', 'l', 'e', 'P', + 'r', 'e', 'd', 'i', 'c', 'a', 't', 'e', '\022', 'A', '\n', '\005', + 'i', 'n', 'p', 'u', 't', '\030', '\001', ' ', '\001', '(', '\013', '2', + '!', '.', 'x', 'd', 's', '.', 'c', 'o', 'r', 'e', '.', 'v', + '3', '.', 'T', 'y', 'p', 'e', 'd', 'E', 'x', 't', 'e', 'n', + 's', 'i', 'o', 'n', 'C', 'o', 'n', 'f', 'i', 'g', 'B', '\010', + '\372', 'B', '\005', '\212', '\001', '\002', '\020', '\001', 'R', '\005', 'i', 'n', + 'p', 'u', 't', '\022', 'E', '\n', '\013', 'v', 'a', 'l', 'u', 'e', + '_', 'm', 'a', 't', 'c', 'h', '\030', '\002', ' ', '\001', '(', '\013', + '2', '\"', '.', 'x', 'd', 's', '.', 't', 'y', 'p', 'e', '.', + 'm', 'a', 't', 'c', 'h', 'e', 'r', '.', 'v', '3', '.', 'S', + 't', 'r', 'i', 'n', 'g', 'M', 'a', 't', 'c', 'h', 'e', 'r', + 'H', '\000', 'R', '\n', 'v', 'a', 'l', 'u', 'e', 'M', 'a', 't', + 'c', 'h', '\022', 'F', '\n', '\014', 'c', 'u', 's', 't', 'o', 'm', + '_', 'm', 'a', 't', 'c', 'h', '\030', '\003', ' ', '\001', '(', '\013', + '2', '!', '.', 'x', 'd', 's', '.', 'c', 'o', 'r', 'e', '.', + 'v', '3', '.', 'T', 'y', 'p', 'e', 'd', 'E', 'x', 't', 'e', + 'n', 's', 'i', 'o', 'n', 'C', 'o', 'n', 'f', 'i', 'g', 'H', + '\000', 'R', '\013', 'c', 'u', 's', 't', 'o', 'm', 'M', 'a', 't', + 'c', 'h', 'B', '\016', '\n', '\007', 'm', 'a', 't', 'c', 'h', 'e', + 'r', '\022', '\003', '\370', 'B', '\001', '\032', 'k', '\n', '\r', 'P', 'r', + 'e', 'd', 'i', 'c', 'a', 't', 'e', 'L', 'i', 's', 't', '\022', + 'Z', '\n', '\t', 'p', 'r', 'e', 'd', 'i', 'c', 'a', 't', 'e', + '\030', '\001', ' ', '\003', '(', '\013', '2', '2', '.', 'x', 'd', 's', + '.', 't', 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', + 'r', '.', 'v', '3', '.', 'M', 'a', 't', 'c', 'h', 'e', 'r', + '.', 'M', 'a', 't', 'c', 'h', 'e', 'r', 'L', 'i', 's', 't', + '.', 'P', 'r', 'e', 'd', 'i', 'c', 'a', 't', 'e', 'B', '\010', + '\372', 'B', '\005', '\222', '\001', '\002', '\010', '\002', 'R', '\t', 'p', 'r', + 'e', 'd', 'i', 'c', 'a', 't', 'e', 'B', '\021', '\n', '\n', 'm', + 'a', 't', 'c', 'h', '_', 't', 'y', 'p', 'e', '\022', '\003', '\370', + 'B', '\001', '\032', '\265', '\001', '\n', '\014', 'F', 'i', 'e', 'l', 'd', + 'M', 'a', 't', 'c', 'h', 'e', 'r', '\022', 'Z', '\n', '\t', 'p', + 'r', 'e', 'd', 'i', 'c', 'a', 't', 'e', '\030', '\001', ' ', '\001', '(', '\013', '2', '2', '.', 'x', 'd', 's', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', 'r', '.', 'v', '3', '.', 'M', 'a', 't', 'c', 'h', 'e', 'r', '.', 'M', 'a', 't', 'c', 'h', 'e', 'r', 'L', 'i', 's', 't', '.', 'P', 'r', 'e', - 'd', 'i', 'c', 'a', 't', 'e', 'B', '\010', '\372', 'B', '\005', '\222', - '\001', '\002', '\010', '\002', 'R', '\t', 'p', 'r', 'e', 'd', 'i', 'c', - 'a', 't', 'e', 'B', '\021', '\n', '\n', 'm', 'a', 't', 'c', 'h', - '_', 't', 'y', 'p', 'e', '\022', '\003', '\370', 'B', '\001', '\032', '\265', - '\001', '\n', '\014', 'F', 'i', 'e', 'l', 'd', 'M', 'a', 't', 'c', - 'h', 'e', 'r', '\022', 'Z', '\n', '\t', 'p', 'r', 'e', 'd', 'i', - 'c', 'a', 't', 'e', '\030', '\001', ' ', '\001', '(', '\013', '2', '2', - '.', 'x', 'd', 's', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', - 't', 'c', 'h', 'e', 'r', '.', 'v', '3', '.', 'M', 'a', 't', - 'c', 'h', 'e', 'r', '.', 'M', 'a', 't', 'c', 'h', 'e', 'r', - 'L', 'i', 's', 't', '.', 'P', 'r', 'e', 'd', 'i', 'c', 'a', - 't', 'e', 'B', '\010', '\372', 'B', '\005', '\212', '\001', '\002', '\020', '\001', - 'R', '\t', 'p', 'r', 'e', 'd', 'i', 'c', 'a', 't', 'e', '\022', - 'I', '\n', '\010', 'o', 'n', '_', 'm', 'a', 't', 'c', 'h', '\030', - '\002', ' ', '\001', '(', '\013', '2', '$', '.', 'x', 'd', 's', '.', - 't', 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', 'r', - '.', 'v', '3', '.', 'M', 'a', 't', 'c', 'h', 'e', 'r', '.', - 'O', 'n', 'M', 'a', 't', 'c', 'h', 'B', '\010', '\372', 'B', '\005', - '\212', '\001', '\002', '\020', '\001', 'R', '\007', 'o', 'n', 'M', 'a', 't', - 'c', 'h', '\032', '\251', '\004', '\n', '\013', 'M', 'a', 't', 'c', 'h', - 'e', 'r', 'T', 'r', 'e', 'e', '\022', 'A', '\n', '\005', 'i', 'n', - 'p', 'u', 't', '\030', '\001', ' ', '\001', '(', '\013', '2', '!', '.', - 'x', 'd', 's', '.', 'c', 'o', 'r', 'e', '.', 'v', '3', '.', - 'T', 'y', 'p', 'e', 'd', 'E', 'x', 't', 'e', 'n', 's', 'i', - 'o', 'n', 'C', 'o', 'n', 'f', 'i', 'g', 'B', '\010', '\372', 'B', - '\005', '\212', '\001', '\002', '\020', '\001', 'R', '\005', 'i', 'n', 'p', 'u', - 't', '\022', '[', '\n', '\017', 'e', 'x', 'a', 'c', 't', '_', 'm', - 'a', 't', 'c', 'h', '_', 'm', 'a', 'p', '\030', '\002', ' ', '\001', - '(', '\013', '2', '1', '.', 'x', 'd', 's', '.', 't', 'y', 'p', + 'd', 'i', 'c', 'a', 't', 'e', 'B', '\010', '\372', 'B', '\005', '\212', + '\001', '\002', '\020', '\001', 'R', '\t', 'p', 'r', 'e', 'd', 'i', 'c', + 'a', 't', 'e', '\022', 'I', '\n', '\010', 'o', 'n', '_', 'm', 'a', + 't', 'c', 'h', '\030', '\002', ' ', '\001', '(', '\013', '2', '$', '.', + 'x', 'd', 's', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', 't', + 'c', 'h', 'e', 'r', '.', 'v', '3', '.', 'M', 'a', 't', 'c', + 'h', 'e', 'r', '.', 'O', 'n', 'M', 'a', 't', 'c', 'h', 'B', + '\010', '\372', 'B', '\005', '\212', '\001', '\002', '\020', '\001', 'R', '\007', 'o', + 'n', 'M', 'a', 't', 'c', 'h', '\032', '\251', '\004', '\n', '\013', 'M', + 'a', 't', 'c', 'h', 'e', 'r', 'T', 'r', 'e', 'e', '\022', 'A', + '\n', '\005', 'i', 'n', 'p', 'u', 't', '\030', '\001', ' ', '\001', '(', + '\013', '2', '!', '.', 'x', 'd', 's', '.', 'c', 'o', 'r', 'e', + '.', 'v', '3', '.', 'T', 'y', 'p', 'e', 'd', 'E', 'x', 't', + 'e', 'n', 's', 'i', 'o', 'n', 'C', 'o', 'n', 'f', 'i', 'g', + 'B', '\010', '\372', 'B', '\005', '\212', '\001', '\002', '\020', '\001', 'R', '\005', + 'i', 'n', 'p', 'u', 't', '\022', '[', '\n', '\017', 'e', 'x', 'a', + 'c', 't', '_', 'm', 'a', 't', 'c', 'h', '_', 'm', 'a', 'p', + '\030', '\002', ' ', '\001', '(', '\013', '2', '1', '.', 'x', 'd', 's', + '.', 't', 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', + 'r', '.', 'v', '3', '.', 'M', 'a', 't', 'c', 'h', 'e', 'r', + '.', 'M', 'a', 't', 'c', 'h', 'e', 'r', 'T', 'r', 'e', 'e', + '.', 'M', 'a', 't', 'c', 'h', 'M', 'a', 'p', 'H', '\000', 'R', + '\r', 'e', 'x', 'a', 'c', 't', 'M', 'a', 't', 'c', 'h', 'M', + 'a', 'p', '\022', ']', '\n', '\020', 'p', 'r', 'e', 'f', 'i', 'x', + '_', 'm', 'a', 't', 'c', 'h', '_', 'm', 'a', 'p', '\030', '\003', + ' ', '\001', '(', '\013', '2', '1', '.', 'x', 'd', 's', '.', 't', + 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', 'r', '.', + 'v', '3', '.', 'M', 'a', 't', 'c', 'h', 'e', 'r', '.', 'M', + 'a', 't', 'c', 'h', 'e', 'r', 'T', 'r', 'e', 'e', '.', 'M', + 'a', 't', 'c', 'h', 'M', 'a', 'p', 'H', '\000', 'R', '\016', 'p', + 'r', 'e', 'f', 'i', 'x', 'M', 'a', 't', 'c', 'h', 'M', 'a', + 'p', '\022', 'F', '\n', '\014', 'c', 'u', 's', 't', 'o', 'm', '_', + 'm', 'a', 't', 'c', 'h', '\030', '\004', ' ', '\001', '(', '\013', '2', + '!', '.', 'x', 'd', 's', '.', 'c', 'o', 'r', 'e', '.', 'v', + '3', '.', 'T', 'y', 'p', 'e', 'd', 'E', 'x', 't', 'e', 'n', + 's', 'i', 'o', 'n', 'C', 'o', 'n', 'f', 'i', 'g', 'H', '\000', + 'R', '\013', 'c', 'u', 's', 't', 'o', 'm', 'M', 'a', 't', 'c', + 'h', '\032', '\300', '\001', '\n', '\010', 'M', 'a', 't', 'c', 'h', 'M', + 'a', 'p', '\022', 'V', '\n', '\003', 'm', 'a', 'p', '\030', '\001', ' ', + '\003', '(', '\013', '2', ':', '.', 'x', 'd', 's', '.', 't', 'y', + 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', 'r', '.', 'v', + '3', '.', 'M', 'a', 't', 'c', 'h', 'e', 'r', '.', 'M', 'a', + 't', 'c', 'h', 'e', 'r', 'T', 'r', 'e', 'e', '.', 'M', 'a', + 't', 'c', 'h', 'M', 'a', 'p', '.', 'M', 'a', 'p', 'E', 'n', + 't', 'r', 'y', 'B', '\010', '\372', 'B', '\005', '\232', '\001', '\002', '\010', + '\001', 'R', '\003', 'm', 'a', 'p', '\032', '\\', '\n', '\010', 'M', 'a', + 'p', 'E', 'n', 't', 'r', 'y', '\022', '\020', '\n', '\003', 'k', 'e', + 'y', '\030', '\001', ' ', '\001', '(', '\t', 'R', '\003', 'k', 'e', 'y', + '\022', ':', '\n', '\005', 'v', 'a', 'l', 'u', 'e', '\030', '\002', ' ', + '\001', '(', '\013', '2', '$', '.', 'x', 'd', 's', '.', 't', 'y', + 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', 'r', '.', 'v', + '3', '.', 'M', 'a', 't', 'c', 'h', 'e', 'r', '.', 'O', 'n', + 'M', 'a', 't', 'c', 'h', 'R', '\005', 'v', 'a', 'l', 'u', 'e', + ':', '\002', '8', '\001', 'B', '\020', '\n', '\t', 't', 'r', 'e', 'e', + '_', 't', 'y', 'p', 'e', '\022', '\003', '\370', 'B', '\001', 'B', '\016', + '\n', '\014', 'm', 'a', 't', 'c', 'h', 'e', 'r', '_', 't', 'y', + 'p', 'e', 'B', '\\', '\n', '\036', 'c', 'o', 'm', '.', 'g', 'i', + 't', 'h', 'u', 'b', '.', 'x', 'd', 's', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', 'r', '.', 'v', '3', - '.', 'M', 'a', 't', 'c', 'h', 'e', 'r', '.', 'M', 'a', 't', - 'c', 'h', 'e', 'r', 'T', 'r', 'e', 'e', '.', 'M', 'a', 't', - 'c', 'h', 'M', 'a', 'p', 'H', '\000', 'R', '\r', 'e', 'x', 'a', - 'c', 't', 'M', 'a', 't', 'c', 'h', 'M', 'a', 'p', '\022', ']', - '\n', '\020', 'p', 'r', 'e', 'f', 'i', 'x', '_', 'm', 'a', 't', - 'c', 'h', '_', 'm', 'a', 'p', '\030', '\003', ' ', '\001', '(', '\013', - '2', '1', '.', 'x', 'd', 's', '.', 't', 'y', 'p', 'e', '.', - 'm', 'a', 't', 'c', 'h', 'e', 'r', '.', 'v', '3', '.', 'M', - 'a', 't', 'c', 'h', 'e', 'r', '.', 'M', 'a', 't', 'c', 'h', - 'e', 'r', 'T', 'r', 'e', 'e', '.', 'M', 'a', 't', 'c', 'h', - 'M', 'a', 'p', 'H', '\000', 'R', '\016', 'p', 'r', 'e', 'f', 'i', - 'x', 'M', 'a', 't', 'c', 'h', 'M', 'a', 'p', '\022', 'F', '\n', - '\014', 'c', 'u', 's', 't', 'o', 'm', '_', 'm', 'a', 't', 'c', - 'h', '\030', '\004', ' ', '\001', '(', '\013', '2', '!', '.', 'x', 'd', - 's', '.', 'c', 'o', 'r', 'e', '.', 'v', '3', '.', 'T', 'y', - 'p', 'e', 'd', 'E', 'x', 't', 'e', 'n', 's', 'i', 'o', 'n', - 'C', 'o', 'n', 'f', 'i', 'g', 'H', '\000', 'R', '\013', 'c', 'u', - 's', 't', 'o', 'm', 'M', 'a', 't', 'c', 'h', '\032', '\300', '\001', - '\n', '\010', 'M', 'a', 't', 'c', 'h', 'M', 'a', 'p', '\022', 'V', - '\n', '\003', 'm', 'a', 'p', '\030', '\001', ' ', '\003', '(', '\013', '2', - ':', '.', 'x', 'd', 's', '.', 't', 'y', 'p', 'e', '.', 'm', - 'a', 't', 'c', 'h', 'e', 'r', '.', 'v', '3', '.', 'M', 'a', - 't', 'c', 'h', 'e', 'r', '.', 'M', 'a', 't', 'c', 'h', 'e', - 'r', 'T', 'r', 'e', 'e', '.', 'M', 'a', 't', 'c', 'h', 'M', - 'a', 'p', '.', 'M', 'a', 'p', 'E', 'n', 't', 'r', 'y', 'B', - '\010', '\372', 'B', '\005', '\232', '\001', '\002', '\010', '\001', 'R', '\003', 'm', - 'a', 'p', '\032', '\\', '\n', '\010', 'M', 'a', 'p', 'E', 'n', 't', - 'r', 'y', '\022', '\020', '\n', '\003', 'k', 'e', 'y', '\030', '\001', ' ', - '\001', '(', '\t', 'R', '\003', 'k', 'e', 'y', '\022', ':', '\n', '\005', - 'v', 'a', 'l', 'u', 'e', '\030', '\002', ' ', '\001', '(', '\013', '2', - '$', '.', 'x', 'd', 's', '.', 't', 'y', 'p', 'e', '.', 'm', - 'a', 't', 'c', 'h', 'e', 'r', '.', 'v', '3', '.', 'M', 'a', - 't', 'c', 'h', 'e', 'r', '.', 'O', 'n', 'M', 'a', 't', 'c', - 'h', 'R', '\005', 'v', 'a', 'l', 'u', 'e', ':', '\002', '8', '\001', - 'B', '\020', '\n', '\t', 't', 'r', 'e', 'e', '_', 't', 'y', 'p', - 'e', '\022', '\003', '\370', 'B', '\001', ':', '\010', '\322', '\306', '\244', '\341', - '\006', '\002', '\010', '\001', 'B', '\016', '\n', '\014', 'm', 'a', 't', 'c', - 'h', 'e', 'r', '_', 't', 'y', 'p', 'e', 'B', '\\', '\n', '\036', - 'c', 'o', 'm', '.', 'g', 'i', 't', 'h', 'u', 'b', '.', 'x', - 'd', 's', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', - 'h', 'e', 'r', '.', 'v', '3', 'B', '\014', 'M', 'a', 't', 'c', - 'h', 'e', 'r', 'P', 'r', 'o', 't', 'o', 'P', '\001', 'Z', '*', - 'g', 'i', 't', 'h', 'u', 'b', '.', 'c', 'o', 'm', '/', 'c', - 'n', 'c', 'f', '/', 'x', 'd', 's', '/', 'g', 'o', '/', 'x', - 'd', 's', '/', 't', 'y', 'p', 'e', '/', 'm', 'a', 't', 'c', - 'h', 'e', 'r', '/', 'v', '3', 'b', '\006', 'p', 'r', 'o', 't', - 'o', '3', + 'B', '\014', 'M', 'a', 't', 'c', 'h', 'e', 'r', 'P', 'r', 'o', + 't', 'o', 'P', '\001', 'Z', '*', 'g', 'i', 't', 'h', 'u', 'b', + '.', 'c', 'o', 'm', '/', 'c', 'n', 'c', 'f', '/', 'x', 'd', + 's', '/', 'g', 'o', '/', 'x', 'd', 's', '/', 't', 'y', 'p', + 'e', '/', 'm', 'a', 't', 'c', 'h', 'e', 'r', '/', 'v', '3', + 'b', '\006', 'p', 'r', 'o', 't', 'o', '3', }; -static _upb_DefPool_Init *deps[5] = { - &xds_annotations_v3_status_proto_upbdefinit, +static _upb_DefPool_Init *deps[4] = { &xds_core_v3_extension_proto_upbdefinit, &xds_type_matcher_v3_string_proto_upbdefinit, &validate_validate_proto_upbdefinit, diff --git a/src/core/ext/upbdefs-gen/xds/type/matcher/v3/string.upbdefs.c b/src/core/ext/upbdefs-gen/xds/type/matcher/v3/string.upbdefs.c index 9d5f11090c70f..31f73eeb1d47d 100644 --- a/src/core/ext/upbdefs-gen/xds/type/matcher/v3/string.upbdefs.c +++ b/src/core/ext/upbdefs-gen/xds/type/matcher/v3/string.upbdefs.c @@ -11,63 +11,72 @@ #include "xds/type/matcher/v3/string.upbdefs.h" #include "xds/type/matcher/v3/string.upb_minitable.h" +extern _upb_DefPool_Init xds_core_v3_extension_proto_upbdefinit; extern _upb_DefPool_Init xds_type_matcher_v3_regex_proto_upbdefinit; extern _upb_DefPool_Init validate_validate_proto_upbdefinit; -static const char descriptor[593] = { +static const char descriptor[683] = { '\n', ' ', 'x', 'd', 's', '/', 't', 'y', 'p', 'e', '/', 'm', 'a', 't', 'c', 'h', 'e', 'r', '/', 'v', '3', '/', 's', 't', 'r', 'i', 'n', 'g', '.', 'p', 'r', 'o', 't', 'o', '\022', '\023', 'x', 'd', 's', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', 't', - 'c', 'h', 'e', 'r', '.', 'v', '3', '\032', '\037', 'x', 'd', 's', - '/', 't', 'y', 'p', 'e', '/', 'm', 'a', 't', 'c', 'h', 'e', - 'r', '/', 'v', '3', '/', 'r', 'e', 'g', 'e', 'x', '.', 'p', - 'r', 'o', 't', 'o', '\032', '\027', 'v', 'a', 'l', 'i', 'd', 'a', - 't', 'e', '/', 'v', 'a', 'l', 'i', 'd', 'a', 't', 'e', '.', - 'p', 'r', 'o', 't', 'o', '\"', '\231', '\002', '\n', '\r', 'S', 't', - 'r', 'i', 'n', 'g', 'M', 'a', 't', 'c', 'h', 'e', 'r', '\022', - '\026', '\n', '\005', 'e', 'x', 'a', 'c', 't', '\030', '\001', ' ', '\001', - '(', '\t', 'H', '\000', 'R', '\005', 'e', 'x', 'a', 'c', 't', '\022', - '!', '\n', '\006', 'p', 'r', 'e', 'f', 'i', 'x', '\030', '\002', ' ', - '\001', '(', '\t', 'B', '\007', '\372', 'B', '\004', 'r', '\002', '\020', '\001', - 'H', '\000', 'R', '\006', 'p', 'r', 'e', 'f', 'i', 'x', '\022', '!', - '\n', '\006', 's', 'u', 'f', 'f', 'i', 'x', '\030', '\003', ' ', '\001', + 'c', 'h', 'e', 'r', '.', 'v', '3', '\032', '\033', 'x', 'd', 's', + '/', 'c', 'o', 'r', 'e', '/', 'v', '3', '/', 'e', 'x', 't', + 'e', 'n', 's', 'i', 'o', 'n', '.', 'p', 'r', 'o', 't', 'o', + '\032', '\037', 'x', 'd', 's', '/', 't', 'y', 'p', 'e', '/', 'm', + 'a', 't', 'c', 'h', 'e', 'r', '/', 'v', '3', '/', 'r', 'e', + 'g', 'e', 'x', '.', 'p', 'r', 'o', 't', 'o', '\032', '\027', 'v', + 'a', 'l', 'i', 'd', 'a', 't', 'e', '/', 'v', 'a', 'l', 'i', + 'd', 'a', 't', 'e', '.', 'p', 'r', 'o', 't', 'o', '\"', '\326', + '\002', '\n', '\r', 'S', 't', 'r', 'i', 'n', 'g', 'M', 'a', 't', + 'c', 'h', 'e', 'r', '\022', '\026', '\n', '\005', 'e', 'x', 'a', 'c', + 't', '\030', '\001', ' ', '\001', '(', '\t', 'H', '\000', 'R', '\005', 'e', + 'x', 'a', 'c', 't', '\022', '!', '\n', '\006', 'p', 'r', 'e', 'f', + 'i', 'x', '\030', '\002', ' ', '\001', '(', '\t', 'B', '\007', '\372', 'B', + '\004', 'r', '\002', '\020', '\001', 'H', '\000', 'R', '\006', 'p', 'r', 'e', + 'f', 'i', 'x', '\022', '!', '\n', '\006', 's', 'u', 'f', 'f', 'i', + 'x', '\030', '\003', ' ', '\001', '(', '\t', 'B', '\007', '\372', 'B', '\004', + 'r', '\002', '\020', '\001', 'H', '\000', 'R', '\006', 's', 'u', 'f', 'f', + 'i', 'x', '\022', 'L', '\n', '\n', 's', 'a', 'f', 'e', '_', 'r', + 'e', 'g', 'e', 'x', '\030', '\005', ' ', '\001', '(', '\013', '2', '!', + '.', 'x', 'd', 's', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', + 't', 'c', 'h', 'e', 'r', '.', 'v', '3', '.', 'R', 'e', 'g', + 'e', 'x', 'M', 'a', 't', 'c', 'h', 'e', 'r', 'B', '\010', '\372', + 'B', '\005', '\212', '\001', '\002', '\020', '\001', 'H', '\000', 'R', '\t', 's', + 'a', 'f', 'e', 'R', 'e', 'g', 'e', 'x', '\022', '%', '\n', '\010', + 'c', 'o', 'n', 't', 'a', 'i', 'n', 's', '\030', '\007', ' ', '\001', '(', '\t', 'B', '\007', '\372', 'B', '\004', 'r', '\002', '\020', '\001', 'H', - '\000', 'R', '\006', 's', 'u', 'f', 'f', 'i', 'x', '\022', 'L', '\n', - '\n', 's', 'a', 'f', 'e', '_', 'r', 'e', 'g', 'e', 'x', '\030', - '\005', ' ', '\001', '(', '\013', '2', '!', '.', 'x', 'd', 's', '.', - 't', 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', 'r', - '.', 'v', '3', '.', 'R', 'e', 'g', 'e', 'x', 'M', 'a', 't', - 'c', 'h', 'e', 'r', 'B', '\010', '\372', 'B', '\005', '\212', '\001', '\002', - '\020', '\001', 'H', '\000', 'R', '\t', 's', 'a', 'f', 'e', 'R', 'e', - 'g', 'e', 'x', '\022', '%', '\n', '\010', 'c', 'o', 'n', 't', 'a', - 'i', 'n', 's', '\030', '\007', ' ', '\001', '(', '\t', 'B', '\007', '\372', - 'B', '\004', 'r', '\002', '\020', '\001', 'H', '\000', 'R', '\010', 'c', 'o', - 'n', 't', 'a', 'i', 'n', 's', '\022', '\037', '\n', '\013', 'i', 'g', - 'n', 'o', 'r', 'e', '_', 'c', 'a', 's', 'e', '\030', '\006', ' ', - '\001', '(', '\010', 'R', '\n', 'i', 'g', 'n', 'o', 'r', 'e', 'C', - 'a', 's', 'e', 'B', '\024', '\n', '\r', 'm', 'a', 't', 'c', 'h', - '_', 'p', 'a', 't', 't', 'e', 'r', 'n', '\022', '\003', '\370', 'B', - '\001', '\"', ']', '\n', '\021', 'L', 'i', 's', 't', 'S', 't', 'r', - 'i', 'n', 'g', 'M', 'a', 't', 'c', 'h', 'e', 'r', '\022', 'H', - '\n', '\010', 'p', 'a', 't', 't', 'e', 'r', 'n', 's', '\030', '\001', - ' ', '\003', '(', '\013', '2', '\"', '.', 'x', 'd', 's', '.', 't', - 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', 'r', '.', - 'v', '3', '.', 'S', 't', 'r', 'i', 'n', 'g', 'M', 'a', 't', - 'c', 'h', 'e', 'r', 'B', '\010', '\372', 'B', '\005', '\222', '\001', '\002', - '\010', '\001', 'R', '\010', 'p', 'a', 't', 't', 'e', 'r', 'n', 's', - 'B', '[', '\n', '\036', 'c', 'o', 'm', '.', 'g', 'i', 't', 'h', - 'u', 'b', '.', 'x', 'd', 's', '.', 't', 'y', 'p', 'e', '.', - 'm', 'a', 't', 'c', 'h', 'e', 'r', '.', 'v', '3', 'B', '\013', - 'S', 't', 'r', 'i', 'n', 'g', 'P', 'r', 'o', 't', 'o', 'P', - '\001', 'Z', '*', 'g', 'i', 't', 'h', 'u', 'b', '.', 'c', 'o', - 'm', '/', 'c', 'n', 'c', 'f', '/', 'x', 'd', 's', '/', 'g', - 'o', '/', 'x', 'd', 's', '/', 't', 'y', 'p', 'e', '/', 'm', - 'a', 't', 'c', 'h', 'e', 'r', '/', 'v', '3', 'b', '\006', 'p', - 'r', 'o', 't', 'o', '3', + '\000', 'R', '\010', 'c', 'o', 'n', 't', 'a', 'i', 'n', 's', '\022', + ';', '\n', '\006', 'c', 'u', 's', 't', 'o', 'm', '\030', '\010', ' ', + '\001', '(', '\013', '2', '!', '.', 'x', 'd', 's', '.', 'c', 'o', + 'r', 'e', '.', 'v', '3', '.', 'T', 'y', 'p', 'e', 'd', 'E', + 'x', 't', 'e', 'n', 's', 'i', 'o', 'n', 'C', 'o', 'n', 'f', + 'i', 'g', 'H', '\000', 'R', '\006', 'c', 'u', 's', 't', 'o', 'm', + '\022', '\037', '\n', '\013', 'i', 'g', 'n', 'o', 'r', 'e', '_', 'c', + 'a', 's', 'e', '\030', '\006', ' ', '\001', '(', '\010', 'R', '\n', 'i', + 'g', 'n', 'o', 'r', 'e', 'C', 'a', 's', 'e', 'B', '\024', '\n', + '\r', 'm', 'a', 't', 'c', 'h', '_', 'p', 'a', 't', 't', 'e', + 'r', 'n', '\022', '\003', '\370', 'B', '\001', '\"', ']', '\n', '\021', 'L', + 'i', 's', 't', 'S', 't', 'r', 'i', 'n', 'g', 'M', 'a', 't', + 'c', 'h', 'e', 'r', '\022', 'H', '\n', '\010', 'p', 'a', 't', 't', + 'e', 'r', 'n', 's', '\030', '\001', ' ', '\003', '(', '\013', '2', '\"', + '.', 'x', 'd', 's', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', + 't', 'c', 'h', 'e', 'r', '.', 'v', '3', '.', 'S', 't', 'r', + 'i', 'n', 'g', 'M', 'a', 't', 'c', 'h', 'e', 'r', 'B', '\010', + '\372', 'B', '\005', '\222', '\001', '\002', '\010', '\001', 'R', '\010', 'p', 'a', + 't', 't', 'e', 'r', 'n', 's', 'B', '[', '\n', '\036', 'c', 'o', + 'm', '.', 'g', 'i', 't', 'h', 'u', 'b', '.', 'x', 'd', 's', + '.', 't', 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', + 'r', '.', 'v', '3', 'B', '\013', 'S', 't', 'r', 'i', 'n', 'g', + 'P', 'r', 'o', 't', 'o', 'P', '\001', 'Z', '*', 'g', 'i', 't', + 'h', 'u', 'b', '.', 'c', 'o', 'm', '/', 'c', 'n', 'c', 'f', + '/', 'x', 'd', 's', '/', 'g', 'o', '/', 'x', 'd', 's', '/', + 't', 'y', 'p', 'e', '/', 'm', 'a', 't', 'c', 'h', 'e', 'r', + '/', 'v', '3', 'b', '\006', 'p', 'r', 'o', 't', 'o', '3', }; -static _upb_DefPool_Init *deps[3] = { +static _upb_DefPool_Init *deps[4] = { + &xds_core_v3_extension_proto_upbdefinit, &xds_type_matcher_v3_regex_proto_upbdefinit, &validate_validate_proto_upbdefinit, NULL, diff --git a/src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.c b/src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.c index 0b39e0e4b5615..4e98c7208dfdb 100644 --- a/src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.c +++ b/src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.c @@ -13,11 +13,13 @@ extern _upb_DefPool_Init google_api_expr_v1alpha1_checked_proto_upbdefinit; extern _upb_DefPool_Init google_api_expr_v1alpha1_syntax_proto_upbdefinit; +extern _upb_DefPool_Init cel_expr_checked_proto_upbdefinit; +extern _upb_DefPool_Init cel_expr_syntax_proto_upbdefinit; extern _upb_DefPool_Init google_protobuf_wrappers_proto_upbdefinit; extern _upb_DefPool_Init xds_annotations_v3_status_proto_upbdefinit; extern _upb_DefPool_Init validate_validate_proto_upbdefinit; -static const char descriptor[646] = { +static const char descriptor[863] = { '\n', '\025', 'x', 'd', 's', '/', 't', 'y', 'p', 'e', '/', 'v', '3', '/', 'c', 'e', 'l', '.', 'p', 'r', 'o', 't', 'o', '\022', '\013', 'x', 'd', 's', '.', 't', 'y', 'p', 'e', '.', 'v', '3', @@ -27,56 +29,76 @@ static const char descriptor[646] = { 'r', 'o', 't', 'o', '\032', '%', 'g', 'o', 'o', 'g', 'l', 'e', '/', 'a', 'p', 'i', '/', 'e', 'x', 'p', 'r', '/', 'v', '1', 'a', 'l', 'p', 'h', 'a', '1', '/', 's', 'y', 'n', 't', 'a', - 'x', '.', 'p', 'r', 'o', 't', 'o', '\032', '\036', 'g', 'o', 'o', - 'g', 'l', 'e', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', - '/', 'w', 'r', 'a', 'p', 'p', 'e', 'r', 's', '.', 'p', 'r', - 'o', 't', 'o', '\032', '\037', 'x', 'd', 's', '/', 'a', 'n', 'n', - 'o', 't', 'a', 't', 'i', 'o', 'n', 's', '/', 'v', '3', '/', - 's', 't', 'a', 't', 'u', 's', '.', 'p', 'r', 'o', 't', 'o', - '\032', '\027', 'v', 'a', 'l', 'i', 'd', 'a', 't', 'e', '/', 'v', - 'a', 'l', 'i', 'd', 'a', 't', 'e', '.', 'p', 'r', 'o', 't', - 'o', '\"', '\273', '\001', '\n', '\r', 'C', 'e', 'l', 'E', 'x', 'p', - 'r', 'e', 's', 's', 'i', 'o', 'n', '\022', 'G', '\n', '\013', 'p', - 'a', 'r', 's', 'e', 'd', '_', 'e', 'x', 'p', 'r', '\030', '\001', - ' ', '\001', '(', '\013', '2', '$', '.', 'g', 'o', 'o', 'g', 'l', - 'e', '.', 'a', 'p', 'i', '.', 'e', 'x', 'p', 'r', '.', 'v', - '1', 'a', 'l', 'p', 'h', 'a', '1', '.', 'P', 'a', 'r', 's', - 'e', 'd', 'E', 'x', 'p', 'r', 'H', '\000', 'R', '\n', 'p', 'a', - 'r', 's', 'e', 'd', 'E', 'x', 'p', 'r', '\022', 'J', '\n', '\014', - 'c', 'h', 'e', 'c', 'k', 'e', 'd', '_', 'e', 'x', 'p', 'r', - '\030', '\002', ' ', '\001', '(', '\013', '2', '%', '.', 'g', 'o', 'o', - 'g', 'l', 'e', '.', 'a', 'p', 'i', '.', 'e', 'x', 'p', 'r', - '.', 'v', '1', 'a', 'l', 'p', 'h', 'a', '1', '.', 'C', 'h', - 'e', 'c', 'k', 'e', 'd', 'E', 'x', 'p', 'r', 'H', '\000', 'R', - '\013', 'c', 'h', 'e', 'c', 'k', 'e', 'd', 'E', 'x', 'p', 'r', - 'B', '\025', '\n', '\016', 'e', 'x', 'p', 'r', '_', 's', 'p', 'e', - 'c', 'i', 'f', 'i', 'e', 'r', '\022', '\003', '\370', 'B', '\001', '\"', - '\236', '\001', '\n', '\020', 'C', 'e', 'l', 'E', 'x', 't', 'r', 'a', - 'c', 't', 'S', 't', 'r', 'i', 'n', 'g', '\022', 'G', '\n', '\014', - 'e', 'x', 'p', 'r', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', - '\030', '\001', ' ', '\001', '(', '\013', '2', '\032', '.', 'x', 'd', 's', - '.', 't', 'y', 'p', 'e', '.', 'v', '3', '.', 'C', 'e', 'l', - 'E', 'x', 'p', 'r', 'e', 's', 's', 'i', 'o', 'n', 'B', '\010', - '\372', 'B', '\005', '\212', '\001', '\002', '\020', '\001', 'R', '\013', 'e', 'x', - 'p', 'r', 'E', 'x', 't', 'r', 'a', 'c', 't', '\022', 'A', '\n', - '\r', 'd', 'e', 'f', 'a', 'u', 'l', 't', '_', 'v', 'a', 'l', - 'u', 'e', '\030', '\002', ' ', '\001', '(', '\013', '2', '\034', '.', 'g', - 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', - 'u', 'f', '.', 'S', 't', 'r', 'i', 'n', 'g', 'V', 'a', 'l', - 'u', 'e', 'R', '\014', 'd', 'e', 'f', 'a', 'u', 'l', 't', 'V', - 'a', 'l', 'u', 'e', 'B', 'P', '\n', '\026', 'c', 'o', 'm', '.', - 'g', 'i', 't', 'h', 'u', 'b', '.', 'x', 'd', 's', '.', 't', - 'y', 'p', 'e', '.', 'v', '3', 'B', '\010', 'C', 'e', 'l', 'P', - 'r', 'o', 't', 'o', 'P', '\001', 'Z', '\"', 'g', 'i', 't', 'h', - 'u', 'b', '.', 'c', 'o', 'm', '/', 'c', 'n', 'c', 'f', '/', - 'x', 'd', 's', '/', 'g', 'o', '/', 'x', 'd', 's', '/', 't', - 'y', 'p', 'e', '/', 'v', '3', '\322', '\306', '\244', '\341', '\006', '\002', - '\010', '\001', 'b', '\006', 'p', 'r', 'o', 't', 'o', '3', + 'x', '.', 'p', 'r', 'o', 't', 'o', '\032', '\026', 'c', 'e', 'l', + '/', 'e', 'x', 'p', 'r', '/', 'c', 'h', 'e', 'c', 'k', 'e', + 'd', '.', 'p', 'r', 'o', 't', 'o', '\032', '\025', 'c', 'e', 'l', + '/', 'e', 'x', 'p', 'r', '/', 's', 'y', 'n', 't', 'a', 'x', + '.', 'p', 'r', 'o', 't', 'o', '\032', '\036', 'g', 'o', 'o', 'g', + 'l', 'e', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '/', + 'w', 'r', 'a', 'p', 'p', 'e', 'r', 's', '.', 'p', 'r', 'o', + 't', 'o', '\032', '\037', 'x', 'd', 's', '/', 'a', 'n', 'n', 'o', + 't', 'a', 't', 'i', 'o', 'n', 's', '/', 'v', '3', '/', 's', + 't', 'a', 't', 'u', 's', '.', 'p', 'r', 'o', 't', 'o', '\032', + '\027', 'v', 'a', 'l', 'i', 'd', 'a', 't', 'e', '/', 'v', 'a', + 'l', 'i', 'd', 'a', 't', 'e', '.', 'p', 'r', 'o', 't', 'o', + '\"', '\345', '\002', '\n', '\r', 'C', 'e', 'l', 'E', 'x', 'p', 'r', + 'e', 's', 's', 'i', 'o', 'n', '\022', 'K', '\n', '\013', 'p', 'a', + 'r', 's', 'e', 'd', '_', 'e', 'x', 'p', 'r', '\030', '\001', ' ', + '\001', '(', '\013', '2', '$', '.', 'g', 'o', 'o', 'g', 'l', 'e', + '.', 'a', 'p', 'i', '.', 'e', 'x', 'p', 'r', '.', 'v', '1', + 'a', 'l', 'p', 'h', 'a', '1', '.', 'P', 'a', 'r', 's', 'e', + 'd', 'E', 'x', 'p', 'r', 'B', '\002', '\030', '\001', 'H', '\000', 'R', + '\n', 'p', 'a', 'r', 's', 'e', 'd', 'E', 'x', 'p', 'r', '\022', + 'N', '\n', '\014', 'c', 'h', 'e', 'c', 'k', 'e', 'd', '_', 'e', + 'x', 'p', 'r', '\030', '\002', ' ', '\001', '(', '\013', '2', '%', '.', + 'g', 'o', 'o', 'g', 'l', 'e', '.', 'a', 'p', 'i', '.', 'e', + 'x', 'p', 'r', '.', 'v', '1', 'a', 'l', 'p', 'h', 'a', '1', + '.', 'C', 'h', 'e', 'c', 'k', 'e', 'd', 'E', 'x', 'p', 'r', + 'B', '\002', '\030', '\001', 'H', '\000', 'R', '\013', 'c', 'h', 'e', 'c', + 'k', 'e', 'd', 'E', 'x', 'p', 'r', '\022', '<', '\n', '\017', 'c', + 'e', 'l', '_', 'e', 'x', 'p', 'r', '_', 'p', 'a', 'r', 's', + 'e', 'd', '\030', '\003', ' ', '\001', '(', '\013', '2', '\024', '.', 'c', + 'e', 'l', '.', 'e', 'x', 'p', 'r', '.', 'P', 'a', 'r', 's', + 'e', 'd', 'E', 'x', 'p', 'r', 'R', '\r', 'c', 'e', 'l', 'E', + 'x', 'p', 'r', 'P', 'a', 'r', 's', 'e', 'd', '\022', '?', '\n', + '\020', 'c', 'e', 'l', '_', 'e', 'x', 'p', 'r', '_', 'c', 'h', + 'e', 'c', 'k', 'e', 'd', '\030', '\004', ' ', '\001', '(', '\013', '2', + '\025', '.', 'c', 'e', 'l', '.', 'e', 'x', 'p', 'r', '.', 'C', + 'h', 'e', 'c', 'k', 'e', 'd', 'E', 'x', 'p', 'r', 'R', '\016', + 'c', 'e', 'l', 'E', 'x', 'p', 'r', 'C', 'h', 'e', 'c', 'k', + 'e', 'd', '\022', '&', '\n', '\017', 'c', 'e', 'l', '_', 'e', 'x', + 'p', 'r', '_', 's', 't', 'r', 'i', 'n', 'g', '\030', '\005', ' ', + '\001', '(', '\t', 'R', '\r', 'c', 'e', 'l', 'E', 'x', 'p', 'r', + 'S', 't', 'r', 'i', 'n', 'g', 'B', '\020', '\n', '\016', 'e', 'x', + 'p', 'r', '_', 's', 'p', 'e', 'c', 'i', 'f', 'i', 'e', 'r', + '\"', '\236', '\001', '\n', '\020', 'C', 'e', 'l', 'E', 'x', 't', 'r', + 'a', 'c', 't', 'S', 't', 'r', 'i', 'n', 'g', '\022', 'G', '\n', + '\014', 'e', 'x', 'p', 'r', '_', 'e', 'x', 't', 'r', 'a', 'c', + 't', '\030', '\001', ' ', '\001', '(', '\013', '2', '\032', '.', 'x', 'd', + 's', '.', 't', 'y', 'p', 'e', '.', 'v', '3', '.', 'C', 'e', + 'l', 'E', 'x', 'p', 'r', 'e', 's', 's', 'i', 'o', 'n', 'B', + '\010', '\372', 'B', '\005', '\212', '\001', '\002', '\020', '\001', 'R', '\013', 'e', + 'x', 'p', 'r', 'E', 'x', 't', 'r', 'a', 'c', 't', '\022', 'A', + '\n', '\r', 'd', 'e', 'f', 'a', 'u', 'l', 't', '_', 'v', 'a', + 'l', 'u', 'e', '\030', '\002', ' ', '\001', '(', '\013', '2', '\034', '.', + 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', + 'b', 'u', 'f', '.', 'S', 't', 'r', 'i', 'n', 'g', 'V', 'a', + 'l', 'u', 'e', 'R', '\014', 'd', 'e', 'f', 'a', 'u', 'l', 't', + 'V', 'a', 'l', 'u', 'e', 'B', 'P', '\n', '\026', 'c', 'o', 'm', + '.', 'g', 'i', 't', 'h', 'u', 'b', '.', 'x', 'd', 's', '.', + 't', 'y', 'p', 'e', '.', 'v', '3', 'B', '\010', 'C', 'e', 'l', + 'P', 'r', 'o', 't', 'o', 'P', '\001', 'Z', '\"', 'g', 'i', 't', + 'h', 'u', 'b', '.', 'c', 'o', 'm', '/', 'c', 'n', 'c', 'f', + '/', 'x', 'd', 's', '/', 'g', 'o', '/', 'x', 'd', 's', '/', + 't', 'y', 'p', 'e', '/', 'v', '3', '\322', '\306', '\244', '\341', '\006', + '\002', '\010', '\001', 'b', '\006', 'p', 'r', 'o', 't', 'o', '3', }; -static _upb_DefPool_Init *deps[6] = { +static _upb_DefPool_Init *deps[8] = { &google_api_expr_v1alpha1_checked_proto_upbdefinit, &google_api_expr_v1alpha1_syntax_proto_upbdefinit, + &cel_expr_checked_proto_upbdefinit, + &cel_expr_syntax_proto_upbdefinit, &google_protobuf_wrappers_proto_upbdefinit, &xds_annotations_v3_status_proto_upbdefinit, &validate_validate_proto_upbdefinit, diff --git a/src/core/filter/filter_chain.h b/src/core/filter/filter_chain.h new file mode 100644 index 0000000000000..bd33f84f08801 --- /dev/null +++ b/src/core/filter/filter_chain.h @@ -0,0 +1,95 @@ +// +// Copyright 2025 gRPC authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +#ifndef GRPC_SRC_CORE_FILTER_FILTER_CHAIN_H +#define GRPC_SRC_CORE_FILTER_FILTER_CHAIN_H + +#include +#include +#include + +#include "src/core/call/interception_chain.h" +#include "src/core/filter/filter_args.h" +#include "src/core/util/ref_counted.h" +#include "src/core/util/ref_counted_ptr.h" + +// This code provides an abstraction that allows the config selector to +// build a filter chain without knowing the details of how things work +// in the client channel code. +// TODO(roth): A lot of these interfaces are designed to abstract away +// the differences between the v1 and v3 stacks, and a lot of that +// complexity can go away when the v3 migration is done. + +namespace grpc_core { + +// Base class for filter chains. +// TODO(roth): Once the v3 migration is done, this can probably go away in +// favor of just directly using UnstartedCallDestination. +class FilterChain : public RefCounted {}; + +// Abstract filter chain builder interface. +class FilterChainBuilder { + public: + virtual ~FilterChainBuilder() = default; + + // Add a filter using a convenience template method. + template + void AddFilter(RefCountedPtr config) { + // TODO(roth): Once the v3 migration is done, this can directly call + // InterceptionChainBuilder. + AddFilter(FilterHandleImpl(), std::move(config)); + } + + // Builds the filter chain. Resets the builder to an empty state, so + // that it can be used to build another filter chain. + virtual absl::StatusOr> Build() = 0; + + protected: + // Abstract handle for a filter. + class FilterHandle { + public: + virtual ~FilterHandle() = default; + virtual void AddToBuilder( + std::vector* filters, + RefCountedPtr config) const = 0; + virtual void AddToBuilder( + InterceptionChainBuilder* builder, + RefCountedPtr config) const = 0; + }; + + private: + // Concrete handle for a specific filter type. + template + class FilterHandleImpl : public FilterHandle { + public: + void AddToBuilder(std::vector* filters, + RefCountedPtr config) const override { + filters->push_back({&FilterType::kFilterVtable, std::move(config)}); + } + void AddToBuilder(InterceptionChainBuilder* builder, + RefCountedPtr config) const override { + builder->Add(std::move(config)); + } + }; + + // Pure virtual method to be implemented by concrete wrappers. + virtual void AddFilter(const FilterHandle& filter_handle, + RefCountedPtr config) = 0; +}; + +} // namespace grpc_core + +#endif // GRPC_SRC_CORE_FILTER_FILTER_CHAIN_H diff --git a/src/core/lib/channel/promise_based_filter.cc b/src/core/lib/channel/promise_based_filter.cc index ea3c73eb32fd8..b7eb4164e1b93 100644 --- a/src/core/lib/channel/promise_based_filter.cc +++ b/src/core/lib/channel/promise_based_filter.cc @@ -23,6 +23,7 @@ #include #include +#include "src/core/call/metadata.h" #include "src/core/lib/channel/channel_stack.h" #include "src/core/lib/debug/trace.h" #include "src/core/lib/iomgr/error.h" @@ -2040,6 +2041,7 @@ void ServerCallData::StartBatch(grpc_transport_stream_op_batch* b) { !batch->recv_trailing_metadata); PollContext poll_ctx(this, &flusher); Completed(batch->payload->cancel_stream.cancel_error, + std::move(batch->payload->cancel_stream.send_trailing_metadata), batch->payload->cancel_stream.tarpit, &flusher); if (is_last()) { batch.CompleteWith(&flusher); @@ -2160,6 +2162,7 @@ void ServerCallData::StartBatch(grpc_transport_stream_op_batch* b) { // Handle cancellation. void ServerCallData::Completed(grpc_error_handle error, + ServerMetadataHandle trailing_metadata, bool tarpit_cancellation, Flusher* flusher) { GRPC_TRACE_VLOG(channel, 2) << LogTag() << "ServerCallData::Completed: send_trailing_state=" @@ -2187,6 +2190,10 @@ void ServerCallData::Completed(grpc_error_handle error, batch->cancel_stream = true; batch->payload->cancel_stream.cancel_error = error; batch->payload->cancel_stream.tarpit = tarpit_cancellation; + if (IsPromiseFilterSendCancelMetadataEnabled()) { + batch->payload->cancel_stream.send_trailing_metadata = + std::move(trailing_metadata); + } flusher->Resume(batch); } break; @@ -2319,8 +2326,8 @@ void ServerCallData::RecvTrailingMetadataReady(grpc_error_handle error) { << " md=" << recv_trailing_metadata_->DebugString(); Flusher flusher(this); PollContext poll_ctx(this, &flusher); - Completed(error, recv_trailing_metadata_->get(GrpcTarPit()).has_value(), - &flusher); + Completed(error, /*trailing_metadata=*/nullptr, + recv_trailing_metadata_->get(GrpcTarPit()).has_value(), &flusher); flusher.AddClosure(original_recv_trailing_metadata_ready_, std::move(error), "continue recv trailing"); } @@ -2527,8 +2534,14 @@ void ServerCallData::WakeInsideCombiner(Flusher* flusher) { break; case SendTrailingState::kInitial: { GRPC_CHECK(*md->get_pointer(GrpcStatusMetadata()) != GRPC_STATUS_OK); - Completed(StatusFromMetadata(*md), md->get(GrpcTarPit()).has_value(), - flusher); + if (IsPromiseFilterSendCancelMetadataEnabled()) { + absl::Status status = StatusFromMetadata(*md); + bool tar_pit_set = md->get(GrpcTarPit()).has_value(); + Completed(std::move(status), std::move(md), tar_pit_set, flusher); + } else { + Completed(StatusFromMetadata(*md), /*trailing_metadata=*/nullptr, + md->get(GrpcTarPit()).has_value(), flusher); + } } break; case SendTrailingState::kCancelled: // Nothing to do. diff --git a/src/core/lib/channel/promise_based_filter.h b/src/core/lib/channel/promise_based_filter.h index fa8c7c3429463..a285b11ef6a7f 100644 --- a/src/core/lib/channel/promise_based_filter.h +++ b/src/core/lib/channel/promise_based_filter.h @@ -1843,8 +1843,9 @@ class ServerCallData : public BaseCallData { struct SendInitialMetadata; // Shut things down when the call completes. - void Completed(grpc_error_handle error, bool tarpit_cancellation, - Flusher* flusher); + void Completed(grpc_error_handle error, + ServerMetadataHandle trailing_metadata, + bool tarpit_cancellation, Flusher* flusher); // Construct a promise that will "call" the next filter. // Effectively: // - put the modified initial metadata into the batch being sent up. diff --git a/src/core/lib/debug/trace_flags.cc b/src/core/lib/debug/trace_flags.cc index 6d7eae7cc02ef..89a8f0de65022 100644 --- a/src/core/lib/debug/trace_flags.cc +++ b/src/core/lib/debug/trace_flags.cc @@ -111,6 +111,7 @@ TraceFlag secure_endpoint_trace(false, "secure_endpoint"); TraceFlag server_channel_trace(false, "server_channel"); TraceFlag stateful_session_filter_trace(false, "stateful_session_filter"); TraceFlag subchannel_trace(false, "subchannel"); +TraceFlag subchannel_call_trace(false, "subchannel_call"); TraceFlag subchannel_pool_trace(false, "subchannel_pool"); TraceFlag tcp_trace(false, "tcp"); TraceFlag timer_trace(false, "timer"); @@ -193,6 +194,7 @@ const absl::flat_hash_map& GetAllTraceFlags() { {"server_channel", &server_channel_trace}, {"stateful_session_filter", &stateful_session_filter_trace}, {"subchannel", &subchannel_trace}, + {"subchannel_call", &subchannel_call_trace}, {"subchannel_pool", &subchannel_pool_trace}, {"tcp", &tcp_trace}, {"timer", &timer_trace}, diff --git a/src/core/lib/debug/trace_flags.h b/src/core/lib/debug/trace_flags.h index b6a39f3ddeba0..362f44ab256b9 100644 --- a/src/core/lib/debug/trace_flags.h +++ b/src/core/lib/debug/trace_flags.h @@ -109,6 +109,7 @@ extern TraceFlag secure_endpoint_trace; extern TraceFlag server_channel_trace; extern TraceFlag stateful_session_filter_trace; extern TraceFlag subchannel_trace; +extern TraceFlag subchannel_call_trace; extern TraceFlag subchannel_pool_trace; extern TraceFlag tcp_trace; extern TraceFlag timer_trace; diff --git a/src/core/lib/debug/trace_flags.yaml b/src/core/lib/debug/trace_flags.yaml index 8202d76c010bb..8a9d6542a6dab 100644 --- a/src/core/lib/debug/trace_flags.yaml +++ b/src/core/lib/debug/trace_flags.yaml @@ -294,6 +294,9 @@ stream_refcount: subchannel: default: false description: Connectivity state of subchannels. +subchannel_call: + default: false + description: Call handling in the subchannel. subchannel_pool: default: false description: Subchannel pool. diff --git a/src/core/lib/event_engine/cf_engine/dns_service_resolver.h b/src/core/lib/event_engine/cf_engine/dns_service_resolver.h index 94e1316397d9a..1ccf91ebb3192 100644 --- a/src/core/lib/event_engine/cf_engine/dns_service_resolver.h +++ b/src/core/lib/event_engine/cf_engine/dns_service_resolver.h @@ -77,8 +77,7 @@ class DNSServiceResolver : public EventEngine::DNSResolver { public: explicit DNSServiceResolver(std::shared_ptr engine) : engine_(std::move(engine)), - impl_(grpc_core::MakeRefCounted( - std::move((engine_)))) {} + impl_(grpc_core::MakeRefCounted(engine_)) {} ~DNSServiceResolver() override { impl_->Shutdown(); } diff --git a/src/core/lib/event_engine/tcp_telemetry.h b/src/core/lib/event_engine/tcp_telemetry.h index f57d8d4241fed..b439c68788f00 100644 --- a/src/core/lib/event_engine/tcp_telemetry.h +++ b/src/core/lib/event_engine/tcp_telemetry.h @@ -26,9 +26,9 @@ class TcpTelemetryDomain final : public InstrumentDomain { public: using Backend = HighContentionBackend; static constexpr absl::string_view kName = "tcp_connection_metrics"; - static constexpr auto kLabels = Labels( - "network.local.address", "network.local.port", "network.remote.address", - "network.remote.port", "is_control_endpoint"); + GRPC_INSTRUMENT_DOMAIN_LABELS("network.local.address", "network.local.port", + "network.remote.address", "network.remote.port", + "is_control_endpoint"); static inline const auto kMinRtt = RegisterHistogram( diff --git a/src/core/lib/experiments/experiments.cc b/src/core/lib/experiments/experiments.cc index 659de292c68d2..f2ce168492f68 100644 --- a/src/core/lib/experiments/experiments.cc +++ b/src/core/lib/experiments/experiments.cc @@ -35,21 +35,18 @@ const char* const const char* const additional_constraints_call_tracer_send_initial_metadata_is_an_annotation = "{}"; -const char* const description_channelz_use_v2_for_v1_api = - "Use the v2 channelz API for the v1 channelz API."; -const char* const additional_constraints_channelz_use_v2_for_v1_api = "{}"; -const char* const description_channelz_use_v2_for_v1_service = - "Use the v2 channelz service for the v1 channelz service."; -const char* const additional_constraints_channelz_use_v2_for_v1_service = "{}"; +const char* const + description_call_tracer_send_trailing_metadata_is_an_annotation = + "Use the new annotation-based CallTracer API."; +const char* const + additional_constraints_call_tracer_send_trailing_metadata_is_an_annotation = + "{}"; const char* const description_chaotic_good_connect_deadline = "Use the deadline from the connect args in chaotic good connector"; const char* const additional_constraints_chaotic_good_connect_deadline = "{}"; const char* const description_chaotic_good_framing_layer = "Enable the chaotic good framing layer."; const char* const additional_constraints_chaotic_good_framing_layer = "{}"; -const char* const description_chttp2_bound_write_size = - "Fix a bug where chttp2 can generate very large writes"; -const char* const additional_constraints_chttp2_bound_write_size = "{}"; const char* const description_error_flatten = "Flatten errors to ordinary absl::Status form."; const char* const additional_constraints_error_flatten = "{}"; @@ -246,6 +243,10 @@ const char* const description_unconstrained_max_quota_buffer_size = "Discard the cap on the max free pool size for one memory allocator"; const char* const additional_constraints_unconstrained_max_quota_buffer_size = "{}"; +const char* const description_use_call_event_engine_in_completion_queue = + "Use the call event engine to run callbacks in completion queue."; +const char* const + additional_constraints_use_call_event_engine_in_completion_queue = "{}"; } // namespace namespace grpc_core { @@ -259,21 +260,16 @@ const ExperimentMetadata g_experiment_metadata[] = { description_call_tracer_send_initial_metadata_is_an_annotation, additional_constraints_call_tracer_send_initial_metadata_is_an_annotation, nullptr, 0, true, true}, - {"channelz_use_v2_for_v1_api", description_channelz_use_v2_for_v1_api, - additional_constraints_channelz_use_v2_for_v1_api, nullptr, 0, false, - true}, - {"channelz_use_v2_for_v1_service", - description_channelz_use_v2_for_v1_service, - additional_constraints_channelz_use_v2_for_v1_service, nullptr, 0, false, - true}, + {"call_tracer_send_trailing_metadata_is_an_annotation", + description_call_tracer_send_trailing_metadata_is_an_annotation, + additional_constraints_call_tracer_send_trailing_metadata_is_an_annotation, + nullptr, 0, false, true}, {"chaotic_good_connect_deadline", description_chaotic_good_connect_deadline, additional_constraints_chaotic_good_connect_deadline, nullptr, 0, true, true}, {"chaotic_good_framing_layer", description_chaotic_good_framing_layer, additional_constraints_chaotic_good_framing_layer, nullptr, 0, true, false}, - {"chttp2_bound_write_size", description_chttp2_bound_write_size, - additional_constraints_chttp2_bound_write_size, nullptr, 0, false, true}, {"error_flatten", description_error_flatten, additional_constraints_error_flatten, nullptr, 0, false, false}, {"event_engine_client", description_event_engine_client, @@ -336,7 +332,7 @@ const ExperimentMetadata g_experiment_metadata[] = { true}, {"pick_first_ready_to_connecting", description_pick_first_ready_to_connecting, - additional_constraints_pick_first_ready_to_connecting, nullptr, 0, false, + additional_constraints_pick_first_ready_to_connecting, nullptr, 0, true, true}, {"pipelined_read_secure_endpoint", description_pipelined_read_secure_endpoint, @@ -370,7 +366,7 @@ const ExperimentMetadata g_experiment_metadata[] = { additional_constraints_return_preexisting_errors, nullptr, 0, false, true}, {"rr_wrr_connect_from_random_index", description_rr_wrr_connect_from_random_index, - additional_constraints_rr_wrr_connect_from_random_index, nullptr, 0, false, + additional_constraints_rr_wrr_connect_from_random_index, nullptr, 0, true, true}, {"schedule_cancellation_over_write", description_schedule_cancellation_over_write, @@ -421,6 +417,10 @@ const ExperimentMetadata g_experiment_metadata[] = { description_unconstrained_max_quota_buffer_size, additional_constraints_unconstrained_max_quota_buffer_size, nullptr, 0, false, true}, + {"use_call_event_engine_in_completion_queue", + description_use_call_event_engine_in_completion_queue, + additional_constraints_use_call_event_engine_in_completion_queue, nullptr, + 0, false, true}, }; } // namespace grpc_core @@ -439,21 +439,18 @@ const char* const const char* const additional_constraints_call_tracer_send_initial_metadata_is_an_annotation = "{}"; -const char* const description_channelz_use_v2_for_v1_api = - "Use the v2 channelz API for the v1 channelz API."; -const char* const additional_constraints_channelz_use_v2_for_v1_api = "{}"; -const char* const description_channelz_use_v2_for_v1_service = - "Use the v2 channelz service for the v1 channelz service."; -const char* const additional_constraints_channelz_use_v2_for_v1_service = "{}"; +const char* const + description_call_tracer_send_trailing_metadata_is_an_annotation = + "Use the new annotation-based CallTracer API."; +const char* const + additional_constraints_call_tracer_send_trailing_metadata_is_an_annotation = + "{}"; const char* const description_chaotic_good_connect_deadline = "Use the deadline from the connect args in chaotic good connector"; const char* const additional_constraints_chaotic_good_connect_deadline = "{}"; const char* const description_chaotic_good_framing_layer = "Enable the chaotic good framing layer."; const char* const additional_constraints_chaotic_good_framing_layer = "{}"; -const char* const description_chttp2_bound_write_size = - "Fix a bug where chttp2 can generate very large writes"; -const char* const additional_constraints_chttp2_bound_write_size = "{}"; const char* const description_error_flatten = "Flatten errors to ordinary absl::Status form."; const char* const additional_constraints_error_flatten = "{}"; @@ -650,6 +647,10 @@ const char* const description_unconstrained_max_quota_buffer_size = "Discard the cap on the max free pool size for one memory allocator"; const char* const additional_constraints_unconstrained_max_quota_buffer_size = "{}"; +const char* const description_use_call_event_engine_in_completion_queue = + "Use the call event engine to run callbacks in completion queue."; +const char* const + additional_constraints_use_call_event_engine_in_completion_queue = "{}"; } // namespace namespace grpc_core { @@ -663,21 +664,16 @@ const ExperimentMetadata g_experiment_metadata[] = { description_call_tracer_send_initial_metadata_is_an_annotation, additional_constraints_call_tracer_send_initial_metadata_is_an_annotation, nullptr, 0, true, true}, - {"channelz_use_v2_for_v1_api", description_channelz_use_v2_for_v1_api, - additional_constraints_channelz_use_v2_for_v1_api, nullptr, 0, false, - true}, - {"channelz_use_v2_for_v1_service", - description_channelz_use_v2_for_v1_service, - additional_constraints_channelz_use_v2_for_v1_service, nullptr, 0, false, - true}, + {"call_tracer_send_trailing_metadata_is_an_annotation", + description_call_tracer_send_trailing_metadata_is_an_annotation, + additional_constraints_call_tracer_send_trailing_metadata_is_an_annotation, + nullptr, 0, false, true}, {"chaotic_good_connect_deadline", description_chaotic_good_connect_deadline, additional_constraints_chaotic_good_connect_deadline, nullptr, 0, true, true}, {"chaotic_good_framing_layer", description_chaotic_good_framing_layer, additional_constraints_chaotic_good_framing_layer, nullptr, 0, true, false}, - {"chttp2_bound_write_size", description_chttp2_bound_write_size, - additional_constraints_chttp2_bound_write_size, nullptr, 0, false, true}, {"error_flatten", description_error_flatten, additional_constraints_error_flatten, nullptr, 0, false, false}, {"event_engine_client", description_event_engine_client, @@ -740,7 +736,7 @@ const ExperimentMetadata g_experiment_metadata[] = { true}, {"pick_first_ready_to_connecting", description_pick_first_ready_to_connecting, - additional_constraints_pick_first_ready_to_connecting, nullptr, 0, false, + additional_constraints_pick_first_ready_to_connecting, nullptr, 0, true, true}, {"pipelined_read_secure_endpoint", description_pipelined_read_secure_endpoint, @@ -774,7 +770,7 @@ const ExperimentMetadata g_experiment_metadata[] = { additional_constraints_return_preexisting_errors, nullptr, 0, false, true}, {"rr_wrr_connect_from_random_index", description_rr_wrr_connect_from_random_index, - additional_constraints_rr_wrr_connect_from_random_index, nullptr, 0, false, + additional_constraints_rr_wrr_connect_from_random_index, nullptr, 0, true, true}, {"schedule_cancellation_over_write", description_schedule_cancellation_over_write, @@ -825,6 +821,10 @@ const ExperimentMetadata g_experiment_metadata[] = { description_unconstrained_max_quota_buffer_size, additional_constraints_unconstrained_max_quota_buffer_size, nullptr, 0, false, true}, + {"use_call_event_engine_in_completion_queue", + description_use_call_event_engine_in_completion_queue, + additional_constraints_use_call_event_engine_in_completion_queue, nullptr, + 0, false, true}, }; } // namespace grpc_core @@ -843,21 +843,18 @@ const char* const const char* const additional_constraints_call_tracer_send_initial_metadata_is_an_annotation = "{}"; -const char* const description_channelz_use_v2_for_v1_api = - "Use the v2 channelz API for the v1 channelz API."; -const char* const additional_constraints_channelz_use_v2_for_v1_api = "{}"; -const char* const description_channelz_use_v2_for_v1_service = - "Use the v2 channelz service for the v1 channelz service."; -const char* const additional_constraints_channelz_use_v2_for_v1_service = "{}"; +const char* const + description_call_tracer_send_trailing_metadata_is_an_annotation = + "Use the new annotation-based CallTracer API."; +const char* const + additional_constraints_call_tracer_send_trailing_metadata_is_an_annotation = + "{}"; const char* const description_chaotic_good_connect_deadline = "Use the deadline from the connect args in chaotic good connector"; const char* const additional_constraints_chaotic_good_connect_deadline = "{}"; const char* const description_chaotic_good_framing_layer = "Enable the chaotic good framing layer."; const char* const additional_constraints_chaotic_good_framing_layer = "{}"; -const char* const description_chttp2_bound_write_size = - "Fix a bug where chttp2 can generate very large writes"; -const char* const additional_constraints_chttp2_bound_write_size = "{}"; const char* const description_error_flatten = "Flatten errors to ordinary absl::Status form."; const char* const additional_constraints_error_flatten = "{}"; @@ -1054,6 +1051,10 @@ const char* const description_unconstrained_max_quota_buffer_size = "Discard the cap on the max free pool size for one memory allocator"; const char* const additional_constraints_unconstrained_max_quota_buffer_size = "{}"; +const char* const description_use_call_event_engine_in_completion_queue = + "Use the call event engine to run callbacks in completion queue."; +const char* const + additional_constraints_use_call_event_engine_in_completion_queue = "{}"; } // namespace namespace grpc_core { @@ -1067,21 +1068,16 @@ const ExperimentMetadata g_experiment_metadata[] = { description_call_tracer_send_initial_metadata_is_an_annotation, additional_constraints_call_tracer_send_initial_metadata_is_an_annotation, nullptr, 0, true, true}, - {"channelz_use_v2_for_v1_api", description_channelz_use_v2_for_v1_api, - additional_constraints_channelz_use_v2_for_v1_api, nullptr, 0, false, - true}, - {"channelz_use_v2_for_v1_service", - description_channelz_use_v2_for_v1_service, - additional_constraints_channelz_use_v2_for_v1_service, nullptr, 0, false, - true}, + {"call_tracer_send_trailing_metadata_is_an_annotation", + description_call_tracer_send_trailing_metadata_is_an_annotation, + additional_constraints_call_tracer_send_trailing_metadata_is_an_annotation, + nullptr, 0, false, true}, {"chaotic_good_connect_deadline", description_chaotic_good_connect_deadline, additional_constraints_chaotic_good_connect_deadline, nullptr, 0, true, true}, {"chaotic_good_framing_layer", description_chaotic_good_framing_layer, additional_constraints_chaotic_good_framing_layer, nullptr, 0, true, false}, - {"chttp2_bound_write_size", description_chttp2_bound_write_size, - additional_constraints_chttp2_bound_write_size, nullptr, 0, false, true}, {"error_flatten", description_error_flatten, additional_constraints_error_flatten, nullptr, 0, false, false}, {"event_engine_client", description_event_engine_client, @@ -1144,7 +1140,7 @@ const ExperimentMetadata g_experiment_metadata[] = { true}, {"pick_first_ready_to_connecting", description_pick_first_ready_to_connecting, - additional_constraints_pick_first_ready_to_connecting, nullptr, 0, false, + additional_constraints_pick_first_ready_to_connecting, nullptr, 0, true, true}, {"pipelined_read_secure_endpoint", description_pipelined_read_secure_endpoint, @@ -1178,7 +1174,7 @@ const ExperimentMetadata g_experiment_metadata[] = { additional_constraints_return_preexisting_errors, nullptr, 0, false, true}, {"rr_wrr_connect_from_random_index", description_rr_wrr_connect_from_random_index, - additional_constraints_rr_wrr_connect_from_random_index, nullptr, 0, false, + additional_constraints_rr_wrr_connect_from_random_index, nullptr, 0, true, true}, {"schedule_cancellation_over_write", description_schedule_cancellation_over_write, @@ -1229,6 +1225,10 @@ const ExperimentMetadata g_experiment_metadata[] = { description_unconstrained_max_quota_buffer_size, additional_constraints_unconstrained_max_quota_buffer_size, nullptr, 0, false, true}, + {"use_call_event_engine_in_completion_queue", + description_use_call_event_engine_in_completion_queue, + additional_constraints_use_call_event_engine_in_completion_queue, nullptr, + 0, false, true}, }; } // namespace grpc_core diff --git a/src/core/lib/experiments/experiments.h b/src/core/lib/experiments/experiments.h index 5719b80e95a09..36a25ab32806b 100644 --- a/src/core/lib/experiments/experiments.h +++ b/src/core/lib/experiments/experiments.h @@ -64,13 +64,13 @@ inline bool IsCallTracerInTransportEnabled() { return true; } inline bool IsCallTracerSendInitialMetadataIsAnAnnotationEnabled() { return true; } -inline bool IsChannelzUseV2ForV1ApiEnabled() { return false; } -inline bool IsChannelzUseV2ForV1ServiceEnabled() { return false; } +inline bool IsCallTracerSendTrailingMetadataIsAnAnnotationEnabled() { + return false; +} #define GRPC_EXPERIMENT_IS_INCLUDED_CHAOTIC_GOOD_CONNECT_DEADLINE inline bool IsChaoticGoodConnectDeadlineEnabled() { return true; } #define GRPC_EXPERIMENT_IS_INCLUDED_CHAOTIC_GOOD_FRAMING_LAYER inline bool IsChaoticGoodFramingLayerEnabled() { return true; } -inline bool IsChttp2BoundWriteSizeEnabled() { return false; } inline bool IsErrorFlattenEnabled() { return false; } #define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_CLIENT inline bool IsEventEngineClientEnabled() { return true; } @@ -102,7 +102,8 @@ inline bool IsMonitoringExperimentEnabled() { return true; } inline bool IsMultipingEnabled() { return false; } inline bool IsOtelExportTelemetryDomainsEnabled() { return false; } inline bool IsPickFirstIgnoreEmptyUpdatesEnabled() { return false; } -inline bool IsPickFirstReadyToConnectingEnabled() { return false; } +#define GRPC_EXPERIMENT_IS_INCLUDED_PICK_FIRST_READY_TO_CONNECTING +inline bool IsPickFirstReadyToConnectingEnabled() { return true; } inline bool IsPipelinedReadSecureEndpointEnabled() { return false; } inline bool IsPollsetAlternativeEnabled() { return false; } inline bool IsPrioritizeFinishedRequestsEnabled() { return false; } @@ -112,7 +113,8 @@ inline bool IsPromiseBasedInprocTransportEnabled() { return false; } inline bool IsPromiseFilterSendCancelMetadataEnabled() { return false; } inline bool IsRetryInCallv3Enabled() { return false; } inline bool IsReturnPreexistingErrorsEnabled() { return false; } -inline bool IsRrWrrConnectFromRandomIndexEnabled() { return false; } +#define GRPC_EXPERIMENT_IS_INCLUDED_RR_WRR_CONNECT_FROM_RANDOM_INDEX +inline bool IsRrWrrConnectFromRandomIndexEnabled() { return true; } inline bool IsScheduleCancellationOverWriteEnabled() { return false; } inline bool IsSecureEndpointOffloadLargeReadsEnabled() { return false; } inline bool IsSecureEndpointOffloadLargeWritesEnabled() { return false; } @@ -128,6 +130,7 @@ inline bool IsTrackWritesInResourceQuotaEnabled() { return false; } inline bool IsTrackZeroCopyAllocationsInResourceQuotaEnabled() { return false; } inline bool IsTsiFrameProtectorWithoutLocksEnabled() { return false; } inline bool IsUnconstrainedMaxQuotaBufferSizeEnabled() { return false; } +inline bool IsUseCallEventEngineInCompletionQueueEnabled() { return false; } #elif defined(GPR_WINDOWS) inline bool IsBufferListDeletionPrepEnabled() { return false; } @@ -137,13 +140,13 @@ inline bool IsCallTracerInTransportEnabled() { return true; } inline bool IsCallTracerSendInitialMetadataIsAnAnnotationEnabled() { return true; } -inline bool IsChannelzUseV2ForV1ApiEnabled() { return false; } -inline bool IsChannelzUseV2ForV1ServiceEnabled() { return false; } +inline bool IsCallTracerSendTrailingMetadataIsAnAnnotationEnabled() { + return false; +} #define GRPC_EXPERIMENT_IS_INCLUDED_CHAOTIC_GOOD_CONNECT_DEADLINE inline bool IsChaoticGoodConnectDeadlineEnabled() { return true; } #define GRPC_EXPERIMENT_IS_INCLUDED_CHAOTIC_GOOD_FRAMING_LAYER inline bool IsChaoticGoodFramingLayerEnabled() { return true; } -inline bool IsChttp2BoundWriteSizeEnabled() { return false; } inline bool IsErrorFlattenEnabled() { return false; } #define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_CLIENT inline bool IsEventEngineClientEnabled() { return true; } @@ -175,7 +178,8 @@ inline bool IsMonitoringExperimentEnabled() { return true; } inline bool IsMultipingEnabled() { return false; } inline bool IsOtelExportTelemetryDomainsEnabled() { return false; } inline bool IsPickFirstIgnoreEmptyUpdatesEnabled() { return false; } -inline bool IsPickFirstReadyToConnectingEnabled() { return false; } +#define GRPC_EXPERIMENT_IS_INCLUDED_PICK_FIRST_READY_TO_CONNECTING +inline bool IsPickFirstReadyToConnectingEnabled() { return true; } inline bool IsPipelinedReadSecureEndpointEnabled() { return false; } inline bool IsPollsetAlternativeEnabled() { return false; } inline bool IsPrioritizeFinishedRequestsEnabled() { return false; } @@ -185,7 +189,8 @@ inline bool IsPromiseBasedInprocTransportEnabled() { return false; } inline bool IsPromiseFilterSendCancelMetadataEnabled() { return false; } inline bool IsRetryInCallv3Enabled() { return false; } inline bool IsReturnPreexistingErrorsEnabled() { return false; } -inline bool IsRrWrrConnectFromRandomIndexEnabled() { return false; } +#define GRPC_EXPERIMENT_IS_INCLUDED_RR_WRR_CONNECT_FROM_RANDOM_INDEX +inline bool IsRrWrrConnectFromRandomIndexEnabled() { return true; } inline bool IsScheduleCancellationOverWriteEnabled() { return false; } inline bool IsSecureEndpointOffloadLargeReadsEnabled() { return false; } inline bool IsSecureEndpointOffloadLargeWritesEnabled() { return false; } @@ -201,6 +206,7 @@ inline bool IsTrackWritesInResourceQuotaEnabled() { return false; } inline bool IsTrackZeroCopyAllocationsInResourceQuotaEnabled() { return false; } inline bool IsTsiFrameProtectorWithoutLocksEnabled() { return false; } inline bool IsUnconstrainedMaxQuotaBufferSizeEnabled() { return false; } +inline bool IsUseCallEventEngineInCompletionQueueEnabled() { return false; } #else inline bool IsBufferListDeletionPrepEnabled() { return false; } @@ -210,13 +216,13 @@ inline bool IsCallTracerInTransportEnabled() { return true; } inline bool IsCallTracerSendInitialMetadataIsAnAnnotationEnabled() { return true; } -inline bool IsChannelzUseV2ForV1ApiEnabled() { return false; } -inline bool IsChannelzUseV2ForV1ServiceEnabled() { return false; } +inline bool IsCallTracerSendTrailingMetadataIsAnAnnotationEnabled() { + return false; +} #define GRPC_EXPERIMENT_IS_INCLUDED_CHAOTIC_GOOD_CONNECT_DEADLINE inline bool IsChaoticGoodConnectDeadlineEnabled() { return true; } #define GRPC_EXPERIMENT_IS_INCLUDED_CHAOTIC_GOOD_FRAMING_LAYER inline bool IsChaoticGoodFramingLayerEnabled() { return true; } -inline bool IsChttp2BoundWriteSizeEnabled() { return false; } inline bool IsErrorFlattenEnabled() { return false; } #define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_CLIENT inline bool IsEventEngineClientEnabled() { return true; } @@ -248,7 +254,8 @@ inline bool IsMonitoringExperimentEnabled() { return true; } inline bool IsMultipingEnabled() { return false; } inline bool IsOtelExportTelemetryDomainsEnabled() { return false; } inline bool IsPickFirstIgnoreEmptyUpdatesEnabled() { return false; } -inline bool IsPickFirstReadyToConnectingEnabled() { return false; } +#define GRPC_EXPERIMENT_IS_INCLUDED_PICK_FIRST_READY_TO_CONNECTING +inline bool IsPickFirstReadyToConnectingEnabled() { return true; } inline bool IsPipelinedReadSecureEndpointEnabled() { return false; } inline bool IsPollsetAlternativeEnabled() { return false; } inline bool IsPrioritizeFinishedRequestsEnabled() { return false; } @@ -258,7 +265,8 @@ inline bool IsPromiseBasedInprocTransportEnabled() { return false; } inline bool IsPromiseFilterSendCancelMetadataEnabled() { return false; } inline bool IsRetryInCallv3Enabled() { return false; } inline bool IsReturnPreexistingErrorsEnabled() { return false; } -inline bool IsRrWrrConnectFromRandomIndexEnabled() { return false; } +#define GRPC_EXPERIMENT_IS_INCLUDED_RR_WRR_CONNECT_FROM_RANDOM_INDEX +inline bool IsRrWrrConnectFromRandomIndexEnabled() { return true; } inline bool IsScheduleCancellationOverWriteEnabled() { return false; } inline bool IsSecureEndpointOffloadLargeReadsEnabled() { return false; } inline bool IsSecureEndpointOffloadLargeWritesEnabled() { return false; } @@ -274,6 +282,7 @@ inline bool IsTrackWritesInResourceQuotaEnabled() { return false; } inline bool IsTrackZeroCopyAllocationsInResourceQuotaEnabled() { return false; } inline bool IsTsiFrameProtectorWithoutLocksEnabled() { return false; } inline bool IsUnconstrainedMaxQuotaBufferSizeEnabled() { return false; } +inline bool IsUseCallEventEngineInCompletionQueueEnabled() { return false; } #endif #else @@ -281,11 +290,9 @@ enum ExperimentIds { kExperimentIdBufferListDeletionPrep, kExperimentIdCallTracerInTransport, kExperimentIdCallTracerSendInitialMetadataIsAnAnnotation, - kExperimentIdChannelzUseV2ForV1Api, - kExperimentIdChannelzUseV2ForV1Service, + kExperimentIdCallTracerSendTrailingMetadataIsAnAnnotation, kExperimentIdChaoticGoodConnectDeadline, kExperimentIdChaoticGoodFramingLayer, - kExperimentIdChttp2BoundWriteSize, kExperimentIdErrorFlatten, kExperimentIdEventEngineClient, kExperimentIdEventEngineDns, @@ -332,6 +339,7 @@ enum ExperimentIds { kExperimentIdTrackZeroCopyAllocationsInResourceQuota, kExperimentIdTsiFrameProtectorWithoutLocks, kExperimentIdUnconstrainedMaxQuotaBufferSize, + kExperimentIdUseCallEventEngineInCompletionQueue, kNumExperiments }; #define GRPC_EXPERIMENT_IS_INCLUDED_BUFFER_LIST_DELETION_PREP @@ -347,13 +355,10 @@ inline bool IsCallTracerSendInitialMetadataIsAnAnnotationEnabled() { return IsExperimentEnabled< kExperimentIdCallTracerSendInitialMetadataIsAnAnnotation>(); } -#define GRPC_EXPERIMENT_IS_INCLUDED_CHANNELZ_USE_V2_FOR_V1_API -inline bool IsChannelzUseV2ForV1ApiEnabled() { - return IsExperimentEnabled(); -} -#define GRPC_EXPERIMENT_IS_INCLUDED_CHANNELZ_USE_V2_FOR_V1_SERVICE -inline bool IsChannelzUseV2ForV1ServiceEnabled() { - return IsExperimentEnabled(); +#define GRPC_EXPERIMENT_IS_INCLUDED_CALL_TRACER_SEND_TRAILING_METADATA_IS_AN_ANNOTATION +inline bool IsCallTracerSendTrailingMetadataIsAnAnnotationEnabled() { + return IsExperimentEnabled< + kExperimentIdCallTracerSendTrailingMetadataIsAnAnnotation>(); } #define GRPC_EXPERIMENT_IS_INCLUDED_CHAOTIC_GOOD_CONNECT_DEADLINE inline bool IsChaoticGoodConnectDeadlineEnabled() { @@ -363,10 +368,6 @@ inline bool IsChaoticGoodConnectDeadlineEnabled() { inline bool IsChaoticGoodFramingLayerEnabled() { return IsExperimentEnabled(); } -#define GRPC_EXPERIMENT_IS_INCLUDED_CHTTP2_BOUND_WRITE_SIZE -inline bool IsChttp2BoundWriteSizeEnabled() { - return IsExperimentEnabled(); -} #define GRPC_EXPERIMENT_IS_INCLUDED_ERROR_FLATTEN inline bool IsErrorFlattenEnabled() { return IsExperimentEnabled(); @@ -552,6 +553,11 @@ inline bool IsTsiFrameProtectorWithoutLocksEnabled() { inline bool IsUnconstrainedMaxQuotaBufferSizeEnabled() { return IsExperimentEnabled(); } +#define GRPC_EXPERIMENT_IS_INCLUDED_USE_CALL_EVENT_ENGINE_IN_COMPLETION_QUEUE +inline bool IsUseCallEventEngineInCompletionQueueEnabled() { + return IsExperimentEnabled< + kExperimentIdUseCallEventEngineInCompletionQueue>(); +} extern const ExperimentMetadata g_experiment_metadata[kNumExperiments]; diff --git a/src/core/lib/experiments/experiments.yaml b/src/core/lib/experiments/experiments.yaml index e1b25b9c24143..5f01c9eac8d71 100644 --- a/src/core/lib/experiments/experiments.yaml +++ b/src/core/lib/experiments/experiments.yaml @@ -43,12 +43,12 @@ # state of each experiment. - name: buffer_list_deletion_prep description: Gate the removal of old TCP timestamp collection mechanism. - expiry: 2026/02/01 + expiry: 2026/05/01 owner: ctiller@google.com test_tags: [core_end2end_test] - name: call_tracer_in_transport description: Transport directly passes byte counts to CallTracer. - expiry: 2026/02/01 + expiry: 2026/09/01 owner: roth@google.com test_tags: [] allow_in_fuzzing_config: false @@ -57,54 +57,45 @@ expiry: 2026/06/01 owner: ctiller@google.com test_tags: [] -- name: channelz_use_v2_for_v1_api - description: Use the v2 channelz API for the v1 channelz API. - expiry: 2026/02/01 - owner: ctiller@google.com - test_tags: [channelz_test] -- name: channelz_use_v2_for_v1_service - description: Use the v2 channelz service for the v1 channelz service. - expiry: 2026/02/01 +- name: call_tracer_send_trailing_metadata_is_an_annotation + description: Use the new annotation-based CallTracer API. + expiry: 2026/06/01 owner: ctiller@google.com - test_tags: [channelz_test] + test_tags: [] - name: chaotic_good_connect_deadline description: Use the deadline from the connect args in chaotic good connector - expiry: 2026/02/01 + expiry: 2026/05/01 owner: ctiller@google.com test_tags: [core_end2end_test] - name: chaotic_good_framing_layer description: Enable the chaotic good framing layer. - expiry: 2026/02/01 + expiry: 2026/05/01 owner: ctiller@google.com test_tags: [core_end2end_test] allow_in_fuzzing_config: false -- name: chttp2_bound_write_size - description: Fix a bug where chttp2 can generate very large writes - expiry: 2026/02/01 - owner: ctiller@google.com - test_tags: [core_end2end_test] + - name: error_flatten description: Flatten errors to ordinary absl::Status form. - expiry: 2026/02/01 + expiry: 2026/04/01 owner: roth@google.com test_tags: ["core_end2end_test", "cpp_end2end_test", "xds_end2end_test", "error_tests"] allow_in_fuzzing_config: false - name: event_engine_callback_cq description: Use EventEngine instead of the CallbackAlternativeCQ. - expiry: 2026/01/23 + expiry: 2026/04/23 owner: mlumish@google.com requires: ["event_engine_client", "event_engine_listener"] - name: event_engine_client description: Use EventEngine clients instead of iomgr's grpc_tcp_client - expiry: 2026/01/23 + expiry: 2026/04/23 owner: mlumish@google.com test_tags: ["core_end2end_test", "event_engine_client_test"] uses_polling: true allow_in_fuzzing_config: false - name: event_engine_dns description: If set, use EventEngine DNSResolver for client channel resolution - expiry: 2026/01/23 + expiry: 2026/04/23 owner: mlumish@google.com test_tags: ["cancel_ares_query_test", "resolver_component_tests_runner_invoker"] @@ -112,14 +103,14 @@ uses_polling: true - name: event_engine_dns_non_client_channel description: If set, use EventEngine DNSResolver in other places besides client channel. - expiry: 2026/01/23 + expiry: 2026/04/23 owner: mlumish@google.com test_tags: ["core_end2end_test"] allow_in_fuzzing_config: false uses_polling: true - name: event_engine_for_all_other_endpoints description: Use EventEngine endpoints for all call sites, including direct uses of grpc_tcp_create. - expiry: 2026/01/23 + expiry: 2026/04/23 owner: mlumish@google.com test_tags: ["core_end2end_test"] allow_in_fuzzing_config: false @@ -133,21 +124,21 @@ ] - name: event_engine_fork description: Enables event engine fork handling, including onfork events and file descriptor generations - expiry: 2026/01/23 + expiry: 2026/05/23 owner: mlumish@google.com test_tags: ["core_end2end_test", "event_engine_fork_test"] uses_polling: true allow_in_fuzzing_config: false - name: event_engine_listener description: Use EventEngine listeners instead of iomgr's grpc_tcp_server - expiry: 2026/02/01 + expiry: 2026/04/23 owner: mlumish@google.com test_tags: ["core_end2end_test", "event_engine_listener_test"] uses_polling: true allow_in_fuzzing_config: false - name: event_engine_poller_for_python description: "Enable event engine poller in gRPC Python" - expiry: 2026/01/16 + expiry: 2026/03/16 owner: mlumish@google.com test_tags: [] uses_polling: true @@ -205,23 +196,23 @@ test_tags: [] - name: multiping description: Allow more than one ping to be in flight at a time by default. - expiry: 2026/02/01 + expiry: 2026/05/01 owner: ctiller@google.com test_tags: [flow_control_test] - name: otel_export_telemetry_domains description: Export telemetry domains in OpenTelemetry metrics. - expiry: 2026/02/01 + expiry: 2026/05/01 owner: ctiller@google.com test_tags: [core_end2end_test] - name: pick_first_ignore_empty_updates description: Ignore empty resolutions in pick_first - expiry: 2026/02/02 + expiry: 2026/05/02 owner: ctiller@google.com - name: pick_first_ready_to_connecting description: When the subchannel goes from READY to CONNECTING or TRANSIENT_FAILURE, pick_first goes to CONNECTING and starts a new Happy Eyeballs pass. - expiry: 2026/02/01 + expiry: 2026/05/01 owner: roth@google.com test_tags: ["lb_unit_test", "cpp_lb_end2end_test"] - name: pipelined_read_secure_endpoint @@ -236,7 +227,7 @@ description: Code outside iomgr that relies directly on pollsets will use non-pollset alternatives when enabled. - expiry: 2026/01/23 + expiry: 2026/04/23 owner: mlumish@google.com test_tags: ["core_end2end_test"] requires: ["event_engine_client", "event_engine_listener"] @@ -252,7 +243,7 @@ Use promises for the http2 client transport. We have kept client and server transport experiments separate to help with smoother roll outs and also help with interop testing. - expiry: 2026/01/30 + expiry: 2026/08/30 owner: tjagtap@google.com test_tags: ["core_end2end_test", "cpp_end2end_test_client_ph2"] allow_in_fuzzing_config: true @@ -261,13 +252,13 @@ Use promises for the http2 server transport. We have kept client and server transport experiments separate to help with smoother roll outs and also help with interop testing. - expiry: 2026/02/28 + expiry: 2026/08/30 owner: tjagtap@google.com test_tags: [] allow_in_fuzzing_config: true - name: promise_based_inproc_transport description: Use promises for the in-process transport. - expiry: 2026/02/01 + expiry: 2026/05/01 owner: ctiller@google.com test_tags: [] allow_in_fuzzing_config: false # experiment currently crashes if enabled @@ -280,7 +271,7 @@ allow_in_fuzzing_config: true - name: retry_in_callv3 description: Support retries with call-v3 - expiry: 2026/02/01 + expiry: 2026/05/01 owner: ctiller@google.com test_tags: [core_end2end_test] - name: return_preexisting_errors @@ -292,7 +283,7 @@ description: RR and WRR LB policies start connecting from a random index in the address list. - expiry: 2026/02/01 + expiry: 2026/04/01 owner: roth@google.com test_tags: ["lb_unit_test", "cpp_lb_end2end_test"] - name: schedule_cancellation_over_write @@ -339,14 +330,14 @@ test_tags: ["promise_test"] - name: subchannel_connection_scaling description: Subchannel connection scaling support. - expiry: 2026/02/01 + expiry: 2026/07/01 owner: roth@google.com - test_tags: ["cpp_lb_end2end_test", "chttp2_keepalive_tests"] + test_tags: ["core_end2end_test", "cpp_lb_end2end_test", "chttp2_keepalive_tests"] - name: subchannel_wrapper_cleanup_on_orphan description: Fixes the subchannel wrapper to drop any non-cancelled watchers when it gets orphaned. - expiry: 2026/01/15 + expiry: 2026/05/15 owner: roth@google.com test_tags: ["cpp_end2end_test", "xds_end2end_test"] - name: tcp_frame_size_tuning @@ -383,6 +374,11 @@ test_tags: [] - name: unconstrained_max_quota_buffer_size description: Discard the cap on the max free pool size for one memory allocator - expiry: 2026/02/01 + expiry: 2026/05/01 owner: ctiller@google.com test_tags: [resource_quota_test] +- name: use_call_event_engine_in_completion_queue + description: Use the call event engine to run callbacks in completion queue. + expiry: 2026/06/01 + owner: aananthv@google.com + test_tags: ["core_end2end_test"] diff --git a/src/core/lib/experiments/rollouts.yaml b/src/core/lib/experiments/rollouts.yaml index 1605cc502d70f..45e913dcfc69a 100644 --- a/src/core/lib/experiments/rollouts.yaml +++ b/src/core/lib/experiments/rollouts.yaml @@ -82,6 +82,8 @@ default: true - name: monitoring_experiment default: true +- name: pick_first_ready_to_connecting + default: true - name: pollset_alternative default: false - name: prioritize_finished_requests @@ -92,6 +94,8 @@ default: false - name: promise_filter_send_cancel_metadata default: false +- name: rr_wrr_connect_from_random_index + default: true - name: schedule_cancellation_over_write default: false - name: skip_clear_peer_on_cancellation @@ -112,3 +116,5 @@ default: false - name: unconstrained_max_quota_buffer_size default: false +- name: use_call_event_engine_in_completion_queue + default: false diff --git a/src/core/lib/resource_quota/telemetry.h b/src/core/lib/resource_quota/telemetry.h index 87e842227ca57..058471e3c9536 100644 --- a/src/core/lib/resource_quota/telemetry.h +++ b/src/core/lib/resource_quota/telemetry.h @@ -21,9 +21,9 @@ namespace grpc_core { class ResourceQuotaDomain final : public InstrumentDomain { public: + GRPC_INSTRUMENT_DOMAIN_LABELS("grpc.resource_quota"); using Backend = HighContentionBackend; static constexpr absl::string_view kName = "resource_quota"; - static constexpr auto kLabels = Labels("grpc.resource_quota"); static inline const auto kCallsDropped = RegisterCounter( "grpc.resource_quota.calls_dropped", diff --git a/src/core/lib/transport/transport.h b/src/core/lib/transport/transport.h index 0a071de6e8cf2..896a2974c9586 100644 --- a/src/core/lib/transport/transport.h +++ b/src/core/lib/transport/transport.h @@ -409,6 +409,11 @@ struct grpc_transport_stream_op_batch_payload { // This should be set for cancellations that result from malformed client // initial metadata. bool tarpit = false; + // Server-side only: If non-null, the transport sends this trailing + // metadata to the client. + // NOTE: This metadata bypasses subsequent filters and is sent directly + // to the client. Ensure it contains only fields intended for the client. + grpc_core::ServerMetadataHandle send_trailing_metadata = nullptr; } cancel_stream; }; diff --git a/src/core/resolver/xds/xds_resolver.cc b/src/core/resolver/xds/xds_resolver.cc index 5a24bc980a411..c7c09d1128242 100644 --- a/src/core/resolver/xds/xds_resolver.cc +++ b/src/core/resolver/xds/xds_resolver.cc @@ -192,12 +192,6 @@ class XdsResolver final : public Resolver { uint32_t range_end; absl::string_view cluster; RefCountedPtr method_config; - - bool operator==(const ClusterWeightState& other) const { - return range_end == other.range_end && cluster == other.cluster && - MethodConfigsEqual(method_config.get(), - other.method_config.get()); - } }; XdsRouteConfigResource::Route route; @@ -205,22 +199,11 @@ class XdsResolver final : public Resolver { std::vector weighted_cluster_state; explicit RouteEntry(const XdsRouteConfigResource::Route& r) : route(r) {} - - bool operator==(const RouteEntry& other) const { - return route == other.route && - weighted_cluster_state == other.weighted_cluster_state && - MethodConfigsEqual(method_config.get(), - other.method_config.get()); - } }; static absl::StatusOr> Create( XdsResolver* resolver, const Duration& default_max_stream_duration); - bool operator==(const RouteConfigData& other) const { - return clusters_ == other.clusters_ && routes_ == other.routes_; - } - RefCountedPtr FindClusterRef(absl::string_view name) const { auto it = clusters_.find(name); if (it == clusters_.end()) { @@ -240,13 +223,6 @@ class XdsResolver final : public Resolver { const XdsRouteConfigResource::Route::RouteAction::ClusterWeight* cluster_weight); - static bool MethodConfigsEqual(const ServiceConfig* sc1, - const ServiceConfig* sc2) { - if (sc1 == nullptr) return sc2 == nullptr; - if (sc2 == nullptr) return false; - return sc1->json_string() == sc2->json_string(); - } - absl::Status AddRouteEntry(XdsResolver* resolver, const XdsRouteConfigResource::Route& route, const Duration& default_max_stream_duration); @@ -268,25 +244,25 @@ class XdsResolver final : public Resolver { bool Equals(const ConfigSelector* other) const override { const auto* other_xds = static_cast(other); - // Don't need to compare resolver_, since that will always be the same. - return *route_config_data_ == *other_xds->route_config_data_ && - filters_ == other_xds->filters_; + // Only need to compare LDS and RDS resources, since all of our + // other state is derived from those. + return *xds_config_->listener == *other_xds->xds_config_->listener && + *xds_config_->route_config == + *other_xds->xds_config_->route_config; } - absl::Status GetCallConfig(GetCallConfigArgs args) override; - - void AddFilters(InterceptionChainBuilder& builder, - const Blackboard* old_blackboard, - Blackboard* new_blackboard) override; + void BuildFilterChains(FilterChainBuilder& builder, + const Blackboard* old_blackboard, + Blackboard* new_blackboard) override; - std::vector GetFilters( - const Blackboard* old_blackboard, Blackboard* new_blackboard) override; + absl::StatusOr> GetCallConfig( + GetCallConfigArgs args) override; private: RefCountedPtr resolver_; - std::shared_ptr listener_; + RefCountedPtr xds_config_; RefCountedPtr route_config_data_; - std::vector filters_; + absl::StatusOr> filter_chain_; }; class XdsRouteStateAttributeImpl final : public XdsRouteStateAttribute { @@ -315,7 +291,7 @@ class XdsResolver final : public Resolver { class ClusterSelectionFilter final : public ImplementChannelFilter { public: - const static grpc_channel_filter kFilter; + const static grpc_channel_filter kFilterVtable; static absl::string_view TypeName() { return "cluster_selection_filter"; } @@ -614,26 +590,10 @@ XdsResolver::XdsConfigSelector::XdsConfigSelector( RefCountedPtr resolver, RefCountedPtr route_config_data) : resolver_(std::move(resolver)), - listener_(resolver_->current_config_->listener), + xds_config_(resolver_->current_config_), route_config_data_(std::move(route_config_data)) { GRPC_TRACE_LOG(xds_resolver, INFO) << "[xds_resolver " << resolver_.get() << "] creating XdsConfigSelector " << this; - // Populate filter list. - const auto& http_filter_registry = - DownCast(resolver_->xds_client_->bootstrap()) - .http_filter_registry(); - const auto& hcm = - std::get(listener_->listener); - for (const auto& http_filter : hcm.http_filters) { - // Find filter. This is guaranteed to succeed, because it's checked - // at config validation time. - const XdsHttpFilterImpl* filter_impl = - http_filter_registry.GetFilterForType( - http_filter.config.config_proto_type_name); - GRPC_CHECK_NE(filter_impl, nullptr); - // Add filter to list. - filters_.push_back(filter_impl); - } } XdsResolver::XdsConfigSelector::~XdsConfigSelector() { @@ -667,8 +627,8 @@ std::optional HeaderHashHelper( return XXH64(header_value->data(), header_value->size(), 0); } -absl::Status XdsResolver::XdsConfigSelector::GetCallConfig( - GetCallConfigArgs args) { +absl::StatusOr> +XdsResolver::XdsConfigSelector::GetCallConfig(GetCallConfigArgs args) { Slice* path = args.initial_metadata->get_pointer(HttpPathMetadata()); GRPC_CHECK_NE(path, nullptr); auto* entry = route_config_data_->GetRouteForRequest(path->as_string_view(), @@ -776,41 +736,30 @@ absl::Status XdsResolver::XdsConfigSelector::GetCallConfig( args.service_config_call_data->SetCallAttribute( args.arena->ManagedNew(route_config_data_, entry)); - return absl::OkStatus(); + return filter_chain_; } -void XdsResolver::XdsConfigSelector::AddFilters( - InterceptionChainBuilder& builder, const Blackboard* old_blackboard, +void XdsResolver::XdsConfigSelector::BuildFilterChains( + FilterChainBuilder& builder, const Blackboard* old_blackboard, Blackboard* new_blackboard) { - const auto& hcm = - std::get(listener_->listener); - GRPC_CHECK_EQ(filters_.size(), hcm.http_filters.size()); - for (size_t i = 0; i < filters_.size(); ++i) { - auto* filter = filters_[i]; - filter->AddFilter(builder); - filter->UpdateBlackboard(hcm.http_filters[i].config, old_blackboard, - new_blackboard); - } - builder.Add(nullptr); -} - -std::vector -XdsResolver::XdsConfigSelector::GetFilters(const Blackboard* old_blackboard, - Blackboard* new_blackboard) { - const auto& hcm = - std::get(listener_->listener); - GRPC_CHECK_EQ(filters_.size(), hcm.http_filters.size()); - std::vector filters; - for (size_t i = 0; i < filters_.size(); ++i) { - auto* filter = filters_[i]; - if (filter->channel_filter() != nullptr) { - filters.push_back(filter->channel_filter()); - } - filter->UpdateBlackboard(hcm.http_filters[i].config, old_blackboard, - new_blackboard); + const auto& http_filter_registry = + DownCast(resolver_->xds_client_->bootstrap()) + .http_filter_registry(); + const auto& hcm = std::get( + xds_config_->listener->listener); + for (const auto& http_filter : hcm.http_filters) { + // Find filter. This is guaranteed to succeed, because it's checked + // at config validation time. + const XdsHttpFilterImpl* filter_impl = + http_filter_registry.GetFilterForType( + http_filter.config.config_proto_type_name); + GRPC_CHECK_NE(filter_impl, nullptr); + filter_impl->AddFilter(builder); + filter_impl->UpdateBlackboard(http_filter.config, old_blackboard, + new_blackboard); } - filters.push_back(&ClusterSelectionFilter::kFilter); - return filters; + builder.AddFilter(nullptr); + filter_chain_ = builder.Build(); } // @@ -858,7 +807,7 @@ XdsResolver::XdsRouteStateAttributeImpl::LockAndGetCluster( // XdsResolver::ClusterSelectionFilter // -const grpc_channel_filter XdsResolver::ClusterSelectionFilter::kFilter = +const grpc_channel_filter XdsResolver::ClusterSelectionFilter::kFilterVtable = MakePromiseBasedFilter(); diff --git a/src/core/telemetry/call_tracer.cc b/src/core/telemetry/call_tracer.cc index c7f8af18781cf..6ac50db52fc9e 100644 --- a/src/core/telemetry/call_tracer.cc +++ b/src/core/telemetry/call_tracer.cc @@ -56,6 +56,21 @@ void SendInitialMetadataAnnotation::ForEachKeyValue( }); } +std::string SendTrailingMetadataAnnotation::ToString() const { + return "SendTrailingMetadata"; +} + +void SendTrailingMetadataAnnotation::ForEachKeyValue( + absl::FunctionRef f) const { + metadata_->Log([f](absl::string_view key, absl::string_view value) { + if (IsMetadataKeyAllowedInDebugOutput(key)) { + f(key, value); + } else { + f(key, "[REDACTED]"); + } + }); +} + CallTracerInterface::TransportByteSize& CallTracerInterface::TransportByteSize::operator+=( const CallTracerInterface::TransportByteSize& other) { @@ -133,6 +148,12 @@ class DelegatingClientCallTracer : public ClientCallTracerInterface { tracer->RecordSendTrailingMetadata(send_trailing_metadata); } } + void MutateSendTrailingMetadata( + grpc_metadata_batch* send_trailing_metadata) override { + for (auto* tracer : tracers_) { + tracer->MutateSendTrailingMetadata(send_trailing_metadata); + } + } void RecordSendMessage(const Message& send_message) override { for (auto* tracer : tracers_) { tracer->RecordSendMessage(send_message); @@ -293,6 +314,12 @@ class DelegatingServerCallTracer : public ServerCallTracerInterface { tracer->RecordSendTrailingMetadata(send_trailing_metadata); } } + void MutateSendTrailingMetadata( + grpc_metadata_batch* send_trailing_metadata) override { + for (auto* tracer : tracers_) { + tracer->MutateSendTrailingMetadata(send_trailing_metadata); + } + } void RecordSendMessage(const Message& send_message) override { for (auto* tracer : tracers_) { tracer->RecordSendMessage(send_message); @@ -387,6 +414,16 @@ void CallTracer::RecordSendInitialMetadata( } } +void CallTracer::RecordSendTrailingMetadata( + grpc_metadata_batch* send_trailing_metadata) { + if (IsCallTracerSendTrailingMetadataIsAnAnnotationEnabled()) { + RecordAnnotation(SendTrailingMetadataAnnotation(send_trailing_metadata)); + interface_->MutateSendTrailingMetadata(send_trailing_metadata); + } else { + interface_->RecordSendTrailingMetadata(send_trailing_metadata); + } +} + void SetClientCallTracer(Arena* arena, absl::Span tracer) { GRPC_DCHECK_EQ(arena->GetContext(), nullptr); diff --git a/src/core/telemetry/call_tracer.h b/src/core/telemetry/call_tracer.h index 34ed1fec351f9..0050f8ba06079 100644 --- a/src/core/telemetry/call_tracer.h +++ b/src/core/telemetry/call_tracer.h @@ -71,6 +71,7 @@ class CallTracerAnnotationInterface { kMetadataSizes, kHttpTransport, kSendInitialMetadata, + kSendTrailingMetadata, kDoNotUse_MustBeLast, }; @@ -121,6 +122,22 @@ class SendInitialMetadataAnnotation final const grpc_metadata_batch* metadata_; }; +class SendTrailingMetadataAnnotation final + : public CallTracerAnnotationInterface::Annotation { + public: + explicit SendTrailingMetadataAnnotation(grpc_metadata_batch* metadata) + : Annotation(CallTracerAnnotationInterface::AnnotationType:: + kSendTrailingMetadata), + metadata_(metadata) {} + const grpc_metadata_batch* metadata() const { return metadata_; } + std::string ToString() const override; + void ForEachKeyValue( + absl::FunctionRef f) const override; + + private: + const grpc_metadata_batch* metadata_; +}; + // The base class for CallAttemptTracer and ServerCallTracer. // TODO(yashykt): What's a better name for this? class CallTracerInterface : public CallTracerAnnotationInterface { @@ -134,6 +151,8 @@ class CallTracerInterface : public CallTracerAnnotationInterface { grpc_metadata_batch* send_initial_metadata) = 0; virtual void RecordSendTrailingMetadata( grpc_metadata_batch* send_trailing_metadata) = 0; + virtual void MutateSendTrailingMetadata( + grpc_metadata_batch* send_trailing_metadata) = 0; virtual void RecordSendMessage(const Message& send_message) = 0; // Only invoked if message was actually compressed. virtual void RecordSendCompressedMessage( @@ -306,9 +325,7 @@ class CallTracer : public CallSpan { : CallSpan(interface), interface_(interface) {} void RecordSendInitialMetadata(grpc_metadata_batch* send_initial_metadata); - void RecordSendTrailingMetadata(grpc_metadata_batch* send_trailing_metadata) { - interface_->RecordSendTrailingMetadata(send_trailing_metadata); - } + void RecordSendTrailingMetadata(grpc_metadata_batch* send_trailing_metadata); void RecordSendMessage(const Message& send_message) { interface_->RecordSendMessage(send_message); } diff --git a/src/core/telemetry/instrument.cc b/src/core/telemetry/instrument.cc index a1c4943f2a90a..64f019ea67b7b 100644 --- a/src/core/telemetry/instrument.cc +++ b/src/core/telemetry/instrument.cc @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -30,6 +31,7 @@ #include "src/core/channelz/channelz.h" #include "src/core/channelz/property_list.h" #include "src/core/telemetry/histogram.h" +#include "src/core/util/bitset.h" #include "src/core/util/grpc_check.h" #include "src/core/util/match.h" #include "src/core/util/ref_counted_ptr.h" @@ -45,9 +47,71 @@ #include "absl/strings/str_join.h" #include "absl/strings/string_view.h" #include "absl/types/span.h" - namespace grpc_core { +std::atomic* InstrumentLabel::GetLabels() { + static std::atomic* static_labels = new std::atomic< + const std::string*>[InstrumentLabel::kMaxLabelsPerProcess] {}; + return static_labels; +} + +std::string InstrumentLabel::RegistrationDebugString() { + return absl::StrJoin( + absl::MakeSpan(GetLabels(), kMaxLabelsPerProcess), ", ", + [](std::string* s, const std::atomic& p) { + auto* loaded_p = p.load(std::memory_order_acquire); + if (loaded_p == nullptr) { + s->append(""); + } else { + s->append(*loaded_p); + } + }); +} + +InstrumentLabel::InstrumentLabel(absl::string_view label) { + auto* labels = GetLabels(); + std::unique_ptr label_copy; + for (size_t i = 0; i < InstrumentLabel::kMaxLabelsPerProcess; ++i) { + auto* current_value = labels[i].load(std::memory_order_acquire); + while (current_value == nullptr) { + if (label_copy == nullptr) { + label_copy.reset(new std::string(label)); + } + if (!labels[i].compare_exchange_weak(current_value, label_copy.get(), + std::memory_order_acq_rel)) { + continue; + } + label_copy.release(); + index_ = i; + return; + } + GRPC_CHECK(current_value != nullptr); + if (*current_value == label) { + index_ = i; + return; + } + } + GRPC_CHECK(false) << "Too many instrument labels registered"; +} + +InstrumentLabelList InstrumentLabelSet::ToList() const { + InstrumentLabelList list; + for (size_t i = 0; i < InstrumentLabel::kMaxLabelsPerProcess; ++i) { + if (set_.is_set(i)) list.Append(InstrumentLabel::FromIndex(i)); + } + return list; +} + +std::string InstrumentLabelList::DebugString() const { + return absl::StrJoin(absl::MakeSpan(labels_, count_), ", ", + [](std::string* s, const InstrumentLabel& label) { + s->append(label.label()); + s->append("[idx="); + s->append(std::to_string(label.index())); + s->append("]"); + }); +} + namespace { struct Hook { HistogramCollectionHook hook; @@ -81,12 +145,14 @@ void CallHistogramCollectionHooks( namespace { std::vector FilterLabels( - absl::Span domain_label_names, - const absl::flat_hash_set& scope_labels_of_interest, + InstrumentLabelList domain_label_names, + InstrumentLabelSet scope_labels_of_interest, absl::Span full_label_values) { std::vector result; result.reserve(domain_label_names.size()); for (size_t i = 0; i < domain_label_names.size(); ++i) { + VLOG(1) << "Checking label " << domain_label_names[i].label() << " index " + << (int)domain_label_names[i].index() << " in scope labels"; if (scope_labels_of_interest.contains(domain_label_names[i])) { result.push_back(full_label_values[i]); } else { @@ -99,10 +165,10 @@ std::vector FilterLabels( CollectionScope::CollectionScope( std::vector> parents, - absl::Span labels, size_t child_shards_count, + InstrumentLabelSet labels_of_interest, size_t child_shards_count, size_t storage_shards_count) : parents_(std::move(parents)), - labels_of_interest_(labels.begin(), labels.end()), + labels_of_interest_(labels_of_interest), child_shards_(child_shards_count), storage_shards_(storage_shards_count) { // Sort parents (by address) and then remove any duplicates. @@ -110,11 +176,12 @@ CollectionScope::CollectionScope( parents_.erase(std::unique(parents_.begin(), parents_.end()), parents_.end()); for (const auto& parent : parents_) { if (parent != nullptr) { - labels_of_interest_.insert(parent->labels_of_interest_.begin(), - parent->labels_of_interest_.end()); + labels_of_interest_.Merge(parent->labels_of_interest_); auto& shard = parent->child_shard(this); MutexLock lock(&shard.mu); shard.children.insert(this); + VLOG(1) << "Registered child scope " << this << " with parent " + << parent.get(); } } } @@ -173,6 +240,7 @@ void CollectionScope::ForEachUniqueStorage( for (auto& shard : child_shards_) { MutexLock lock(&shard.mu); for (auto* child : shard.children) { + VLOG(1) << "Visiting child scope " << child << " from parent " << this; child->ForEachUniqueStorage(cb, visited); } } @@ -191,7 +259,7 @@ void CollectionScope::TestOnlyReset() { RefCountedPtr CreateCollectionScope( std::vector> parents, - absl::Span labels, size_t child_shards_count, + InstrumentLabelSet labels, size_t child_shards_count, size_t storage_shards_count) { return MakeRefCounted( std::move(parents), labels, child_shards_count, storage_shards_count); @@ -227,9 +295,9 @@ MetricsQuery& MetricsQuery::WithLabelEq(absl::string_view label, } MetricsQuery& MetricsQuery::CollapseLabels( - absl::Span labels) { + absl::Span labels) { for (const auto& label : labels) { - collapsed_labels_.insert(label); + collapsed_labels_.Set(label); } return *this; } @@ -336,7 +404,7 @@ void MetricsQuery::Run(RefCountedPtr scope, } } -void MetricsQuery::Apply(absl::Span label_names, +void MetricsQuery::Apply(InstrumentLabelList label_names, absl::FunctionRef fn, MetricsSink& sink) const { if (collapsed_labels_.empty()) { @@ -344,11 +412,11 @@ void MetricsQuery::Apply(absl::Span label_names, return; } std::vector include_labels; - std::vector label_keys; + InstrumentLabelList label_keys; for (size_t i = 0; i < label_names.size(); ++i) { if (!collapsed_labels_.contains(label_names[i])) { include_labels.push_back(i); - label_keys.push_back(label_names[i]); + label_keys.Append(label_names[i]); } } if (include_labels.size() == label_names.size()) { @@ -358,22 +426,22 @@ void MetricsQuery::Apply(absl::Span label_names, class Filter final : public MetricsSink { public: explicit Filter(absl::Span include_labels, - absl::Span label_keys) + InstrumentLabelList label_keys) : include_labels_(include_labels), label_keys_(label_keys) {} - void Counter(absl::Span /* label_keys */, + void Counter(InstrumentLabelList /* label_keys */, absl::Span label_values, absl::string_view name, uint64_t value) override { uint64_counters_[ConstructKey(label_values, name)] += value; } - void UpDownCounter(absl::Span /* label_keys */, + void UpDownCounter(InstrumentLabelList /* label_keys */, absl::Span label_values, absl::string_view name, uint64_t value) override { uint64_up_down_counters_[ConstructKey(label_values, name)] += value; } - void Histogram(absl::Span /* label_keys */, + void Histogram(InstrumentLabelList /* label_keys */, absl::Span label_values, absl::string_view name, HistogramBuckets bounds, absl::Span counts) override { @@ -395,17 +463,17 @@ void MetricsQuery::Apply(absl::Span label_names, } } - void DoubleGauge(absl::Span /* label_keys */, + void DoubleGauge(InstrumentLabelList /* label_keys */, absl::Span, absl::string_view, double) override { // Not aggregatable } - void IntGauge(absl::Span /* label_keys */, + void IntGauge(InstrumentLabelList /* label_keys */, absl::Span, absl::string_view, int64_t) override { // Not aggregatable } - void UintGauge(absl::Span /* label_keys */, + void UintGauge(InstrumentLabelList /* label_keys */, absl::Span, absl::string_view, uint64_t) override { // Not aggregatable @@ -438,7 +506,7 @@ void MetricsQuery::Apply(absl::Span label_names, } absl::Span include_labels_; - absl::Span label_keys_; + InstrumentLabelList label_keys_; absl::flat_hash_map, absl::string_view>, uint64_t> uint64_counters_; @@ -460,7 +528,7 @@ void MetricsQuery::Apply(absl::Span label_names, filter.Publish(sink); } -void MetricsQuery::ApplyLabelChecks(absl::Span label_names, +void MetricsQuery::ApplyLabelChecks(InstrumentLabelList label_names, absl::FunctionRef fn, MetricsSink& sink) const { if (label_eqs_.empty()) { @@ -486,21 +554,21 @@ void MetricsQuery::ApplyLabelChecks(absl::Span label_names, absl::Span inclusion_checks) : inclusion_checks_(inclusion_checks), sink_(sink) {} - void Counter(absl::Span label_keys, + void Counter(InstrumentLabelList label_keys, absl::Span label_values, absl::string_view name, uint64_t value) override { if (!Matches(label_values)) return; sink_.Counter(label_keys, label_values, name, value); } - void UpDownCounter(absl::Span label_keys, + void UpDownCounter(InstrumentLabelList label_keys, absl::Span label_values, absl::string_view name, uint64_t value) override { if (!Matches(label_values)) return; sink_.UpDownCounter(label_keys, label_values, name, value); } - void Histogram(absl::Span label_keys, + void Histogram(InstrumentLabelList label_keys, absl::Span label_values, absl::string_view name, HistogramBuckets bounds, absl::Span counts) override { @@ -508,19 +576,19 @@ void MetricsQuery::ApplyLabelChecks(absl::Span label_names, sink_.Histogram(label_keys, label_values, name, bounds, counts); } - void DoubleGauge(absl::Span label_keys, + void DoubleGauge(InstrumentLabelList label_keys, absl::Span label_values, absl::string_view name, double value) override { if (!Matches(label_values)) return; sink_.DoubleGauge(label_keys, label_values, name, value); } - void IntGauge(absl::Span label_keys, + void IntGauge(InstrumentLabelList label_keys, absl::Span label_values, absl::string_view name, int64_t value) override { if (!Matches(label_values)) return; sink_.IntGauge(label_keys, label_values, name, value); } - void UintGauge(absl::Span label_keys, + void UintGauge(InstrumentLabelList label_keys, absl::Span label_values, absl::string_view name, uint64_t value) override { if (!Matches(label_values)) return; @@ -599,7 +667,7 @@ void DomainStorage::AddData(channelz::DataSink sink) { channelz::PropertyGrid grid; for (size_t i = 0; i < label_.size(); ++i) { grid.SetRow( - domain_->label_names()[i], + domain_->label_names()[i].label(), channelz::PropertyList().Set("value", label_[i])); } return grid; @@ -828,9 +896,12 @@ RefCountedPtr QueryableDomain::GetDomainStorage( auto parent_key_labels = FilterLabels( label_names_, scope->parents_[0]->labels_of_interest_, label_values); if (key_labels == parent_key_labels) { + VLOG(1) << "Redirecting storage creation to parent scope for " << this; return GetDomainStorage(scope->parents_[0], label_values); } } + VLOG(1) << "Creating storage in scope " << scope.get() << " for " << this + << " with labels " << absl::StrJoin(key_labels, ", "); size_t shard_idx = absl::HashOf(key_labels) % scope->storage_shards_.size(); auto& shard = scope->storage_shards_[shard_idx]; MutexLock lock(&shard.mu); @@ -893,9 +964,9 @@ class GlobalCollectionScopeManager { return *manager; } - RefCountedPtr CreateRootScope( - absl::Span labels, size_t child_shards_count, - size_t storage_shards_count) { + RefCountedPtr CreateRootScope(InstrumentLabelSet labels, + size_t child_shards_count, + size_t storage_shards_count) { MutexLock lock(&mu_); if (auto* building = std::get_if(&state_); building != nullptr) { auto scope = CreateCollectionScope({}, labels, child_shards_count, @@ -905,15 +976,15 @@ class GlobalCollectionScopeManager { } else { // Global scope is already created, we can no longer subset labels. auto& published = std::get(state_); - std::vector missing_labels; - for (const auto& label : labels) { + std::vector missing_labels; + for (const auto& label : labels.ToList()) { if (!published.global_scope->ObservesLabel(label)) { - missing_labels.push_back(label); + missing_labels.push_back(label.label()); } } if (missing_labels.empty()) { LOG(ERROR) << "Attempt to create a root scope with labels [" - << absl::StrJoin(labels, ", ") + << absl::StrJoin(labels.ToList(), ", ") << "] after the global scope was already created. " "All requested labels are collected by the global scope, " "so this scope will be returned instead. " @@ -922,7 +993,7 @@ class GlobalCollectionScopeManager { "to GlobalCollectionScope()."; } else { LOG(ERROR) << "Attempt to create a root scope with labels [" - << absl::StrJoin(labels, ", ") + << absl::StrJoin(labels.ToList(), ", ") << "] after the global scope was already created. " "The following labels are not collected by the global " "scope, and so will not be available: [" @@ -939,8 +1010,8 @@ class GlobalCollectionScopeManager { RefCountedPtr GetGlobalScope() { MutexLock lock(&mu_); if (auto* building = std::get_if(&state_); building != nullptr) { - auto global_scope = - CreateCollectionScope(building->root_scopes, {}, 32, 32); + auto global_scope = CreateCollectionScope(building->root_scopes, + InstrumentLabelSet(), 32, 32); state_ = Published{global_scope}; return global_scope; } else { @@ -974,7 +1045,7 @@ class GlobalCollectionScopeManager { }; RefCountedPtr CreateRootCollectionScope( - absl::Span labels, size_t child_shards_count, + InstrumentLabelSet labels, size_t child_shards_count, size_t storage_shards_count) { return GlobalCollectionScopeManager::Get().CreateRootScope( labels, child_shards_count, storage_shards_count); diff --git a/src/core/telemetry/instrument.h b/src/core/telemetry/instrument.h index 0a6cc94e1ac1c..d3720c1c3a82f 100644 --- a/src/core/telemetry/instrument.h +++ b/src/core/telemetry/instrument.h @@ -91,9 +91,10 @@ // // 1. `using Backend = ...;`: Specifies the backend type (e.g., // `LowContentionBackend`, `HighContentionBackend`). -// 2. `static constexpr auto kLabels = std::tuple(...);`: Defines the names -// of the labels for this domain. The types of the labels are inferred -// from the arguments passed to `GetStorage()`. +// 2. `GRPC_INSTRUMENT_DOMAIN_LABELS("label1", "label2", ...);`: Defines the +// names of the labels for this domain via a macro that generates a +// static `Labels()` method. The types of the labels are inferred from +// the arguments passed to `GetStorage()`. // // Instruments are registered as static members within the domain class using // the `Register*` methods. @@ -102,7 +103,7 @@ // class MyDomain : public InstrumentDomain { // public: // using Backend = LowContentionBackend; -// static constexpr auto kLabels = std::tuple("my_label", "another_label"); +// GRPC_INSTRUMENT_DOMAIN_LABELS("my_label", "another_label"); // // // Register a counter: // static inline const auto kMyCounter = RegisterCounter( @@ -179,6 +180,7 @@ #include #include #include +#include #include #include #include @@ -191,6 +193,7 @@ #include "src/core/channelz/channelz.h" #include "src/core/telemetry/histogram.h" #include "src/core/util/avl.h" +#include "src/core/util/bitset.h" #include "src/core/util/dual_ref_counted.h" #include "src/core/util/grpc_check.h" #include "src/core/util/per_cpu.h" @@ -222,6 +225,165 @@ class QueryableDomain; class DomainStorage; } // namespace instrument_detail +class InstrumentLabel { + public: + static constexpr size_t kMaxLabelsPerProcess = 63; + static constexpr size_t kMaxLabelsPerDomain = 15; + + InstrumentLabel() : index_(kSentinelIndex) {} + explicit InstrumentLabel(absl::string_view label); + InstrumentLabel(const char* label) + : InstrumentLabel(absl::string_view(label)) {} + + static InstrumentLabel FromIndex(uint8_t index) { + InstrumentLabel label; + label.index_ = index; + return label; + } + + uint8_t index() const { return index_; } + absl::string_view label() const { + CHECK_NE(index_, kSentinelIndex); + std::atomic* labels = GetLabels(); + const std::string* label = labels[index_].load(std::memory_order_acquire); + CHECK_NE(label, nullptr) + << "Label index " << static_cast(index_) << " is out of range"; + return *label; + } + + template + friend void AbslStringify(Sink& sink, InstrumentLabel label) { + sink.Append(label.label()); + } + + template + friend H AbslHashValue(H h, InstrumentLabel label) { + return H::combine(std::move(h), label.index_); + } + + friend bool operator==(InstrumentLabel a, InstrumentLabel b) { + return a.index_ == b.index_; + } + + friend bool operator!=(InstrumentLabel a, InstrumentLabel b) { + return a.index_ != b.index_; + } + + friend bool operator<(InstrumentLabel a, InstrumentLabel b) { + return a.index_ < b.index_; + } + + friend bool operator>(InstrumentLabel a, InstrumentLabel b) { + return a.index_ > b.index_; + } + + static std::string RegistrationDebugString(); + static std::atomic* GetLabels(); + + private: + static constexpr uint8_t kSentinelIndex = 255; + uint8_t index_ = kSentinelIndex; +}; + +class InstrumentLabelList; + +class InstrumentLabelSet { + public: + InstrumentLabelSet() = default; + InstrumentLabelSet(std::initializer_list labels) { + for (const auto& label : labels) { + set_.set(InstrumentLabel(label).index()); + } + } + + void Set(InstrumentLabel label) { set_.set(label.index()); } + bool empty() const { return set_.none(); } + bool contains(InstrumentLabel label) const { + return set_.is_set(label.index()); + } + void Merge(InstrumentLabelSet other) { set_.Merge(other.set_); } + InstrumentLabelList ToList() const; + + private: + BitSet set_; +}; + +class InstrumentLabelList { + public: + InstrumentLabelList() = default; + InstrumentLabelList(std::initializer_list labels) { + for (const auto& label : labels) { + Append(InstrumentLabel(label)); + } + } + + void Append(InstrumentLabel label) { + GRPC_DCHECK_LT(count_, InstrumentLabel::kMaxLabelsPerProcess); + labels_[count_++] = label; + } + + bool empty() const { return count_ == 0; } + size_t size() const { return count_; } + + InstrumentLabel operator[](size_t i) const { + DCHECK_LT(i, count_); + return labels_[i]; + } + + InstrumentLabelList Remove(InstrumentLabelSet labels); + + const InstrumentLabel* begin() const { return labels_; } + const InstrumentLabel* end() const { return labels_ + count_; } + + std::string DebugString() const; + + private: + uint8_t count_ = 0; + InstrumentLabel labels_[InstrumentLabel::kMaxLabelsPerProcess]; +}; + +template +class FixedInstrumentLabelList { + public: + template + explicit FixedInstrumentLabelList(Args&&... args) + : labels_{InstrumentLabel(std::forward(args))...} { + static_assert(kNumLabels == sizeof...(args)); + } + + InstrumentLabel operator[](size_t i) const { + CHECK_LT(i, kNumLabels); + return labels_[i]; + } + + static constexpr size_t count() { return kNumLabels; } + + InstrumentLabelList ToList() const { + InstrumentLabelList list; + for (size_t i = 0; i < kNumLabels; ++i) { + list.Append(labels_[i]); + } + return list; + } + + private: + InstrumentLabel labels_[kNumLabels]; +}; + +template <> +class FixedInstrumentLabelList<0> { + public: + explicit FixedInstrumentLabelList() {} + + InstrumentLabel operator[](size_t i) const { + LOG(FATAL) << "Index out of bounds: " << i << " for label list of size 0"; + } + + static constexpr size_t count() { return 0; } + + InstrumentLabelList ToList() const { return InstrumentLabelList(); } +}; + class CollectionScope; class InstrumentMetadata { @@ -278,7 +440,7 @@ void RegisterHistogramCollectionHook(HistogramCollectionHook hook); class CollectionScope : public RefCounted { public: CollectionScope(std::vector> parents, - absl::Span labels, + InstrumentLabelSet labels_of_interest, size_t child_shards_count, size_t storage_shards_count); ~CollectionScope() override; @@ -287,7 +449,7 @@ class CollectionScope : public RefCounted { void ForEachUniqueStorage( absl::FunctionRef cb); - bool ObservesLabel(absl::string_view label) const { + bool ObservesLabel(InstrumentLabel label) const { return labels_of_interest_.contains(label); } @@ -316,7 +478,7 @@ class CollectionScope : public RefCounted { } std::vector> parents_; - absl::flat_hash_set labels_of_interest_; + InstrumentLabelSet labels_of_interest_; std::vector child_shards_; std::vector storage_shards_; @@ -378,6 +540,7 @@ class DomainStorage : public DualRefCounted, virtual uint64_t SumCounter(size_t index) = 0; virtual void Add(DomainStorage* other) = 0; + virtual void FillGaugeStorage(GaugeStorage& gauge_storage) = 0; // Returns the label values of the CollectionScope that owns this storage. // This is the full set of labels published by the domain, with unused labels @@ -385,8 +548,6 @@ class DomainStorage : public DualRefCounted, absl::Span label() const { return label_; } QueryableDomain* domain() const { return domain_; } - virtual void FillGaugeStorage(GaugeStorage& gauge_storage) = 0; - void AddData(channelz::DataSink sink) override; private: @@ -436,7 +597,7 @@ class QueryableDomain { absl::FunctionRef fn); // Returns the names of the labels in the domain. - absl::Span label_names() const { return label_names_; } + InstrumentLabelList label_names() const { return label_names_; } // Reset the internal state of all domains. For test use only. static void TestOnlyResetAll(); @@ -471,7 +632,7 @@ class QueryableDomain { } protected: - QueryableDomain(std::string name, std::vector label_names, + QueryableDomain(std::string name, InstrumentLabelList label_names, size_t map_shards_size) : label_names_(std::move(label_names)), map_shards_size_(label_names_.empty() ? 1 : map_shards_size), @@ -550,7 +711,7 @@ class QueryableDomain { static inline QueryableDomain* last_ = nullptr; QueryableDomain* prev_ = nullptr; - const std::vector label_names_; + const InstrumentLabelList label_names_; std::vector metrics_; uint64_t allocated_counter_slots_ = 0; uint64_t allocated_double_gauge_slots_ = 0; @@ -587,6 +748,7 @@ class InstrumentHandle { absl::string_view name() const { return description_->name; } absl::string_view description() const { return description_->description; } absl::string_view unit() const { return description_->unit; } + uint64_t offset() const { return offset_; } private: friend Domain; @@ -605,12 +767,6 @@ class InstrumentHandle { const InstrumentMetadata::Description* description_ = nullptr; }; -template -using StdString = std::string; - -template -using AbslStringView = absl::string_view; - } // namespace instrument_detail // A domain backend for low contention domains. @@ -670,23 +826,23 @@ class MetricsSink { public: // Called once per label per metric, with the value of that metric for that // label. - virtual void Counter(absl::Span label_keys, + virtual void Counter(InstrumentLabelList label_keys, absl::Span label_values, absl::string_view name, uint64_t value) = 0; - virtual void UpDownCounter(absl::Span label_keys, + virtual void UpDownCounter(InstrumentLabelList label_keys, absl::Span label_values, absl::string_view name, uint64_t value) = 0; - virtual void Histogram(absl::Span label_keys, + virtual void Histogram(InstrumentLabelList label_keys, absl::Span label_values, absl::string_view name, HistogramBuckets bounds, absl::Span counts) = 0; - virtual void DoubleGauge(absl::Span label_keys, + virtual void DoubleGauge(InstrumentLabelList label_keys, absl::Span label_values, absl::string_view name, double value) = 0; - virtual void IntGauge(absl::Span label_keys, + virtual void IntGauge(InstrumentLabelList label_keys, absl::Span label_values, absl::string_view name, int64_t value) = 0; - virtual void UintGauge(absl::Span label_keys, + virtual void UintGauge(InstrumentLabelList label_keys, absl::Span label_values, absl::string_view name, uint64_t value) = 0; @@ -707,7 +863,7 @@ class MetricsQuery { MetricsQuery& WithLabelEq(absl::string_view label, std::string value); // Collapse labels, effectively omitting them. Counters are summed over the // remaining dimensions, etc. - MetricsQuery& CollapseLabels(absl::Span labels); + MetricsQuery& CollapseLabels(absl::Span labels); // Only include metrics that are in `metrics`. MetricsQuery& OnlyMetrics(std::vector metrics); @@ -722,16 +878,17 @@ class MetricsQuery { private: // Adapts `sink` by including the filtering requested, and then calls `fn` // with the filtering sink. This is mainly an implementation detail. - void Apply(absl::Span label_names, + void Apply(InstrumentLabelList label_names, absl::FunctionRef fn, MetricsSink& sink) const; - void ApplyLabelChecks(absl::Span label_names, + private: + void ApplyLabelChecks(InstrumentLabelList label_names, absl::FunctionRef fn, MetricsSink& sink) const; - absl::flat_hash_map label_eqs_; + absl::flat_hash_map label_eqs_; std::optional> only_metrics_; - absl::flat_hash_set collapsed_labels_; + InstrumentLabelSet collapsed_labels_; }; namespace instrument_detail { @@ -861,6 +1018,15 @@ class InstrumentDomainImpl final : public QueryableDomain { backend_.Add(handle.offset_ + handle.shape_->BucketFor(value), 1); } + uint64_t SumCounter(size_t offset) override { return backend_.Sum(offset); } + void FillGaugeStorage(GaugeStorage& storage) override { + GaugeSink sink(storage); + MutexLock lock(&gauge_providers_mu_); + for (auto* provider : gauge_providers_) { + provider->PopulateGaugeData(sink); + } + } + private: friend class InstrumentDomainImpl; friend class GaugeProvider; @@ -870,8 +1036,6 @@ class InstrumentDomainImpl final : public QueryableDomain { : DomainStorage(instrument_domain, std::move(labels)), backend_(instrument_domain->allocated_counter_slots()) {} - uint64_t SumCounter(size_t offset) override { return backend_.Sum(offset); } - void RegisterGaugeProvider(GaugeProvider* provider) { MutexLock lock(&gauge_providers_mu_); gauge_providers_.push_back(provider); @@ -884,14 +1048,6 @@ class InstrumentDomainImpl final : public QueryableDomain { gauge_providers_.end()); } - void FillGaugeStorage(GaugeStorage& storage) override { - GaugeSink sink(storage); - MutexLock lock(&gauge_providers_mu_); - for (auto* provider : gauge_providers_) { - provider->PopulateGaugeData(sink); - } - } - Backend backend_; Mutex gauge_providers_mu_; std::vector gauge_providers_ @@ -899,10 +1055,9 @@ class InstrumentDomainImpl final : public QueryableDomain { }; GPR_ATTRIBUTE_NOINLINE explicit InstrumentDomainImpl( - std::string name, std::vector label_names, + std::string name, FixedInstrumentLabelList labels, size_t map_shards = std::min(16u, gpr_cpu_num_cores())) - : QueryableDomain(std::move(name), std::move(label_names), map_shards) { - GRPC_CHECK_EQ(this->label_names().size(), N); + : QueryableDomain(std::move(name), labels.ToList(), map_shards) { Constructed(); } @@ -980,30 +1135,20 @@ class InstrumentDomainImpl final : public QueryableDomain { ~InstrumentDomainImpl() = delete; }; -class MakeLabel { - public: - template - auto operator()(LabelNames... t) { - return std::vector{absl::StrCat(t)...}; - } -}; - -template -GPR_ATTRIBUTE_NOINLINE auto MakeLabelFromTuple( - std::tuple t) noexcept { - return std::apply(MakeLabel(), t); -} } // namespace instrument_detail template class InstrumentDomain { public: static auto* Domain() { - static auto* domain = new instrument_detail::InstrumentDomainImpl< - typename Derived::Backend, - std::tuple_size_v, Derived>( - absl::StrCat(Derived::kName), - instrument_detail::MakeLabelFromTuple(Derived::kLabels)); + static const auto labels = Derived::Labels(); + static auto* domain = + new instrument_detail::InstrumentDomainImpl( + absl::StrCat(Derived::kName), labels); + for (size_t i = 0; i < labels.count(); ++i) { + GRPC_DCHECK_EQ(domain->label_names()[i], labels[i]); + } return domain; } @@ -1017,8 +1162,24 @@ class InstrumentDomain { protected: template - static constexpr auto Labels(Label... labels) { - return std::tuple...>{labels...}; + static const FixedInstrumentLabelList MakeLabels( + Label... labels) { + InstrumentLabel l[] = {InstrumentLabel(labels)...}; + for (size_t i = 0; i < sizeof...(Label); ++i) { + for (size_t j = i + 1; j < sizeof...(Label); ++j) { + GRPC_CHECK_NE(l[i], l[j]); + } + } + auto list = FixedInstrumentLabelList( + std::forward