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

load(
    "@rules_rust//cargo:defs.bzl",
    "cargo_build_script",
)

# buildifier: disable=bzl-visibility
load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
load(
    "@rules_rust//rust:defs.bzl",
    "rust_library",
)

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

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

rust_library(
    name = "tokio",
    srcs = glob(
        include = [
            "**/*.rs",
        ],
        exclude = [
        ],
    ),
    aliases = select({
        "//conditions:default": {
        },
    }),
    compile_data = glob(
        include = ["**"],
        exclude = [
            "BUILD",
            "BUILD.bazel",
            "WORKSPACE",
            "WORKSPACE.bazel",
        ],
    ) + select_with_or({
        "//conditions:default": [
        ],
    }),
    crate_features = [
        "bytes",
        "default",
        "fs",
        "full",
        "io-std",
        "io-util",
        "libc",
        "macros",
        "memchr",
        "mio",
        "net",
        "num_cpus",
        "parking_lot",
        "process",
        "rt",
        "rt-multi-thread",
        "signal",
        "signal-hook-registry",
        "socket2",
        "sync",
        "test-util",
        "time",
        "tokio-macros",
        "winapi",
    ],
    crate_root = "src/lib.rs",
    data = select_with_or({
        "//conditions:default": [
        ],
    }),
    edition = "2018",
    proc_macro_deps = [
    ] + select({
        "//conditions:default": [
            "@crates_vendor_manifests__tokio-macros-1.8.0//:tokio_macros",
        ],
    }),
    rustc_env = {
    },
    rustc_env_files = select_with_or({
        "//conditions:default": [
        ],
    }),
    rustc_flags = [
        # In most cases, warnings in 3rd party crates are not interesting as
        # they're out of the control of consumers. The flag here silences
        # warnings. For more details see:
        # https://doc.rust-lang.org/rustc/lints/levels.html
        "--cap-lints=allow",
    ],
    tags = [
        "cargo-bazel",
        "manual",
        "noclippy",
        "norustfmt",
    ],
    version = "1.21.2",
    deps = [
    ] + select({
        "@rules_rust//rust/platform:aarch64-apple-darwin": [
            "@crates_vendor_manifests__bytes-1.2.1//:bytes",  # common dependency
            "@crates_vendor_manifests__libc-0.2.137//:libc",  # cfg(unix)
            "@crates_vendor_manifests__memchr-2.5.0//:memchr",  # common dependency
            "@crates_vendor_manifests__mio-0.8.5//:mio",  # common dependency
            "@crates_vendor_manifests__num_cpus-1.14.0//:num_cpus",  # common dependency
            "@crates_vendor_manifests__parking_lot-0.12.1//:parking_lot",  # common dependency
            "@crates_vendor_manifests__pin-project-lite-0.2.9//:pin_project_lite",  # common dependency
            "@crates_vendor_manifests__signal-hook-registry-1.4.0//:signal_hook_registry",  # cfg(unix)
            "@crates_vendor_manifests__socket2-0.4.7//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
            "@crates_vendor_manifests__tokio-1.21.2//:build_script_build",  # common dependency
        ],
        "@rules_rust//rust/platform:aarch64-apple-ios": [
            "@crates_vendor_manifests__bytes-1.2.1//:bytes",  # common dependency
            "@crates_vendor_manifests__libc-0.2.137//:libc",  # cfg(unix)
            "@crates_vendor_manifests__memchr-2.5.0//:memchr",  # common dependency
            "@crates_vendor_manifests__mio-0.8.5//:mio",  # common dependency
            "@crates_vendor_manifests__num_cpus-1.14.0//:num_cpus",  # common dependency
            "@crates_vendor_manifests__parking_lot-0.12.1//:parking_lot",  # common dependency
            "@crates_vendor_manifests__pin-project-lite-0.2.9//:pin_project_lite",  # common dependency
            "@crates_vendor_manifests__signal-hook-registry-1.4.0//:signal_hook_registry",  # cfg(unix)
            "@crates_vendor_manifests__socket2-0.4.7//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
            "@crates_vendor_manifests__tokio-1.21.2//:build_script_build",  # common dependency
        ],
        "@rules_rust//rust/platform:aarch64-apple-ios-sim": [
            "@crates_vendor_manifests__bytes-1.2.1//:bytes",  # common dependency
            "@crates_vendor_manifests__libc-0.2.137//:libc",  # cfg(unix)
            "@crates_vendor_manifests__memchr-2.5.0//:memchr",  # common dependency
            "@crates_vendor_manifests__mio-0.8.5//:mio",  # common dependency
            "@crates_vendor_manifests__num_cpus-1.14.0//:num_cpus",  # common dependency
            "@crates_vendor_manifests__parking_lot-0.12.1//:parking_lot",  # common dependency
            "@crates_vendor_manifests__pin-project-lite-0.2.9//:pin_project_lite",  # common dependency
            "@crates_vendor_manifests__signal-hook-registry-1.4.0//:signal_hook_registry",  # cfg(unix)
            "@crates_vendor_manifests__socket2-0.4.7//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
            "@crates_vendor_manifests__tokio-1.21.2//:build_script_build",  # common dependency
        ],
        "@rules_rust//rust/platform:aarch64-linux-android": [
            "@crates_vendor_manifests__bytes-1.2.1//:bytes",  # common dependency
            "@crates_vendor_manifests__libc-0.2.137//:libc",  # cfg(unix)
            "@crates_vendor_manifests__memchr-2.5.0//:memchr",  # common dependency
            "@crates_vendor_manifests__mio-0.8.5//:mio",  # common dependency
            "@crates_vendor_manifests__num_cpus-1.14.0//:num_cpus",  # common dependency
            "@crates_vendor_manifests__parking_lot-0.12.1//:parking_lot",  # common dependency
            "@crates_vendor_manifests__pin-project-lite-0.2.9//:pin_project_lite",  # common dependency
            "@crates_vendor_manifests__signal-hook-registry-1.4.0//:signal_hook_registry",  # cfg(unix)
            "@crates_vendor_manifests__socket2-0.4.7//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
            "@crates_vendor_manifests__tokio-1.21.2//:build_script_build",  # common dependency
        ],
        "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [
            "@crates_vendor_manifests__bytes-1.2.1//:bytes",  # common dependency
            "@crates_vendor_manifests__libc-0.2.137//:libc",  # cfg(unix)
            "@crates_vendor_manifests__memchr-2.5.0//:memchr",  # common dependency
            "@crates_vendor_manifests__mio-0.8.5//:mio",  # common dependency
            "@crates_vendor_manifests__num_cpus-1.14.0//:num_cpus",  # common dependency
            "@crates_vendor_manifests__parking_lot-0.12.1//:parking_lot",  # common dependency
            "@crates_vendor_manifests__pin-project-lite-0.2.9//:pin_project_lite",  # common dependency
            "@crates_vendor_manifests__signal-hook-registry-1.4.0//:signal_hook_registry",  # cfg(unix)
            "@crates_vendor_manifests__socket2-0.4.7//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
            "@crates_vendor_manifests__tokio-1.21.2//:build_script_build",  # common dependency
        ],
        "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [
            "@crates_vendor_manifests__bytes-1.2.1//:bytes",  # common dependency
            "@crates_vendor_manifests__libc-0.2.137//:libc",  # cfg(unix)
            "@crates_vendor_manifests__memchr-2.5.0//:memchr",  # common dependency
            "@crates_vendor_manifests__mio-0.8.5//:mio",  # common dependency
            "@crates_vendor_manifests__num_cpus-1.14.0//:num_cpus",  # common dependency
            "@crates_vendor_manifests__parking_lot-0.12.1//:parking_lot",  # common dependency
            "@crates_vendor_manifests__pin-project-lite-0.2.9//:pin_project_lite",  # common dependency
            "@crates_vendor_manifests__signal-hook-registry-1.4.0//:signal_hook_registry",  # cfg(unix)
            "@crates_vendor_manifests__socket2-0.4.7//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
            "@crates_vendor_manifests__tokio-1.21.2//:build_script_build",  # common dependency
        ],
        "@rules_rust//rust/platform:armv7-linux-androideabi": [
            "@crates_vendor_manifests__bytes-1.2.1//:bytes",  # common dependency
            "@crates_vendor_manifests__libc-0.2.137//:libc",  # cfg(unix)
            "@crates_vendor_manifests__memchr-2.5.0//:memchr",  # common dependency
            "@crates_vendor_manifests__mio-0.8.5//:mio",  # common dependency
            "@crates_vendor_manifests__num_cpus-1.14.0//:num_cpus",  # common dependency
            "@crates_vendor_manifests__parking_lot-0.12.1//:parking_lot",  # common dependency
            "@crates_vendor_manifests__pin-project-lite-0.2.9//:pin_project_lite",  # common dependency
            "@crates_vendor_manifests__signal-hook-registry-1.4.0//:signal_hook_registry",  # cfg(unix)
            "@crates_vendor_manifests__socket2-0.4.7//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
            "@crates_vendor_manifests__tokio-1.21.2//:build_script_build",  # common dependency
        ],
        "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [
            "@crates_vendor_manifests__bytes-1.2.1//:bytes",  # common dependency
            "@crates_vendor_manifests__libc-0.2.137//:libc",  # cfg(unix)
            "@crates_vendor_manifests__memchr-2.5.0//:memchr",  # common dependency
            "@crates_vendor_manifests__mio-0.8.5//:mio",  # common dependency
            "@crates_vendor_manifests__num_cpus-1.14.0//:num_cpus",  # common dependency
            "@crates_vendor_manifests__parking_lot-0.12.1//:parking_lot",  # common dependency
            "@crates_vendor_manifests__pin-project-lite-0.2.9//:pin_project_lite",  # common dependency
            "@crates_vendor_manifests__signal-hook-registry-1.4.0//:signal_hook_registry",  # cfg(unix)
            "@crates_vendor_manifests__socket2-0.4.7//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
            "@crates_vendor_manifests__tokio-1.21.2//:build_script_build",  # common dependency
        ],
        "@rules_rust//rust/platform:i686-apple-darwin": [
            "@crates_vendor_manifests__bytes-1.2.1//:bytes",  # common dependency
            "@crates_vendor_manifests__libc-0.2.137//:libc",  # cfg(unix)
            "@crates_vendor_manifests__memchr-2.5.0//:memchr",  # common dependency
            "@crates_vendor_manifests__mio-0.8.5//:mio",  # common dependency
            "@crates_vendor_manifests__num_cpus-1.14.0//:num_cpus",  # common dependency
            "@crates_vendor_manifests__parking_lot-0.12.1//:parking_lot",  # common dependency
            "@crates_vendor_manifests__pin-project-lite-0.2.9//:pin_project_lite",  # common dependency
            "@crates_vendor_manifests__signal-hook-registry-1.4.0//:signal_hook_registry",  # cfg(unix)
            "@crates_vendor_manifests__socket2-0.4.7//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
            "@crates_vendor_manifests__tokio-1.21.2//:build_script_build",  # common dependency
        ],
        "@rules_rust//rust/platform:i686-linux-android": [
            "@crates_vendor_manifests__bytes-1.2.1//:bytes",  # common dependency
            "@crates_vendor_manifests__libc-0.2.137//:libc",  # cfg(unix)
            "@crates_vendor_manifests__memchr-2.5.0//:memchr",  # common dependency
            "@crates_vendor_manifests__mio-0.8.5//:mio",  # common dependency
            "@crates_vendor_manifests__num_cpus-1.14.0//:num_cpus",  # common dependency
            "@crates_vendor_manifests__parking_lot-0.12.1//:parking_lot",  # common dependency
            "@crates_vendor_manifests__pin-project-lite-0.2.9//:pin_project_lite",  # common dependency
            "@crates_vendor_manifests__signal-hook-registry-1.4.0//:signal_hook_registry",  # cfg(unix)
            "@crates_vendor_manifests__socket2-0.4.7//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
            "@crates_vendor_manifests__tokio-1.21.2//:build_script_build",  # common dependency
        ],
        "@rules_rust//rust/platform:i686-pc-windows-msvc": [
            "@crates_vendor_manifests__bytes-1.2.1//:bytes",  # common dependency
            "@crates_vendor_manifests__memchr-2.5.0//:memchr",  # common dependency
            "@crates_vendor_manifests__mio-0.8.5//:mio",  # common dependency
            "@crates_vendor_manifests__num_cpus-1.14.0//:num_cpus",  # common dependency
            "@crates_vendor_manifests__parking_lot-0.12.1//:parking_lot",  # common dependency
            "@crates_vendor_manifests__pin-project-lite-0.2.9//:pin_project_lite",  # common dependency
            "@crates_vendor_manifests__socket2-0.4.7//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
            "@crates_vendor_manifests__tokio-1.21.2//:build_script_build",  # common dependency
            "@crates_vendor_manifests__winapi-0.3.9//:winapi",  # cfg(windows)
        ],
        "@rules_rust//rust/platform:i686-unknown-freebsd": [
            "@crates_vendor_manifests__bytes-1.2.1//:bytes",  # common dependency
            "@crates_vendor_manifests__libc-0.2.137//:libc",  # cfg(unix)
            "@crates_vendor_manifests__memchr-2.5.0//:memchr",  # common dependency
            "@crates_vendor_manifests__mio-0.8.5//:mio",  # common dependency
            "@crates_vendor_manifests__num_cpus-1.14.0//:num_cpus",  # common dependency
            "@crates_vendor_manifests__parking_lot-0.12.1//:parking_lot",  # common dependency
            "@crates_vendor_manifests__pin-project-lite-0.2.9//:pin_project_lite",  # common dependency
            "@crates_vendor_manifests__signal-hook-registry-1.4.0//:signal_hook_registry",  # cfg(unix)
            "@crates_vendor_manifests__socket2-0.4.7//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
            "@crates_vendor_manifests__tokio-1.21.2//:build_script_build",  # common dependency
        ],
        "@rules_rust//rust/platform:i686-unknown-linux-gnu": [
            "@crates_vendor_manifests__bytes-1.2.1//:bytes",  # common dependency
            "@crates_vendor_manifests__libc-0.2.137//:libc",  # cfg(unix)
            "@crates_vendor_manifests__memchr-2.5.0//:memchr",  # common dependency
            "@crates_vendor_manifests__mio-0.8.5//:mio",  # common dependency
            "@crates_vendor_manifests__num_cpus-1.14.0//:num_cpus",  # common dependency
            "@crates_vendor_manifests__parking_lot-0.12.1//:parking_lot",  # common dependency
            "@crates_vendor_manifests__pin-project-lite-0.2.9//:pin_project_lite",  # common dependency
            "@crates_vendor_manifests__signal-hook-registry-1.4.0//:signal_hook_registry",  # cfg(unix)
            "@crates_vendor_manifests__socket2-0.4.7//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
            "@crates_vendor_manifests__tokio-1.21.2//:build_script_build",  # common dependency
        ],
        "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [
            "@crates_vendor_manifests__bytes-1.2.1//:bytes",  # common dependency
            "@crates_vendor_manifests__libc-0.2.137//:libc",  # cfg(unix)
            "@crates_vendor_manifests__memchr-2.5.0//:memchr",  # common dependency
            "@crates_vendor_manifests__mio-0.8.5//:mio",  # common dependency
            "@crates_vendor_manifests__num_cpus-1.14.0//:num_cpus",  # common dependency
            "@crates_vendor_manifests__parking_lot-0.12.1//:parking_lot",  # common dependency
            "@crates_vendor_manifests__pin-project-lite-0.2.9//:pin_project_lite",  # common dependency
            "@crates_vendor_manifests__signal-hook-registry-1.4.0//:signal_hook_registry",  # cfg(unix)
            "@crates_vendor_manifests__socket2-0.4.7//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
            "@crates_vendor_manifests__tokio-1.21.2//:build_script_build",  # common dependency
        ],
        "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [
            "@crates_vendor_manifests__bytes-1.2.1//:bytes",  # common dependency
            "@crates_vendor_manifests__memchr-2.5.0//:memchr",  # common dependency
            "@crates_vendor_manifests__mio-0.8.5//:mio",  # common dependency
            "@crates_vendor_manifests__num_cpus-1.14.0//:num_cpus",  # common dependency
            "@crates_vendor_manifests__parking_lot-0.12.1//:parking_lot",  # common dependency
            "@crates_vendor_manifests__pin-project-lite-0.2.9//:pin_project_lite",  # common dependency
            "@crates_vendor_manifests__socket2-0.4.7//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
            "@crates_vendor_manifests__tokio-1.21.2//:build_script_build",  # common dependency
        ],
        "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [
            "@crates_vendor_manifests__bytes-1.2.1//:bytes",  # common dependency
            "@crates_vendor_manifests__memchr-2.5.0//:memchr",  # common dependency
            "@crates_vendor_manifests__mio-0.8.5//:mio",  # common dependency
            "@crates_vendor_manifests__num_cpus-1.14.0//:num_cpus",  # common dependency
            "@crates_vendor_manifests__parking_lot-0.12.1//:parking_lot",  # common dependency
            "@crates_vendor_manifests__pin-project-lite-0.2.9//:pin_project_lite",  # common dependency
            "@crates_vendor_manifests__socket2-0.4.7//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
            "@crates_vendor_manifests__tokio-1.21.2//:build_script_build",  # common dependency
        ],
        "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [
            "@crates_vendor_manifests__bytes-1.2.1//:bytes",  # common dependency
            "@crates_vendor_manifests__libc-0.2.137//:libc",  # cfg(unix)
            "@crates_vendor_manifests__memchr-2.5.0//:memchr",  # common dependency
            "@crates_vendor_manifests__mio-0.8.5//:mio",  # common dependency
            "@crates_vendor_manifests__num_cpus-1.14.0//:num_cpus",  # common dependency
            "@crates_vendor_manifests__parking_lot-0.12.1//:parking_lot",  # common dependency
            "@crates_vendor_manifests__pin-project-lite-0.2.9//:pin_project_lite",  # common dependency
            "@crates_vendor_manifests__signal-hook-registry-1.4.0//:signal_hook_registry",  # cfg(unix)
            "@crates_vendor_manifests__socket2-0.4.7//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
            "@crates_vendor_manifests__tokio-1.21.2//:build_script_build",  # common dependency
        ],
        "@rules_rust//rust/platform:x86_64-apple-darwin": [
            "@crates_vendor_manifests__bytes-1.2.1//:bytes",  # common dependency
            "@crates_vendor_manifests__libc-0.2.137//:libc",  # cfg(unix)
            "@crates_vendor_manifests__memchr-2.5.0//:memchr",  # common dependency
            "@crates_vendor_manifests__mio-0.8.5//:mio",  # common dependency
            "@crates_vendor_manifests__num_cpus-1.14.0//:num_cpus",  # common dependency
            "@crates_vendor_manifests__parking_lot-0.12.1//:parking_lot",  # common dependency
            "@crates_vendor_manifests__pin-project-lite-0.2.9//:pin_project_lite",  # common dependency
            "@crates_vendor_manifests__signal-hook-registry-1.4.0//:signal_hook_registry",  # cfg(unix)
            "@crates_vendor_manifests__socket2-0.4.7//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
            "@crates_vendor_manifests__tokio-1.21.2//:build_script_build",  # common dependency
        ],
        "@rules_rust//rust/platform:x86_64-apple-ios": [
            "@crates_vendor_manifests__bytes-1.2.1//:bytes",  # common dependency
            "@crates_vendor_manifests__libc-0.2.137//:libc",  # cfg(unix)
            "@crates_vendor_manifests__memchr-2.5.0//:memchr",  # common dependency
            "@crates_vendor_manifests__mio-0.8.5//:mio",  # common dependency
            "@crates_vendor_manifests__num_cpus-1.14.0//:num_cpus",  # common dependency
            "@crates_vendor_manifests__parking_lot-0.12.1//:parking_lot",  # common dependency
            "@crates_vendor_manifests__pin-project-lite-0.2.9//:pin_project_lite",  # common dependency
            "@crates_vendor_manifests__signal-hook-registry-1.4.0//:signal_hook_registry",  # cfg(unix)
            "@crates_vendor_manifests__socket2-0.4.7//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
            "@crates_vendor_manifests__tokio-1.21.2//:build_script_build",  # common dependency
        ],
        "@rules_rust//rust/platform:x86_64-linux-android": [
            "@crates_vendor_manifests__bytes-1.2.1//:bytes",  # common dependency
            "@crates_vendor_manifests__libc-0.2.137//:libc",  # cfg(unix)
            "@crates_vendor_manifests__memchr-2.5.0//:memchr",  # common dependency
            "@crates_vendor_manifests__mio-0.8.5//:mio",  # common dependency
            "@crates_vendor_manifests__num_cpus-1.14.0//:num_cpus",  # common dependency
            "@crates_vendor_manifests__parking_lot-0.12.1//:parking_lot",  # common dependency
            "@crates_vendor_manifests__pin-project-lite-0.2.9//:pin_project_lite",  # common dependency
            "@crates_vendor_manifests__signal-hook-registry-1.4.0//:signal_hook_registry",  # cfg(unix)
            "@crates_vendor_manifests__socket2-0.4.7//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
            "@crates_vendor_manifests__tokio-1.21.2//:build_script_build",  # common dependency
        ],
        "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [
            "@crates_vendor_manifests__bytes-1.2.1//:bytes",  # common dependency
            "@crates_vendor_manifests__memchr-2.5.0//:memchr",  # common dependency
            "@crates_vendor_manifests__mio-0.8.5//:mio",  # common dependency
            "@crates_vendor_manifests__num_cpus-1.14.0//:num_cpus",  # common dependency
            "@crates_vendor_manifests__parking_lot-0.12.1//:parking_lot",  # common dependency
            "@crates_vendor_manifests__pin-project-lite-0.2.9//:pin_project_lite",  # common dependency
            "@crates_vendor_manifests__socket2-0.4.7//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
            "@crates_vendor_manifests__tokio-1.21.2//:build_script_build",  # common dependency
            "@crates_vendor_manifests__winapi-0.3.9//:winapi",  # cfg(windows)
        ],
        "@rules_rust//rust/platform:x86_64-unknown-freebsd": [
            "@crates_vendor_manifests__bytes-1.2.1//:bytes",  # common dependency
            "@crates_vendor_manifests__libc-0.2.137//:libc",  # cfg(unix)
            "@crates_vendor_manifests__memchr-2.5.0//:memchr",  # common dependency
            "@crates_vendor_manifests__mio-0.8.5//:mio",  # common dependency
            "@crates_vendor_manifests__num_cpus-1.14.0//:num_cpus",  # common dependency
            "@crates_vendor_manifests__parking_lot-0.12.1//:parking_lot",  # common dependency
            "@crates_vendor_manifests__pin-project-lite-0.2.9//:pin_project_lite",  # common dependency
            "@crates_vendor_manifests__signal-hook-registry-1.4.0//:signal_hook_registry",  # cfg(unix)
            "@crates_vendor_manifests__socket2-0.4.7//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
            "@crates_vendor_manifests__tokio-1.21.2//:build_script_build",  # common dependency
        ],
        "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [
            "@crates_vendor_manifests__bytes-1.2.1//:bytes",  # common dependency
            "@crates_vendor_manifests__libc-0.2.137//:libc",  # cfg(unix)
            "@crates_vendor_manifests__memchr-2.5.0//:memchr",  # common dependency
            "@crates_vendor_manifests__mio-0.8.5//:mio",  # common dependency
            "@crates_vendor_manifests__num_cpus-1.14.0//:num_cpus",  # common dependency
            "@crates_vendor_manifests__parking_lot-0.12.1//:parking_lot",  # common dependency
            "@crates_vendor_manifests__pin-project-lite-0.2.9//:pin_project_lite",  # common dependency
            "@crates_vendor_manifests__signal-hook-registry-1.4.0//:signal_hook_registry",  # cfg(unix)
            "@crates_vendor_manifests__socket2-0.4.7//:socket2",  # cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))
            "@crates_vendor_manifests__tokio-1.21.2//:build_script_build",  # common dependency
        ],
        "//conditions:default": [
            "@crates_vendor_manifests__bytes-1.2.1//:bytes",
            "@crates_vendor_manifests__memchr-2.5.0//:memchr",
            "@crates_vendor_manifests__mio-0.8.5//:mio",
            "@crates_vendor_manifests__num_cpus-1.14.0//:num_cpus",
            "@crates_vendor_manifests__parking_lot-0.12.1//:parking_lot",
            "@crates_vendor_manifests__pin-project-lite-0.2.9//:pin_project_lite",
            "@crates_vendor_manifests__tokio-1.21.2//:build_script_build",
        ],
    }),
)

