// 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_dashmap_license"],
    default_team: "trendy_team_android_rust",
}

license {
    name: "external_rust_crates_dashmap_license",
    visibility: [":__subpackages__"],
    license_kinds: ["SPDX-license-identifier-MIT"],
    license_text: ["LICENSE"],
}

rust_test {
    name: "dashmap_test_src_lib",
    host_supported: true,
    crate_name: "dashmap",
    cargo_env_compat: true,
    cargo_pkg_version: "5.5.3",
    crate_root: "src/lib.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    rustlibs: [
        "libcfg_if",
        "libhashbrown",
        "liblock_api",
        "libonce_cell",
        "libparking_lot_core",
    ],
}

rust_library {
    name: "libdashmap",
    host_supported: true,
    crate_name: "dashmap",
    cargo_env_compat: true,
    cargo_pkg_version: "5.5.3",
    crate_root: "src/lib.rs",
    edition: "2018",
    rustlibs: [
        "libcfg_if",
        "libhashbrown",
        "liblock_api",
        "libonce_cell",
        "libparking_lot_core",
    ],
    apex_available: [
        "//apex_available:platform",
        "//apex_available:anyapex",
    ],
    product_available: true,
    vendor_available: true,
}
