// This file is generated by cargo_embargo.
// Do not modify this file after the first "rust_*" or "genrule" module
// because the changes will be overridden on upgrade.
// Content before the first "rust_*" or "genrule" module is preserved.

package {
    default_applicable_licenses: ["external_rust_crates_bytes_license"],
}

// Added automatically by a large-scale-change
// See: http://go/android-license-faq
license {
    name: "external_rust_crates_bytes_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-MIT",
    ],
    license_text: [
        "LICENSE",
    ],
}

rust_test {
    name: "bytes_test_tests_test_buf",
    host_supported: true,
    crate_name: "test_buf",
    cargo_env_compat: true,
    cargo_pkg_version: "1.5.0",
    crate_root: "tests/test_buf.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    features: [
        "default",
        "serde",
        "std",
    ],
    rustlibs: [
        "libbytes",
        "libserde",
        "libserde_test",
    ],
}

rust_test {
    name: "bytes_test_tests_test_buf_mut",
    host_supported: true,
    crate_name: "test_buf_mut",
    cargo_env_compat: true,
    cargo_pkg_version: "1.5.0",
    crate_root: "tests/test_buf_mut.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    features: [
        "default",
        "serde",
        "std",
    ],
    rustlibs: [
        "libbytes",
        "libserde",
        "libserde_test",
    ],
}

rust_test {
    name: "bytes_test_tests_test_bytes",
    host_supported: true,
    crate_name: "test_bytes",
    cargo_env_compat: true,
    cargo_pkg_version: "1.5.0",
    crate_root: "tests/test_bytes.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    features: [
        "default",
        "serde",
        "std",
    ],
    rustlibs: [
        "libbytes",
        "libserde",
        "libserde_test",
    ],
}

rust_test {
    name: "bytes_test_tests_test_bytes_odd_alloc",
    host_supported: true,
    crate_name: "test_bytes_odd_alloc",
    cargo_env_compat: true,
    cargo_pkg_version: "1.5.0",
    crate_root: "tests/test_bytes_odd_alloc.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    features: [
        "default",
        "serde",
        "std",
    ],
    rustlibs: [
        "libbytes",
        "libserde",
        "libserde_test",
    ],
}

rust_test {
    name: "bytes_test_tests_test_bytes_vec_alloc",
    host_supported: true,
    crate_name: "test_bytes_vec_alloc",
    cargo_env_compat: true,
    cargo_pkg_version: "1.5.0",
    crate_root: "tests/test_bytes_vec_alloc.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    features: [
        "default",
        "serde",
        "std",
    ],
    rustlibs: [
        "libbytes",
        "libserde",
        "libserde_test",
    ],
}

rust_test {
    name: "bytes_test_tests_test_chain",
    host_supported: true,
    crate_name: "test_chain",
    cargo_env_compat: true,
    cargo_pkg_version: "1.5.0",
    crate_root: "tests/test_chain.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    features: [
        "default",
        "serde",
        "std",
    ],
    rustlibs: [
        "libbytes",
        "libserde",
        "libserde_test",
    ],
}

rust_test {
    name: "bytes_test_tests_test_debug",
    host_supported: true,
    crate_name: "test_debug",
    cargo_env_compat: true,
    cargo_pkg_version: "1.5.0",
    crate_root: "tests/test_debug.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    features: [
        "default",
        "serde",
        "std",
    ],
    rustlibs: [
        "libbytes",
        "libserde",
        "libserde_test",
    ],
}

rust_test {
    name: "bytes_test_tests_test_iter",
    host_supported: true,
    crate_name: "test_iter",
    cargo_env_compat: true,
    cargo_pkg_version: "1.5.0",
    crate_root: "tests/test_iter.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    features: [
        "default",
        "serde",
        "std",
    ],
    rustlibs: [
        "libbytes",
        "libserde",
        "libserde_test",
    ],
}

rust_test {
    name: "bytes_test_tests_test_reader",
    host_supported: true,
    crate_name: "test_reader",
    cargo_env_compat: true,
    cargo_pkg_version: "1.5.0",
    crate_root: "tests/test_reader.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    features: [
        "default",
        "serde",
        "std",
    ],
    rustlibs: [
        "libbytes",
        "libserde",
        "libserde_test",
    ],
}

rust_test {
    name: "bytes_test_tests_test_serde",
    host_supported: true,
    crate_name: "test_serde",
    cargo_env_compat: true,
    cargo_pkg_version: "1.5.0",
    crate_root: "tests/test_serde.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    features: [
        "default",
        "serde",
        "std",
    ],
    rustlibs: [
        "libbytes",
        "libserde",
        "libserde_test",
    ],
}

rust_test {
    name: "bytes_test_tests_test_take",
    host_supported: true,
    crate_name: "test_take",
    cargo_env_compat: true,
    cargo_pkg_version: "1.5.0",
    crate_root: "tests/test_take.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    features: [
        "default",
        "serde",
        "std",
    ],
    rustlibs: [
        "libbytes",
        "libserde",
        "libserde_test",
    ],
}

rust_library {
    name: "libbytes",
    host_supported: true,
    crate_name: "bytes",
    cargo_env_compat: true,
    cargo_pkg_version: "1.5.0",
    crate_root: "src/lib.rs",
    edition: "2018",
    features: [
        "default",
        "serde",
        "std",
    ],
    rustlibs: ["libserde"],
    apex_available: [
        "//apex_available:platform",
        "//apex_available:anyapex",
    ],
    product_available: true,
    vendor_available: true,
    min_sdk_version: "29",
}
