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

# Library for working with collections of Unicode code points.
rustc_library("char_set") {
  edition = "2018"
  with_unit_tests = true

  deps = [
    "//src/lib/intl/unicode_utils/char_collection",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:thiserror",
  ]

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

fuchsia_component("char_set_tests_cmp") {
  testonly = true
  manifest = "meta/char_set_lib_test.cmx"
  component_name = "char_set_lib_test"
  deps = [ ":char_set_test" ]
}

fuchsia_test_package("char_set_tests") {
  test_components = [ ":char_set_tests_cmp" ]
}

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