"""
@generated
cargo-raze crate build file.

DO NOT EDIT! Replaced on runs of cargo-raze
"""

# buildifier: disable=load
load("@bazel_skylib//lib:selects.bzl", "selects")

# buildifier: disable=load
load(
    "@rules_rust//rust:defs.bzl",
    "rust_binary",
    "rust_library",
    "rust_proc_macro",
    "rust_test",
)

package(default_visibility = [
    # Public for visibility by "@raze__crate__version//" targets.
    #
    # Prefer access through "//wasm_bindgen/raze", which limits external
    # visibility to explicit Cargo.toml dependencies.
    "//visibility:public",
])

licenses([
    "notice",  # MIT from expression "MIT OR Apache-2.0"
])

# Generated Targets

# Unsupported target "bench1" with type "bench" omitted

# Unsupported target "combinations" with type "bench" omitted

# Unsupported target "combinations_with_replacement" with type "bench" omitted

# Unsupported target "fold_specialization" with type "bench" omitted

# Unsupported target "powerset" with type "bench" omitted

# Unsupported target "tree_fold1" with type "bench" omitted

# Unsupported target "tuple_combinations" with type "bench" omitted

# Unsupported target "tuples" with type "bench" omitted

# Unsupported target "iris" with type "example" omitted

rust_library(
    name = "itertools",
    srcs = glob(["**/*.rs"]),
    crate_features = [
        "default",
        "use_alloc",
        "use_std",
    ],
    crate_root = "src/lib.rs",
    data = [],
    edition = "2018",
    rustc_flags = [
        "--cap-lints=allow",
    ],
    tags = [
        "cargo-raze",
        "crate-name=itertools",
        "manual",
    ],
    version = "0.10.1",
    # buildifier: leave-alone
    deps = [
        "@rules_rust_wasm_bindgen__either__1_6_1//:either",
    ],
)

# Unsupported target "adaptors_no_collect" with type "test" omitted

# Unsupported target "flatten_ok" with type "test" omitted

# Unsupported target "fold_specialization" with type "test" omitted

# Unsupported target "macros_hygiene" with type "test" omitted

# Unsupported target "merge_join" with type "test" omitted

# Unsupported target "peeking_take_while" with type "test" omitted

# Unsupported target "quick" with type "test" omitted

# Unsupported target "specializations" with type "test" omitted

# Unsupported target "test_core" with type "test" omitted

# Unsupported target "test_std" with type "test" omitted

# Unsupported target "tuples" with type "test" omitted

# Unsupported target "zip" with type "test" omitted
