# Copyright 2020 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/rust/rustc_library.gni")
import("//build/test/test_package.gni")
import("//build/testing/environments.gni")

rustc_library("async-generator") {
  with_unit_tests = true
  edition = "2018"

  deps = [
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:pin-project",
  ]

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

unittest_package("async-generator-tests") {
  deps = [ ":async-generator_test" ]
  tests = [
    {
      name = "async_generator_lib_test"
      dest = "async-generator-test"
      environments = basic_envs
    },
  ]
}

group("tests") {
  testonly = true
  public_deps = [ ":async-generator-tests" ]
}
