# Copyright 2024 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")

rustc_library("rust") {
  name = "fdf_component"
  version = "0.1.0"
  edition = "2024"
  with_unit_tests = true

  configs += [ "//build/config/rust/lints:clippy_warn_all" ]

  deps = [
    "//sdk/fidl/fuchsia.component.decl:fuchsia.component.decl_rust",
    "//sdk/fidl/fuchsia.driver.framework:fuchsia.driver.framework_rust",
    "//sdk/fidl/fuchsia.io:fuchsia.io_rust",
    "//sdk/lib/driver/runtime/rust",
    "//sdk/lib/driver/runtime/rust/fdf_sys",
    "//sdk/lib/driver/runtime/rust/fidl",
    "//sdk/rust/zx",
    "//src/lib/diagnostics/inspect/runtime/rust",
    "//src/lib/diagnostics/inspect/rust",
    "//src/lib/diagnostics/log/rust",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fidl/rust_next/fidl_next",
    "//src/lib/fidl/rust_next/fidl_next_bind",
    "//src/lib/fidl/rust_next/fidl_next_protocol",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/fuchsia-component/config",
    "//src/sys/lib/cm_types",
    "//src/sys/lib/namespace",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:log",
  ]

  test_deps = [
    "//sdk/fidl/fuchsia.driver.framework:fuchsia.driver.framework_rust_next",
    "//sdk/fidl/fuchsia.hardware.i2c:fuchsia.hardware.i2c_rust",
    "//sdk/fidl/fuchsia.hwinfo:fuchsia.hwinfo_rust",
    "//sdk/lib/driver/runtime/rust/env",
    "//sdk/lib/driver/runtime/rust/fidl",
    "//src/lib/fidl/rust_next/fidl_next",
    "//src/lib/fuchsia",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
  ]

  sources = [
    "src/context.rs",
    "src/incoming.rs",
    "src/lib.rs",
    "src/macros.rs",
    "src/node.rs",
    "src/node/offers.rs",
    "src/node/properties.rs",
    "src/server.rs",
  ]
}

fuchsia_unittest_package("fdf_rust_component_tests") {
  deps = [ ":rust_test" ]
}

group("tests") {
  testonly = true
  deps = [ ":fdf_rust_component_tests" ]
}
