# 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.

# DO NOT EDIT. THIS FILE IS GENERATED BY CARGO GNAW. EDIT THE CARGO TOML FILE

group("cargo_features") {
  public_deps = [ ":cargo_features-v0_1_0" ]
}

rust_library("cargo_features-v0_1_0") {
  crate_name = "cargo_features"
  crate_root = "//cargo_features/src/lib.rs"
  output_name = "cargo_features-4775242031656858"

  deps = []
  deps += [ ":sub-crate-with-feature-v0_1_0" ]

  rustenv = []

  rustflags = [
    "--cap-lints=allow",
    "--edition=2021",
    "-Cmetadata=4775242031656858",
    "-Cextra-filename=-4775242031656858",
  ]

  visibility = [ ":*" ]
}

rust_library("sub-crate-with-feature-v0_1_0") {
  crate_name = "sub_crate_with_feature"
  crate_root = "//cargo_features/sub-crate-with-feature/src/lib.rs"
  output_name = "sub_crate_with_feature-2daa1749812a946a"

  deps = []

  rustenv = []

  rustflags = [
    "--cap-lints=allow",
    "--edition=2021",
    "-Cmetadata=2daa1749812a946a",
    "-Cextra-filename=-2daa1749812a946a",
  ]

  visibility = [ ":*" ]
}
