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

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

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

# licenses([
#     "TODO",  # MIT OR Apache-2.0
# ])

rust_library(
    name = "tempfile",
    srcs = glob(["**/*.rs"]),
    compile_data = glob(
        include = ["**"],
        exclude = [
            "**/* *",
            "BUILD",
            "BUILD.bazel",
            "WORKSPACE",
            "WORKSPACE.bazel",
        ],
    ),
    crate_root = "src/lib.rs",
    edition = "2018",
    rustc_flags = ["--cap-lints=allow"],
    tags = [
        "cargo-bazel",
        "crate-name=tempfile",
        "manual",
        "noclippy",
        "norustfmt",
    ],
    version = "3.3.0",
    deps = [
        "@crate_index__cfg-if-1.0.0//:cfg_if",
        "@crate_index__fastrand-1.9.0//:fastrand",
        "@crate_index__remove_dir_all-0.5.3//:remove_dir_all",
    ] + select({
        "@rules_rust//rust/platform:aarch64-apple-darwin": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(any(unix, target_os = "wasi"))
        ],
        "@rules_rust//rust/platform:aarch64-apple-ios": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(any(unix, target_os = "wasi"))
        ],
        "@rules_rust//rust/platform:aarch64-apple-ios-sim": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(any(unix, target_os = "wasi"))
        ],
        "@rules_rust//rust/platform:aarch64-linux-android": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(any(unix, target_os = "wasi"))
        ],
        "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [
            "@crate_index__winapi-0.3.9//:winapi",  # cfg(windows)
        ],
        "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(any(unix, target_os = "wasi"))
        ],
        "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(any(unix, target_os = "wasi"))
        ],
        "@rules_rust//rust/platform:armv7-linux-androideabi": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(any(unix, target_os = "wasi"))
        ],
        "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(any(unix, target_os = "wasi"))
        ],
        "@rules_rust//rust/platform:i686-apple-darwin": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(any(unix, target_os = "wasi"))
        ],
        "@rules_rust//rust/platform:i686-linux-android": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(any(unix, target_os = "wasi"))
        ],
        "@rules_rust//rust/platform:i686-pc-windows-msvc": [
            "@crate_index__winapi-0.3.9//:winapi",  # cfg(windows)
        ],
        "@rules_rust//rust/platform:i686-unknown-freebsd": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(any(unix, target_os = "wasi"))
        ],
        "@rules_rust//rust/platform:i686-unknown-linux-gnu": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(any(unix, target_os = "wasi"))
        ],
        "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(any(unix, target_os = "wasi"))
        ],
        "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(any(unix, target_os = "wasi"))
        ],
        "@rules_rust//rust/platform:wasm32-wasi": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(any(unix, target_os = "wasi"))
        ],
        "@rules_rust//rust/platform:x86_64-apple-darwin": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(any(unix, target_os = "wasi"))
        ],
        "@rules_rust//rust/platform:x86_64-apple-ios": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(any(unix, target_os = "wasi"))
        ],
        "@rules_rust//rust/platform:x86_64-linux-android": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(any(unix, target_os = "wasi"))
        ],
        "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [
            "@crate_index__winapi-0.3.9//:winapi",  # cfg(windows)
        ],
        "@rules_rust//rust/platform:x86_64-unknown-freebsd": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(any(unix, target_os = "wasi"))
        ],
        "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(any(unix, target_os = "wasi"))
        ],
        "//conditions:default": [],
    }),
)
