###############################################################################
# @generated
# This file is auto-generated by the cargo-bazel tool.
#
# DO NOT MODIFY: Local changes may be replaced in future executions.
###############################################################################

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

exports_files(
    [
        "cargo-bazel.json",
        "defs.bzl",
        "crates.bzl",
    ] + glob([
        "*.bazel",
    ]),
)

filegroup(
    name = "srcs",
    srcs = glob([
        "*.bazel",
        "*.bzl",
    ]),
)

# Workspace Member Dependencies
alias(
    name = "anyhow",
    actual = "@cui__anyhow-1.0.58//:anyhow",
    tags = ["manual"],
)

alias(
    name = "cargo-lock",
    actual = "@cui__cargo-lock-8.0.2//:cargo_lock",
    tags = ["manual"],
)

alias(
    name = "cargo-platform",
    actual = "@cui__cargo-platform-0.1.2//:cargo_platform",
    tags = ["manual"],
)

alias(
    name = "cargo_metadata",
    actual = "@cui__cargo_metadata-0.14.2//:cargo_metadata",
    tags = ["manual"],
)

alias(
    name = "cargo_toml",
    actual = "@cui__cargo_toml-0.11.5//:cargo_toml",
    tags = ["manual"],
)

alias(
    name = "cfg-expr",
    actual = "@cui__cfg-expr-0.10.3//:cfg_expr",
    tags = ["manual"],
)

alias(
    name = "clap",
    actual = "@cui__clap-3.2.8//:clap",
    tags = ["manual"],
)

alias(
    name = "crates-index",
    actual = "@cui__crates-index-0.18.8//:crates_index",
    tags = ["manual"],
)

alias(
    name = "hex",
    actual = "@cui__hex-0.4.3//:hex",
    tags = ["manual"],
)

alias(
    name = "maplit",
    actual = "@cui__maplit-1.0.2//:maplit",
    tags = ["manual"],
)

alias(
    name = "normpath",
    actual = "@cui__normpath-0.3.2//:normpath",
    tags = ["manual"],
)

alias(
    name = "pathdiff",
    actual = "@cui__pathdiff-0.2.1//:pathdiff",
    tags = ["manual"],
)

alias(
    name = "regex",
    actual = "@cui__regex-1.6.0//:regex",
    tags = ["manual"],
)

alias(
    name = "semver",
    actual = "@cui__semver-1.0.12//:semver",
    tags = ["manual"],
)

alias(
    name = "serde",
    actual = "@cui__serde-1.0.138//:serde",
    tags = ["manual"],
)

alias(
    name = "serde_json",
    actual = "@cui__serde_json-1.0.82//:serde_json",
    tags = ["manual"],
)

alias(
    name = "sha2",
    actual = "@cui__sha2-0.10.2//:sha2",
    tags = ["manual"],
)

alias(
    name = "spectral",
    actual = "@cui__spectral-0.6.0//:spectral",
    tags = ["manual"],
)

alias(
    name = "tempfile",
    actual = "@cui__tempfile-3.3.0//:tempfile",
    tags = ["manual"],
)

alias(
    name = "tera",
    actual = "@cui__tera-1.16.0//:tera",
    tags = ["manual"],
)

alias(
    name = "textwrap",
    actual = "@cui__textwrap-0.15.0//:textwrap",
    tags = ["manual"],
)

alias(
    name = "toml",
    actual = "@cui__toml-0.5.9//:toml",
    tags = ["manual"],
)

# Binaries
alias(
    name = "cargo-lock__cargo-lock",
    actual = "@cui__cargo-lock-8.0.2//:cargo-lock__bin",
    tags = ["manual"],
)

alias(
    name = "cc__gcc-shim",
    actual = "@cui__cc-1.0.73//:gcc-shim__bin",
    tags = ["manual"],
)

alias(
    name = "clap__stdio-fixture",
    actual = "@cui__clap-3.2.8//:stdio-fixture__bin",
    tags = ["manual"],
)

alias(
    name = "phf_generator__gen_hash_test",
    actual = "@cui__phf_generator-0.10.0//:gen_hash_test__bin",
    tags = ["manual"],
)
