Clean up a few things with the way we use rules_rust

After using rules_rust a bit more, I noticed that some of the ways we
had it set up aren't quite correct. In particular, arch-related `cfg`
didn't work for armv7, which breaks many more complex crates.

Change-Id: I5a15160abfd9da7609f7e9e4b60ec40cbe055d25
Signed-off-by: Brian Silverman <bsilver16384@gmail.com>
diff --git a/WORKSPACE b/WORKSPACE
index 8f2dd52..2113efe 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -294,6 +294,9 @@
     #"//tools/cpp:cc-toolchain-cortex-m4f-k22",
     "//tools/python:python_toolchain",
     "//tools/go:noop_go_toolchain",
+    "//tools/rust:rust-toolchain-x86",
+    "//tools/rust:rust-toolchain-armv7",
+    "//tools/rust:rust-toolchain-arm64",
     "//tools/rust:rust-toolchain-roborio",
     "//tools/rust:noop_rust_toolchain",
     "//tools/ts:noop_node_toolchain",
@@ -834,9 +837,9 @@
     path = "third_party/rules_rust",
 )
 
-load("@rules_rust//rust:repositories.bzl", "rust_repository_set")
+load("@rules_rust//rust:repositories.bzl", "rust_toolchain_repository")
 
-rust_repository_set(
+rust_toolchain_repository(
     name = "rust",
     edition = "2021",
     exec_triple = "x86_64-unknown-linux-gnu",
@@ -845,7 +848,9 @@
         "armv7-unknown-linux-gnueabihf",
         "aarch64-unknown-linux-gnu",
     ],
-    version = "1.56.1",
+    rustfmt_version = "1.58.1",
+    toolchain_name_prefix = "toolchain_for",
+    version = "1.58.1",
 )
 
 load("@io_bazel_rules_webtesting//web:repositories.bzl", "web_test_repositories")