cargo_build_script(
    # See comment associated with alias. Do not change this name
    name = "tokio_build_script",
    srcs = glob(
        include = [
            "**/*.rs",
        ],
        exclude = [
        ],
    ),
    aliases = select({
        "//conditions:default": {
        },
    }),
    build_script_env = {
    },
    compile_data = select_with_or({
        "//conditions:default": [
        ],
    }),
    crate_features = [
        "bytes",
        "default",
        "fs",
        "full",
        "io-std",
        "io-util",
        "libc",
        "macros",
        "memchr",
        "mio",
        "net",
        "num_cpus",
        "parking_lot",
        "process",
        "rt",
        "rt-multi-thread",
        "signal",
        "signal-hook-registry",
        "socket2",
        "sync",
        "test-util",
        "time",
        "tokio-macros",
        "winapi",
    ],
    crate_name = "build_script_build",
    crate_root = "build.rs",
    data = glob(["**"]) + select_with_or({
        "//conditions:default": [
        ],
    }),
    edition = "2018",
    proc_macro_deps = [
    ] + select({
        "//conditions:default": [
        ],
    }),
    rustc_env = {
    },
    rustc_env_files = select_with_or({
        "//conditions:default": [
        ],
    }),
    rustc_flags = [
        # In most cases, warnings in 3rd party crates are not interesting as
        # they're out of the control of consumers. The flag here silences
        # warnings. For more details see:
        # https://doc.rust-lang.org/rustc/lints/levels.html
        "--cap-lints=allow",
    ],
    tags = [
        "cargo-bazel",
        "manual",
        "noclippy",
        "norustfmt",
    ],
    tools = select_with_or({
        "//conditions:default": [
        ],
    }),
    version = "1.21.2",
    visibility = ["//visibility:private"],
    deps = [
    ] + select({
        "//conditions:default": [
            "@crates_vendor_manifests__autocfg-1.1.0//:autocfg",
        ],
    }),
)

alias(
    # Because `cargo_build_script` does some invisible target name mutating to
    # determine the package and crate name for a build script, the Bazel
    # target namename of any build script cannot be the Cargo canonical name
    # of `build_script_build` without losing out on having certain Cargo
    # environment variables set.
    name = "build_script_build",
    actual = "tokio_build_script",
    tags = [
        "manual",
    ],
)
