# 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/rust/rustc_test.gni")

rustc_library("lib") {
  name = "usb_bulk"
  edition = "2021"
  with_unit_tests = true

  deps = [
    "//src/lib/fuchsia-async",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:lazy_static",
    "//third_party/rust_crates:thiserror",
    "//third_party/rust_crates:tracing",
  ]
  non_rust_deps = [ "//src/lib/usb_bulk/cpp:usb_bulk" ]

  # The tests require a zedmon device attached to the host, and should not run
  # in the infrastructure currently.
  test_environments = []

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

group("tests") {
  public_deps = [ ":lib_test($host_toolchain)" ]
  testonly = true
}
