workspace: add Rust EFI infrastructure

This bumps rules_rust, cleans up the toolchains with the new version.
It also adds the Prost codegen to "normal" crate set as well as a new
crate set specific to EFI. This is separate because of Rust no-std's
dependence on create feature tags.

Change-Id: Ie76e66ee83696948391420ca3b011a3a71258690
Reviewed-on: https://review.monogon.dev/c/monogon/+/2202
Tested-by: Jenkins CI
Reviewed-by: Serge Bazanski <serge@monogon.tech>
diff --git a/third_party/rust/cargo/remote/BUILD.handlebars-4.4.0.bazel b/third_party/rust/cargo/remote/BUILD.handlebars-4.4.0.bazel
new file mode 100644
index 0000000..b58c65a
--- /dev/null
+++ b/third_party/rust/cargo/remote/BUILD.handlebars-4.4.0.bazel
@@ -0,0 +1,143 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_proc_macro",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//third_party/rust/cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT"
+])
+
+# Generated Targets
+
+# Unsupported target "bench" with type "bench" omitted
+
+rust_binary(
+    # Prefix bin name to disambiguate from (probable) collision with lib name
+    # N.B.: The exact form of this is subject to change.
+    name = "cargo_bin_handlebars_cli",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/cli.rs",
+    data = [] + [
+        "src/grammar.pest",
+    ],
+    edition = "2021",
+    proc_macro_deps = [
+        "@raze__pest_derive__2_7_4//:pest_derive",
+    ],
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "crate-name=handlebars-cli",
+        "manual",
+    ],
+    version = "4.4.0",
+    # buildifier: leave-alone
+    deps = [
+        ":handlebars",
+        "@raze__log__0_4_20//:log",
+        "@raze__pest__2_7_4//:pest",
+        "@raze__serde__1_0_188//:serde",
+        "@raze__serde_json__1_0_107//:serde_json",
+        "@raze__thiserror__1_0_49//:thiserror",
+    ],
+)
+
+# Unsupported target "decorator" with type "example" omitted
+
+# Unsupported target "dev_mode" with type "example" omitted
+
+# Unsupported target "error" with type "example" omitted
+
+# Unsupported target "helper_macro" with type "example" omitted
+
+# Unsupported target "partials" with type "example" omitted
+
+# Unsupported target "quick" with type "example" omitted
+
+# Unsupported target "render" with type "example" omitted
+
+# Unsupported target "render_file" with type "example" omitted
+
+# Unsupported target "script" with type "example" omitted
+
+rust_library(
+    name = "handlebars",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = [] + [
+        "src/grammar.pest",
+    ],
+    edition = "2021",
+    proc_macro_deps = [
+        "@raze__pest_derive__2_7_4//:pest_derive",
+    ],
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "crate-name=handlebars",
+        "manual",
+    ],
+    version = "4.4.0",
+    # buildifier: leave-alone
+    deps = [
+        "@raze__log__0_4_20//:log",
+        "@raze__pest__2_7_4//:pest",
+        "@raze__serde__1_0_188//:serde",
+        "@raze__serde_json__1_0_107//:serde_json",
+        "@raze__thiserror__1_0_49//:thiserror",
+    ],
+)
+
+# Unsupported target "block_context" with type "test" omitted
+
+# Unsupported target "data_helper" with type "test" omitted
+
+# Unsupported target "embed" with type "test" omitted
+
+# Unsupported target "escape" with type "test" omitted
+
+# Unsupported target "helper_function_lifetime" with type "test" omitted
+
+# Unsupported target "helper_macro" with type "test" omitted
+
+# Unsupported target "helper_with_space" with type "test" omitted
+
+# Unsupported target "root_var" with type "test" omitted
+
+# Unsupported target "subexpression" with type "test" omitted
+
+# Unsupported target "template_names" with type "test" omitted
+
+# Unsupported target "whitespace" with type "test" omitted