# Copyright 2018 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/package.gni")
import("//build/rust/rustc_library.gni")
import("//build/test/test_package.gni")
import("//build/testing/environments.gni")

rustc_library("escaped-cstring") {
  name = "escaped-cstring"
  version = "0.1.0"
  edition = "2018"
  with_unit_tests = true

  deps = [
    "//third_party/rust_crates:memchr",
    "//third_party/rust_crates:smallvec",
  ]
}

test_package("escaped-cstring-tests") {
  deps = [
    ":escaped-cstring_test",
  ]

  tests = [
    {
      name = "escaped_cstring_lib_test"
      environments = basic_envs
    },
  ]
}
