# 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/rust/rustc_library.gni")
import("//src/sys/build/components.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:*",
  ]

  edition = "2018"

  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" ]
}
