"""
@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 OR Apache-2.0"
])

# Generated Targets

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

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

# Unsupported target "autobahn-client" with type "example" omitted

# Unsupported target "autobahn-server" with type "example" omitted

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

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

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

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

rust_library(
    name = "tungstenite",
    srcs = glob(["**/*.rs"]),
    crate_features = [
        "data-encoding",
        "handshake",
        "http",
        "httparse",
        "sha1",
        "url",
    ],
    crate_root = "src/lib.rs",
    data = [],
    edition = "2018",
    rustc_flags = [
        "--cap-lints=allow",
    ],
    tags = [
        "cargo-raze",
        "crate-name=tungstenite",
        "manual",
    ],
    version = "0.20.1",
    # buildifier: leave-alone
    deps = [
        "@raze__byteorder__1_4_3//:byteorder",
        "@raze__bytes__1_5_0//:bytes",
        "@raze__data_encoding__2_4_0//:data_encoding",
        "@raze__http__0_2_9//:http",
        "@raze__httparse__1_8_0//:httparse",
        "@raze__log__0_4_20//:log",
        "@raze__rand__0_8_5//:rand",
        "@raze__sha1__0_10_6//:sha1",
        "@raze__thiserror__1_0_49//:thiserror",
        "@raze__url__2_4_1//:url",
        "@raze__utf_8__0_7_6//:utf_8",
    ],
)
