# Copyright 2025 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

load("//build/tools/bazel2gn/bazel_rules:defs.bzl", "rustc_library")

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

rustc_library(
    name = "fuchsia-async",
    srcs = [
        "src/condition.rs",
        "src/handle/mod.rs",
        "src/lib.rs",
        "src/net/mod.rs",
        "src/runtime/instrument.rs",
        "src/runtime/mod.rs",
        "src/runtime/scope.rs",
        "src/runtime/task_group.rs",
        "src/test_support.rs",
    ] + select({
        "@platforms//os:fuchsia": [
            "src/handle/zircon/channel.rs",
            "src/handle/zircon/fifo.rs",
            "src/handle/zircon/mod.rs",
            "src/handle/zircon/on_interrupt.rs",
            "src/handle/zircon/on_signals.rs",
            "src/handle/zircon/rwhandle.rs",
            "src/handle/zircon/socket.rs",
            "src/net/fuchsia/mod.rs",
            "src/net/fuchsia/tcp.rs",
            "src/net/fuchsia/udp.rs",
            "src/runtime/fuchsia/executor/atomic_future.rs",
            "src/runtime/fuchsia/executor/atomic_future/hooks.rs",
            "src/runtime/fuchsia/executor/atomic_future/spawnable_future.rs",
            "src/runtime/fuchsia/executor/common.rs",
            "src/runtime/fuchsia/executor/local.rs",
            "src/runtime/fuchsia/executor/mod.rs",
            "src/runtime/fuchsia/executor/packets.rs",
            "src/runtime/fuchsia/executor/scope.rs",
            "src/runtime/fuchsia/executor/send.rs",
            "src/runtime/fuchsia/executor/time.rs",
            "src/runtime/fuchsia/mod.rs",
            "src/runtime/fuchsia/task.rs",
            "src/runtime/fuchsia/timer.rs",
        ],
        "//conditions:default": [
            "src/handle/emulated/channel.rs",
            "src/handle/emulated/mod.rs",
            "src/handle/emulated/socket.rs",
            "src/net/portable/mod.rs",
            "src/net/portable/udp.rs",
            "src/runtime/portable.rs",
            "src/runtime/portable/scope.rs",
        ],
    }),
    edition = "2021",
    proc_macro_deps = [
        "//src/lib/fuchsia-async-macro",
    ],
    test_deps = [
        "//third_party/rust_crates/vendor:assert_matches",
        "//third_party/rust_crates/vendor:futures-test",
    ] + select({
        "@platforms//os:fuchsia": [
            "//third_party/rust_crates/vendor:rand",
        ],
        "//conditions:default": [],
    }),
    with_unit_tests = True,
    deps = [
        "//third_party/rust_crates/vendor:futures",
        "//third_party/rust_crates/vendor:pin-project-lite",
    ] + select({
        "@platforms//os:fuchsia": [
            "//sdk/lib/fdio",
            "//sdk/rust/zx",
            "//src/lib/fuchsia-sync",
            "//third_party/rust_crates/vendor:crossbeam",
            "//third_party/rust_crates/vendor:libc",
            "//third_party/rust_crates/vendor:rustc-hash",
            "//third_party/rust_crates/vendor:socket2",
            "//third_party/rust_crates/vendor:zerocopy",
        ],
        "//conditions:default": [
            "//sdk/rust/zx-status",
            "//sdk/rust/zx-types",
            "//third_party/rust_crates/vendor:bitflags",
            "//third_party/rust_crates/vendor:futures-lite",
            "//third_party/rust_crates/vendor:lazy_static",
            "//third_party/rust_crates/vendor:tokio",
        ],
    }),
)
