# 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("//src/sys/build/components.gni")

rustc_library("component_id_index") {
  with_unit_tests = true
  edition = "2018"

  deps = [
    "//sdk/fidl/fuchsia.component:fuchsia.component-rustc",
    "//sdk/fidl/fuchsia.component.internal:fuchsia.component.internal-rustc",
    "//src/sys/lib/moniker",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:rand",
    "//third_party/rust_crates:serde",
    "//third_party/rust_crates:thiserror",
  ]

  test_deps = [
    "//third_party/rust_crates:proptest",
    "//third_party/rust_crates:serde_json",
  ]

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

fuchsia_unittest_package("component-id-index-tests") {
  manifest = "meta/component-id-index-tests.cmx"
  deps = [ ":component_id_index_test" ]
  test_specs = {
  }
}

group("tests") {
  testonly = true

  deps = [ ":component-id-index-tests" ]
}
