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

license {
    name: "external_rust_crates_protobuf-parse_license",
    visibility: [":__subpackages__"],
    license_kinds: ["SPDX-license-identifier-MIT"],
    license_text: ["LICENSE"],
}

rust_library {
    name: "libprotobuf_parse",
    host_supported: true,
    crate_name: "protobuf_parse",
    cargo_env_compat: true,
    cargo_pkg_version: "3.2.0",
    crate_root: "src/lib.rs",
    edition: "2021",
    rustlibs: [
        "libanyhow",
        "libindexmap",
        "liblog_rust",
        "libprotobuf",
        "libprotobuf_support",
        "libtempfile",
        "libthiserror",
        "libwhich",
    ],
    apex_available: [
        "//apex_available:platform",
        "//apex_available:anyapex",
    ],
    product_available: true,
    vendor_available: true,
}

rust_binary {
    name: "parse_and_typecheck",
    host_supported: true,
    crate_name: "parse_and_typecheck",
    cargo_env_compat: true,
    cargo_pkg_version: "3.2.0",
    crate_root: "src/bin/parse-and-typecheck.rs",
    edition: "2021",
    rustlibs: [
        "libanyhow",
        "libindexmap",
        "liblog_rust",
        "libprotobuf",
        "libprotobuf_parse",
        "libprotobuf_support",
        "libtempfile",
        "libthiserror",
        "libwhich",
    ],
    product_available: true,
    vendor_available: true,
}
