###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
#     bazel run //wasm_bindgen/3rdparty:crates_vendor
###############################################################################

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.58//: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.13//: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.139//:serde",
    tags = ["manual"],
)

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

alias(
    name = "serde_json",
    actual = "@rules_rust_wasm_bindgen__serde_json-1.0.82//: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.81//:wasm_bindgen",
    tags = ["manual"],
)

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

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

alias(
    name = "wasmprinter",
    actual = "@rules_rust_wasm_bindgen__wasmprinter-0.2.33//:wasmprinter",
    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"],
)
