# 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("offset_string") {
  edition = "2018"
  with_unit_tests = true

  deps = [
    "//src/fonts/char_set",
    "//src/lib/intl/unicode_utils/char_collection",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:serde",
    "//third_party/rust_crates:serde_json",
    "//third_party/rust_crates:thiserror",
    "//third_party/rust_crates:unic-char-range",
  ]

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

fuchsia_component("offset_string_tests_cmp") {
  testonly = true
  manifest = "meta/offset_string_lib_test.cmx"
  component_name = "offset_string_lib_test"
  deps = [ ":offset_string_test" ]
}

fuchsia_test_package("offset_string_tests") {
  test_components = [ ":offset_string_tests_cmp" ]
}

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