# 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_library.gni")

rustc_library("clonable_error") {
  with_unit_tests = true

  visibility = [
    ":*",
    ":tests",
    "//src/fonts:*",
    "//src/fonts/manifest:*",
    "//src/sys/component_manager:*",
    "//src/sys/component_manager/lib/*",
    "//src/sys/lib/component_id_index:*",
    "//src/sys/lib/elf_runner:*",
    "//src/sys/lib/routing:*",
  ]

  edition = "2021"

  deps = [
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:thiserror",
  ]

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

fuchsia_unittest_package("clonable_error_tests") {
  deps = [ ":clonable_error_test" ]
}

group("tests") {
  testonly = true
  public_deps = [ ":clonable_error_tests" ]
}
