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

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

rust_library {
    name: "libnum_integer",
    host_supported: true,
    crate_name: "num_integer",
    cargo_env_compat: true,
    cargo_pkg_version: "0.1.46",
    crate_root: "src/lib.rs",
    edition: "2018",
    features: [
        "default",
        "std",
    ],
    rustlibs: ["libnum_traits"],
    apex_available: [
        "//apex_available:platform",
        "com.android.virt",
    ],
    product_available: true,
    vendor_available: true,
}

rust_test {
    name: "num-integer_test_src_lib",
    host_supported: true,
    crate_name: "num_integer",
    cargo_env_compat: true,
    cargo_pkg_version: "0.1.46",
    crate_root: "src/lib.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    features: [
        "default",
        "std",
    ],
    rustlibs: ["libnum_traits"],
}

rust_test {
    name: "num-integer_test_tests_average",
    host_supported: true,
    crate_name: "average",
    cargo_env_compat: true,
    cargo_pkg_version: "0.1.46",
    crate_root: "tests/average.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    features: [
        "default",
        "std",
    ],
    rustlibs: [
        "libnum_integer",
        "libnum_traits",
    ],
}

rust_test {
    name: "num-integer_test_tests_roots",
    host_supported: true,
    crate_name: "roots",
    cargo_env_compat: true,
    cargo_pkg_version: "0.1.46",
    crate_root: "tests/roots.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    features: [
        "default",
        "std",
    ],
    rustlibs: [
        "libnum_integer",
        "libnum_traits",
    ],
}

dirgroup {
    name: "trusty_dirgroup_external_rust_crates_num-integer",
    visibility: ["//trusty/vendor/google/aosp/scripts"],
    dirs: ["."],
}
