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

rustc_library("core") {
  name = "dhcpv6_core"
  edition = "2021"
  with_unit_tests = true
  deps = [
    "//src/connectivity/lib/net-types",
    "//src/connectivity/lib/packet-formats-dhcp",
    "//src/lib/network/packet",
    "//third_party/rust_crates:arrayvec",
    "//third_party/rust_crates:assert_matches",
    "//third_party/rust_crates:derivative",
    "//third_party/rust_crates:either",
    "//third_party/rust_crates:num",
    "//third_party/rust_crates:rand",
    "//third_party/rust_crates:thiserror",
    "//third_party/rust_crates:tracing",
    "//third_party/rust_crates:zerocopy",
  ]
  test_deps = [
    "//src/connectivity/lib/net-declare",
    "//src/lib/const-unwrap",
    "//third_party/rust_crates:test-case",
  ]

  sources = [
    "src/client.rs",
    "src/lib.rs",
  ]

  configs -= [ "//build/config/rust/lints:allow_unused_results" ]
}

fuchsia_unittest_package("dhcpv6-core-test") {
  deps = [ ":core_test" ]
}

group("tests") {
  testonly = true
  deps = [
    ":core_test($host_toolchain)",
    ":dhcpv6-core-test",
  ]
}
