###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
#     bazel run //third_party/rust:crate_index
###############################################################################

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

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

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

# Workspace Member Dependencies
alias(
    name = "ansi_term",
    actual = "@crate_index__ansi_term-0.12.1//:ansi_term",
    tags = ["manual"],
)

alias(
    name = "anyhow",
    actual = "@crate_index__anyhow-1.0.69//:anyhow",
    tags = ["manual"],
)

alias(
    name = "arrayvec",
    actual = "@crate_index__arrayvec-0.7.2//:arrayvec",
    tags = ["manual"],
)

alias(
    name = "atty",
    actual = "@crate_index__atty-0.2.14//:atty",
    tags = ["manual"],
)

alias(
    name = "bitflags",
    actual = "@crate_index__bitflags-1.3.2//:bitflags",
    tags = ["manual"],
)

alias(
    name = "bitvec",
    actual = "@crate_index__bitvec-1.0.1//:bitvec",
    tags = ["manual"],
)

alias(
    name = "byteorder",
    actual = "@crate_index__byteorder-1.4.3//:byteorder",
    tags = ["manual"],
)

alias(
    name = "chrono",
    actual = "@crate_index__chrono-0.4.23//:chrono",
    tags = ["manual"],
)

alias(
    name = "crc",
    actual = "@crate_index__crc-3.0.1//:crc",
    tags = ["manual"],
)

alias(
    name = "deser-hjson",
    actual = "@crate_index__deser-hjson-1.1.0//:deser_hjson",
    tags = ["manual"],
)

alias(
    name = "directories",
    actual = "@crate_index__directories-4.0.1//:directories",
    tags = ["manual"],
)

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

alias(
    name = "erased-serde",
    actual = "@crate_index__erased-serde-0.3.24//:erased_serde",
    tags = ["manual"],
)

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

alias(
    name = "humantime",
    actual = "@crate_index__humantime-2.1.0//:humantime",
    tags = ["manual"],
)

alias(
    name = "humantime-serde",
    actual = "@crate_index__humantime-serde-1.1.1//:humantime_serde",
    tags = ["manual"],
)

alias(
    name = "indicatif",
    actual = "@crate_index__indicatif-0.16.2//:indicatif",
    tags = ["manual"],
)

alias(
    name = "lazy_static",
    actual = "@crate_index__lazy_static-1.4.0//:lazy_static",
    tags = ["manual"],
)

alias(
    name = "libftdi1-sys",
    actual = "@crate_index__libftdi1-sys-1.1.2//:libftdi1_sys",
    tags = ["manual"],
)

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

alias(
    name = "memoffset",
    actual = "@crate_index__memoffset-0.6.5//:memoffset",
    tags = ["manual"],
)

alias(
    name = "mio",
    actual = "@crate_index__mio-0.7.14//:mio",
    tags = ["manual"],
)

alias(
    name = "mio-signals",
    actual = "@crate_index__mio-signals-0.1.5//:mio_signals",
    tags = ["manual"],
)

alias(
    name = "nix",
    actual = "@crate_index__nix-0.17.0//:nix",
    tags = ["manual"],
)

alias(
    name = "num-bigint-dig",
    actual = "@crate_index__num-bigint-dig-0.7.0//:num_bigint_dig",
    tags = ["manual"],
)

alias(
    name = "num-traits",
    actual = "@crate_index__num-traits-0.2.15//:num_traits",
    tags = ["manual"],
)

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

alias(
    name = "object",
    actual = "@crate_index__object-0.25.3//:object",
    tags = ["manual"],
)

alias(
    name = "once_cell",
    actual = "@crate_index__once_cell-1.17.1//:once_cell",
    tags = ["manual"],
)

alias(
    name = "pest",
    actual = "@crate_index__pest-2.5.5//:pest",
    tags = ["manual"],
)

alias(
    name = "pest_derive",
    actual = "@crate_index__pest_derive-2.5.5//:pest_derive",
    tags = ["manual"],
)

alias(
    name = "proc-macro-error",
    actual = "@crate_index__proc-macro-error-1.0.4//:proc_macro_error",
    tags = ["manual"],
)

alias(
    name = "proc-macro2",
    actual = "@crate_index__proc-macro2-1.0.51//:proc_macro2",
    tags = ["manual"],
)

alias(
    name = "quote",
    actual = "@crate_index__quote-1.0.23//:quote",
    tags = ["manual"],
)

alias(
    name = "rand",
    actual = "@crate_index__rand-0.8.5//:rand",
    tags = ["manual"],
)

alias(
    name = "raw_tty",
    actual = "@crate_index__raw_tty-0.1.0//:raw_tty",
    tags = ["manual"],
)

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

alias(
    name = "rsa",
    actual = "@crate_index__rsa-0.5.0//:rsa",
    tags = ["manual"],
)

alias(
    name = "rusb",
    actual = "@crate_index__rusb-0.8.1//:rusb",
    tags = ["manual"],
)

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

alias(
    name = "serde_bytes",
    actual = "@crate_index__serde_bytes-0.11.9//:serde_bytes",
    tags = ["manual"],
)

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

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

alias(
    name = "serialport",
    actual = "@crate_index__serialport-4.2.0//:serialport",
    tags = ["manual"],
)

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

alias(
    name = "shellwords",
    actual = "@crate_index__shellwords-1.1.0//:shellwords",
    tags = ["manual"],
)

alias(
    name = "structopt",
    actual = "@crate_index__structopt-0.3.26//:structopt",
    tags = ["manual"],
)

alias(
    name = "syn",
    actual = "@crate_index__syn-1.0.107//:syn",
    tags = ["manual"],
)

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

alias(
    name = "thiserror",
    actual = "@crate_index__thiserror-1.0.38//:thiserror",
    tags = ["manual"],
)

alias(
    name = "typetag",
    actual = "@crate_index__typetag-0.1.8//:typetag",
    tags = ["manual"],
)

alias(
    name = "zerocopy",
    actual = "@crate_index__zerocopy-0.5.0//:zerocopy",
    tags = ["manual"],
)
