# 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")

group("fable") {
  testonly = true
  deps = [
    ":fable-lib",
    ":tests",
  ]
}

rustc_library("fable-lib") {
  edition = "2021"
  with_unit_tests = true
  sources = [ "src/lib.rs" ]
  test_deps = [ "//sdk/fidl/fuchsia.intl:fuchsia.intl_rust" ]
}

fuchsia_unittest_package("fable-lib-unit-tests") {
  deps = [ ":fable-lib_test" ]
}

group("tests") {
  testonly = true
  deps = [ ":fable-lib-unit-tests" ]
}
