# Copyright 2019 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_binary.gni")

rustc_binary("bin") {
  name = "inspect_validator_rust_puppet"
  edition = "2021"
  testonly = true

  deps = [
    "//sdk/fidl/fuchsia.inspect:fuchsia.inspect_rust",
    "//src/diagnostics/validator/inspect/fidl:validate_rust",
    "//src/lib/diagnostics/inspect/runtime/rust",
    "//src/lib/diagnostics/inspect/rust",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:tracing",
  ]

  sources = [ "src/main.rs" ]
}

fuchsia_component("inspect-validator-rust-puppet") {
  # `component_name` must be "puppet" so `children: url: "#meta/puppet.cm"` in
  # //src/diagnostics/validator/inspect/meta/validator.shard.cml can find it.
  component_name = "puppet"
  testonly = true
  manifest = "meta/inspect-validator-rust-puppet.cml"
  deps = [ ":bin" ]
}

fuchsia_package("rust") {
  testonly = true
  package_name = "rust-puppet"
  deps = [ ":inspect-validator-rust-puppet" ]
}
