# 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/components.gni")
import("//build/rust/rustc_library.gni")

rustc_library("sampler-config") {
  edition = "2021"
  with_unit_tests = true

  visibility = [
    "//src/connectivity/network/tests/integration/inspect/*",
    "//src/diagnostics/lib/sampler-config/*",
    "//src/diagnostics/sampler/*",
    "//src/lib/assembly/platform_configuration/*",
  ]

  deps = [
    "//sdk/fidl/fuchsia.diagnostics:fuchsia.diagnostics_rust",
    "//src/lib/diagnostics/inspect/rust",
    "//src/lib/diagnostics/selectors",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:glob",
    "//third_party/rust_crates:lazy_static",
    "//third_party/rust_crates:serde",
    "//third_party/rust_crates:serde_json5",
  ]

  test_deps = [
    "//src/lib/fuchsia",
    "//src/lib/fuchsia",
    "//third_party/rust_crates:tempfile",
  ]

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

fuchsia_unittest_package("sampler-config-tests") {
  manifest = "meta/test.cml"
  deps = [ ":sampler-config_test" ]
}

group("tests") {
  testonly = true
  deps = [ ":sampler-config-tests" ]
}
