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

# Generated Targets

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

rust_library(
    name = "hyper",
    srcs = glob(["**/*.rs"]),
    crate_features = [
        "client",
        "default",
        "h2",
        "http1",
        "http2",
        "server",
        "socket2",
        "stream",
        "tcp",
    ],
    crate_root = "src/lib.rs",
    data = [],
    edition = "2018",
    rustc_flags = [
        "--cap-lints=allow",
    ],
    tags = [
        "cargo-raze",
        "crate-name=hyper",
        "manual",
    ],
    version = "0.14.27",
    # buildifier: leave-alone
    deps = [
        "@raze__bytes__1_5_0//:bytes",
        "@raze__futures_channel__0_3_28//:futures_channel",
        "@raze__futures_core__0_3_28//:futures_core",
        "@raze__futures_util__0_3_28//:futures_util",
        "@raze__h2__0_3_21//:h2",
        "@raze__http__0_2_9//:http",
        "@raze__http_body__0_4_5//:http_body",
        "@raze__httparse__1_8_0//:httparse",
        "@raze__httpdate__1_0_3//:httpdate",
        "@raze__itoa__1_0_9//:itoa",
        "@raze__pin_project_lite__0_2_13//:pin_project_lite",
        "@raze__socket2__0_4_9//:socket2",
        "@raze__tokio__1_32_0//:tokio",
        "@raze__tower_service__0_3_2//:tower_service",
        "@raze__tracing__0_1_37//:tracing",
        "@raze__want__0_3_1//:want",
    ],
)

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

# Unsupported target "integration" with type "test" omitted

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