# 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

  # Please do not add new usages of ClonableError
  # Please ask bwb@ or geb@ for context before adding
  # to this list.
  visibility = [
    ":*",
    ":tests",
    "//src/fonts:*",
    "//src/fonts/manifest:*",
    "//src/sys/component_manager:*",
    "//src/sys/component_manager/lib/*",
    "//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" ]
}
