# Copyright 2022 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("async-gunzip") {
  with_unit_tests = true
  edition = "2021"

  deps = [
    "//src/sys/pkg/lib/async-generator",
    "//third_party/rust_crates:bitflags",
    "//third_party/rust_crates:bytes",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:miniz_oxide",
    "//third_party/rust_crates:pin-project",
    "//third_party/rust_crates:thiserror",
  ]

  test_deps = [
    "//third_party/rust_crates:flate2",
    "//third_party/rust_crates:rand",
    "//third_party/rust_crates:rand_xorshift",
  ]

  sources = [
    "src/asyncbufread_to_stream.rs",
    "src/asyncbufread_to_stream/flags.rs",
    "src/errors.rs",
    "src/lib.rs",
  ]
}

fuchsia_unittest_package("async-gunzip-tests") {
  deps = [ ":async-gunzip_test" ]
}

group("tests") {
  testonly = true
  public_deps = [ ":async-gunzip-tests" ]
}
