// This file is generated by cargo_embargo.
// Do not modify this file because the changes will be overridden on upgrade.

package {
    default_applicable_licenses: ["external_rust_crates_hashbrown_license"],
    default_team: "trendy_team_android_rust",
}

license {
    name: "external_rust_crates_hashbrown_license",
    visibility: [":__subpackages__"],
    license_kinds: ["SPDX-license-identifier-Apache-2.0"],
    license_text: ["LICENSE"],
}

rust_test {
    name: "hashbrown_test_src_lib",
    host_supported: true,
    crate_name: "hashbrown",
    cargo_env_compat: true,
    cargo_pkg_version: "0.12.3",
    crate_root: "src/lib.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2021",
    features: [
        "ahash",
        "default",
        "inline-more",
        "raw",
    ],
    rustlibs: [
        "libahash",
        "libfnv",
        "liblazy_static",
        "librand",
        "librayon",
        "libserde_test",
    ],
}

rust_test {
    name: "hashbrown_test_tests_hasher",
    host_supported: true,
    crate_name: "hasher",
    cargo_env_compat: true,
    cargo_pkg_version: "0.12.3",
    crate_root: "tests/hasher.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2021",
    features: [
        "ahash",
        "default",
        "inline-more",
        "raw",
    ],
    rustlibs: [
        "libahash",
        "libfnv",
        "libhashbrown",
        "liblazy_static",
        "librand",
        "librayon",
        "libserde_test",
    ],
}

rust_test {
    name: "hashbrown_test_tests_set",
    host_supported: true,
    crate_name: "set",
    cargo_env_compat: true,
    cargo_pkg_version: "0.12.3",
    crate_root: "tests/set.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2021",
    features: [
        "ahash",
        "default",
        "inline-more",
        "raw",
    ],
    rustlibs: [
        "libahash",
        "libfnv",
        "libhashbrown",
        "liblazy_static",
        "librand",
        "librayon",
        "libserde_test",
    ],
}

rust_library {
    name: "libhashbrown",
    host_supported: true,
    crate_name: "hashbrown",
    cargo_env_compat: true,
    cargo_pkg_version: "0.12.3",
    crate_root: "src/lib.rs",
    edition: "2021",
    features: [
        "ahash",
        "default",
        "inline-more",
        "raw",
    ],
    rustlibs: ["libahash"],
    apex_available: [
        "//apex_available:platform",
        "//apex_available:anyapex",
    ],
    product_available: true,
    vendor_available: true,
    min_sdk_version: "29",
}
