###############################################################################
# @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//cargo:defs.bzl", "cargo_build_script")
load("@rules_rust//rust:defs.bzl", "rust_library")

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

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

rust_library(
    name = "tokio",
    srcs = glob(["**/*.rs"]),
    compile_data = glob(
        include = ["**"],
        exclude = [
            "**/* *",
            ".tmp_git_root/**/*",
            "BUILD",
            "BUILD.bazel",
            "WORKSPACE",
            "WORKSPACE.bazel",
        ],
    ),
    crate_features = [
        "bytes",
        "default",
        "fs",
        "full",
        "io-std",
        "io-util",
        "libc",
        "macros",
        "mio",
        "net",
        "num_cpus",
        "parking_lot",
        "process",
        "rt",
        "rt-multi-thread",
        "signal",
        "signal-hook-registry",
        "socket2",
        "sync",
        "time",
        "tokio-macros",
    ] + select({
        "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [
            "windows-sys",
        ],
        "@rules_rust//rust/platform:i686-pc-windows-msvc": [
            "windows-sys",
        ],
        "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [
            "windows-sys",
        ],
        "//conditions:default": [],
    }),
    crate_root = "src/lib.rs",
    edition = "2021",
    proc_macro_deps = [
        "@rules_rust_prost__tokio-macros-2.1.0//:tokio_macros",
    ],
    rustc_flags = ["--cap-lints=allow"],
    tags = [
        "cargo-bazel",
        "crate-name=tokio",
        "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 = "1.28.2",
    deps = [
        "@rules_rust_prost__bytes-1.4.0//:bytes",
        "@rules_rust_prost__mio-0.8.8//:mio",
        "@rules_rust_prost__num_cpus-1.15.0//:num_cpus",
        "@rules_rust_prost__parking_lot-0.12.1//:parking_lot",
        "@rules_rust_prost__pin-project-lite-0.2.9//:pin_project_lite",
        "@rules_rust_prost__tokio-1.28.2//:build_script_build",
    ] + select({
        "@rules_rust//rust/platform:aarch64-apple-darwin": [
            "@rules_rust_prost__libc-0.2.146//:libc",  # cfg(unix)
            "@rules_rust_prost__signal-hook-registry-1.4.1//:signal_hook_registry",  # cfg(unix)
            "@rules_rust_prost__socket2-0.4.9//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
        ],
        "@rules_rust//rust/platform:aarch64-apple-ios": [
            "@rules_rust_prost__libc-0.2.146//:libc",  # cfg(unix)
            "@rules_rust_prost__signal-hook-registry-1.4.1//:signal_hook_registry",  # cfg(unix)
            "@rules_rust_prost__socket2-0.4.9//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
        ],
        "@rules_rust//rust/platform:aarch64-apple-ios-sim": [
            "@rules_rust_prost__libc-0.2.146//:libc",  # cfg(unix)
            "@rules_rust_prost__signal-hook-registry-1.4.1//:signal_hook_registry",  # cfg(unix)
            "@rules_rust_prost__socket2-0.4.9//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
        ],
        "@rules_rust//rust/platform:aarch64-fuchsia": [
            "@rules_rust_prost__libc-0.2.146//:libc",  # cfg(unix)
            "@rules_rust_prost__signal-hook-registry-1.4.1//:signal_hook_registry",  # cfg(unix)
            "@rules_rust_prost__socket2-0.4.9//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
        ],
        "@rules_rust//rust/platform:aarch64-linux-android": [
            "@rules_rust_prost__libc-0.2.146//:libc",  # cfg(unix)
            "@rules_rust_prost__signal-hook-registry-1.4.1//:signal_hook_registry",  # cfg(unix)
            "@rules_rust_prost__socket2-0.4.9//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
        ],
        "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [
            "@rules_rust_prost__socket2-0.4.9//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
            "@rules_rust_prost__windows-sys-0.48.0//:windows_sys",  # cfg(windows)
        ],
        "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [
            "@rules_rust_prost__libc-0.2.146//:libc",  # cfg(unix)
            "@rules_rust_prost__signal-hook-registry-1.4.1//:signal_hook_registry",  # cfg(unix)
            "@rules_rust_prost__socket2-0.4.9//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
        ],
        "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [
            "@rules_rust_prost__libc-0.2.146//:libc",  # cfg(unix)
            "@rules_rust_prost__signal-hook-registry-1.4.1//:signal_hook_registry",  # cfg(unix)
            "@rules_rust_prost__socket2-0.4.9//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
        ],
        "@rules_rust//rust/platform:armv7-linux-androideabi": [
            "@rules_rust_prost__libc-0.2.146//:libc",  # cfg(unix)
            "@rules_rust_prost__signal-hook-registry-1.4.1//:signal_hook_registry",  # cfg(unix)
            "@rules_rust_prost__socket2-0.4.9//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
        ],
        "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [
            "@rules_rust_prost__libc-0.2.146//:libc",  # cfg(unix)
            "@rules_rust_prost__signal-hook-registry-1.4.1//:signal_hook_registry",  # cfg(unix)
            "@rules_rust_prost__socket2-0.4.9//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
        ],
        "@rules_rust//rust/platform:i686-apple-darwin": [
            "@rules_rust_prost__libc-0.2.146//:libc",  # cfg(unix)
            "@rules_rust_prost__signal-hook-registry-1.4.1//:signal_hook_registry",  # cfg(unix)
            "@rules_rust_prost__socket2-0.4.9//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
        ],
        "@rules_rust//rust/platform:i686-linux-android": [
            "@rules_rust_prost__libc-0.2.146//:libc",  # cfg(unix)
            "@rules_rust_prost__signal-hook-registry-1.4.1//:signal_hook_registry",  # cfg(unix)
            "@rules_rust_prost__socket2-0.4.9//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
        ],
        "@rules_rust//rust/platform:i686-pc-windows-msvc": [
            "@rules_rust_prost__socket2-0.4.9//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
            "@rules_rust_prost__windows-sys-0.48.0//:windows_sys",  # cfg(windows)
        ],
        "@rules_rust//rust/platform:i686-unknown-freebsd": [
            "@rules_rust_prost__libc-0.2.146//:libc",  # cfg(unix)
            "@rules_rust_prost__signal-hook-registry-1.4.1//:signal_hook_registry",  # cfg(unix)
            "@rules_rust_prost__socket2-0.4.9//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
        ],
        "@rules_rust//rust/platform:i686-unknown-linux-gnu": [
            "@rules_rust_prost__libc-0.2.146//:libc",  # cfg(unix)
            "@rules_rust_prost__signal-hook-registry-1.4.1//:signal_hook_registry",  # cfg(unix)
            "@rules_rust_prost__socket2-0.4.9//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
        ],
        "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [
            "@rules_rust_prost__libc-0.2.146//:libc",  # cfg(unix)
            "@rules_rust_prost__signal-hook-registry-1.4.1//:signal_hook_registry",  # cfg(unix)
            "@rules_rust_prost__socket2-0.4.9//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
        ],
        "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [
            "@rules_rust_prost__socket2-0.4.9//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
        ],
        "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [
            "@rules_rust_prost__socket2-0.4.9//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
        ],
        "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [
            "@rules_rust_prost__libc-0.2.146//:libc",  # cfg(unix)
            "@rules_rust_prost__signal-hook-registry-1.4.1//:signal_hook_registry",  # cfg(unix)
            "@rules_rust_prost__socket2-0.4.9//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
        ],
        "@rules_rust//rust/platform:thumbv7em-none-eabi": [
            "@rules_rust_prost__socket2-0.4.9//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
        ],
        "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [
            "@rules_rust_prost__socket2-0.4.9//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
        ],
        "@rules_rust//rust/platform:x86_64-apple-darwin": [
            "@rules_rust_prost__libc-0.2.146//:libc",  # cfg(unix)
            "@rules_rust_prost__signal-hook-registry-1.4.1//:signal_hook_registry",  # cfg(unix)
            "@rules_rust_prost__socket2-0.4.9//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
        ],
        "@rules_rust//rust/platform:x86_64-apple-ios": [
            "@rules_rust_prost__libc-0.2.146//:libc",  # cfg(unix)
            "@rules_rust_prost__signal-hook-registry-1.4.1//:signal_hook_registry",  # cfg(unix)
            "@rules_rust_prost__socket2-0.4.9//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
        ],
        "@rules_rust//rust/platform:x86_64-fuchsia": [
            "@rules_rust_prost__libc-0.2.146//:libc",  # cfg(unix)
            "@rules_rust_prost__signal-hook-registry-1.4.1//:signal_hook_registry",  # cfg(unix)
            "@rules_rust_prost__socket2-0.4.9//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
        ],
        "@rules_rust//rust/platform:x86_64-linux-android": [
            "@rules_rust_prost__libc-0.2.146//:libc",  # cfg(unix)
            "@rules_rust_prost__signal-hook-registry-1.4.1//:signal_hook_registry",  # cfg(unix)
            "@rules_rust_prost__socket2-0.4.9//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
        ],
        "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [
            "@rules_rust_prost__socket2-0.4.9//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
            "@rules_rust_prost__windows-sys-0.48.0//:windows_sys",  # cfg(windows)
        ],
        "@rules_rust//rust/platform:x86_64-unknown-freebsd": [
            "@rules_rust_prost__libc-0.2.146//:libc",  # cfg(unix)
            "@rules_rust_prost__signal-hook-registry-1.4.1//:signal_hook_registry",  # cfg(unix)
            "@rules_rust_prost__socket2-0.4.9//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
        ],
        "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [
            "@rules_rust_prost__libc-0.2.146//:libc",  # cfg(unix)
            "@rules_rust_prost__signal-hook-registry-1.4.1//:signal_hook_registry",  # cfg(unix)
            "@rules_rust_prost__socket2-0.4.9//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
        ],
        "@rules_rust//rust/platform:x86_64-unknown-none": [
            "@rules_rust_prost__socket2-0.4.9//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
        ],
        "//conditions:default": [],
    }),
)

