Migrate pdl-compiler to monorepo.

Bug: http://b/339424309
Test: treehugger
Change-Id: Iefb5f16611afc2e8672a137a114f026b9576d9fa
diff --git a/Android.bp b/Android.bp
index ce5e80e..96beb97 100644
--- a/Android.bp
+++ b/Android.bp
@@ -1,548 +1 @@
-// 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_pdl-compiler_license"],
-    default_team: "trendy_team_android_rust",
-}
-
-license {
-    name: "external_rust_crates_pdl-compiler_license",
-    visibility: [":__subpackages__"],
-    license_kinds: ["SPDX-license-identifier-Apache-2.0"],
-    license_text: ["LICENSE"],
-}
-
-rust_library_host {
-    name: "libpdl_compiler",
-    host_cross_supported: false,
-    crate_name: "pdl_compiler",
-    cargo_env_compat: true,
-    cargo_pkg_version: "0.3.1",
-    crate_root: "src/lib.rs",
-    edition: "2021",
-    features: [
-        "default",
-        "serde",
-    ],
-    rustlibs: [
-        "libargh",
-        "libcodespan_reporting",
-        "libheck",
-        "libpest",
-        "libprettyplease",
-        "libproc_macro2",
-        "libquote",
-        "libserde",
-        "libserde_json",
-        "libsyn",
-    ],
-    proc_macros: ["libpest_derive"],
-    compile_multilib: "first",
-}
-
-rust_binary_host {
-    name: "pdlc",
-    host_cross_supported: false,
-    crate_name: "pdlc",
-    cargo_env_compat: true,
-    cargo_pkg_version: "0.3.1",
-    crate_root: "src/main.rs",
-    edition: "2021",
-    features: [
-        "default",
-        "serde",
-    ],
-    rustlibs: [
-        "libargh",
-        "libcodespan_reporting",
-        "libheck",
-        "libpdl_compiler",
-        "libpest",
-        "libprettyplease",
-        "libproc_macro2",
-        "libquote",
-        "libserde",
-        "libserde_json",
-        "libsyn",
-    ],
-    proc_macros: ["libpest_derive"],
-    compile_multilib: "first",
-}
-
-// Defaults for rust backend generation.
-genrule_defaults {
-    name: "pdl_rust_generator_defaults",
-    cmd: "$(location :pdlc) --output-format rust $(in) > $(out)",
-    tools: [":pdlc"],
-    defaults_visibility: [
-        "//system/nfc:__subpackages__",
-        "//external/rust/pica",
-        "//external/uwb/src",
-        "//packages/modules/Bluetooth:__subpackages__",
-        "//tools/netsim:__subpackages__",
-    ],
-}
-
-// Defaults for legacy rust backend generation.
-genrule_defaults {
-    name: "pdl_rust_legacy_generator_defaults",
-    cmd: "$(location :pdlc) --output-format rust_legacy $(in) > $(out)",
-    tools: [":pdlc"],
-    defaults_visibility: [
-        "//system/nfc:__subpackages__",
-        "//external/rust/pica",
-        "//external/uwb/src",
-        "//packages/modules/Bluetooth:__subpackages__",
-        "//tools/netsim:__subpackages__",
-    ],
-}
-
-// Defaults for rust_noalloc backend generation.
-genrule_defaults {
-    name: "pdl_rust_noalloc_generator_defaults",
-    cmd: "$(location :pdlc) --output-format rust_no_alloc $(in) > $(out)",
-    tools: [":pdlc"],
-}
-
-// Defaults for PDL python backend generation.
-genrule_defaults {
-    name: "pdl_python_generator_defaults",
-    tools: [
-        ":pdlc",
-        ":pdl_python_generator",
-    ],
-}
-
-// Defaults for PDL C++ backend generation.
-genrule_defaults {
-    name: "pdl_cxx_generator_defaults",
-    tools: [
-        ":pdlc",
-        ":pdl_cxx_generator",
-    ],
-}
-
-filegroup {
-    name: "pdl_generated_files",
-    srcs: [
-        "tests/generated/rust/**/*.rs",
-    ],
-}
-
-rust_test_host {
-    name: "pdl_tests",
-    host_cross_supported: false,
-    srcs: ["src/main.rs"],
-    rustlibs: [
-        "libargh",
-        "libcodespan_reporting",
-        "libheck",
-        "libpdl_compiler",
-        "libpest",
-        "libprettyplease",
-        "libproc_macro2",
-        "libquote",
-        "libserde",
-        "libserde_json",
-        "libsyn",
-        "libtempfile",
-    ],
-    proc_macros: [
-        "libpest_derive",
-        "libpaste",
-    ],
-    test_suites: ["general-tests"],
-    data: [
-        ":pdl_generated_files",
-    ],
-}
-
-genrule {
-    name: "pdl_generated_files_compile_rs",
-    cmd: "$(location tests/generated_files_compile.sh) $(in) > $(out)",
-    srcs: [":pdl_generated_files"],
-    out: ["generated_files_compile.rs"],
-    tool_files: ["tests/generated_files_compile.sh"],
-}
-
-rust_test_host {
-    name: "pdl_generated_files_compile",
-    srcs: [":pdl_generated_files_compile_rs"],
-    features: ["serde"],
-    rustlibs: [
-        "libbytes",
-        "libserde",
-        "libtempfile",
-        "libpdl_runtime",
-    ],
-    test_suites: ["general-tests"],
-    clippy_lints: "none",
-    lints: "none",
-}
-
-// The generators support more features for LE packets than for BE
-// packets. We use a single input written for LE packets and remove
-// the parts that don't work for BE packets. We do this by removing
-// everything between
-//
-// // Start: little_endian_only
-//
-// and
-//
-// // End: little_endian_only
-//
-// from the LE packet input.
-genrule_defaults {
-    name: "pdl_be_test_file_defaults",
-    cmd: "sed -e 's/little_endian_packets/big_endian_packets/' " +
-        "     -e '/Start: little_endian_only/,/End: little_endian_only/d' " +
-        " < $(in) > $(out)",
-}
-
-genrule {
-    name: "pdl_be_test_file",
-    defaults: ["pdl_be_test_file_defaults"],
-    srcs: ["tests/canonical/le_test_file.pdl"],
-    out: ["be_test_file.pdl"],
-}
-
-genrule {
-    name: "pdl_rust_generator_tests_le_src",
-    cmd: "$(location :pdlc)" +
-        " --output-format rust" +
-        " --exclude-declaration UnsizedCustomField" +
-        " --exclude-declaration Packet_Custom_Field_VariableSize" +
-        " --exclude-declaration Struct_Custom_Field_VariableSize_" +
-        " --exclude-declaration Struct_Custom_Field_VariableSize" +
-        " --exclude-declaration Checksum" +
-        " --exclude-declaration Packet_Checksum_Field_FromStart" +
-        " --exclude-declaration Packet_Checksum_Field_FromEnd" +
-        " --exclude-declaration Struct_Checksum_Field_FromStart_" +
-        " --exclude-declaration Struct_Checksum_Field_FromStart" +
-        " --exclude-declaration Struct_Checksum_Field_FromEnd_" +
-        " --exclude-declaration Struct_Checksum_Field_FromEnd" +
-        " --exclude-declaration PartialParent5" +
-        " --exclude-declaration PartialParent12" +
-        " --exclude-declaration PartialChild5_A" +
-        " --exclude-declaration PartialChild5_B" +
-        " --exclude-declaration PartialChild12_A" +
-        " --exclude-declaration PartialChild12_B" +
-        " --exclude-declaration Packet_Array_Field_UnsizedElement_SizeModifier" +
-        " --exclude-declaration Struct_Array_Field_UnsizedElement_SizeModifier_" +
-        " --exclude-declaration Struct_Array_Field_UnsizedElement_SizeModifier" +
-        " $(location tests/canonical/le_test_file.pdl) > $(out);" +
-        "$(location :pdlc) $(location tests/canonical/le_test_vectors.json) --output-format rust --tests >> $(out)",
-    srcs: [
-        "tests/canonical/le_test_file.pdl",
-        "tests/canonical/le_test_vectors.json",
-    ],
-    out: ["le_canonical.rs"],
-    tools: [":pdlc"],
-}
-
-genrule {
-    name: "pdl_rust_generator_tests_be_src",
-    cmd: "$(location :pdlc)" +
-        " --output-format rust" +
-        " --exclude-declaration UnsizedCustomField" +
-        " --exclude-declaration Packet_Custom_Field_VariableSize" +
-        " --exclude-declaration Struct_Custom_Field_VariableSize_" +
-        " --exclude-declaration Struct_Custom_Field_VariableSize" +
-        " --exclude-declaration Checksum" +
-        " --exclude-declaration Packet_Checksum_Field_FromStart" +
-        " --exclude-declaration Packet_Checksum_Field_FromEnd" +
-        " --exclude-declaration Struct_Checksum_Field_FromStart_" +
-        " --exclude-declaration Struct_Checksum_Field_FromStart" +
-        " --exclude-declaration Struct_Checksum_Field_FromEnd_" +
-        " --exclude-declaration Struct_Checksum_Field_FromEnd" +
-        " --exclude-declaration Packet_Array_Field_UnsizedElement_SizeModifier" +
-        " --exclude-declaration Struct_Array_Field_UnsizedElement_SizeModifier_" +
-        " --exclude-declaration Struct_Array_Field_UnsizedElement_SizeModifier" +
-        " $(location :pdl_be_test_file) > $(out);" +
-        "$(location :pdlc) $(location tests/canonical/be_test_vectors.json) --output-format rust --tests >> $(out)",
-    srcs: [
-        ":pdl_be_test_file",
-        "tests/canonical/be_test_vectors.json",
-    ],
-    out: ["be_canonical.rs"],
-    tools: [":pdlc"],
-}
-
-rust_test_host {
-    name: "pdl_rust_generator_tests_le",
-    srcs: [":pdl_rust_generator_tests_le_src"],
-    test_suites: ["general-tests"],
-    features: ["serde"],
-    rustlibs: [
-        "libbytes",
-        "libnum_traits",
-        "libpdl_runtime",
-        "libserde",
-        "libserde_json",
-    ],
-    clippy_lints: "none",
-    lints: "none",
-}
-
-rust_test_host {
-    name: "pdl_rust_generator_tests_be",
-    srcs: [":pdl_rust_generator_tests_be_src"],
-    test_suites: ["general-tests"],
-    features: ["serde"],
-    rustlibs: [
-        "libbytes",
-        "libnum_traits",
-        "libpdl_runtime",
-        "libserde",
-        "libserde_json",
-    ],
-    clippy_lints: "none",
-    lints: "none",
-}
-
-// Generate the python parser+serializer backend for the
-// little endian test file located at tests/canonical/le_test_file.pdl.
-genrule {
-    name: "pdl_python_generator_le_test_gen",
-    defaults: ["pdl_python_generator_defaults"],
-    cmd: "set -o pipefail;" +
-        " $(location :pdlc) $(in) |" +
-        " $(location :pdl_python_generator)" +
-        " --exclude-declaration Packet_Array_Field_VariableElementSize_ConstantSize" +
-        " --exclude-declaration Packet_Array_Field_VariableElementSize_VariableSize" +
-        " --exclude-declaration Packet_Array_Field_VariableElementSize_VariableCount" +
-        " --exclude-declaration Packet_Array_Field_VariableElementSize_UnknownSize" +
-        " --output $(out) --custom-type-location tests.custom_types",
-    tool_files: [
-        "tests/custom_types.py",
-    ],
-    srcs: [
-        "tests/canonical/le_test_file.pdl",
-    ],
-    out: [
-        "le_backend.py",
-    ],
-}
-
-// Generate the python parser+serializer backend for a big endian test
-// file derived from tests/canonical/le_test_file.pdl.
-genrule {
-    name: "pdl_python_generator_be_test_gen",
-    defaults: ["pdl_python_generator_defaults"],
-    cmd: "set -o pipefail;" +
-        " $(location :pdlc) $(in) |" +
-        " $(location :pdl_python_generator)" +
-        " --exclude-declaration Packet_Array_Field_VariableElementSize_ConstantSize" +
-        " --exclude-declaration Packet_Array_Field_VariableElementSize_VariableSize" +
-        " --exclude-declaration Packet_Array_Field_VariableElementSize_VariableCount" +
-        " --exclude-declaration Packet_Array_Field_VariableElementSize_UnknownSize" +
-        " --output $(out) --custom-type-location tests.custom_types",
-    tool_files: [
-        "tests/custom_types.py",
-    ],
-    srcs: [
-        ":pdl_be_test_file",
-    ],
-    out: [
-        "be_backend.py",
-    ],
-}
-
-// Test the generated python parser+serializer against
-// pre-generated binary inputs.
-python_test_host {
-    name: "pdl_python_generator_test",
-    main: "tests/python_generator_test.py",
-    srcs: [
-        ":pdl_python_generator_be_test_gen",
-        ":pdl_python_generator_le_test_gen",
-        "tests/custom_types.py",
-        "tests/python_generator_test.py",
-    ],
-    data: [
-        "tests/canonical/be_test_vectors.json",
-        "tests/canonical/le_test_vectors.json",
-    ],
-    libs: [
-        "typing_extensions",
-    ],
-    test_options: {
-        unit_test: true,
-    },
-    version: {
-        py3: {
-            embedded_launcher: true,
-        },
-    },
-}
-
-// Generate the rust_noalloc backend srcs against the little-endian test vectors
-genrule {
-    name: "pdl_rust_noalloc_le_test_backend_srcs",
-    defaults: ["pdl_rust_noalloc_generator_defaults"],
-    srcs: ["tests/canonical/le_rust_noalloc_test_file.pdl"],
-    out: ["_packets.rs"],
-}
-
-// Generate the C++ parser+serializer backend for the
-// little endian test file located at tests/canonical/le_test_file.pdl.
-genrule {
-    name: "pdl_cxx_canonical_le_src_gen",
-    defaults: ["pdl_cxx_generator_defaults"],
-    cmd: "set -o pipefail;" +
-        " $(location :pdlc) $(in) |" +
-        " $(location :pdl_cxx_generator)" +
-        " --exclude-declaration Packet_Custom_Field_ConstantSize" +
-        " --exclude-declaration Packet_Custom_Field_VariableSize" +
-        " --exclude-declaration Packet_Checksum_Field_FromStart" +
-        " --exclude-declaration Packet_Checksum_Field_FromEnd" +
-        " --exclude-declaration Struct_Custom_Field_ConstantSize" +
-        " --exclude-declaration Struct_Custom_Field_VariableSize" +
-        " --exclude-declaration Struct_Checksum_Field_FromStart" +
-        " --exclude-declaration Struct_Checksum_Field_FromEnd" +
-        " --exclude-declaration Packet_Array_Field_VariableElementSize_ConstantSize" +
-        " --exclude-declaration Packet_Array_Field_VariableElementSize_VariableSize" +
-        " --exclude-declaration Packet_Array_Field_VariableElementSize_VariableCount" +
-        " --exclude-declaration Packet_Array_Field_VariableElementSize_UnknownSize" +
-        " --exclude-declaration Struct_Custom_Field_ConstantSize_" +
-        " --exclude-declaration Struct_Custom_Field_VariableSize_" +
-        " --exclude-declaration Struct_Checksum_Field_FromStart_" +
-        " --exclude-declaration Struct_Checksum_Field_FromEnd_" +
-        " --exclude-declaration PartialParent5" +
-        " --exclude-declaration PartialChild5_A" +
-        " --exclude-declaration PartialChild5_B" +
-        " --exclude-declaration PartialParent12" +
-        " --exclude-declaration PartialChild12_A" +
-        " --exclude-declaration PartialChild12_B" +
-        " --namespace le_test" +
-        " --output $(out)",
-    srcs: [
-        "tests/canonical/le_test_file.pdl",
-    ],
-    out: [
-        "canonical_le_test_file.h",
-    ],
-}
-
-// Generate the C++ parser+serializer backend tests for the
-// little endian test file located at tests/canonical/le_test_file.pdl.
-genrule {
-    name: "pdl_cxx_canonical_le_test_gen",
-    cmd: "set -o pipefail;" +
-        " inputs=( $(in) ) &&" +
-        " $(location :pdlc) $${inputs[0]} |" +
-        " $(location :pdl_cxx_unittest_generator)" +
-        " --output $(out)" +
-        " --test-vectors $${inputs[1]}" +
-        " --include-header $$(basename $${inputs[2]})" +
-        " --using-namespace le_test" +
-        " --namespace le_test" +
-        " --parser-test-suite LeParserTest" +
-        " --serializer-test-suite LeSerializerTest",
-    tools: [
-        ":pdlc",
-        ":pdl_cxx_unittest_generator",
-    ],
-    srcs: [
-        "tests/canonical/le_test_file.pdl",
-
-        "tests/canonical/le_test_vectors.json",
-
-        ":pdl_cxx_canonical_le_src_gen",
-    ],
-    out: [
-        "canonical_le_test.cc",
-    ],
-}
-
-// Generate the C++ parser+serializer backend for the
-// big endian test file.
-genrule {
-    name: "pdl_cxx_canonical_be_src_gen",
-    defaults: ["pdl_cxx_generator_defaults"],
-    cmd: "set -o pipefail;" +
-        " $(location :pdlc) $(in) |" +
-        " $(location :pdl_cxx_generator)" +
-        " --exclude-declaration Packet_Custom_Field_ConstantSize" +
-        " --exclude-declaration Packet_Custom_Field_VariableSize" +
-        " --exclude-declaration Packet_Checksum_Field_FromStart" +
-        " --exclude-declaration Packet_Checksum_Field_FromEnd" +
-        " --exclude-declaration Struct_Custom_Field_ConstantSize" +
-        " --exclude-declaration Struct_Custom_Field_VariableSize" +
-        " --exclude-declaration Struct_Checksum_Field_FromStart" +
-        " --exclude-declaration Struct_Checksum_Field_FromEnd" +
-        " --exclude-declaration Packet_Array_Field_VariableElementSize_ConstantSize" +
-        " --exclude-declaration Packet_Array_Field_VariableElementSize_VariableSize" +
-        " --exclude-declaration Packet_Array_Field_VariableElementSize_VariableCount" +
-        " --exclude-declaration Packet_Array_Field_VariableElementSize_UnknownSize" +
-        " --exclude-declaration Struct_Custom_Field_ConstantSize_" +
-        " --exclude-declaration Struct_Custom_Field_VariableSize_" +
-        " --exclude-declaration Struct_Checksum_Field_FromStart_" +
-        " --exclude-declaration Struct_Checksum_Field_FromEnd_" +
-        " --exclude-declaration PartialParent5" +
-        " --exclude-declaration PartialChild5_A" +
-        " --exclude-declaration PartialChild5_B" +
-        " --exclude-declaration PartialParent12" +
-        " --exclude-declaration PartialChild12_A" +
-        " --exclude-declaration PartialChild12_B" +
-        " --namespace be_test" +
-        " --output $(out)",
-    srcs: [
-        ":pdl_be_test_file",
-    ],
-    out: [
-        "canonical_be_test_file.h",
-    ],
-}
-
-// Generate the C++ parser+serializer backend tests for the
-// big endian test file.
-genrule {
-    name: "pdl_cxx_canonical_be_test_gen",
-    cmd: "set -o pipefail;" +
-        " inputs=( $(in) ) &&" +
-        " $(location :pdlc) $${inputs[0]} |" +
-        " $(location :pdl_cxx_unittest_generator)" +
-        " --output $(out)" +
-        " --test-vectors $${inputs[1]}" +
-        " --include-header $$(basename $${inputs[2]})" +
-        " --using-namespace be_test" +
-        " --namespace be_test" +
-        " --parser-test-suite BeParserTest" +
-        " --serializer-test-suite BeSerializerTest",
-    tools: [
-        ":pdlc",
-        ":pdl_cxx_unittest_generator",
-    ],
-    srcs: [
-        ":pdl_be_test_file",
-
-        "tests/canonical/be_test_vectors.json",
-
-        ":pdl_cxx_canonical_be_src_gen",
-    ],
-    out: [
-        "canonical_be_test.cc",
-    ],
-}
-
-// Test the generated C++ parser+serializer against
-// pre-generated binary inputs.
-cc_test_host {
-    name: "pdl_cxx_generator_test",
-    local_include_dirs: [
-        "scripts",
-    ],
-    generated_headers: [
-        "pdl_cxx_canonical_be_src_gen",
-        "pdl_cxx_canonical_le_src_gen",
-    ],
-    generated_sources: [
-        "pdl_cxx_canonical_be_test_gen",
-        "pdl_cxx_canonical_le_test_gen",
-    ],
-    static_libs: [
-        "libgtest",
-    ],
-}
+// This crate has been migrated to external/rust/android-crates-io.
diff --git a/cargo2android_toplevel.bp b/cargo2android_toplevel.bp
deleted file mode 100644
index 566e400..0000000
--- a/cargo2android_toplevel.bp
+++ /dev/null
@@ -1,476 +0,0 @@
-// Defaults for rust backend generation.
-genrule_defaults {
-    name: "pdl_rust_generator_defaults",
-    cmd: "$(location :pdlc) --output-format rust $(in) > $(out)",
-    tools: [":pdlc"],
-    defaults_visibility: [
-        "//system/nfc:__subpackages__",
-        "//external/rust/pica",
-        "//external/uwb/src",
-        "//packages/modules/Bluetooth:__subpackages__",
-        "//tools/netsim:__subpackages__",
-    ],
-}
-
-// Defaults for legacy rust backend generation.
-genrule_defaults {
-    name: "pdl_rust_legacy_generator_defaults",
-    cmd: "$(location :pdlc) --output-format rust_legacy $(in) > $(out)",
-    tools: [":pdlc"],
-    defaults_visibility: [
-        "//system/nfc:__subpackages__",
-        "//external/rust/pica",
-        "//external/uwb/src",
-        "//packages/modules/Bluetooth:__subpackages__",
-        "//tools/netsim:__subpackages__",
-    ],
-}
-
-// Defaults for rust_noalloc backend generation.
-genrule_defaults {
-    name: "pdl_rust_noalloc_generator_defaults",
-    cmd: "$(location :pdlc) --output-format rust_no_alloc $(in) > $(out)",
-    tools: [":pdlc"],
-}
-
-// Defaults for PDL python backend generation.
-genrule_defaults {
-    name: "pdl_python_generator_defaults",
-    tools: [
-        ":pdlc",
-        ":pdl_python_generator",
-    ],
-}
-
-// Defaults for PDL C++ backend generation.
-genrule_defaults {
-    name: "pdl_cxx_generator_defaults",
-    tools: [
-        ":pdlc",
-        ":pdl_cxx_generator",
-    ],
-}
-
-filegroup {
-    name: "pdl_generated_files",
-    srcs: [
-        "tests/generated/rust/**/*.rs",
-    ],
-}
-
-rust_test_host {
-    name: "pdl_tests",
-    host_cross_supported: false,
-    srcs: ["src/main.rs"],
-    rustlibs: [
-        "libargh",
-        "libcodespan_reporting",
-        "libheck",
-        "libpdl_compiler",
-        "libpest",
-        "libprettyplease",
-        "libproc_macro2",
-        "libquote",
-        "libserde",
-        "libserde_json",
-        "libsyn",
-        "libtempfile",
-    ],
-    proc_macros: [
-        "libpest_derive",
-        "libpaste",
-    ],
-    test_suites: ["general-tests"],
-    data: [
-        ":pdl_generated_files",
-    ],
-}
-
-genrule {
-    name: "pdl_generated_files_compile_rs",
-    cmd: "$(location tests/generated_files_compile.sh) $(in) > $(out)",
-    srcs: [":pdl_generated_files"],
-    out: ["generated_files_compile.rs"],
-    tool_files: ["tests/generated_files_compile.sh"],
-}
-
-rust_test_host {
-    name: "pdl_generated_files_compile",
-    srcs: [":pdl_generated_files_compile_rs"],
-    features: ["serde"],
-    rustlibs: [
-        "libbytes",
-        "libserde",
-        "libtempfile",
-        "libpdl_runtime",
-    ],
-    test_suites: ["general-tests"],
-    clippy_lints: "none",
-    lints: "none",
-}
-
-// The generators support more features for LE packets than for BE
-// packets. We use a single input written for LE packets and remove
-// the parts that don't work for BE packets. We do this by removing
-// everything between
-//
-// // Start: little_endian_only
-//
-// and
-//
-// // End: little_endian_only
-//
-// from the LE packet input.
-genrule_defaults {
-    name: "pdl_be_test_file_defaults",
-    cmd: "sed -e 's/little_endian_packets/big_endian_packets/' " +
-        "     -e '/Start: little_endian_only/,/End: little_endian_only/d' " +
-        " < $(in) > $(out)",
-}
-
-genrule {
-    name: "pdl_be_test_file",
-    defaults: ["pdl_be_test_file_defaults"],
-    srcs: ["tests/canonical/le_test_file.pdl"],
-    out: ["be_test_file.pdl"],
-}
-
-genrule {
-    name: "pdl_rust_generator_tests_le_src",
-    cmd: "$(location :pdlc)" +
-        " --output-format rust" +
-        " --exclude-declaration UnsizedCustomField" +
-        " --exclude-declaration Packet_Custom_Field_VariableSize" +
-        " --exclude-declaration Struct_Custom_Field_VariableSize_" +
-        " --exclude-declaration Struct_Custom_Field_VariableSize" +
-        " --exclude-declaration Checksum" +
-        " --exclude-declaration Packet_Checksum_Field_FromStart" +
-        " --exclude-declaration Packet_Checksum_Field_FromEnd" +
-        " --exclude-declaration Struct_Checksum_Field_FromStart_" +
-        " --exclude-declaration Struct_Checksum_Field_FromStart" +
-        " --exclude-declaration Struct_Checksum_Field_FromEnd_" +
-        " --exclude-declaration Struct_Checksum_Field_FromEnd" +
-        " --exclude-declaration PartialParent5" +
-        " --exclude-declaration PartialParent12" +
-        " --exclude-declaration PartialChild5_A" +
-        " --exclude-declaration PartialChild5_B" +
-        " --exclude-declaration PartialChild12_A" +
-        " --exclude-declaration PartialChild12_B" +
-        " --exclude-declaration Packet_Array_Field_UnsizedElement_SizeModifier" +
-        " --exclude-declaration Struct_Array_Field_UnsizedElement_SizeModifier_" +
-        " --exclude-declaration Struct_Array_Field_UnsizedElement_SizeModifier" +
-        " $(location tests/canonical/le_test_file.pdl) > $(out);" +
-        "$(location :pdlc) $(location tests/canonical/le_test_vectors.json) --output-format rust --tests >> $(out)",
-    srcs: [
-        "tests/canonical/le_test_file.pdl",
-        "tests/canonical/le_test_vectors.json",
-    ],
-    out: ["le_canonical.rs"],
-    tools: [":pdlc"],
-}
-
-genrule {
-    name: "pdl_rust_generator_tests_be_src",
-    cmd: "$(location :pdlc)" +
-        " --output-format rust" +
-        " --exclude-declaration UnsizedCustomField" +
-        " --exclude-declaration Packet_Custom_Field_VariableSize" +
-        " --exclude-declaration Struct_Custom_Field_VariableSize_" +
-        " --exclude-declaration Struct_Custom_Field_VariableSize" +
-        " --exclude-declaration Checksum" +
-        " --exclude-declaration Packet_Checksum_Field_FromStart" +
-        " --exclude-declaration Packet_Checksum_Field_FromEnd" +
-        " --exclude-declaration Struct_Checksum_Field_FromStart_" +
-        " --exclude-declaration Struct_Checksum_Field_FromStart" +
-        " --exclude-declaration Struct_Checksum_Field_FromEnd_" +
-        " --exclude-declaration Struct_Checksum_Field_FromEnd" +
-        " --exclude-declaration Packet_Array_Field_UnsizedElement_SizeModifier" +
-        " --exclude-declaration Struct_Array_Field_UnsizedElement_SizeModifier_" +
-        " --exclude-declaration Struct_Array_Field_UnsizedElement_SizeModifier" +
-        " $(location :pdl_be_test_file) > $(out);" +
-        "$(location :pdlc) $(location tests/canonical/be_test_vectors.json) --output-format rust --tests >> $(out)",
-    srcs: [
-        ":pdl_be_test_file",
-        "tests/canonical/be_test_vectors.json",
-    ],
-    out: ["be_canonical.rs"],
-    tools: [":pdlc"],
-}
-
-rust_test_host {
-    name: "pdl_rust_generator_tests_le",
-    srcs: [":pdl_rust_generator_tests_le_src"],
-    test_suites: ["general-tests"],
-    features: ["serde"],
-    rustlibs: [
-        "libbytes",
-        "libnum_traits",
-        "libpdl_runtime",
-        "libserde",
-        "libserde_json",
-    ],
-    clippy_lints: "none",
-    lints: "none",
-}
-
-rust_test_host {
-    name: "pdl_rust_generator_tests_be",
-    srcs: [":pdl_rust_generator_tests_be_src"],
-    test_suites: ["general-tests"],
-    features: ["serde"],
-    rustlibs: [
-        "libbytes",
-        "libnum_traits",
-        "libpdl_runtime",
-        "libserde",
-        "libserde_json",
-    ],
-    clippy_lints: "none",
-    lints: "none",
-}
-
-// Generate the python parser+serializer backend for the
-// little endian test file located at tests/canonical/le_test_file.pdl.
-genrule {
-    name: "pdl_python_generator_le_test_gen",
-    defaults: ["pdl_python_generator_defaults"],
-    cmd: "set -o pipefail;" +
-        " $(location :pdlc) $(in) |" +
-        " $(location :pdl_python_generator)" +
-        " --exclude-declaration Packet_Array_Field_VariableElementSize_ConstantSize" +
-        " --exclude-declaration Packet_Array_Field_VariableElementSize_VariableSize" +
-        " --exclude-declaration Packet_Array_Field_VariableElementSize_VariableCount" +
-        " --exclude-declaration Packet_Array_Field_VariableElementSize_UnknownSize" +
-        " --output $(out) --custom-type-location tests.custom_types",
-    tool_files: [
-        "tests/custom_types.py",
-    ],
-    srcs: [
-        "tests/canonical/le_test_file.pdl",
-    ],
-    out: [
-        "le_backend.py",
-    ],
-}
-
-// Generate the python parser+serializer backend for a big endian test
-// file derived from tests/canonical/le_test_file.pdl.
-genrule {
-    name: "pdl_python_generator_be_test_gen",
-    defaults: ["pdl_python_generator_defaults"],
-    cmd: "set -o pipefail;" +
-        " $(location :pdlc) $(in) |" +
-        " $(location :pdl_python_generator)" +
-        " --exclude-declaration Packet_Array_Field_VariableElementSize_ConstantSize" +
-        " --exclude-declaration Packet_Array_Field_VariableElementSize_VariableSize" +
-        " --exclude-declaration Packet_Array_Field_VariableElementSize_VariableCount" +
-        " --exclude-declaration Packet_Array_Field_VariableElementSize_UnknownSize" +
-        " --output $(out) --custom-type-location tests.custom_types",
-    tool_files: [
-        "tests/custom_types.py",
-    ],
-    srcs: [
-        ":pdl_be_test_file",
-    ],
-    out: [
-        "be_backend.py",
-    ],
-}
-
-// Test the generated python parser+serializer against
-// pre-generated binary inputs.
-python_test_host {
-    name: "pdl_python_generator_test",
-    main: "tests/python_generator_test.py",
-    srcs: [
-        ":pdl_python_generator_be_test_gen",
-        ":pdl_python_generator_le_test_gen",
-        "tests/custom_types.py",
-        "tests/python_generator_test.py",
-    ],
-    data: [
-        "tests/canonical/be_test_vectors.json",
-        "tests/canonical/le_test_vectors.json",
-    ],
-    libs: [
-        "typing_extensions",
-    ],
-    test_options: {
-        unit_test: true,
-    },
-    version: {
-        py3: {
-            embedded_launcher: true,
-        },
-    },
-}
-
-// Generate the rust_noalloc backend srcs against the little-endian test vectors
-genrule {
-    name: "pdl_rust_noalloc_le_test_backend_srcs",
-    defaults: ["pdl_rust_noalloc_generator_defaults"],
-    srcs: ["tests/canonical/le_rust_noalloc_test_file.pdl"],
-    out: ["_packets.rs"],
-}
-
-// Generate the C++ parser+serializer backend for the
-// little endian test file located at tests/canonical/le_test_file.pdl.
-genrule {
-    name: "pdl_cxx_canonical_le_src_gen",
-    defaults: ["pdl_cxx_generator_defaults"],
-    cmd: "set -o pipefail;" +
-        " $(location :pdlc) $(in) |" +
-        " $(location :pdl_cxx_generator)" +
-        " --exclude-declaration Packet_Custom_Field_ConstantSize" +
-        " --exclude-declaration Packet_Custom_Field_VariableSize" +
-        " --exclude-declaration Packet_Checksum_Field_FromStart" +
-        " --exclude-declaration Packet_Checksum_Field_FromEnd" +
-        " --exclude-declaration Struct_Custom_Field_ConstantSize" +
-        " --exclude-declaration Struct_Custom_Field_VariableSize" +
-        " --exclude-declaration Struct_Checksum_Field_FromStart" +
-        " --exclude-declaration Struct_Checksum_Field_FromEnd" +
-        " --exclude-declaration Packet_Array_Field_VariableElementSize_ConstantSize" +
-        " --exclude-declaration Packet_Array_Field_VariableElementSize_VariableSize" +
-        " --exclude-declaration Packet_Array_Field_VariableElementSize_VariableCount" +
-        " --exclude-declaration Packet_Array_Field_VariableElementSize_UnknownSize" +
-        " --exclude-declaration Struct_Custom_Field_ConstantSize_" +
-        " --exclude-declaration Struct_Custom_Field_VariableSize_" +
-        " --exclude-declaration Struct_Checksum_Field_FromStart_" +
-        " --exclude-declaration Struct_Checksum_Field_FromEnd_" +
-        " --exclude-declaration PartialParent5" +
-        " --exclude-declaration PartialChild5_A" +
-        " --exclude-declaration PartialChild5_B" +
-        " --exclude-declaration PartialParent12" +
-        " --exclude-declaration PartialChild12_A" +
-        " --exclude-declaration PartialChild12_B" +
-        " --namespace le_test" +
-        " --output $(out)",
-    srcs: [
-        "tests/canonical/le_test_file.pdl",
-    ],
-    out: [
-        "canonical_le_test_file.h",
-    ],
-}
-
-// Generate the C++ parser+serializer backend tests for the
-// little endian test file located at tests/canonical/le_test_file.pdl.
-genrule {
-    name: "pdl_cxx_canonical_le_test_gen",
-    cmd: "set -o pipefail;" +
-        " inputs=( $(in) ) &&" +
-        " $(location :pdlc) $${inputs[0]} |" +
-        " $(location :pdl_cxx_unittest_generator)" +
-        " --output $(out)" +
-        " --test-vectors $${inputs[1]}" +
-        " --include-header $$(basename $${inputs[2]})" +
-        " --using-namespace le_test" +
-        " --namespace le_test" +
-        " --parser-test-suite LeParserTest" +
-        " --serializer-test-suite LeSerializerTest",
-    tools: [
-        ":pdlc",
-        ":pdl_cxx_unittest_generator",
-    ],
-    srcs: [
-        "tests/canonical/le_test_file.pdl",
-
-        "tests/canonical/le_test_vectors.json",
-
-        ":pdl_cxx_canonical_le_src_gen",
-    ],
-    out: [
-        "canonical_le_test.cc",
-    ],
-}
-
-// Generate the C++ parser+serializer backend for the
-// big endian test file.
-genrule {
-    name: "pdl_cxx_canonical_be_src_gen",
-    defaults: ["pdl_cxx_generator_defaults"],
-    cmd: "set -o pipefail;" +
-        " $(location :pdlc) $(in) |" +
-        " $(location :pdl_cxx_generator)" +
-        " --exclude-declaration Packet_Custom_Field_ConstantSize" +
-        " --exclude-declaration Packet_Custom_Field_VariableSize" +
-        " --exclude-declaration Packet_Checksum_Field_FromStart" +
-        " --exclude-declaration Packet_Checksum_Field_FromEnd" +
-        " --exclude-declaration Struct_Custom_Field_ConstantSize" +
-        " --exclude-declaration Struct_Custom_Field_VariableSize" +
-        " --exclude-declaration Struct_Checksum_Field_FromStart" +
-        " --exclude-declaration Struct_Checksum_Field_FromEnd" +
-        " --exclude-declaration Packet_Array_Field_VariableElementSize_ConstantSize" +
-        " --exclude-declaration Packet_Array_Field_VariableElementSize_VariableSize" +
-        " --exclude-declaration Packet_Array_Field_VariableElementSize_VariableCount" +
-        " --exclude-declaration Packet_Array_Field_VariableElementSize_UnknownSize" +
-        " --exclude-declaration Struct_Custom_Field_ConstantSize_" +
-        " --exclude-declaration Struct_Custom_Field_VariableSize_" +
-        " --exclude-declaration Struct_Checksum_Field_FromStart_" +
-        " --exclude-declaration Struct_Checksum_Field_FromEnd_" +
-        " --exclude-declaration PartialParent5" +
-        " --exclude-declaration PartialChild5_A" +
-        " --exclude-declaration PartialChild5_B" +
-        " --exclude-declaration PartialParent12" +
-        " --exclude-declaration PartialChild12_A" +
-        " --exclude-declaration PartialChild12_B" +
-        " --namespace be_test" +
-        " --output $(out)",
-    srcs: [
-        ":pdl_be_test_file",
-    ],
-    out: [
-        "canonical_be_test_file.h",
-    ],
-}
-
-// Generate the C++ parser+serializer backend tests for the
-// big endian test file.
-genrule {
-    name: "pdl_cxx_canonical_be_test_gen",
-    cmd: "set -o pipefail;" +
-        " inputs=( $(in) ) &&" +
-        " $(location :pdlc) $${inputs[0]} |" +
-        " $(location :pdl_cxx_unittest_generator)" +
-        " --output $(out)" +
-        " --test-vectors $${inputs[1]}" +
-        " --include-header $$(basename $${inputs[2]})" +
-        " --using-namespace be_test" +
-        " --namespace be_test" +
-        " --parser-test-suite BeParserTest" +
-        " --serializer-test-suite BeSerializerTest",
-    tools: [
-        ":pdlc",
-        ":pdl_cxx_unittest_generator",
-    ],
-    srcs: [
-        ":pdl_be_test_file",
-
-        "tests/canonical/be_test_vectors.json",
-
-        ":pdl_cxx_canonical_be_src_gen",
-    ],
-    out: [
-        "canonical_be_test.cc",
-    ],
-}
-
-// Test the generated C++ parser+serializer against
-// pre-generated binary inputs.
-cc_test_host {
-    name: "pdl_cxx_generator_test",
-    local_include_dirs: [
-        "scripts",
-    ],
-    generated_headers: [
-        "pdl_cxx_canonical_be_src_gen",
-        "pdl_cxx_canonical_le_src_gen",
-    ],
-    generated_sources: [
-        "pdl_cxx_canonical_be_test_gen",
-        "pdl_cxx_canonical_le_test_gen",
-    ],
-    static_libs: [
-        "libgtest",
-    ],
-}
diff --git a/cargo_embargo.json b/cargo_embargo.json
deleted file mode 100644
index b3817ce..0000000
--- a/cargo_embargo.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-  "package": {
-    "pdl-compiler": {
-      "add_toplevel_block": "cargo2android_toplevel.bp",
-      "device_supported": false,
-      "host_first_multilib": true
-    }
-  },
-  "run_cargo": false
-}
diff --git a/scripts/Android.bp b/scripts/Android.bp
deleted file mode 100644
index 05bee6b..0000000
--- a/scripts/Android.bp
+++ /dev/null
@@ -1,58 +0,0 @@
-// Python generator.
-python_binary_host {
-    name: "pdl_python_generator",
-    main: "generate_python_backend.py",
-    srcs: [
-        "generate_python_backend.py",
-        "pdl/ast.py",
-        "pdl/core.py",
-        "pdl/utils.py",
-    ],
-    version: {
-        py3: {
-            embedded_launcher: true,
-        },
-    },
-}
-
-// C++ generator.
-python_binary_host {
-    name: "pdl_cxx_generator",
-    main: "generate_cxx_backend.py",
-    srcs: [
-        "generate_cxx_backend.py",
-        "pdl/ast.py",
-        "pdl/core.py",
-        "pdl/utils.py",
-    ],
-    version: {
-        py3: {
-            embedded_launcher: true,
-        },
-    },
-}
-
-// C++ test generator.
-python_binary_host {
-    name: "pdl_cxx_unittest_generator",
-    main: "generate_cxx_backend_tests.py",
-    srcs: [
-        "generate_cxx_backend_tests.py",
-        "pdl/ast.py",
-        "pdl/core.py",
-        "pdl/utils.py",
-    ],
-    version: {
-        py3: {
-            embedded_launcher: true,
-        },
-    },
-}
-
-// C++ packet runtime.
-cc_library_headers {
-    name: "pdl_cxx_packet_runtime",
-    export_include_dirs: ["."],
-    host_supported: true,
-    vendor_available: true,
-}