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

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

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

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

rust_library(
    name = "atty",
    srcs = glob(["**/*.rs"]),
    compile_data = glob(
        include = ["**"],
        exclude = [
            "**/* *",
            "BUILD",
            "BUILD.bazel",
            "WORKSPACE",
            "WORKSPACE.bazel",
        ],
    ),
    crate_root = "src/lib.rs",
    edition = "2015",
    rustc_flags = ["--cap-lints=allow"],
    tags = [
        "cargo-bazel",
        "manual",
        "noclippy",
        "norustfmt",
    ],
    version = "0.2.14",
    deps = select({
        "@rules_rust//rust/platform:aarch64-apple-darwin": [
            "@crates_vendor__libc-0.2.119//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:aarch64-apple-ios": [
            "@crates_vendor__libc-0.2.119//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:aarch64-apple-ios-sim": [
            "@crates_vendor__libc-0.2.119//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:aarch64-linux-android": [
            "@crates_vendor__libc-0.2.119//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [
            "@crates_vendor__winapi-0.3.9//:winapi",  # cfg(windows)
        ],
        "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [
            "@crates_vendor__libc-0.2.119//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [
            "@crates_vendor__libc-0.2.119//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:armv7-linux-androideabi": [
            "@crates_vendor__libc-0.2.119//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [
            "@crates_vendor__libc-0.2.119//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:i686-apple-darwin": [
            "@crates_vendor__libc-0.2.119//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:i686-linux-android": [
            "@crates_vendor__libc-0.2.119//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:i686-pc-windows-msvc": [
            "@crates_vendor__winapi-0.3.9//:winapi",  # cfg(windows)
        ],
        "@rules_rust//rust/platform:i686-unknown-freebsd": [
            "@crates_vendor__libc-0.2.119//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:i686-unknown-linux-gnu": [
            "@crates_vendor__libc-0.2.119//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [
            "@crates_vendor__libc-0.2.119//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [
            "@crates_vendor__libc-0.2.119//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:x86_64-apple-darwin": [
            "@crates_vendor__libc-0.2.119//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:x86_64-apple-ios": [
            "@crates_vendor__libc-0.2.119//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:x86_64-linux-android": [
            "@crates_vendor__libc-0.2.119//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [
            "@crates_vendor__winapi-0.3.9//:winapi",  # cfg(windows)
        ],
        "@rules_rust//rust/platform:x86_64-unknown-freebsd": [
            "@crates_vendor__libc-0.2.119//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [
            "@crates_vendor__libc-0.2.119//:libc",  # cfg(unix)
        ],
        "//conditions:default": [],
    }),
)
