###############################################################################
# @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 = "rand",
    srcs = glob(["**/*.rs"]),
    compile_data = glob(
        include = ["**"],
        exclude = [
            "**/* *",
            "BUILD",
            "BUILD.bazel",
            "WORKSPACE",
            "WORKSPACE.bazel",
        ],
    ),
    crate_features = [
        "alloc",
        "default",
        "getrandom",
        "libc",
        "rand_chacha",
        "std",
        "std_rng",
    ],
    crate_root = "src/lib.rs",
    edition = "2018",
    rustc_flags = ["--cap-lints=allow"],
    tags = [
        "cargo-bazel",
        "crate-name=rand",
        "manual",
        "noclippy",
        "norustfmt",
    ],
    version = "0.8.5",
    deps = [
        "@crate_index__rand_chacha-0.3.1//:rand_chacha",
        "@crate_index__rand_core-0.6.4//:rand_core",
    ] + select({
        "@rules_rust//rust/platform:aarch64-apple-darwin": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:aarch64-apple-ios": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:aarch64-apple-ios-sim": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:aarch64-linux-android": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:armv7-linux-androideabi": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:i686-apple-darwin": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:i686-linux-android": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:i686-unknown-freebsd": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:i686-unknown-linux-gnu": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:x86_64-apple-darwin": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:x86_64-apple-ios": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:x86_64-linux-android": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:x86_64-unknown-freebsd": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(unix)
        ],
        "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [
            "@crate_index__libc-0.2.139//:libc",  # cfg(unix)
        ],
        "//conditions:default": [],
    }),
)
