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

licenses([
    "notice",  # MIT from expression "MIT"
])

# Generated Targets

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

rust_binary(
    # Prefix bin name to disambiguate from (probable) collision with lib name
    # N.B.: The exact form of this is subject to change.
    name = "cargo_bin_handlebars_cli",
    srcs = glob(["**/*.rs"]),
    crate_features = [
        "default",
    ],
    crate_root = "src/cli.rs",
    data = [] + [
        "src/grammar.pest",
    ],
    edition = "2021",
    proc_macro_deps = [
        "@raze__pest_derive__2_7_4//:pest_derive",
    ],
    rustc_flags = [
        "--cap-lints=allow",
    ],
    tags = [
        "cargo-raze",
        "crate-name=handlebars-cli",
        "manual",
    ],
    version = "4.4.0",
    # buildifier: leave-alone
    deps = [
        ":handlebars",
        "@raze__log__0_4_20//:log",
        "@raze__pest__2_7_4//:pest",
        "@raze__serde__1_0_188//:serde",
        "@raze__serde_json__1_0_107//:serde_json",
        "@raze__thiserror__1_0_49//:thiserror",
    ],
)

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

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

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

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

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

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

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

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

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

rust_library(
    name = "handlebars",
    srcs = glob(["**/*.rs"]),
    crate_features = [
        "default",
    ],
    crate_root = "src/lib.rs",
    data = [] + [
        "src/grammar.pest",
    ],
    edition = "2021",
    proc_macro_deps = [
        "@raze__pest_derive__2_7_4//:pest_derive",
    ],
    rustc_flags = [
        "--cap-lints=allow",
    ],
    tags = [
        "cargo-raze",
        "crate-name=handlebars",
        "manual",
    ],
    version = "4.4.0",
    # buildifier: leave-alone
    deps = [
        "@raze__log__0_4_20//:log",
        "@raze__pest__2_7_4//:pest",
        "@raze__serde__1_0_188//:serde",
        "@raze__serde_json__1_0_107//:serde_json",
        "@raze__thiserror__1_0_49//:thiserror",
    ],
)

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

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

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

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

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

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

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

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

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

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

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