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

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

rust_test {
    name: "crc_test_src_lib",
    host_supported: true,
    crate_name: "crc",
    cargo_env_compat: true,
    cargo_pkg_version: "3.2.1",
    crate_root: "src/lib.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2021",
    rustlibs: [
        "libcrc_catalog",
        "libcriterion",
    ],
}

rust_test {
    name: "crc_test_tests_crc",
    host_supported: true,
    crate_name: "crc",
    cargo_env_compat: true,
    cargo_pkg_version: "3.2.1",
    crate_root: "tests/crc.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2021",
    rustlibs: [
        "libcrc",
        "libcrc_catalog",
        "libcriterion",
    ],
}

rust_library {
    name: "libcrc",
    host_supported: true,
    crate_name: "crc",
    cargo_env_compat: true,
    cargo_pkg_version: "3.2.1",
    crate_root: "src/lib.rs",
    edition: "2021",
    rustlibs: ["libcrc_catalog"],
    apex_available: [
        "//apex_available:platform",
        "//apex_available:anyapex",
    ],
    product_available: true,
    vendor_available: true,
}