cargo_build_script(
    name = "tokio_build_script",
    srcs = glob(["**/*.rs"]),
    crate_features = [
        "bytes",
        "default",
        "fs",
        "full",
        "io-std",
        "io-util",
        "libc",
        "macros",
        "mio",
        "net",
        "num_cpus",
        "parking_lot",
        "process",
        "rt",
        "rt-multi-thread",
        "signal",
        "signal-hook-registry",
        "socket2",
        "sync",
        "time",
        "tokio-macros",
    ] + select({
        "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [
            "windows-sys",
        ],
        "@rules_rust//rust/platform:i686-pc-windows-msvc": [
            "windows-sys",
        ],
        "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [
            "windows-sys",
        ],
        "//conditions:default": [],
    }),
    crate_name = "build_script_build",
    crate_root = "build.rs",
    data = glob(
        include = ["**"],
        exclude = [
            "**/* *",
            ".tmp_git_root/**/*",
            "BUILD",
            "BUILD.bazel",
            "WORKSPACE",
            "WORKSPACE.bazel",
        ],
    ),
    edition = "2021",
    rustc_flags = [
        "--cap-lints=allow",
    ],
    tags = [
        "cargo-bazel",
        "crate-name=tokio",
        "manual",
        "noclippy",
        "norustfmt",
    ],
    version = "1.28.2",
    visibility = ["//visibility:private"],
    deps = [
        "@rules_rust_prost__autocfg-1.1.0//:autocfg",
    ],
)

alias(
    name = "build_script_build",
    actual = "tokio_build_script",
    tags = ["manual"],
)
