###############################################################################
# @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 = "@rules_rust_wasm_bindgen__anyhow-1.0.57//:anyhow",
    tags = ["manual"],
)

alias(
    name = "assert_cmd",
    actual = "@rules_rust_wasm_bindgen__assert_cmd-1.0.8//:assert_cmd",
    tags = ["manual"],
)

alias(
    name = "curl",
    actual = "@rules_rust_wasm_bindgen__curl-0.4.43//:curl",
    tags = ["manual"],
)

alias(
    name = "diff",
    actual = "@rules_rust_wasm_bindgen__diff-0.1.12//:diff",
    tags = ["manual"],
)

alias(
    name = "docopt",
    actual = "@rules_rust_wasm_bindgen__docopt-1.1.1//:docopt",
    tags = ["manual"],
)

alias(
    name = "env_logger",
    actual = "@rules_rust_wasm_bindgen__env_logger-0.8.4//:env_logger",
    tags = ["manual"],
)

alias(
    name = "log",
    actual = "@rules_rust_wasm_bindgen__log-0.4.17//:log",
    tags = ["manual"],
)

alias(
    name = "predicates",
    actual = "@rules_rust_wasm_bindgen__predicates-1.0.8//:predicates",
    tags = ["manual"],
)

alias(
    name = "rayon",
    actual = "@rules_rust_wasm_bindgen__rayon-1.5.3//:rayon",
    tags = ["manual"],
)

alias(
    name = "rouille",
    actual = "@rules_rust_wasm_bindgen__rouille-3.5.0//:rouille",
    tags = ["manual"],
)

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

alias(
    name = "serde_derive",
    actual = "@rules_rust_wasm_bindgen__serde_derive-1.0.137//:serde_derive",
    tags = ["manual"],
)

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

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

alias(
    name = "walrus",
    actual = "@rules_rust_wasm_bindgen__walrus-0.19.0//:walrus",
    tags = ["manual"],
)

alias(
    name = "wasm-bindgen",
    actual = "@rules_rust_wasm_bindgen__wasm-bindgen-0.2.78//:wasm_bindgen",
    tags = ["manual"],
)

alias(
    name = "wasm-bindgen-cli-support",
    actual = "@rules_rust_wasm_bindgen__wasm-bindgen-cli-support-0.2.78//:wasm_bindgen_cli_support",
    tags = ["manual"],
)

alias(
    name = "wasm-bindgen-shared",
    actual = "@rules_rust_wasm_bindgen__wasm-bindgen-shared-0.2.78//:wasm_bindgen_shared",
    tags = ["manual"],
)

alias(
    name = "wit-printer",
    actual = "@rules_rust_wasm_bindgen__wit-printer-0.2.0//:wit_printer",
    tags = ["manual"],
)

alias(
    name = "wit-text",
    actual = "@rules_rust_wasm_bindgen__wit-text-0.8.0//:wit_text",
    tags = ["manual"],
)

alias(
    name = "wit-validator",
    actual = "@rules_rust_wasm_bindgen__wit-validator-0.2.1//:wit_validator",
    tags = ["manual"],
)

alias(
    name = "wit-walrus",
    actual = "@rules_rust_wasm_bindgen__wit-walrus-0.6.0//:wit_walrus",
    tags = ["manual"],
)

# Binaries
alias(
    name = "assert_cmd__bin_fixture",
    actual = "@rules_rust_wasm_bindgen__assert_cmd-1.0.8//:bin_fixture__bin",
    tags = ["manual"],
)

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

alias(
    name = "difference__difference",
    actual = "@rules_rust_wasm_bindgen__difference-2.0.0//:difference__bin",
    tags = ["manual"],
)

alias(
    name = "docopt__docopt-wordlist",
    actual = "@rules_rust_wasm_bindgen__docopt-1.1.1//:docopt-wordlist__bin",
    tags = ["manual"],
)

alias(
    name = "leb128__leb128-repl",
    actual = "@rules_rust_wasm_bindgen__leb128-0.2.5//:leb128-repl__bin",
    tags = ["manual"],
)

alias(
    name = "multipart__form_test",
    actual = "@rules_rust_wasm_bindgen__multipart-0.18.0//:form_test__bin",
    tags = ["manual"],
)

alias(
    name = "wait-timeout__exit",
    actual = "@rules_rust_wasm_bindgen__wait-timeout-0.2.0//:exit__bin",
    tags = ["manual"],
)

alias(
    name = "wait-timeout__sleep",
    actual = "@rules_rust_wasm_bindgen__wait-timeout-0.2.0//:sleep__bin",
    tags = ["manual"],
)

alias(
    name = "wait-timeout__reader",
    actual = "@rules_rust_wasm_bindgen__wait-timeout-0.2.0//:reader__bin",
    tags = ["manual"],
)

alias(
    name = "wit-schema-version__wit-schema-version",
    actual = "@rules_rust_wasm_bindgen__wit-schema-version-0.1.0//:wit-schema-version__bin",
    tags = ["manual"],
)
