###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
#     bazel run @//proto/prost/private/3rdparty:crates_vendor
###############################################################################

load("@rules_rust//rust:defs.bzl", "rust_library")

package(default_visibility = ["//visibility:public"])

# licenses([
#     "TODO",  # MIT
# ])

rust_library(
    name = "tonic",
    srcs = glob(["**/*.rs"]),
    compile_data = glob(
        include = ["**"],
        exclude = [
            "**/* *",
            ".tmp_git_root/**/*",
            "BUILD",
            "BUILD.bazel",
            "WORKSPACE",
            "WORKSPACE.bazel",
        ],
    ),
    crate_features = [
        "channel",
        "codegen",
        "default",
        "prost",
        "transport",
    ],
    crate_root = "src/lib.rs",
    edition = "2021",
    proc_macro_deps = [
        "@rules_rust_prost__async-trait-0.1.68//:async_trait",
    ],
    rustc_flags = ["--cap-lints=allow"],
    tags = [
        "cargo-bazel",
        "crate-name=tonic",
        "manual",
        "noclippy",
        "norustfmt",
    ],
    target_compatible_with = select({
        "@rules_rust//rust/platform:aarch64-apple-darwin": [],
        "@rules_rust//rust/platform:aarch64-apple-ios": [],
        "@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
        "@rules_rust//rust/platform:aarch64-fuchsia": [],
        "@rules_rust//rust/platform:aarch64-linux-android": [],
        "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
        "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
        "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
        "@rules_rust//rust/platform:armv7-linux-androideabi": [],
        "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
        "@rules_rust//rust/platform:i686-apple-darwin": [],
        "@rules_rust//rust/platform:i686-linux-android": [],
        "@rules_rust//rust/platform:i686-pc-windows-msvc": [],
        "@rules_rust//rust/platform:i686-unknown-freebsd": [],
        "@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
        "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
        "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
        "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
        "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
        "@rules_rust//rust/platform:thumbv7em-none-eabi": [],
        "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
        "@rules_rust//rust/platform:wasm32-unknown-unknown": [],
        "@rules_rust//rust/platform:wasm32-wasi": [],
        "@rules_rust//rust/platform:x86_64-apple-darwin": [],
        "@rules_rust//rust/platform:x86_64-apple-ios": [],
        "@rules_rust//rust/platform:x86_64-fuchsia": [],
        "@rules_rust//rust/platform:x86_64-linux-android": [],
        "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
        "@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
        "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
        "@rules_rust//rust/platform:x86_64-unknown-none": [],
        "//conditions:default": ["@platforms//:incompatible"],
    }),
    version = "0.9.2",
    deps = [
        "@rules_rust_prost__axum-0.6.18//:axum",
        "@rules_rust_prost__base64-0.21.2//:base64",
        "@rules_rust_prost__bytes-1.4.0//:bytes",
        "@rules_rust_prost__futures-core-0.3.28//:futures_core",
        "@rules_rust_prost__futures-util-0.3.28//:futures_util",
        "@rules_rust_prost__h2-0.3.19//:h2",
        "@rules_rust_prost__http-0.2.9//:http",
        "@rules_rust_prost__http-body-0.4.5//:http_body",
        "@rules_rust_prost__hyper-0.14.26//:hyper",
        "@rules_rust_prost__hyper-timeout-0.4.1//:hyper_timeout",
        "@rules_rust_prost__percent-encoding-2.3.0//:percent_encoding",
        "@rules_rust_prost__pin-project-1.1.0//:pin_project",
        "@rules_rust_prost__prost-0.11.9//:prost",
        "@rules_rust_prost__tokio-1.28.2//:tokio",
        "@rules_rust_prost__tokio-stream-0.1.14//:tokio_stream",
        "@rules_rust_prost__tower-0.4.13//:tower",
        "@rules_rust_prost__tower-layer-0.3.2//:tower_layer",
        "@rules_rust_prost__tower-service-0.3.2//:tower_service",
        "@rules_rust_prost__tracing-0.1.37//:tracing",
    ],
)
