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

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

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

rust_library(
    name = "tokio",
    srcs = glob(
        include = ["**/*.rs"],
        allow_empty = False,
    ),
    compile_data = glob(
        include = ["**"],
        allow_empty = True,
        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",
        "test-util",
        "time",
        "tokio-macros",
    ] + select({
        "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [
            "windows-sys",  # aarch64-pc-windows-msvc
        ],
        "@rules_rust//rust/platform:i686-pc-windows-msvc": [
            "windows-sys",  # i686-pc-windows-msvc
        ],
        "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [
            "windows-sys",  # x86_64-pc-windows-msvc
        ],
        "//conditions:default": [],
    }),
    crate_root = "src/lib.rs",
    edition = "2021",
    proc_macro_deps = [
        "//vendor_local_manifests/crates/tokio-macros-2.2.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:aarch64-unknown-nixos-gnu": [],
        "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
        "@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-nixos-gnu": [],
        "@rules_rust//rust/platform:x86_64-unknown-none": [],
        "//conditions:default": ["@platforms//:incompatible"],
    }),
    version = "1.36.0",
    deps = [
        "//vendor_local_manifests/crates/bytes-1.5.0:bytes",
        "//vendor_local_manifests/crates/mio-0.8.10:mio",
        "//vendor_local_manifests/crates/num_cpus-1.16.0:num_cpus",
        "//vendor_local_manifests/crates/parking_lot-0.12.1:parking_lot",
        "//vendor_local_manifests/crates/pin-project-lite-0.2.13:pin_project_lite",
    ] + select({
        "@rules_rust//rust/platform:aarch64-apple-darwin": [
            "//vendor_local_manifests/crates/libc-0.2.153:libc",  # cfg(unix)
            "//vendor_local_manifests/crates/signal-hook-registry-1.4.1:signal_hook_registry",  # cfg(unix)
            "//vendor_local_manifests/crates/socket2-0.5.5:socket2",  # cfg(not(target_family = "wasm"))
        ],
        "@rules_rust//rust/platform:aarch64-apple-ios": [
            "//vendor_local_manifests/crates/libc-0.2.153:libc",  # cfg(unix)
            "//vendor_local_manifests/crates/signal-hook-registry-1.4.1:signal_hook_registry",  # cfg(unix)
            "//vendor_local_manifests/crates/socket2-0.5.5:socket2",  # cfg(not(target_family = "wasm"))
        ],
        "@rules_rust//rust/platform:aarch64-apple-ios-sim": [
            "//vendor_local_manifests/crates/libc-0.2.153:libc",  # cfg(unix)
            "//vendor_local_manifests/crates/signal-hook-registry-1.4.1:signal_hook_registry",  # cfg(unix)
            "//vendor_local_manifests/crates/socket2-0.5.5:socket2",  # cfg(not(target_family = "wasm"))
        ],
        "@rules_rust//rust/platform:aarch64-fuchsia": [
            "//vendor_local_manifests/crates/libc-0.2.153:libc",  # cfg(unix)
            "//vendor_local_manifests/crates/signal-hook-registry-1.4.1:signal_hook_registry",  # cfg(unix)
            "//vendor_local_manifests/crates/socket2-0.5.5:socket2",  # cfg(not(target_family = "wasm"))
        ],
        "@rules_rust//rust/platform:aarch64-linux-android": [
            "//vendor_local_manifests/crates/libc-0.2.153:libc",  # cfg(unix)
            "//vendor_local_manifests/crates/signal-hook-registry-1.4.1:signal_hook_registry",  # cfg(unix)
            "//vendor_local_manifests/crates/socket2-0.5.5:socket2",  # cfg(not(target_family = "wasm"))
        ],
        "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [
            "//vendor_local_manifests/crates/socket2-0.5.5:socket2",  # cfg(not(target_family = "wasm"))
            "//vendor_local_manifests/crates/windows-sys-0.48.0:windows_sys",  # cfg(windows)
        ],
        "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [
            "//vendor_local_manifests/crates/libc-0.2.153:libc",  # cfg(unix)
            "//vendor_local_manifests/crates/signal-hook-registry-1.4.1:signal_hook_registry",  # cfg(unix)
            "//vendor_local_manifests/crates/socket2-0.5.5:socket2",  # cfg(not(target_family = "wasm"))
        ],
        "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [
            "//vendor_local_manifests/crates/libc-0.2.153:libc",  # cfg(unix)
            "//vendor_local_manifests/crates/signal-hook-registry-1.4.1:signal_hook_registry",  # cfg(unix)
            "//vendor_local_manifests/crates/socket2-0.5.5:socket2",  # cfg(not(target_family = "wasm"))
        ],
        "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [
            "//vendor_local_manifests/crates/libc-0.2.153:libc",  # cfg(unix)
            "//vendor_local_manifests/crates/signal-hook-registry-1.4.1:signal_hook_registry",  # cfg(unix)
            "//vendor_local_manifests/crates/socket2-0.5.5:socket2",  # cfg(not(target_family = "wasm"))
        ],
        "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [
            "//vendor_local_manifests/crates/libc-0.2.153:libc",  # cfg(unix)
            "//vendor_local_manifests/crates/signal-hook-registry-1.4.1:signal_hook_registry",  # cfg(unix)
            "//vendor_local_manifests/crates/socket2-0.5.5:socket2",  # cfg(not(target_family = "wasm"))
        ],
        "@rules_rust//rust/platform:armv7-linux-androideabi": [
            "//vendor_local_manifests/crates/libc-0.2.153:libc",  # cfg(unix)
            "//vendor_local_manifests/crates/signal-hook-registry-1.4.1:signal_hook_registry",  # cfg(unix)
            "//vendor_local_manifests/crates/socket2-0.5.5:socket2",  # cfg(not(target_family = "wasm"))
        ],
        "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [
            "//vendor_local_manifests/crates/libc-0.2.153:libc",  # cfg(unix)
            "//vendor_local_manifests/crates/signal-hook-registry-1.4.1:signal_hook_registry",  # cfg(unix)
            "//vendor_local_manifests/crates/socket2-0.5.5:socket2",  # cfg(not(target_family = "wasm"))
        ],
        "@rules_rust//rust/platform:i686-apple-darwin": [
            "//vendor_local_manifests/crates/libc-0.2.153:libc",  # cfg(unix)
            "//vendor_local_manifests/crates/signal-hook-registry-1.4.1:signal_hook_registry",  # cfg(unix)
            "//vendor_local_manifests/crates/socket2-0.5.5:socket2",  # cfg(not(target_family = "wasm"))
        ],
        "@rules_rust//rust/platform:i686-linux-android": [
            "//vendor_local_manifests/crates/libc-0.2.153:libc",  # cfg(unix)
            "//vendor_local_manifests/crates/signal-hook-registry-1.4.1:signal_hook_registry",  # cfg(unix)
            "//vendor_local_manifests/crates/socket2-0.5.5:socket2",  # cfg(not(target_family = "wasm"))
        ],
        "@rules_rust//rust/platform:i686-pc-windows-msvc": [
            "//vendor_local_manifests/crates/socket2-0.5.5:socket2",  # cfg(not(target_family = "wasm"))
            "//vendor_local_manifests/crates/windows-sys-0.48.0:windows_sys",  # cfg(windows)
        ],
        "@rules_rust//rust/platform:i686-unknown-freebsd": [
            "//vendor_local_manifests/crates/libc-0.2.153:libc",  # cfg(unix)
            "//vendor_local_manifests/crates/signal-hook-registry-1.4.1:signal_hook_registry",  # cfg(unix)
            "//vendor_local_manifests/crates/socket2-0.5.5:socket2",  # cfg(not(target_family = "wasm"))
        ],
        "@rules_rust//rust/platform:i686-unknown-linux-gnu": [
            "//vendor_local_manifests/crates/libc-0.2.153:libc",  # cfg(unix)
            "//vendor_local_manifests/crates/signal-hook-registry-1.4.1:signal_hook_registry",  # cfg(unix)
            "//vendor_local_manifests/crates/socket2-0.5.5:socket2",  # cfg(not(target_family = "wasm"))
        ],
        "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [
            "//vendor_local_manifests/crates/libc-0.2.153:libc",  # cfg(unix)
            "//vendor_local_manifests/crates/signal-hook-registry-1.4.1:signal_hook_registry",  # cfg(unix)
            "//vendor_local_manifests/crates/socket2-0.5.5:socket2",  # cfg(not(target_family = "wasm"))
        ],
        "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [
            "//vendor_local_manifests/crates/socket2-0.5.5:socket2",  # cfg(not(target_family = "wasm"))
        ],
        "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [
            "//vendor_local_manifests/crates/socket2-0.5.5:socket2",  # cfg(not(target_family = "wasm"))
        ],
        "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [
            "//vendor_local_manifests/crates/libc-0.2.153:libc",  # cfg(unix)
            "//vendor_local_manifests/crates/signal-hook-registry-1.4.1:signal_hook_registry",  # cfg(unix)
            "//vendor_local_manifests/crates/socket2-0.5.5:socket2",  # cfg(not(target_family = "wasm"))
        ],
        "@rules_rust//rust/platform:thumbv7em-none-eabi": [
            "//vendor_local_manifests/crates/socket2-0.5.5:socket2",  # cfg(not(target_family = "wasm"))
        ],
        "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [
            "//vendor_local_manifests/crates/socket2-0.5.5:socket2",  # cfg(not(target_family = "wasm"))
        ],
        "@rules_rust//rust/platform:x86_64-apple-darwin": [
            "//vendor_local_manifests/crates/libc-0.2.153:libc",  # cfg(unix)
            "//vendor_local_manifests/crates/signal-hook-registry-1.4.1:signal_hook_registry",  # cfg(unix)
            "//vendor_local_manifests/crates/socket2-0.5.5:socket2",  # cfg(not(target_family = "wasm"))
        ],
        "@rules_rust//rust/platform:x86_64-apple-ios": [
            "//vendor_local_manifests/crates/libc-0.2.153:libc",  # cfg(unix)
            "//vendor_local_manifests/crates/signal-hook-registry-1.4.1:signal_hook_registry",  # cfg(unix)
            "//vendor_local_manifests/crates/socket2-0.5.5:socket2",  # cfg(not(target_family = "wasm"))
        ],
        "@rules_rust//rust/platform:x86_64-fuchsia": [
            "//vendor_local_manifests/crates/libc-0.2.153:libc",  # cfg(unix)
            "//vendor_local_manifests/crates/signal-hook-registry-1.4.1:signal_hook_registry",  # cfg(unix)
            "//vendor_local_manifests/crates/socket2-0.5.5:socket2",  # cfg(not(target_family = "wasm"))
        ],
        "@rules_rust//rust/platform:x86_64-linux-android": [
            "//vendor_local_manifests/crates/libc-0.2.153:libc",  # cfg(unix)
            "//vendor_local_manifests/crates/signal-hook-registry-1.4.1:signal_hook_registry",  # cfg(unix)
            "//vendor_local_manifests/crates/socket2-0.5.5:socket2",  # cfg(not(target_family = "wasm"))
        ],
        "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [
            "//vendor_local_manifests/crates/socket2-0.5.5:socket2",  # cfg(not(target_family = "wasm"))
            "//vendor_local_manifests/crates/windows-sys-0.48.0:windows_sys",  # cfg(windows)
        ],
        "@rules_rust//rust/platform:x86_64-unknown-freebsd": [
            "//vendor_local_manifests/crates/libc-0.2.153:libc",  # cfg(unix)
            "//vendor_local_manifests/crates/signal-hook-registry-1.4.1:signal_hook_registry",  # cfg(unix)
            "//vendor_local_manifests/crates/socket2-0.5.5:socket2",  # cfg(not(target_family = "wasm"))
        ],
        "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [
            "//vendor_local_manifests/crates/libc-0.2.153:libc",  # cfg(unix)
            "//vendor_local_manifests/crates/signal-hook-registry-1.4.1:signal_hook_registry",  # cfg(unix)
            "//vendor_local_manifests/crates/socket2-0.5.5:socket2",  # cfg(not(target_family = "wasm"))
        ],
        "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [
            "//vendor_local_manifests/crates/libc-0.2.153:libc",  # cfg(unix)
            "//vendor_local_manifests/crates/signal-hook-registry-1.4.1:signal_hook_registry",  # cfg(unix)
            "//vendor_local_manifests/crates/socket2-0.5.5:socket2",  # cfg(not(target_family = "wasm"))
        ],
        "@rules_rust//rust/platform:x86_64-unknown-none": [
            "//vendor_local_manifests/crates/socket2-0.5.5:socket2",  # cfg(not(target_family = "wasm"))
        ],
        "//conditions:default": [],
    }),
)
