###############################################################################
# @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//cargo:defs.bzl", "cargo_build_script")
load("@rules_rust//rust:defs.bzl", "rust_library")

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

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

rust_library(
    name = "num_traits",
    srcs = glob(["**/*.rs"]),
    compile_data = glob(
        include = ["**"],
        exclude = [
            "**/* *",
            "BUILD",
            "BUILD.bazel",
            "WORKSPACE",
            "WORKSPACE.bazel",
        ],
    ),
    crate_features = [
        "default",
        "i128",
        "libm",
        "std",
    ],
    crate_root = "src/lib.rs",
    edition = "2015",
    rustc_flags = ["--cap-lints=allow"],
    tags = [
        "cargo-bazel",
        "crate-name=num-traits",
        "manual",
        "noclippy",
        "norustfmt",
    ],
    version = "0.2.15",
    deps = [
        "@crate_index__libm-0.2.6//:libm",
        "@crate_index__num-traits-0.2.15//:build_script_build",
    ],
)

cargo_build_script(
    name = "num-traits_build_script",
    srcs = glob(["**/*.rs"]),
    crate_features = [
        "default",
        "i128",
        "libm",
        "std",
    ],
    crate_name = "build_script_build",
    crate_root = "build.rs",
    data = glob(
        include = ["**"],
        exclude = [
            "**/* *",
            "BUILD",
            "BUILD.bazel",
            "WORKSPACE",
            "WORKSPACE.bazel",
        ],
    ),
    edition = "2015",
    rustc_flags = [
        "--cap-lints=allow",
    ],
    tags = [
        "cargo-bazel",
        "crate-name=num-traits",
        "manual",
        "noclippy",
        "norustfmt",
    ],
    version = "0.2.15",
    visibility = ["//visibility:private"],
    deps = [
        "@crate_index__autocfg-1.1.0//:autocfg",
    ],
)

alias(
    name = "build_script_build",
    actual = "num-traits_build_script",
    tags = ["manual"],
)
