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

rustc_library("cm_moniker") {
  with_unit_tests = true
  edition = "2021"

  # Moniker types defined in this library are restricted to component_manager.
  # Please use Moniker types included in //src/sys/lib/moniker for development.
  visibility = [
    "//src/sys/component_manager/*",
    "//src/sys/lib/cm_moniker/*",

    # TODO(fxbug.dev/92611): Have StorageAdminRequest pass a non-InstancedRelativeMoniker.
    "//src/sys/lib/routing/*",
    "//src/sys/test_manager/*",
    "//tools/lib/cm_fidl_analyzer/*",
  ]

  deps = [
    "//src/sys/lib/cm_types",
    "//src/sys/lib/moniker",
  ]

  test_deps = [ "//third_party/rust_crates:anyhow" ]

  sources = [
    "src//lib.rs",
    "src/instanced_abs_moniker.rs",
    "src/instanced_child_moniker.rs",
    "src/instanced_extended_moniker.rs",
    "src/instanced_relative_moniker.rs",
  ]
}

fuchsia_unittest_package("tests") {
  deps = [ ":cm_moniker_test" ]
}
