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

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

exports_files(
    [
        "cargo-bazel.json",
        "defs.bzl",
        "crates.bzl",
    ] + glob([
        "*.bazel",
    ]),
)

filegroup(
    name = "srcs",
    srcs = glob([
        "*.bazel",
        "*.bzl",
    ]),
)

# Workspace Member Dependencies
alias(
    name = "grpc",
    actual = "@rules_rust_proto__grpc-0.6.2//:grpc",
    tags = ["manual"],
)

alias(
    name = "grpc-compiler",
    actual = "@rules_rust_proto__grpc-compiler-0.6.2//:grpc_compiler",
    tags = ["manual"],
)

alias(
    name = "log",
    actual = "@rules_rust_proto__log-0.4.17//:log",
    tags = ["manual"],
)

alias(
    name = "protobuf",
    actual = "@rules_rust_proto__protobuf-2.8.2//:protobuf",
    tags = ["manual"],
)

alias(
    name = "protobuf-codegen",
    actual = "@rules_rust_proto__protobuf-codegen-2.8.2//:protobuf_codegen",
    tags = ["manual"],
)

alias(
    name = "tls-api",
    actual = "@rules_rust_proto__tls-api-0.1.22//:tls_api",
    tags = ["manual"],
)

alias(
    name = "tls-api-stub",
    actual = "@rules_rust_proto__tls-api-stub-0.1.22//:tls_api_stub",
    tags = ["manual"],
)

# Binaries
alias(
    name = "grpc-compiler__protoc-gen-rust-grpc",
    actual = "@rules_rust_proto__grpc-compiler-0.6.2//:protoc-gen-rust-grpc__bin",
    tags = ["manual"],
)

alias(
    name = "protobuf-codegen__protoc-gen-rust",
    actual = "@rules_rust_proto__protobuf-codegen-2.8.2//:protoc-gen-rust__bin",
    tags = ["manual"],
)

alias(
    name = "protobuf-codegen__protobuf-bin-gen-rust-do-not-use",
    actual = "@rules_rust_proto__protobuf-codegen-2.8.2//:protobuf-bin-gen-rust-do-not-use__bin",
    tags = ["manual"],
)
