"""
@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 "//tools/rust_analyzer/raze", which limits external
    # visibility to explicit Cargo.toml dependencies.
    "//visibility:public",
])

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

# Generated Targets
# buildifier: disable=out-of-order-load
# buildifier: disable=load-on-top
load(
    "@rules_rust//cargo:cargo_build_script.bzl",
    "cargo_build_script",
)

cargo_build_script(
    name = "proc_macro_error_build_script",
    srcs = glob(["**/*.rs"]),
    build_script_env = {
    },
    crate_features = [
        "default",
        "syn",
        "syn-error",
    ],
    crate_root = "build.rs",
    data = glob(["**"]),
    edition = "2018",
    rustc_flags = [
        "--cap-lints=allow",
    ],
    tags = [
        "cargo-raze",
        "manual",
    ],
    version = "1.0.4",
    visibility = ["//visibility:private"],
    deps = [
        "@rules_rust_tools_rust_analyzer__version_check__0_9_3//:version_check",
    ],
)

rust_library(
    name = "proc_macro_error",
    srcs = glob(["**/*.rs"]),
    crate_features = [
        "default",
        "syn",
        "syn-error",
    ],
    crate_root = "src/lib.rs",
    data = [],
    edition = "2018",
    proc_macro_deps = [
        "@rules_rust_tools_rust_analyzer__proc_macro_error_attr__1_0_4//:proc_macro_error_attr",
    ],
    rustc_flags = [
        "--cap-lints=allow",
    ],
    tags = [
        "cargo-raze",
        "crate-name=proc-macro-error",
        "manual",
    ],
    version = "1.0.4",
    # buildifier: leave-alone
    deps = [
        ":proc_macro_error_build_script",
        "@rules_rust_tools_rust_analyzer__proc_macro2__1_0_32//:proc_macro2",
        "@rules_rust_tools_rust_analyzer__quote__1_0_10//:quote",
        "@rules_rust_tools_rust_analyzer__syn__1_0_81//:syn",
    ],
)

# Unsupported target "macro-errors" with type "test" omitted

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

# Unsupported target "runtime-errors" with type "test" omitted
