# Copyright 2019 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.

import("//build/components.gni")
import("//build/rust/rustc_library.gni")
import("//build/rust/rustc_test.gni")

group("tests") {
  testonly = true

  deps = [ ":mpmc_tests" ]
}

rustc_library("mpmc") {
  name = "mpmc"
  edition = "2021"
  deps = [
    "//third_party/rust_crates:crossbeam",
    "//third_party/rust_crates:futures",
  ]

  sources = [ "src/lib.rs" ]
}

rustc_test("mpmc_lib_test") {
  edition = "2021"
  source_root = "src/test.rs"
  deps = [
    ":mpmc",
    "//src/lib/fuchsia-async",
    "//third_party/rust_crates:futures",
  ]

  sources = [ "src/test.rs" ]
}

fuchsia_unittest_package("mpmc_tests") {
  deps = [ ":mpmc_lib_test" ]
}
