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

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

rust_library {
    name: "libryu",
    host_supported: true,
    crate_name: "ryu",
    cargo_env_compat: true,
    cargo_pkg_version: "1.0.20",
    crate_root: "src/lib.rs",
    edition: "2018",
    apex_available: [
        "//apex_available:platform",
        "com.android.uprobestats",
        "com.android.virt",
    ],
    product_available: true,
    vendor_available: true,
    min_sdk_version: "29",
}

rust_test {
    name: "ryu_test_tests_common_test",
    host_supported: true,
    crate_name: "common_test",
    cargo_env_compat: true,
    cargo_pkg_version: "1.0.20",
    crate_root: "tests/common_test.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    rustlibs: [
        "libnum_cpus",
        "librand-0.8",
        "librand_xorshift-0.3",
        "libryu",
    ],
}

rust_test {
    name: "ryu_test_tests_d2s_intrinsics_test",
    host_supported: true,
    crate_name: "d2s_intrinsics_test",
    cargo_env_compat: true,
    cargo_pkg_version: "1.0.20",
    crate_root: "tests/d2s_intrinsics_test.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    rustlibs: [
        "libnum_cpus",
        "librand-0.8",
        "librand_xorshift-0.3",
        "libryu",
    ],
}

rust_test {
    name: "ryu_test_tests_d2s_table_test",
    host_supported: true,
    crate_name: "d2s_table_test",
    cargo_env_compat: true,
    cargo_pkg_version: "1.0.20",
    crate_root: "tests/d2s_table_test.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    rustlibs: [
        "libnum_cpus",
        "librand-0.8",
        "librand_xorshift-0.3",
        "libryu",
    ],
}

rust_test {
    name: "ryu_test_tests_d2s_test",
    host_supported: true,
    crate_name: "d2s_test",
    cargo_env_compat: true,
    cargo_pkg_version: "1.0.20",
    crate_root: "tests/d2s_test.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    rustlibs: [
        "libnum_cpus",
        "librand-0.8",
        "librand_xorshift-0.3",
        "libryu",
    ],
}

rust_test {
    name: "ryu_test_tests_exhaustive",
    host_supported: true,
    crate_name: "exhaustive",
    cargo_env_compat: true,
    cargo_pkg_version: "1.0.20",
    crate_root: "tests/exhaustive.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    rustlibs: [
        "libnum_cpus",
        "librand-0.8",
        "librand_xorshift-0.3",
        "libryu",
    ],
}

rust_test {
    name: "ryu_test_tests_f2s_test",
    host_supported: true,
    crate_name: "f2s_test",
    cargo_env_compat: true,
    cargo_pkg_version: "1.0.20",
    crate_root: "tests/f2s_test.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    rustlibs: [
        "libnum_cpus",
        "librand-0.8",
        "librand_xorshift-0.3",
        "libryu",
    ],
}

rust_test {
    name: "ryu_test_tests_s2d_test",
    host_supported: true,
    crate_name: "s2d_test",
    cargo_env_compat: true,
    cargo_pkg_version: "1.0.20",
    crate_root: "tests/s2d_test.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    rustlibs: [
        "libnum_cpus",
        "librand-0.8",
        "librand_xorshift-0.3",
        "libryu",
    ],
}

rust_test {
    name: "ryu_test_tests_s2f_test",
    host_supported: true,
    crate_name: "s2f_test",
    cargo_env_compat: true,
    cargo_pkg_version: "1.0.20",
    crate_root: "tests/s2f_test.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    rustlibs: [
        "libnum_cpus",
        "librand-0.8",
        "librand_xorshift-0.3",
        "libryu",
    ],
}
