###############################################################################
# @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
# ])

rust_library(
    name = "clap",
    srcs = glob(["**/*.rs"]),
    compile_data = glob(
        include = ["**"],
        exclude = [
            "**/* *",
            "BUILD",
            "BUILD.bazel",
            "WORKSPACE",
            "WORKSPACE.bazel",
        ],
    ),
    crate_features = [
        "ansi_term",
        "atty",
        "color",
        "default",
        "strsim",
        "suggestions",
        "vec_map",
    ],
    crate_root = "src/lib.rs",
    edition = "2018",
    rustc_flags = ["--cap-lints=allow"],
    tags = [
        "cargo-bazel",
        "crate-name=clap",
        "manual",
        "noclippy",
        "norustfmt",
    ],
    version = "2.34.0",
    deps = [
        "@crate_index__atty-0.2.14//:atty",
        "@crate_index__bitflags-1.3.2//:bitflags",
        "@crate_index__strsim-0.8.0//:strsim",
        "@crate_index__textwrap-0.11.0//:textwrap",
        "@crate_index__unicode-width-0.1.10//:unicode_width",
        "@crate_index__vec_map-0.8.2//:vec_map",
    ] + select({
        "@rules_rust//rust/platform:aarch64-apple-darwin": [
            "@crate_index__ansi_term-0.12.1//:ansi_term",  # cfg(not(windows))
        ],
        "@rules_rust//rust/platform:aarch64-apple-ios": [
            "@crate_index__ansi_term-0.12.1//:ansi_term",  # cfg(not(windows))
        ],
        "@rules_rust//rust/platform:aarch64-apple-ios-sim": [
            "@crate_index__ansi_term-0.12.1//:ansi_term",  # cfg(not(windows))
        ],
        "@rules_rust//rust/platform:aarch64-linux-android": [
            "@crate_index__ansi_term-0.12.1//:ansi_term",  # cfg(not(windows))
        ],
        "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [
            "@crate_index__ansi_term-0.12.1//:ansi_term",  # cfg(not(windows))
        ],
        "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [
            "@crate_index__ansi_term-0.12.1//:ansi_term",  # cfg(not(windows))
        ],
        "@rules_rust//rust/platform:armv7-linux-androideabi": [
            "@crate_index__ansi_term-0.12.1//:ansi_term",  # cfg(not(windows))
        ],
        "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [
            "@crate_index__ansi_term-0.12.1//:ansi_term",  # cfg(not(windows))
        ],
        "@rules_rust//rust/platform:i686-apple-darwin": [
            "@crate_index__ansi_term-0.12.1//:ansi_term",  # cfg(not(windows))
        ],
        "@rules_rust//rust/platform:i686-linux-android": [
            "@crate_index__ansi_term-0.12.1//:ansi_term",  # cfg(not(windows))
        ],
        "@rules_rust//rust/platform:i686-unknown-freebsd": [
            "@crate_index__ansi_term-0.12.1//:ansi_term",  # cfg(not(windows))
        ],
        "@rules_rust//rust/platform:i686-unknown-linux-gnu": [
            "@crate_index__ansi_term-0.12.1//:ansi_term",  # cfg(not(windows))
        ],
        "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [
            "@crate_index__ansi_term-0.12.1//:ansi_term",  # cfg(not(windows))
        ],
        "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [
            "@crate_index__ansi_term-0.12.1//:ansi_term",  # cfg(not(windows))
        ],
        "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [
            "@crate_index__ansi_term-0.12.1//:ansi_term",  # cfg(not(windows))
        ],
        "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [
            "@crate_index__ansi_term-0.12.1//:ansi_term",  # cfg(not(windows))
        ],
        "@rules_rust//rust/platform:wasm32-unknown-unknown": [
            "@crate_index__ansi_term-0.12.1//:ansi_term",  # cfg(not(windows))
        ],
        "@rules_rust//rust/platform:wasm32-wasi": [
            "@crate_index__ansi_term-0.12.1//:ansi_term",  # cfg(not(windows))
        ],
        "@rules_rust//rust/platform:x86_64-apple-darwin": [
            "@crate_index__ansi_term-0.12.1//:ansi_term",  # cfg(not(windows))
        ],
        "@rules_rust//rust/platform:x86_64-apple-ios": [
            "@crate_index__ansi_term-0.12.1//:ansi_term",  # cfg(not(windows))
        ],
        "@rules_rust//rust/platform:x86_64-linux-android": [
            "@crate_index__ansi_term-0.12.1//:ansi_term",  # cfg(not(windows))
        ],
        "@rules_rust//rust/platform:x86_64-unknown-freebsd": [
            "@crate_index__ansi_term-0.12.1//:ansi_term",  # cfg(not(windows))
        ],
        "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [
            "@crate_index__ansi_term-0.12.1//:ansi_term",  # cfg(not(windows))
        ],
        "//conditions:default": [],
    }),
)
