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

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

rust_library {
    name: "libnum_complex",
    host_supported: true,
    crate_name: "num_complex",
    cargo_env_compat: true,
    cargo_pkg_version: "0.4.6",
    crate_root: "src/lib.rs",
    edition: "2021",
    features: [
        "default",
        "std",
    ],
    rustlibs: ["libnum_traits"],
    apex_available: [
        "//apex_available:platform",
        "//apex_available:anyapex",
    ],
    product_available: true,
    vendor_available: true,
    min_sdk_version: "29",
}

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