Squashed 'third_party/rules_rust/' changes from bf59038cac..078c6908fc

078c6908fc add cc_common.link support for rust_library and rust_test (#1490)
c07aef0287 Skip supplying rpaths on Fuchsia (#1511)
6ee7c80bdb Propagate rustc_env{,_files} from rust_test.crate (#1443)
1cd0788d2a Apply get_lib_name correctly to the C++ runtime libraries (#1508)
90808f0dc4 Minor cleanup to documentation (#1505)
735640f2df Enable rust-analyzer tests on windows. (#1506)
0f34573166 Updated rules_rust to version 0.9.0 (#1503)
9b61b49934 Promoted crate_universe to non-experimental (#1504)
76360dd354 Implement rules archive release artifact in github action. (#1501)
4e5fac5980 Do not pass `--Clink-arg=-l` for libstd and libtest (#1500)
6c38934636 pipelining: add the ability to disable pipelining for a single rule. (#1499)
867fc37c17 rules_rust: enable pipelined compilation. (#1275)
c97f255dfe Delete deprecated targets (#1496)
43b42884a7 Updated examples to use crate_universe (#1494)
0ffde973e8 Updated `//util/import` to use crate_universe (#1492)
83a03ab03e Updated proto rules to fetch dependencies using crate_universe (#1491)
67e204ff22 fix: `rust_doc_test` failure to find params file (#1418)
0fc834bdfa Updated all toolchain_type definitions to be named `toolchain_type`. (#1479)
3be056a7a3 toolchain files: ensure test depends on std (#1486)
228ebfa6eb Updated rules_rust to version `0.8.1`. (#1484)
685dfda497 Fixed use of rust-analyzer with rust_static_library and rust_shared_library (#1482)
2d7f94543f Fix rust-analyzer being unable to find rust sysroot sources. (#1483)
81a77acde2 Updated rules_rust to version `0.8.0`. (#1472)
caad908848 Give useful error on missing workspace manifest (#1475)
0e86b9dd30 Added `rust_analyzer_toolchain` and repository rules for creating one (#1455)
838e4ea828 Update docs on lockfiles (#1477)
fce1222628 Fix typo in function name (#1478)
1929bfbc3e Added Rust version 1.62.1 (#1476)
9a8e878d3d Fix `rust_binary_without_process_wrapper` build with `--stamp` (#1473)
25baabc205 Updated bindgen version (#1470)
8c9d5c7051 Updated rust-analyzer generator to use clap (#1471)
6d8009dbc8 Update `//bindgen` to use `crate_universe` (#1440)
67c97d44ff Updated `tools/rust_analyzer` to use `crate_universe`. (#1448)
6c285eb28e Updated `wasm_bindgen` rules dependencies. (#1464)
82a437cc17 Fixed crate_universe lockfile checks for crates_repository rule (#1468)
e83d5f3c77 Limit coverage to requested files (#1467)
daff327ea7 Stamp only binaries by default (#1452)
adc80a301d Cleanup crate_universe dependency macros (#1460)
824b121acc Updated header of crate_universe generated files to include a regen command (#1461)
d44e1d8363 feat: add `rustc_flags` attr to `rust_doc` rule (#1458)
6b54feb0ff add a way to distinguish proc-macro deps (#1420)
6070b3c9f4 Fixed missing items in distro artifact (#1450)
1e83e74159 do not add proc-macro deps to transitive_link_search_paths (#1424)
ced94dec1b Fix @libgit2 (#1457)
03d1d5e4ac Add extra_rustc_flag and extra_exec_rustc_flag (#1413)
711adc7985 crate_universe: shorten `crate_universe_crate_index` to `cui` (#1454)
8cb9247f18 Replaced small genrules with uses of bazel_skylib (#1451)
38e841aece Upgrade stardoc (#1444)
674762f66a Updated toolchain repository rules to represent one toolchain per repo (#1442)
b22a6e1416 Re-enable disabled windows jobs in CI (#1353)
2fb94c48fd docs: Update homepage to use latest version (#1441)
389c58fcb1 Updated rules_rust to version `0.7.0`. (#1436)
60f26d49d8 exclude `BUILD` and `WORKSPACE` files from generated crate_universe targets (#1437)
26344d4cd7 Have rust_test put its compilation outputs in a subdirectory (#1434)
8b0f644122 Updated crate_universe version to `0.4.0`. (#1435)
adf92b1534 update crate_universe `--repin` args to not require values. (#1433)
da75146d0a Do not attempt to instrument rust code for coverage if rust_toolchain.llvm-cov is None (#1432)
bde2c36821 Added Rust 1.62.0 (#1427)
7056f22bd0 Fixed crate_universe not finding target library names for "rlib"s (#1429)
3d65214d23 crate_universe support for individually updating packages. (#1426)
5a9d999db9 Updated `attr.label` attribute defaults to use `Label` constructor (#1422)
52fc70145a Added `TemplateVariableInfo` to `rust_toolchain`. (#1416)
7465c1aa29 Add test coverage support (#1324)
c5c3603da6 Bump the min supported bazel version (#1414)
937bdc9d05 Add a `cargo_dep_env` rule for setting build.rs environment variables (#1415)
91466fc0d1 Updated `rules_rust` version to `0.6.0`. (#1397)
97264b79d5 Update wasm_bindgen to use crate universe. (#1398)
d3197a65c5 Updated crate_universe version (to `0.3.0`) and dependencies (#1409)
a15e67d666 Deleted "extra workspace member" functionality from crate_universe (#1406)
5910a7585a Use a vec, not set for rustc_flags for crate_universe annotations (#1404)
3aa88ab067 Deleted deprecated `rust_analyzer` rule. (#1405)
7adf7210d0 cargo: Fix handling of relative sysroots (#1371)
57607239ec Enable rustfmt CI for Windows. (#1403)
30e68b49be Added more "ignore" tags to rustfmt and clippy rules. (#1400)
53ad14eead Added support for vendoring external manifests (#1381)
ff243c6ef0 Reorganized rustfmt source tree (#1399)
94e0044afe Refactored the Rustfmt tool to work cross-platform (#1375)
8fca438124 Ran clang-format on all C++ sources (#1396)
e765719e29 Added TemplateVariableInfo to rust_toolchain (#1377)
81590f4b6a Fixed Clippy bug with `--@rules_rust//:clippy_flags`. (#1392)
d77b9f7c6a Use  `target_compatible_with` to make `macos` with `Xcode` happy (#1391)
ec27dbe310 Added comments to internal function (#1378)
a9dd2f9200 Removed deprecated file (#1380)
16175c881c Renamed toolchain files targets (#1376)
c7cb5bd7a8 Support crates that have mix of generated and nongenerated inputs (#1340)
521e649ff4 Avoid using common substrings as encodings. (#1370)
28ac6b133d Use a more compact encoding in the `import` macro. (#1365)
3a099bfa97 Fix incorrect assertion in test_env_launcher test (#1368)
4661093fb1 Use target instead of rule in rust_register_toolchains edition docs (#1366)
652f2802e3 Add `env` attribute to `rust_toolchain`. (#1363)
9520f37f1e Update rules_perl in examples (#1364)
1b451c301e Add armv7-linux-androideabi tier 2 triple (#1362)
0265c293f1 Ensure crate_features to be included correctly in rust_project.json (#1356)
121d65fe6a Updated `rules_rust` version to `0.5.0` (#1360)
aca4ec1a0f crate_universe: fix typo (#1314)
69ca2611c5 Don't leak native dependencies of proc_macro (#1359)
4c7f08b8b9 Fixed missing docs (#1358)
e48bec94de feat: build script toolchains annotations (#1344)
ffb946f4b7 Ensure memchr is linked after libobject (#1349)
edca1d8042 Add developing notes for crate_universe (#1351)
120f911d2f Updated rust_bindgen dependencies API (#1354)
42c4528a5f Added Rust 1.61.0 (#1347)
c05e0c6ab1 Fixed fetch_shas script to correctly include .gz and .xz extensions (#1355)
9770b0dd75 Update apple_support (#1346)
87eb807e67 Added support for Rust 1.61.0 to crate_universe (#1348)
84c1d42128 Temporarily disable windows job in CI. (#1352)
421d30e4ff Remove unnecessary `crate_name` usage in `rust_test_suite`. (#1345)
10185339dd Build `rust_test` targets with `crate` using the same crate name as the underlying library target. (#1332)
0049ce3884 Add support for riscv32 targets (#1323)
3aa6de3c63 remove experimental_use_whole_archive_for_native_deps (#1338)
a066bfed46 Replace slashes with underscores in default crate names. (#1336)
1b91e592d5 Revert "Replace slashes with underscores in default crate names. (#1334)" (#1335)
51f8e302e9 "sandwich" rlibs between native deps in linker order (#1333)
df354904a1 Replace slashes with underscores in default crate names. (#1334)
21eed19188 Bump version to 0.4.0 (#1329)
d3d9abac4d Support . workspace member (#1326)
fccaae3055 Error calling `all_crate_deps` without `Cargo.toml` (#1327)
d7c532cb78 Updated wasm_bindgen dependencies API (#1313)
fb4d5546ea Updated wasm_bindgen rules to only require core `rules_nodejs` rules (#1311)
1590670ae1 Prevents running of clippy on bindgen targets (#1320)
73d0164a34 Add support for aarch64-apple-ios-sim (#1304)
61eee54c73 Add bazel-* directories in cargo_manifest_dir/external_crate to gitignore (#1279)
42f78f25e1 crate_universe: Improved documentation (#1305)
bddc4bd94a Silence warnings for example/test dependencies (#1312)
b04fe3b21f Use tinyjson from crates.io instead of github.com. (#1309)
1cab691d14 Remove doc about STATIC_RUST_URL env var. (#1306)
d86e06a884 Don't propagate non-shared transitive linker inputs from `rust_static|shared_library` (#1299)
5abeb93333 Don't emit `CrateInfo` from `rust_static_library` and `rust_shared_library` (#1298)
0175a1b7aa fix for using a nightly channel after https://github.com/bazelbuild/rules_rust/commit/841fc6fb82141576d91aecb1d3f2656d58b0ab71 (#1302)
e07881fa22 Updated crate_universe docs (#1301)
c63ad973f1 rustc: fix a conditional (#1300)
a6f332fcbe Use __EXEC_ROOT__ paths for genfiles in rust_analyzer aspect (#1293)
97de47df51 Remove 'triple' field from triple struct in favor of 'str' (#1297)
58627f59eb Make get_host_triple public to get a triple from Bazel's repository_ctx (#1289)
612f4362bc Updated `rules_rust` version to `0.3.1` (#1296)
26fa5a15de Fixed build issues in release artifact (#1295)
48bb32f817 crate_universe: Added tests for serialized config files. (#1291)
841fc6fb82 Enable xz archives (#1284)
f7cb22efa6 feat(#514): pass extra flags to clippy (#1264)
e9f8b48711 Updated `rules_rust` version to `0.3.0` (#1288)
c900e1c66c Revert "Add workaround for arm vs armv7 android issue (#1259)" (#1290)
01ebef2fb9 Remove DEFAULT_RUST_EDITION (#1256)
03a70796ab Outside of examples, fill in all `edition` attrs (#1257)
207ee4fbcf feat: support extra deps in rust_doc_test (#1286)
4e7d114a8e Fix typo in render config doc (#1281)
db17f291d3 Fix crate annotation anchor (#1282)
fdb6851a92 Fix target name in `rust_test` example. (#1280)
4fb6e40147 Don't leak additive build file content across crates (#1278)
965044ae2b Remove `rust_test` example which doesn't build. (#1267)
f6e7e0a93f add a stopgap experimental_use_whole_archive_for_native_deps attribute (#1269)
34fd46756a process_wrapper: add support for terminating rustc after it emits rmeta. (#1207)
b778fca0ac crate_universe: propagate build_script_tools (#1266)
f6f27a8734 Add workaround for arm vs armv7 android issue (#1259)
c3f56c2d50 Add the BUILD.bazel file to the wasm_bindgen distro filegroup target (#1246) (#1261)
1f2e6231de Set edition for process_wrapper and cargo_build_script_runner (#1254)
55790492ac Updated Rust to 1.60.0 (#1247)
b594f90f17 Workaround for issue in linux Cargo binaries (#1252)
8f0dd9042e rust_test_suite: ensure crate names are valid (#1248)
4144ddeb9c Updating `rules_rust` version to `0.2.1` (#1243)
65cad76a52 Fixed proto package in release artifact (#1241)
4d8de6e361 Updated repository pin in the docs (#1240)
e5a3970754 Updating `rules_rust` version to `0.2.0` (#1235)
d061bf640e Updated `crate_universe` version to `0.2.0` (#1239)
c0505da0d2 Replace `rust_repositories` with `rust_register_toolchains` in docs (#1237)
145ad7609f Fixed `crates_repository` deleting `.cargo/config.toml` files. (#1227)
20066b05e2 fix: distribute `//tools/rust_analyzer` (#1234)
b58ce89603 Enabled `rust_doc_test` for `crate_universe` (#1232)
d2e2470cbf Fix some unit tests to run from another workspace (#1226)
b03aee039a Fixed `crate_universe` clippy defects (#1228)
41b39f0c99 add bots using lld (and examples with clang as a drive by) (#1221)
84e98e4d2f don't emit --codegen={metadata,extra-filename} for rust_static_library and rust_shared_library (#1222)
e48c834a40 Renamed `crate_index` repository to `crate_universe_crate_index` (#1217)
99b4b2574f fix use of stamping in rust_binary_without_process_wrapper (#1218)
8df4517d37 Add NUM_JOBS env var to cargo build scripts (#1216)
628e85e70f Restrucutred `crate_universe` dependency macros (#1208)
e3d67a0a10 Updated docs to guide users to using releases (#1213)
fd912e644c Updated crate_universe docs. (#1212)
cde4c0826c Delete deprecated `rules` targets (#1210)
26e01c8386 cache the release archive in release actions (#1201)
3205c9d846 Updated crate_universe setup guide (#1202)
c078494678 Don't leak deps from rust_proc_macro (#1206)
7c865ffeb1 Build `_import_macro_dep` in `exec` mode (#1203)
635da93206 Updating `rules_rust` version to `0.1.0`. (#1198)
6c797c9070 disable advanced features of C++ rules (#1200)
86d47a1bba Tweak import macro bootstrap to trick rust analyzer aspect (#1179)
80d197205a Added release workflow (#1195)
cd44b3670a Added support for producing distribution archives (#1194)
a665447989 Traverse custom alias-like rules in the rust analyzer aspect (#1190)
4504983fa9 Add a test showing that rust_analayzer aspect traverses aliases (#1188)
297dd18215 Updated `crate_universe` to version `0.1.0`. (#1197)
0d9c7d5e1b Specify root target for rust_analyzer test (#1189)
4a0352fecd Updated `crate_universe` dependencies (#1196)
5126479254 Fixed crate_universe release tools (#1193)
e840400eb6 Remove last remains of use_process_wrapper flag. (#1192)
eb7db68d96 Fix iOS linker arguments (#1186)
de726a10c9 Create internal rust_binary rule instead of using transitions (#1187)
5e6ad9f638 Regenerated `cargo-raze` outputs with v0.15.0 (#1184)
980b662843 add static_library to get_preferred_artifact with pic (#1183)
97fd329540 Populate CFLAGS and CXXFLAGS when invoking build script. (#1081)

git-subtree-dir: third_party/rules_rust
git-subtree-split: 078c6908fc32c168b58e72cc3884dd8e30419e3a
Signed-off-by: Brian Silverman <bsilver16384@gmail.com>
Change-Id: Ifc218edaa852263bd76835ee7de44de07c08aec2
diff --git a/tools/rust_analyzer/3rdparty/BUILD.bazel b/tools/rust_analyzer/3rdparty/BUILD.bazel
new file mode 100644
index 0000000..b642169
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/BUILD.bazel
@@ -0,0 +1,47 @@
+load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
+load("//crate_universe:defs.bzl", "crate", "crates_vendor")
+
+crates_vendor(
+    name = "crates_vendor",
+    cargo_lockfile = "Cargo.Bazel.lock",
+    mode = "remote",
+    packages = {
+        "anyhow": crate.spec(
+            version = "1.0.58",
+        ),
+        "clap": crate.spec(
+            features = [
+                "derive",
+                "env",
+            ],
+            version = "3.2.12",
+        ),
+        "env_logger": crate.spec(
+            version = "0.9.0",
+        ),
+        "itertools": crate.spec(
+            version = "0.10.3",
+        ),
+        "log": crate.spec(
+            version = "0.4.17",
+        ),
+        "serde": crate.spec(
+            features = ["derive"],
+            version = "1.0.139",
+        ),
+        "serde_json": crate.spec(
+            version = "1.0.82",
+        ),
+    },
+    repository_name = "rules_rust_rust_analyzer",
+    tags = ["manual"],
+)
+
+bzl_library(
+    name = "bzl_lib",
+    srcs = glob(["**/*.bzl"]) + [
+        "//tools/rust_analyzer/3rdparty/crates:defs.bzl",
+        "//tools/rust_analyzer/3rdparty/crates:crates.bzl",
+    ],
+    visibility = ["//tools/rust_analyzer:__pkg__"],
+)
diff --git a/tools/rust_analyzer/raze/Cargo.raze.lock b/tools/rust_analyzer/3rdparty/Cargo.Bazel.lock
similarity index 65%
rename from tools/rust_analyzer/raze/Cargo.raze.lock
rename to tools/rust_analyzer/3rdparty/Cargo.Bazel.lock
index d78e906..cf953a7 100644
--- a/tools/rust_analyzer/raze/Cargo.raze.lock
+++ b/tools/rust_analyzer/3rdparty/Cargo.Bazel.lock
@@ -1,5 +1,7 @@
 # This file is automatically @generated by Cargo.
 # It is not intended for manual editing.
+version = 3
+
 [[package]]
 name = "aho-corasick"
 version = "0.7.18"
@@ -10,19 +12,10 @@
 ]
 
 [[package]]
-name = "ansi_term"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
-dependencies = [
- "winapi",
-]
-
-[[package]]
 name = "anyhow"
-version = "1.0.45"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee10e43ae4a853c0a3591d4e2ada1719e553be18199d9da9d4a83f5927c2f5c7"
+checksum = "bb07d2053ccdbe10e2af2995a2f116c1330396493dc1269f6a91d0ae82e19704"
 
 [[package]]
 name = "atty"
@@ -36,6 +29,12 @@
 ]
 
 [[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
 name = "bitflags"
 version = "1.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -49,37 +48,61 @@
 
 [[package]]
 name = "clap"
-version = "2.33.3"
+version = "3.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
+checksum = "ab8b79fe3946ceb4a0b1c080b4018992b8d27e9ff363644c1c9b6387c854614d"
 dependencies = [
- "ansi_term",
  "atty",
  "bitflags",
+ "clap_derive",
+ "clap_lex",
+ "indexmap",
+ "once_cell",
  "strsim",
+ "termcolor",
  "textwrap",
- "unicode-width",
- "vec_map",
 ]
 
 [[package]]
-name = "compile_with_bazel"
-version = "0.0.0"
+name = "clap_derive"
+version = "3.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "759bf187376e1afa7b85b959e6a664a3e7a95203415dba952ad19139e798f902"
+dependencies = [
+ "heck",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
+dependencies = [
+ "os_str_bytes",
+]
+
+[[package]]
+name = "direct-cargo-bazel-deps"
+version = "0.0.1"
 dependencies = [
  "anyhow",
+ "clap",
  "env_logger",
  "itertools",
  "log",
  "serde",
  "serde_json",
- "structopt",
 ]
 
 [[package]]
 name = "either"
-version = "1.6.1"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
+checksum = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be"
 
 [[package]]
 name = "env_logger"
@@ -95,13 +118,16 @@
 ]
 
 [[package]]
-name = "heck"
-version = "0.3.3"
+name = "hashbrown"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
-dependencies = [
- "unicode-segmentation",
-]
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+
+[[package]]
+name = "heck"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
 
 [[package]]
 name = "hermit-abi"
@@ -119,46 +145,62 @@
 checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
 
 [[package]]
-name = "itertools"
-version = "0.10.1"
+name = "indexmap"
+version = "1.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69ddb889f9d0d08a67338271fa9b62996bc788c7796a5c18cf057420aaed5eaf"
+checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e"
+dependencies = [
+ "autocfg",
+ "hashbrown",
+]
+
+[[package]]
+name = "itertools"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3"
 dependencies = [
  "either",
 ]
 
 [[package]]
 name = "itoa"
-version = "0.4.8"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
-
-[[package]]
-name = "lazy_static"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d"
 
 [[package]]
 name = "libc"
-version = "0.2.107"
+version = "0.2.126"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbe5e23404da5b4f555ef85ebed98fb4083e55a00c317800bc2a50ede9f3d219"
+checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
 
 [[package]]
 name = "log"
-version = "0.4.14"
+version = "0.4.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
+checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
 dependencies = [
  "cfg-if",
 ]
 
 [[package]]
 name = "memchr"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
+checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+
+[[package]]
+name = "once_cell"
+version = "1.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1"
+
+[[package]]
+name = "os_str_bytes"
+version = "6.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "648001efe5d5c0102d8cea768e348da85d90af8ba91f0bea908f157951493cd4"
 
 [[package]]
 name = "proc-macro-error"
@@ -186,27 +228,27 @@
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.32"
+version = "1.0.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba508cc11742c0dc5c1659771673afbab7a0efab23aa17e854cbab0837ed0b43"
+checksum = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7"
 dependencies = [
- "unicode-xid",
+ "unicode-ident",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.10"
+version = "1.0.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05"
+checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804"
 dependencies = [
  "proc-macro2",
 ]
 
 [[package]]
 name = "regex"
-version = "1.5.4"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461"
+checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -215,30 +257,30 @@
 
 [[package]]
 name = "regex-syntax"
-version = "0.6.25"
+version = "0.6.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
+checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
 
 [[package]]
 name = "ryu"
-version = "1.0.5"
+version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
+checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695"
 
 [[package]]
 name = "serde"
-version = "1.0.130"
+version = "1.0.139"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913"
+checksum = "0171ebb889e45aa68b44aee0859b3eede84c6f5f5c228e6f140c0b2a0a46cad6"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.130"
+version = "1.0.139"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7bc1a1ab1961464eae040d96713baa5a724a8152c1222492465b54322ec508b"
+checksum = "dc1d3230c1de7932af58ad8ffbe1d784bd55efd5a9d84ac24f69c72d83543dfb"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -247,9 +289,9 @@
 
 [[package]]
 name = "serde_json"
-version = "1.0.69"
+version = "1.0.82"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e466864e431129c7e0d3476b92f20458e5879919a0596c6472738d9fa2d342f8"
+checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7"
 dependencies = [
  "itoa",
  "ryu",
@@ -258,92 +300,47 @@
 
 [[package]]
 name = "strsim"
-version = "0.8.0"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
-
-[[package]]
-name = "structopt"
-version = "0.3.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40b9788f4202aa75c240ecc9c15c65185e6a39ccdeb0fd5d008b98825464c87c"
-dependencies = [
- "clap",
- "lazy_static",
- "structopt-derive",
-]
-
-[[package]]
-name = "structopt-derive"
-version = "0.4.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0"
-dependencies = [
- "heck",
- "proc-macro-error",
- "proc-macro2",
- "quote",
- "syn",
-]
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
 name = "syn"
-version = "1.0.81"
+version = "1.0.98"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2afee18b8beb5a596ecb4a2dce128c719b4ba399d34126b9e4396e3f9860966"
+checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd"
 dependencies = [
  "proc-macro2",
  "quote",
- "unicode-xid",
+ "unicode-ident",
 ]
 
 [[package]]
 name = "termcolor"
-version = "1.1.2"
+version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4"
+checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
 dependencies = [
  "winapi-util",
 ]
 
 [[package]]
 name = "textwrap"
-version = "0.11.0"
+version = "0.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
-dependencies = [
- "unicode-width",
-]
+checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb"
 
 [[package]]
-name = "unicode-segmentation"
-version = "1.8.0"
+name = "unicode-ident"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b"
-
-[[package]]
-name = "unicode-width"
-version = "0.1.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
-
-[[package]]
-name = "unicode-xid"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
-
-[[package]]
-name = "vec_map"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+checksum = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7"
 
 [[package]]
 name = "version_check"
-version = "0.9.3"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
 [[package]]
 name = "winapi"
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.aho-corasick-0.7.18.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.aho-corasick-0.7.18.bazel
new file mode 100644
index 0000000..27abe22
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.aho-corasick-0.7.18.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Unlicense/MIT
+# ])
+
+rust_library(
+    name = "aho_corasick",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.7.18",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__memchr-2.5.0//:memchr",
+        ],
+    }),
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.anyhow-1.0.58.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.anyhow-1.0.58.bazel
new file mode 100644
index 0000000..7ddb72a
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.anyhow-1.0.58.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "anyhow",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.58",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__anyhow-1.0.58//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "anyhow_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.58",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "anyhow_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.atty-0.2.14.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.atty-0.2.14.bazel
new file mode 100644
index 0000000..5735d73
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.atty-0.2.14.bazel
@@ -0,0 +1,132 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "atty",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.14",
+    deps = [
+    ] + select_with_or({
+        # cfg(target_os = "hermit")
+        #
+        # No supported platform triples for cfg: 'cfg(target_os = "hermit")'
+        # Skipped dependencies: [{"id":"hermit-abi 0.1.19","target":"hermit_abi"}]
+        #
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@rules_rust_rust_analyzer__libc-0.2.126//:libc",
+
+            # Common Deps
+        ],
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@rules_rust_rust_analyzer__winapi-0.3.9//:winapi",
+
+            # Common Deps
+        ],
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.autocfg-1.1.0.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.autocfg-1.1.0.bazel
new file mode 100644
index 0000000..bcf233a
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.autocfg-1.1.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "autocfg",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.1.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.bazel
new file mode 100644
index 0000000..d89f0ea
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.bazel
@@ -0,0 +1,77 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+package(default_visibility = ["//visibility:public"])
+
+exports_files(
+    [
+        "cargo-bazel.json",
+        "defs.bzl",
+        "crates.bzl",
+    ] + glob([
+        "*.bazel",
+    ]),
+)
+
+filegroup(
+    name = "srcs",
+    srcs = glob([
+        "*.bazel",
+        "*.bzl",
+    ]),
+)
+
+# Workspace Member Dependencies
+alias(
+    name = "anyhow",
+    actual = "@rules_rust_rust_analyzer__anyhow-1.0.58//:anyhow",
+    tags = ["manual"],
+)
+
+alias(
+    name = "clap",
+    actual = "@rules_rust_rust_analyzer__clap-3.2.12//:clap",
+    tags = ["manual"],
+)
+
+alias(
+    name = "env_logger",
+    actual = "@rules_rust_rust_analyzer__env_logger-0.9.0//:env_logger",
+    tags = ["manual"],
+)
+
+alias(
+    name = "itertools",
+    actual = "@rules_rust_rust_analyzer__itertools-0.10.3//:itertools",
+    tags = ["manual"],
+)
+
+alias(
+    name = "log",
+    actual = "@rules_rust_rust_analyzer__log-0.4.17//:log",
+    tags = ["manual"],
+)
+
+alias(
+    name = "serde",
+    actual = "@rules_rust_rust_analyzer__serde-1.0.139//:serde",
+    tags = ["manual"],
+)
+
+alias(
+    name = "serde_json",
+    actual = "@rules_rust_rust_analyzer__serde_json-1.0.82//:serde_json",
+    tags = ["manual"],
+)
+
+# Binaries
+alias(
+    name = "clap__stdio-fixture",
+    actual = "@rules_rust_rust_analyzer__clap-3.2.12//:stdio-fixture__bin",
+    tags = ["manual"],
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.bitflags-1.3.2.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.bitflags-1.3.2.bazel
new file mode 100644
index 0000000..7c25f32
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.bitflags-1.3.2.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "bitflags",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.3.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.cfg-if-1.0.0.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.cfg-if-1.0.0.bazel
new file mode 100644
index 0000000..20256bf
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.cfg-if-1.0.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "cfg_if",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.clap-3.2.12.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.clap-3.2.12.bazel
new file mode 100644
index 0000000..852e149
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.clap-3.2.12.bazel
@@ -0,0 +1,197 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_binary",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "clap",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "atty",
+        "clap_derive",
+        "color",
+        "default",
+        "derive",
+        "env",
+        "once_cell",
+        "std",
+        "strsim",
+        "suggestions",
+        "termcolor",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__clap_derive-3.2.7//:clap_derive",
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "3.2.12",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__atty-0.2.14//:atty",
+            "@rules_rust_rust_analyzer__bitflags-1.3.2//:bitflags",
+            "@rules_rust_rust_analyzer__clap_lex-0.2.4//:clap_lex",
+            "@rules_rust_rust_analyzer__indexmap-1.9.1//:indexmap",
+            "@rules_rust_rust_analyzer__once_cell-1.13.0//:once_cell",
+            "@rules_rust_rust_analyzer__strsim-0.10.0//:strsim",
+            "@rules_rust_rust_analyzer__termcolor-1.1.3//:termcolor",
+            "@rules_rust_rust_analyzer__textwrap-0.15.0//:textwrap",
+        ],
+    }),
+)
+
+rust_binary(
+    name = "stdio-fixture__bin",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "atty",
+        "clap_derive",
+        "color",
+        "default",
+        "derive",
+        "env",
+        "once_cell",
+        "std",
+        "strsim",
+        "suggestions",
+        "termcolor",
+    ],
+    crate_root = "src/bin/stdio-fixture.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__clap_derive-3.2.7//:clap_derive",
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "3.2.12",
+    deps = [
+        ":clap",
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__atty-0.2.14//:atty",
+            "@rules_rust_rust_analyzer__bitflags-1.3.2//:bitflags",
+            "@rules_rust_rust_analyzer__clap_lex-0.2.4//:clap_lex",
+            "@rules_rust_rust_analyzer__indexmap-1.9.1//:indexmap",
+            "@rules_rust_rust_analyzer__once_cell-1.13.0//:once_cell",
+            "@rules_rust_rust_analyzer__strsim-0.10.0//:strsim",
+            "@rules_rust_rust_analyzer__termcolor-1.1.3//:termcolor",
+            "@rules_rust_rust_analyzer__textwrap-0.15.0//:textwrap",
+        ],
+    }),
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.clap_derive-3.2.7.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.clap_derive-3.2.7.bazel
new file mode 100644
index 0000000..128996e
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.clap_derive-3.2.7.bazel
@@ -0,0 +1,96 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_proc_macro",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_proc_macro(
+    name = "clap_derive",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "3.2.7",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__heck-0.4.0//:heck",
+            "@rules_rust_rust_analyzer__proc-macro-error-1.0.4//:proc_macro_error",
+            "@rules_rust_rust_analyzer__proc-macro2-1.0.40//:proc_macro2",
+            "@rules_rust_rust_analyzer__quote-1.0.20//:quote",
+            "@rules_rust_rust_analyzer__syn-1.0.98//:syn",
+        ],
+    }),
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.clap_lex-0.2.4.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.clap_lex-0.2.4.bazel
new file mode 100644
index 0000000..f7c5b04
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.clap_lex-0.2.4.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "clap_lex",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.4",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__os_str_bytes-6.2.0//:os_str_bytes",
+        ],
+    }),
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.either-1.7.0.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.either-1.7.0.bazel
new file mode 100644
index 0000000..ea68aca
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.either-1.7.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "either",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.7.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.env_logger-0.9.0.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.env_logger-0.9.0.bazel
new file mode 100644
index 0000000..5067e58
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.env_logger-0.9.0.bazel
@@ -0,0 +1,100 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "env_logger",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "atty",
+        "default",
+        "humantime",
+        "regex",
+        "termcolor",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.9.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__atty-0.2.14//:atty",
+            "@rules_rust_rust_analyzer__humantime-2.1.0//:humantime",
+            "@rules_rust_rust_analyzer__log-0.4.17//:log",
+            "@rules_rust_rust_analyzer__regex-1.6.0//:regex",
+            "@rules_rust_rust_analyzer__termcolor-1.1.3//:termcolor",
+        ],
+    }),
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.hashbrown-0.12.3.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.hashbrown-0.12.3.bazel
new file mode 100644
index 0000000..69925a1
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.hashbrown-0.12.3.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "hashbrown",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "raw",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.12.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.heck-0.4.0.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.heck-0.4.0.bazel
new file mode 100644
index 0000000..2098d03
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.heck-0.4.0.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "heck",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.hermit-abi-0.1.19.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.hermit-abi-0.1.19.bazel
new file mode 100644
index 0000000..1bbda72
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.hermit-abi-0.1.19.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "hermit_abi",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.19",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__libc-0.2.126//:libc",
+        ],
+    }),
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.humantime-2.1.0.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.humantime-2.1.0.bazel
new file mode 100644
index 0000000..af2f5ef
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.humantime-2.1.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "humantime",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "2.1.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.indexmap-1.9.1.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.indexmap-1.9.1.bazel
new file mode 100644
index 0000000..790ccd9
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.indexmap-1.9.1.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "indexmap",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.9.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__hashbrown-0.12.3//:hashbrown",
+            "@rules_rust_rust_analyzer__indexmap-1.9.1//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "indexmap_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.9.1",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__autocfg-1.1.0//:autocfg",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "indexmap_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.itertools-0.10.3.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.itertools-0.10.3.bazel
new file mode 100644
index 0000000..e671062
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.itertools-0.10.3.bazel
@@ -0,0 +1,94 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "itertools",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "use_alloc",
+        "use_std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.10.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__either-1.7.0//:either",
+        ],
+    }),
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.itoa-1.0.2.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.itoa-1.0.2.bazel
new file mode 100644
index 0000000..18cf467
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.itoa-1.0.2.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "itoa",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.libc-0.2.126.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.libc-0.2.126.bazel
new file mode 100644
index 0000000..3b30254
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.libc-0.2.126.bazel
@@ -0,0 +1,174 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "libc",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.126",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__libc-0.2.126//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "libc_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.2.126",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "libc_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.log-0.4.17.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.log-0.4.17.bazel
new file mode 100644
index 0000000..ef5fcb9
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.log-0.4.17.bazel
@@ -0,0 +1,177 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "log",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.17",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__cfg-if-1.0.0//:cfg_if",
+            "@rules_rust_rust_analyzer__log-0.4.17//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "log_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.4.17",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "log_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.memchr-2.5.0.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.memchr-2.5.0.bazel
new file mode 100644
index 0000000..8e71063
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.memchr-2.5.0.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Unlicense/MIT
+# ])
+
+rust_library(
+    name = "memchr",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "2.5.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__memchr-2.5.0//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "memchr_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "2.5.0",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "memchr_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.once_cell-1.13.0.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.once_cell-1.13.0.bazel
new file mode 100644
index 0000000..4f4b425
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.once_cell-1.13.0.bazel
@@ -0,0 +1,94 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "once_cell",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "alloc",
+        "default",
+        "race",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.13.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.os_str_bytes-6.2.0.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.os_str_bytes-6.2.0.bazel
new file mode 100644
index 0000000..a53f242
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.os_str_bytes-6.2.0.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "os_str_bytes",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "raw_os_str",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "6.2.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.proc-macro-error-1.0.4.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.proc-macro-error-1.0.4.bazel
new file mode 100644
index 0000000..030a606
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.proc-macro-error-1.0.4.bazel
@@ -0,0 +1,185 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "proc_macro_error",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "syn",
+        "syn-error",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__proc-macro-error-attr-1.0.4//:proc_macro_error_attr",
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.4",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__proc-macro-error-1.0.4//:build_script_build",
+            "@rules_rust_rust_analyzer__proc-macro2-1.0.40//:proc_macro2",
+            "@rules_rust_rust_analyzer__quote-1.0.20//:quote",
+            "@rules_rust_rust_analyzer__syn-1.0.98//:syn",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "proc-macro-error_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "syn",
+        "syn-error",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.4",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__version_check-0.9.4//:version_check",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "proc-macro-error_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.proc-macro-error-attr-1.0.4.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.proc-macro-error-attr-1.0.4.bazel
new file mode 100644
index 0000000..45a9cb5
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.proc-macro-error-attr-1.0.4.bazel
@@ -0,0 +1,177 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_proc_macro",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_proc_macro(
+    name = "proc_macro_error_attr",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.4",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__proc-macro-error-attr-1.0.4//:build_script_build",
+            "@rules_rust_rust_analyzer__proc-macro2-1.0.40//:proc_macro2",
+            "@rules_rust_rust_analyzer__quote-1.0.20//:quote",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "proc-macro-error-attr_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.4",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__version_check-0.9.4//:version_check",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "proc-macro-error-attr_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.proc-macro2-1.0.40.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.proc-macro2-1.0.40.bazel
new file mode 100644
index 0000000..9544ed2
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.proc-macro2-1.0.40.bazel
@@ -0,0 +1,179 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "proc_macro2",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.40",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__proc-macro2-1.0.40//:build_script_build",
+            "@rules_rust_rust_analyzer__unicode-ident-1.0.2//:unicode_ident",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "proc-macro2_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.40",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "proc-macro2_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.quote-1.0.20.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.quote-1.0.20.bazel
new file mode 100644
index 0000000..9b5f548
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.quote-1.0.20.bazel
@@ -0,0 +1,179 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "quote",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.20",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__proc-macro2-1.0.40//:proc_macro2",
+            "@rules_rust_rust_analyzer__quote-1.0.20//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "quote_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.20",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "quote_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.regex-1.6.0.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.regex-1.6.0.bazel
new file mode 100644
index 0000000..84fba50
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.regex-1.6.0.bazel
@@ -0,0 +1,101 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "regex",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "aho-corasick",
+        "memchr",
+        "perf",
+        "perf-cache",
+        "perf-dfa",
+        "perf-inline",
+        "perf-literal",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.6.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__aho-corasick-0.7.18//:aho_corasick",
+            "@rules_rust_rust_analyzer__memchr-2.5.0//:memchr",
+            "@rules_rust_rust_analyzer__regex-syntax-0.6.27//:regex_syntax",
+        ],
+    }),
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.regex-syntax-0.6.27.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.regex-syntax-0.6.27.bazel
new file mode 100644
index 0000000..edd66d7
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.regex-syntax-0.6.27.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "regex_syntax",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.6.27",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.ryu-1.0.10.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.ryu-1.0.10.bazel
new file mode 100644
index 0000000..ea6e126
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.ryu-1.0.10.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 OR BSL-1.0
+# ])
+
+rust_library(
+    name = "ryu",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.10",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.serde-1.0.139.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.serde-1.0.139.bazel
new file mode 100644
index 0000000..d31617e
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.serde-1.0.139.bazel
@@ -0,0 +1,183 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "serde",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "derive",
+        "serde_derive",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__serde_derive-1.0.139//:serde_derive",
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.139",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__serde-1.0.139//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "serde_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "derive",
+        "serde_derive",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.139",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "serde_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.serde_derive-1.0.139.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.serde_derive-1.0.139.bazel
new file mode 100644
index 0000000..3be28ca
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.serde_derive-1.0.139.bazel
@@ -0,0 +1,179 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_proc_macro",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_proc_macro(
+    name = "serde_derive",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.139",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__proc-macro2-1.0.40//:proc_macro2",
+            "@rules_rust_rust_analyzer__quote-1.0.20//:quote",
+            "@rules_rust_rust_analyzer__serde_derive-1.0.139//:build_script_build",
+            "@rules_rust_rust_analyzer__syn-1.0.98//:syn",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "serde_derive_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.139",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "serde_derive_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.serde_json-1.0.82.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.serde_json-1.0.82.bazel
new file mode 100644
index 0000000..9039e2b
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.serde_json-1.0.82.bazel
@@ -0,0 +1,181 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "serde_json",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.82",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__itoa-1.0.2//:itoa",
+            "@rules_rust_rust_analyzer__ryu-1.0.10//:ryu",
+            "@rules_rust_rust_analyzer__serde-1.0.139//:serde",
+            "@rules_rust_rust_analyzer__serde_json-1.0.82//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "serde_json_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.82",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "serde_json_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.strsim-0.10.0.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.strsim-0.10.0.bazel
new file mode 100644
index 0000000..7cfa3f3
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.strsim-0.10.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "strsim",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.10.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.syn-1.0.98.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.syn-1.0.98.bazel
new file mode 100644
index 0000000..f4c648f
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.syn-1.0.98.bazel
@@ -0,0 +1,193 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "syn",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "clone-impls",
+        "default",
+        "derive",
+        "full",
+        "parsing",
+        "printing",
+        "proc-macro",
+        "quote",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.98",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__proc-macro2-1.0.40//:proc_macro2",
+            "@rules_rust_rust_analyzer__quote-1.0.20//:quote",
+            "@rules_rust_rust_analyzer__syn-1.0.98//:build_script_build",
+            "@rules_rust_rust_analyzer__unicode-ident-1.0.2//:unicode_ident",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "syn_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "clone-impls",
+        "default",
+        "derive",
+        "full",
+        "parsing",
+        "printing",
+        "proc-macro",
+        "quote",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.98",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "syn_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.termcolor-1.1.3.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.termcolor-1.1.3.bazel
new file mode 100644
index 0000000..09ff98b
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.termcolor-1.1.3.bazel
@@ -0,0 +1,100 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Unlicense OR MIT
+# ])
+
+rust_library(
+    name = "termcolor",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.1.3",
+    deps = [
+    ] + select_with_or({
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@rules_rust_rust_analyzer__winapi-util-0.1.5//:winapi_util",
+
+            # Common Deps
+        ],
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.textwrap-0.15.0.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.textwrap-0.15.0.bazel
new file mode 100644
index 0000000..1205a91
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.textwrap-0.15.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "textwrap",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.15.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.unicode-ident-1.0.2.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.unicode-ident-1.0.2.bazel
new file mode 100644
index 0000000..fec6cf6
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.unicode-ident-1.0.2.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # (MIT OR Apache-2.0) AND Unicode-DFS-2016
+# ])
+
+rust_library(
+    name = "unicode_ident",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.version_check-0.9.4.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.version_check-0.9.4.bazel
new file mode 100644
index 0000000..d277e71
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.version_check-0.9.4.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "version_check",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.9.4",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.winapi-0.3.9.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.winapi-0.3.9.bazel
new file mode 100644
index 0000000..310c379
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.winapi-0.3.9.bazel
@@ -0,0 +1,206 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "winapi",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "consoleapi",
+        "errhandlingapi",
+        "fileapi",
+        "minwinbase",
+        "minwindef",
+        "processenv",
+        "std",
+        "winbase",
+        "wincon",
+        "winerror",
+        "winnt",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.9",
+    deps = [
+    ] + select_with_or({
+        # i686-pc-windows-gnu
+        #
+        # No supported platform triples for cfg: 'i686-pc-windows-gnu'
+        # Skipped dependencies: [{"id":"winapi-i686-pc-windows-gnu 0.4.0","target":"winapi_i686_pc_windows_gnu"}]
+        #
+        # x86_64-pc-windows-gnu
+        #
+        # No supported platform triples for cfg: 'x86_64-pc-windows-gnu'
+        # Skipped dependencies: [{"id":"winapi-x86_64-pc-windows-gnu 0.4.0","target":"winapi_x86_64_pc_windows_gnu"}]
+        #
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__winapi-0.3.9//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "winapi_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "consoleapi",
+        "errhandlingapi",
+        "fileapi",
+        "minwinbase",
+        "minwindef",
+        "processenv",
+        "std",
+        "winbase",
+        "wincon",
+        "winerror",
+        "winnt",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.3.9",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "winapi_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
new file mode 100644
index 0000000..a6680ab
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
@@ -0,0 +1,174 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "winapi_i686_pc_windows_gnu",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__winapi-i686-pc-windows-gnu-0.4.0//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "winapi-i686-pc-windows-gnu_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.4.0",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "winapi-i686-pc-windows-gnu_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.winapi-util-0.1.5.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.winapi-util-0.1.5.bazel
new file mode 100644
index 0000000..4c0fd1a
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.winapi-util-0.1.5.bazel
@@ -0,0 +1,100 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Unlicense/MIT
+# ])
+
+rust_library(
+    name = "winapi_util",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.5",
+    deps = [
+    ] + select_with_or({
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@rules_rust_rust_analyzer__winapi-0.3.9//:winapi",
+
+            # Common Deps
+        ],
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel b/tools/rust_analyzer/3rdparty/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
new file mode 100644
index 0000000..a62ba1e
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
@@ -0,0 +1,174 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "winapi_x86_64_pc_windows_gnu",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__winapi-x86_64-pc-windows-gnu-0.4.0//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "winapi-x86_64-pc-windows-gnu_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.4.0",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "winapi-x86_64-pc-windows-gnu_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/tools/rust_analyzer/3rdparty/crates/crates.bzl b/tools/rust_analyzer/3rdparty/crates/crates.bzl
new file mode 100644
index 0000000..db27807
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/crates.bzl
@@ -0,0 +1,25 @@
+###############################################################################
+# @generated
+# This file is auto-generated by the cargo-bazel tool.
+#
+# DO NOT MODIFY: Local changes may be replaced in future executions.
+###############################################################################
+"""Rules for defining repositories for remote `crates_vendor` repositories"""
+
+load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:crates_vendor.bzl", "crates_vendor_remote_repository")
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//tools/rust_analyzer/3rdparty/crates:defs.bzl", _crate_repositories = "crate_repositories")
+
+def crate_repositories():
+    maybe(
+        crates_vendor_remote_repository,
+        name = "rules_rust_rust_analyzer",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.bazel"),
+        defs_module = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:defs.bzl"),
+    )
+
+    _crate_repositories()
diff --git a/tools/rust_analyzer/3rdparty/crates/defs.bzl b/tools/rust_analyzer/3rdparty/crates/defs.bzl
new file mode 100644
index 0000000..f7e6b3c
--- /dev/null
+++ b/tools/rust_analyzer/3rdparty/crates/defs.bzl
@@ -0,0 +1,802 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+"""
+# `crates_repository` API
+
+- [aliases](#aliases)
+- [crate_deps](#crate_deps)
+- [all_crate_deps](#all_crate_deps)
+- [crate_repositories](#crate_repositories)
+
+"""
+
+load("@bazel_skylib//lib:selects.bzl", "selects")
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
+
+###############################################################################
+# MACROS API
+###############################################################################
+
+# An identifier that represent common dependencies (unconditional).
+_COMMON_CONDITION = ""
+
+def _flatten_dependency_maps(all_dependency_maps):
+    """Flatten a list of dependency maps into one dictionary.
+
+    Dependency maps have the following structure:
+
+    ```python
+    DEPENDENCIES_MAP = {
+        # The first key in the map is a Bazel package
+        # name of the workspace this file is defined in.
+        "workspace_member_package": {
+
+            # Not all dependnecies are supported for all platforms.
+            # the condition key is the condition required to be true
+            # on the host platform.
+            "condition": {
+
+                # An alias to a crate target.     # The label of the crate target the
+                # Aliases are only crate names.   # package name refers to.
+                "package_name":                   "@full//:label",
+            }
+        }
+    }
+    ```
+
+    Args:
+        all_dependency_maps (list): A list of dicts as described above
+
+    Returns:
+        dict: A dictionary as described above
+    """
+    dependencies = {}
+
+    for workspace_deps_map in all_dependency_maps:
+        for pkg_name, conditional_deps_map in workspace_deps_map.items():
+            if pkg_name not in dependencies:
+                non_frozen_map = dict()
+                for key, values in conditional_deps_map.items():
+                    non_frozen_map.update({key: dict(values.items())})
+                dependencies.setdefault(pkg_name, non_frozen_map)
+                continue
+
+            for condition, deps_map in conditional_deps_map.items():
+                # If the condition has not been recorded, do so and continue
+                if condition not in dependencies[pkg_name]:
+                    dependencies[pkg_name].setdefault(condition, dict(deps_map.items()))
+                    continue
+
+                # Alert on any miss-matched dependencies
+                inconsistent_entries = []
+                for crate_name, crate_label in deps_map.items():
+                    existing = dependencies[pkg_name][condition].get(crate_name)
+                    if existing and existing != crate_label:
+                        inconsistent_entries.append((crate_name, existing, crate_label))
+                    dependencies[pkg_name][condition].update({crate_name: crate_label})
+
+    return dependencies
+
+def crate_deps(deps, package_name = None):
+    """Finds the fully qualified label of the requested crates for the package where this macro is called.
+
+    Args:
+        deps (list): The desired list of crate targets.
+        package_name (str, optional): The package name of the set of dependencies to look up.
+            Defaults to `native.package_name()`.
+
+    Returns:
+        list: A list of labels to generated rust targets (str)
+    """
+
+    if not deps:
+        return []
+
+    if package_name == None:
+        package_name = native.package_name()
+
+    # Join both sets of dependencies
+    dependencies = _flatten_dependency_maps([
+        _NORMAL_DEPENDENCIES,
+        _NORMAL_DEV_DEPENDENCIES,
+        _PROC_MACRO_DEPENDENCIES,
+        _PROC_MACRO_DEV_DEPENDENCIES,
+        _BUILD_DEPENDENCIES,
+        _BUILD_PROC_MACRO_DEPENDENCIES,
+    ]).pop(package_name, {})
+
+    # Combine all conditional packages so we can easily index over a flat list
+    # TODO: Perhaps this should actually return select statements and maintain
+    # the conditionals of the dependencies
+    flat_deps = {}
+    for deps_set in dependencies.values():
+        for crate_name, crate_label in deps_set.items():
+            flat_deps.update({crate_name: crate_label})
+
+    missing_crates = []
+    crate_targets = []
+    for crate_target in deps:
+        if crate_target not in flat_deps:
+            missing_crates.append(crate_target)
+        else:
+            crate_targets.append(flat_deps[crate_target])
+
+    if missing_crates:
+        fail("Could not find crates `{}` among dependencies of `{}`. Available dependencies were `{}`".format(
+            missing_crates,
+            package_name,
+            dependencies,
+        ))
+
+    return crate_targets
+
+def all_crate_deps(
+        normal = False,
+        normal_dev = False,
+        proc_macro = False,
+        proc_macro_dev = False,
+        build = False,
+        build_proc_macro = False,
+        package_name = None):
+    """Finds the fully qualified label of all requested direct crate dependencies \
+    for the package where this macro is called.
+
+    If no parameters are set, all normal dependencies are returned. Setting any one flag will
+    otherwise impact the contents of the returned list.
+
+    Args:
+        normal (bool, optional): If True, normal dependencies are included in the
+            output list.
+        normal_dev (bool, optional): If True, normla dev dependencies will be
+            included in the output list..
+        proc_macro (bool, optional): If True, proc_macro dependencies are included
+            in the output list.
+        proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are
+            included in the output list.
+        build (bool, optional): If True, build dependencies are included
+            in the output list.
+        build_proc_macro (bool, optional): If True, build proc_macro dependencies are
+            included in the output list.
+        package_name (str, optional): The package name of the set of dependencies to look up.
+            Defaults to `native.package_name()` when unset.
+
+    Returns:
+        list: A list of labels to generated rust targets (str)
+    """
+
+    if package_name == None:
+        package_name = native.package_name()
+
+    # Determine the relevant maps to use
+    all_dependency_maps = []
+    if normal:
+        all_dependency_maps.append(_NORMAL_DEPENDENCIES)
+    if normal_dev:
+        all_dependency_maps.append(_NORMAL_DEV_DEPENDENCIES)
+    if proc_macro:
+        all_dependency_maps.append(_PROC_MACRO_DEPENDENCIES)
+    if proc_macro_dev:
+        all_dependency_maps.append(_PROC_MACRO_DEV_DEPENDENCIES)
+    if build:
+        all_dependency_maps.append(_BUILD_DEPENDENCIES)
+    if build_proc_macro:
+        all_dependency_maps.append(_BUILD_PROC_MACRO_DEPENDENCIES)
+
+    # Default to always using normal dependencies
+    if not all_dependency_maps:
+        all_dependency_maps.append(_NORMAL_DEPENDENCIES)
+
+    dependencies = _flatten_dependency_maps(all_dependency_maps).pop(package_name, None)
+
+    if not dependencies:
+        if dependencies == None:
+            fail("Tried to get all_crate_deps for package " + package_name + " but that package had no Cargo.toml file")
+        else:
+            return []
+
+    crate_deps = list(dependencies.pop(_COMMON_CONDITION, {}).values())
+    for condition, deps in dependencies.items():
+        crate_deps += selects.with_or({_CONDITIONS[condition]: deps.values()})
+
+    return crate_deps
+
+def aliases(
+        normal = False,
+        normal_dev = False,
+        proc_macro = False,
+        proc_macro_dev = False,
+        build = False,
+        build_proc_macro = False,
+        package_name = None):
+    """Produces a map of Crate alias names to their original label
+
+    If no dependency kinds are specified, `normal` and `proc_macro` are used by default.
+    Setting any one flag will otherwise determine the contents of the returned dict.
+
+    Args:
+        normal (bool, optional): If True, normal dependencies are included in the
+            output list.
+        normal_dev (bool, optional): If True, normla dev dependencies will be
+            included in the output list..
+        proc_macro (bool, optional): If True, proc_macro dependencies are included
+            in the output list.
+        proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are
+            included in the output list.
+        build (bool, optional): If True, build dependencies are included
+            in the output list.
+        build_proc_macro (bool, optional): If True, build proc_macro dependencies are
+            included in the output list.
+        package_name (str, optional): The package name of the set of dependencies to look up.
+            Defaults to `native.package_name()` when unset.
+
+    Returns:
+        dict: The aliases of all associated packages
+    """
+    if package_name == None:
+        package_name = native.package_name()
+
+    # Determine the relevant maps to use
+    all_aliases_maps = []
+    if normal:
+        all_aliases_maps.append(_NORMAL_ALIASES)
+    if normal_dev:
+        all_aliases_maps.append(_NORMAL_DEV_ALIASES)
+    if proc_macro:
+        all_aliases_maps.append(_PROC_MACRO_ALIASES)
+    if proc_macro_dev:
+        all_aliases_maps.append(_PROC_MACRO_DEV_ALIASES)
+    if build:
+        all_aliases_maps.append(_BUILD_ALIASES)
+    if build_proc_macro:
+        all_aliases_maps.append(_BUILD_PROC_MACRO_ALIASES)
+
+    # Default to always using normal aliases
+    if not all_aliases_maps:
+        all_aliases_maps.append(_NORMAL_ALIASES)
+        all_aliases_maps.append(_PROC_MACRO_ALIASES)
+
+    aliases = _flatten_dependency_maps(all_aliases_maps).pop(package_name, None)
+
+    if not aliases:
+        return dict()
+
+    common_items = aliases.pop(_COMMON_CONDITION, {}).items()
+
+    # If there are only common items in the dictionary, immediately return them
+    if not len(aliases.keys()) == 1:
+        return dict(common_items)
+
+    # Build a single select statement where each conditional has accounted for the
+    # common set of aliases.
+    crate_aliases = {"//conditions:default": common_items}
+    for condition, deps in aliases.items():
+        condition_triples = _CONDITIONS[condition]
+        if condition_triples in crate_aliases:
+            crate_aliases[condition_triples].update(deps)
+        else:
+            crate_aliases.update({_CONDITIONS[condition]: dict(deps.items() + common_items)})
+
+    return selects.with_or(crate_aliases)
+
+###############################################################################
+# WORKSPACE MEMBER DEPS AND ALIASES
+###############################################################################
+
+_NORMAL_DEPENDENCIES = {
+    "": {
+        _COMMON_CONDITION: {
+            "anyhow": "@rules_rust_rust_analyzer__anyhow-1.0.58//:anyhow",
+            "clap": "@rules_rust_rust_analyzer__clap-3.2.12//:clap",
+            "env_logger": "@rules_rust_rust_analyzer__env_logger-0.9.0//:env_logger",
+            "itertools": "@rules_rust_rust_analyzer__itertools-0.10.3//:itertools",
+            "log": "@rules_rust_rust_analyzer__log-0.4.17//:log",
+            "serde": "@rules_rust_rust_analyzer__serde-1.0.139//:serde",
+            "serde_json": "@rules_rust_rust_analyzer__serde_json-1.0.82//:serde_json",
+        },
+    },
+}
+
+_NORMAL_ALIASES = {
+    "": {
+        _COMMON_CONDITION: {
+        },
+    },
+}
+
+_NORMAL_DEV_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_NORMAL_DEV_ALIASES = {
+    "": {
+    },
+}
+
+_PROC_MACRO_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_PROC_MACRO_ALIASES = {
+    "": {
+    },
+}
+
+_PROC_MACRO_DEV_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_PROC_MACRO_DEV_ALIASES = {
+    "": {
+    },
+}
+
+_BUILD_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_BUILD_ALIASES = {
+    "": {
+    },
+}
+
+_BUILD_PROC_MACRO_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_BUILD_PROC_MACRO_ALIASES = {
+    "": {
+    },
+}
+
+_CONDITIONS = {
+    "cfg(target_os = \"hermit\")": [],
+    "cfg(unix)": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-apple-ios-sim", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-linux-androideabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
+    "cfg(windows)": ["i686-pc-windows-msvc", "x86_64-pc-windows-msvc"],
+    "i686-pc-windows-gnu": [],
+    "x86_64-pc-windows-gnu": [],
+}
+
+###############################################################################
+
+def crate_repositories():
+    """A macro for defining repositories for all generated crates"""
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__aho-corasick-0.7.18",
+        sha256 = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/aho-corasick/0.7.18/download"],
+        strip_prefix = "aho-corasick-0.7.18",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.aho-corasick-0.7.18.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__anyhow-1.0.58",
+        sha256 = "bb07d2053ccdbe10e2af2995a2f116c1330396493dc1269f6a91d0ae82e19704",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/anyhow/1.0.58/download"],
+        strip_prefix = "anyhow-1.0.58",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.anyhow-1.0.58.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__atty-0.2.14",
+        sha256 = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/atty/0.2.14/download"],
+        strip_prefix = "atty-0.2.14",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.atty-0.2.14.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__autocfg-1.1.0",
+        sha256 = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/autocfg/1.1.0/download"],
+        strip_prefix = "autocfg-1.1.0",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.autocfg-1.1.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__bitflags-1.3.2",
+        sha256 = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/bitflags/1.3.2/download"],
+        strip_prefix = "bitflags-1.3.2",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.bitflags-1.3.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__cfg-if-1.0.0",
+        sha256 = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/cfg-if/1.0.0/download"],
+        strip_prefix = "cfg-if-1.0.0",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.cfg-if-1.0.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__clap-3.2.12",
+        sha256 = "ab8b79fe3946ceb4a0b1c080b4018992b8d27e9ff363644c1c9b6387c854614d",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/clap/3.2.12/download"],
+        strip_prefix = "clap-3.2.12",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.clap-3.2.12.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__clap_derive-3.2.7",
+        sha256 = "759bf187376e1afa7b85b959e6a664a3e7a95203415dba952ad19139e798f902",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/clap_derive/3.2.7/download"],
+        strip_prefix = "clap_derive-3.2.7",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.clap_derive-3.2.7.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__clap_lex-0.2.4",
+        sha256 = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/clap_lex/0.2.4/download"],
+        strip_prefix = "clap_lex-0.2.4",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.clap_lex-0.2.4.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__either-1.7.0",
+        sha256 = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/either/1.7.0/download"],
+        strip_prefix = "either-1.7.0",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.either-1.7.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__env_logger-0.9.0",
+        sha256 = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/env_logger/0.9.0/download"],
+        strip_prefix = "env_logger-0.9.0",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.env_logger-0.9.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__hashbrown-0.12.3",
+        sha256 = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/hashbrown/0.12.3/download"],
+        strip_prefix = "hashbrown-0.12.3",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.hashbrown-0.12.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__heck-0.4.0",
+        sha256 = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/heck/0.4.0/download"],
+        strip_prefix = "heck-0.4.0",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.heck-0.4.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__hermit-abi-0.1.19",
+        sha256 = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/hermit-abi/0.1.19/download"],
+        strip_prefix = "hermit-abi-0.1.19",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.hermit-abi-0.1.19.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__humantime-2.1.0",
+        sha256 = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/humantime/2.1.0/download"],
+        strip_prefix = "humantime-2.1.0",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.humantime-2.1.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__indexmap-1.9.1",
+        sha256 = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/indexmap/1.9.1/download"],
+        strip_prefix = "indexmap-1.9.1",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.indexmap-1.9.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__itertools-0.10.3",
+        sha256 = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/itertools/0.10.3/download"],
+        strip_prefix = "itertools-0.10.3",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.itertools-0.10.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__itoa-1.0.2",
+        sha256 = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/itoa/1.0.2/download"],
+        strip_prefix = "itoa-1.0.2",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.itoa-1.0.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__libc-0.2.126",
+        sha256 = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/libc/0.2.126/download"],
+        strip_prefix = "libc-0.2.126",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.libc-0.2.126.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__log-0.4.17",
+        sha256 = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/log/0.4.17/download"],
+        strip_prefix = "log-0.4.17",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.log-0.4.17.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__memchr-2.5.0",
+        sha256 = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/memchr/2.5.0/download"],
+        strip_prefix = "memchr-2.5.0",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.memchr-2.5.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__once_cell-1.13.0",
+        sha256 = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/once_cell/1.13.0/download"],
+        strip_prefix = "once_cell-1.13.0",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.once_cell-1.13.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__os_str_bytes-6.2.0",
+        sha256 = "648001efe5d5c0102d8cea768e348da85d90af8ba91f0bea908f157951493cd4",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/os_str_bytes/6.2.0/download"],
+        strip_prefix = "os_str_bytes-6.2.0",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.os_str_bytes-6.2.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__proc-macro-error-1.0.4",
+        sha256 = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/proc-macro-error/1.0.4/download"],
+        strip_prefix = "proc-macro-error-1.0.4",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.proc-macro-error-1.0.4.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__proc-macro-error-attr-1.0.4",
+        sha256 = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/proc-macro-error-attr/1.0.4/download"],
+        strip_prefix = "proc-macro-error-attr-1.0.4",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.proc-macro-error-attr-1.0.4.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__proc-macro2-1.0.40",
+        sha256 = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/proc-macro2/1.0.40/download"],
+        strip_prefix = "proc-macro2-1.0.40",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.proc-macro2-1.0.40.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__quote-1.0.20",
+        sha256 = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/quote/1.0.20/download"],
+        strip_prefix = "quote-1.0.20",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.quote-1.0.20.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__regex-1.6.0",
+        sha256 = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/regex/1.6.0/download"],
+        strip_prefix = "regex-1.6.0",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.regex-1.6.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__regex-syntax-0.6.27",
+        sha256 = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/regex-syntax/0.6.27/download"],
+        strip_prefix = "regex-syntax-0.6.27",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.regex-syntax-0.6.27.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__ryu-1.0.10",
+        sha256 = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/ryu/1.0.10/download"],
+        strip_prefix = "ryu-1.0.10",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.ryu-1.0.10.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__serde-1.0.139",
+        sha256 = "0171ebb889e45aa68b44aee0859b3eede84c6f5f5c228e6f140c0b2a0a46cad6",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/serde/1.0.139/download"],
+        strip_prefix = "serde-1.0.139",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.serde-1.0.139.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__serde_derive-1.0.139",
+        sha256 = "dc1d3230c1de7932af58ad8ffbe1d784bd55efd5a9d84ac24f69c72d83543dfb",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/serde_derive/1.0.139/download"],
+        strip_prefix = "serde_derive-1.0.139",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.serde_derive-1.0.139.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__serde_json-1.0.82",
+        sha256 = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/serde_json/1.0.82/download"],
+        strip_prefix = "serde_json-1.0.82",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.serde_json-1.0.82.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__strsim-0.10.0",
+        sha256 = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/strsim/0.10.0/download"],
+        strip_prefix = "strsim-0.10.0",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.strsim-0.10.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__syn-1.0.98",
+        sha256 = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/syn/1.0.98/download"],
+        strip_prefix = "syn-1.0.98",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.syn-1.0.98.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__termcolor-1.1.3",
+        sha256 = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/termcolor/1.1.3/download"],
+        strip_prefix = "termcolor-1.1.3",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.termcolor-1.1.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__textwrap-0.15.0",
+        sha256 = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/textwrap/0.15.0/download"],
+        strip_prefix = "textwrap-0.15.0",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.textwrap-0.15.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__unicode-ident-1.0.2",
+        sha256 = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/unicode-ident/1.0.2/download"],
+        strip_prefix = "unicode-ident-1.0.2",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.unicode-ident-1.0.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__version_check-0.9.4",
+        sha256 = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/version_check/0.9.4/download"],
+        strip_prefix = "version_check-0.9.4",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.version_check-0.9.4.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__winapi-0.3.9",
+        sha256 = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/winapi/0.3.9/download"],
+        strip_prefix = "winapi-0.3.9",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.winapi-0.3.9.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__winapi-i686-pc-windows-gnu-0.4.0",
+        sha256 = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download"],
+        strip_prefix = "winapi-i686-pc-windows-gnu-0.4.0",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__winapi-util-0.1.5",
+        sha256 = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/winapi-util/0.1.5/download"],
+        strip_prefix = "winapi-util-0.1.5",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.winapi-util-0.1.5.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__winapi-x86_64-pc-windows-gnu-0.4.0",
+        sha256 = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download"],
+        strip_prefix = "winapi-x86_64-pc-windows-gnu-0.4.0",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel"),
+    )
diff --git a/tools/rust_analyzer/BUILD.bazel b/tools/rust_analyzer/BUILD.bazel
index d73ea63..54f5436 100644
--- a/tools/rust_analyzer/BUILD.bazel
+++ b/tools/rust_analyzer/BUILD.bazel
@@ -1,3 +1,4 @@
+load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
 load("//rust:defs.bzl", "rust_binary", "rust_clippy", "rust_library", "rust_test")
 load("//tools:tool_utils.bzl", "aspect_repository")
 
@@ -11,10 +12,10 @@
     visibility = ["//visibility:public"],
     deps = [
         ":gen_rust_project_lib",
-        "//tools/rust_analyzer/raze:anyhow",
-        "//tools/rust_analyzer/raze:env_logger",
-        "//tools/rust_analyzer/raze:log",
-        "//tools/rust_analyzer/raze:structopt",
+        "//tools/rust_analyzer/3rdparty/crates:anyhow",
+        "//tools/rust_analyzer/3rdparty/crates:clap",
+        "//tools/rust_analyzer/3rdparty/crates:env_logger",
+        "//tools/rust_analyzer/3rdparty/crates:log",
         "//util/label",
     ],
 )
@@ -31,10 +32,10 @@
     edition = "2018",
     deps = [
         "//tools/runfiles",
-        "//tools/rust_analyzer/raze:anyhow",
-        "//tools/rust_analyzer/raze:log",
-        "//tools/rust_analyzer/raze:serde",
-        "//tools/rust_analyzer/raze:serde_json",
+        "//tools/rust_analyzer/3rdparty/crates:anyhow",
+        "//tools/rust_analyzer/3rdparty/crates:log",
+        "//tools/rust_analyzer/3rdparty/crates:serde",
+        "//tools/rust_analyzer/3rdparty/crates:serde_json",
     ],
 )
 
@@ -42,7 +43,7 @@
     name = "gen_rust_project_lib_test",
     crate = ":gen_rust_project_lib",
     deps = [
-        "//tools/rust_analyzer/raze:itertools",
+        "//tools/rust_analyzer/3rdparty/crates:itertools",
     ],
 )
 
@@ -54,3 +55,10 @@
         ":gen_rust_project",
     ],
 )
+
+bzl_library(
+    name = "bzl_lib",
+    srcs = glob(["**/*.bzl"]),
+    visibility = ["//visibility:public"],
+    deps = ["//tools/rust_analyzer/3rdparty:bzl_lib"],
+)
diff --git a/tools/rust_analyzer/aquery.rs b/tools/rust_analyzer/aquery.rs
index 12164ab..7a04599 100644
--- a/tools/rust_analyzer/aquery.rs
+++ b/tools/rust_analyzer/aquery.rs
@@ -164,11 +164,14 @@
 /// a rust_test depends on a rust_library, for example.
 fn consolidate_crate_specs(crate_specs: Vec<CrateSpec>) -> anyhow::Result<BTreeSet<CrateSpec>> {
     let mut consolidated_specs: BTreeMap<String, CrateSpec> = BTreeMap::new();
-    for spec in crate_specs.into_iter() {
+    for mut spec in crate_specs.into_iter() {
         log::debug!("{:?}", spec);
         if let Some(existing) = consolidated_specs.get_mut(&spec.crate_id) {
             existing.deps.extend(spec.deps);
 
+            spec.cfg.retain(|cfg| !existing.cfg.contains(cfg));
+            existing.cfg.extend(spec.cfg);
+
             // display_name should match the library's crate name because Rust Analyzer
             // seems to use display_name for matching crate entries in rust-project.json
             // against symbols in source files. For more details, see
diff --git a/tools/rust_analyzer/deps.bzl b/tools/rust_analyzer/deps.bzl
index 0d2b4a5..c957340 100644
--- a/tools/rust_analyzer/deps.bzl
+++ b/tools/rust_analyzer/deps.bzl
@@ -2,10 +2,12 @@
 The dependencies for running the gen_rust_project binary.
 """
 
-load("//tools/rust_analyzer/raze:crates.bzl", "rules_rust_tools_rust_analyzer_fetch_remote_crates")
+load("//tools/rust_analyzer/3rdparty/crates:defs.bzl", "crate_repositories")
 
-def rust_analyzer_deps():
-    rules_rust_tools_rust_analyzer_fetch_remote_crates()
+def rust_analyzer_dependencies():
+    """Define dependencies of the `rust_analyzer` Bazel tools"""
+    crate_repositories()
 
 # For legacy support
-gen_rust_project_dependencies = rust_analyzer_deps
+gen_rust_project_dependencies = rust_analyzer_dependencies
+rust_analyzer_deps = rust_analyzer_dependencies
diff --git a/tools/rust_analyzer/lib.rs b/tools/rust_analyzer/lib.rs
index 68db7e0..61f9688 100644
--- a/tools/rust_analyzer/lib.rs
+++ b/tools/rust_analyzer/lib.rs
@@ -45,6 +45,7 @@
     rules_rust_name: &impl AsRef<str>,
     targets: &[String],
     execution_root: impl AsRef<Path>,
+    output_base: impl AsRef<Path>,
     rust_project_path: impl AsRef<Path>,
 ) -> anyhow::Result<()> {
     let crate_specs = aquery::get_crate_specs(
@@ -72,6 +73,7 @@
     rust_project::write_rust_project(
         rust_project_path.as_ref(),
         execution_root.as_ref(),
+        output_base.as_ref(),
         &rust_project,
     )?;
 
diff --git a/tools/rust_analyzer/main.rs b/tools/rust_analyzer/main.rs
index 2bad0e9..6f13d91 100644
--- a/tools/rust_analyzer/main.rs
+++ b/tools/rust_analyzer/main.rs
@@ -4,9 +4,9 @@
 use std::process::Command;
 
 use anyhow::anyhow;
+use clap::Parser;
 use gen_rust_project_lib::generate_crate_info;
 use gen_rust_project_lib::write_rust_project;
-use structopt::StructOpt;
 
 // TODO(david): This shells out to an expected rule in the workspace root //:rust_analyzer that the user must define.
 // It would be more convenient if it could automatically discover all the rust code in the workspace if this target
@@ -26,6 +26,11 @@
         .as_ref()
         .expect("failed to find execution root, is --execution-root set correctly?");
 
+    let output_base = config
+        .output_base
+        .as_ref()
+        .expect("failed to find output base, is -output-base set correctly?");
+
     let rules_rust_name = env!("ASPECT_REPOSITORY");
 
     // Generate the crate specs.
@@ -43,6 +48,7 @@
         &rules_rust_name,
         &config.targets,
         &execution_root,
+        &output_base,
         &workspace_root.join("rust-project.json"),
     )?;
 
@@ -51,15 +57,7 @@
 
 // Parse the configuration flags and supplement with bazel info as needed.
 fn parse_config() -> anyhow::Result<Config> {
-    let mut config = Config::from_args();
-
-    // Ensure we know the workspace. If we are under `bazel run`, the
-    // BUILD_WORKSPACE_DIR environment variable will be present.
-    if config.workspace.is_none() {
-        if let Some(ws_dir) = env::var_os("BUILD_WORKSPACE_DIRECTORY") {
-            config.workspace = Some(PathBuf::from(ws_dir));
-        }
-    }
+    let mut config = Config::parse();
 
     if config.workspace.is_some() && config.execution_root.is_some() {
         return Ok(config);
@@ -97,24 +95,32 @@
     if config.execution_root.is_none() {
         config.execution_root = bazel_info.get("execution_root").map(Into::into);
     }
+    if config.output_base.is_none() {
+        config.output_base = bazel_info.get("output_base").map(Into::into);
+    }
 
     Ok(config)
 }
 
-#[derive(Debug, StructOpt)]
+#[derive(Debug, Parser)]
 struct Config {
-    // If not specified, uses the result of `bazel info workspace`.
-    #[structopt(long)]
+    /// The path to the Bazel workspace directory. If not specified, uses the result of `bazel info workspace`.
+    #[clap(long, env = "BUILD_WORKSPACE_DIRECTORY")]
     workspace: Option<PathBuf>,
 
-    // If not specified, uses the result of `bazel info execution_root`.
-    #[structopt(long)]
+    /// The path to the Bazel execution root. If not specified, uses the result of `bazel info execution_root`.
+    #[clap(long)]
     execution_root: Option<PathBuf>,
 
-    #[structopt(long, default_value = "bazel")]
+    /// The path to the Bazel output user root. If not specified, uses the result of `bazel info output_base`.
+    #[clap(long, env = "OUTPUT_BASE")]
+    output_base: Option<PathBuf>,
+
+    /// The path to a Bazel binary
+    #[clap(long, default_value = "bazel")]
     bazel: PathBuf,
 
-    // Space separated list of target patterns that comes after all other args.
-    #[structopt(default_value = "@//...")]
+    /// Space separated list of target patterns that comes after all other args.
+    #[clap(default_value = "@//...")]
     targets: Vec<String>,
 }
diff --git a/tools/rust_analyzer/raze/BUILD.bazel b/tools/rust_analyzer/raze/BUILD.bazel
deleted file mode 100644
index a494da4..0000000
--- a/tools/rust_analyzer/raze/BUILD.bazel
+++ /dev/null
@@ -1,84 +0,0 @@
-"""
-@generated
-cargo-raze generated Bazel file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-package(default_visibility = ["//visibility:public"])
-
-licenses([
-    "notice",  # See individual crates for specific licenses
-])
-
-# Aliased targets
-alias(
-    name = "anyhow",
-    actual = "@rules_rust_tools_rust_analyzer__anyhow__1_0_45//:anyhow",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "env_logger",
-    actual = "@rules_rust_tools_rust_analyzer__env_logger__0_9_0//:env_logger",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "itertools",
-    actual = "@rules_rust_tools_rust_analyzer__itertools__0_10_1//:itertools",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "log",
-    actual = "@rules_rust_tools_rust_analyzer__log__0_4_14//:log",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "serde",
-    actual = "@rules_rust_tools_rust_analyzer__serde__1_0_130//:serde",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "serde_json",
-    actual = "@rules_rust_tools_rust_analyzer__serde_json__1_0_69//:serde_json",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "structopt",
-    actual = "@rules_rust_tools_rust_analyzer__structopt__0_3_25//:structopt",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-# Export file for Stardoc support
-exports_files(
-    [
-        "crates.bzl",
-    ],
-    visibility = ["//visibility:public"],
-)
diff --git a/tools/rust_analyzer/raze/Cargo.toml b/tools/rust_analyzer/raze/Cargo.toml
deleted file mode 100644
index 4a9b0ee..0000000
--- a/tools/rust_analyzer/raze/Cargo.toml
+++ /dev/null
@@ -1,26 +0,0 @@
-[package]
-name = "compile_with_bazel"
-version = "0.0.0"
-edition="2018"
-
-[lib]
-path = "fake_lib.rs"
-
-[dependencies]
-anyhow = "1.0"
-log = "0.4"
-env_logger = "0.9"
-serde = { version = "1.0", features = ["derive"] } 
-serde_json = "1.0"
-structopt = "0.3"
-
-[dev-dependencies]
-itertools = "0.10"
-
-[package.metadata.raze]
-genmode = "Remote"
-workspace_path = "//tools/rust_analyzer/raze"
-gen_workspace_prefix = "rules_rust_tools_rust_analyzer"
-rust_rules_workspace_name = "rules_rust"
-package_aliases_dir = "."
-default_gen_buildrs = true
diff --git a/tools/rust_analyzer/raze/crates.bzl b/tools/rust_analyzer/raze/crates.bzl
deleted file mode 100644
index 336972e..0000000
--- a/tools/rust_analyzer/raze/crates.bzl
+++ /dev/null
@@ -1,442 +0,0 @@
-"""
-@generated
-cargo-raze generated Bazel file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-load("@bazel_tools//tools/build_defs/repo:git.bzl", "new_git_repository")  # buildifier: disable=load
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")  # buildifier: disable=load
-load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")  # buildifier: disable=load
-
-def rules_rust_tools_rust_analyzer_fetch_remote_crates():
-    """This function defines a collection of repos and should be called in a WORKSPACE file"""
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__aho_corasick__0_7_18",
-        url = "https://crates.io/api/v1/crates/aho-corasick/0.7.18/download",
-        type = "tar.gz",
-        sha256 = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f",
-        strip_prefix = "aho-corasick-0.7.18",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.aho-corasick-0.7.18.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__ansi_term__0_11_0",
-        url = "https://crates.io/api/v1/crates/ansi_term/0.11.0/download",
-        type = "tar.gz",
-        sha256 = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b",
-        strip_prefix = "ansi_term-0.11.0",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.ansi_term-0.11.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__anyhow__1_0_45",
-        url = "https://crates.io/api/v1/crates/anyhow/1.0.45/download",
-        type = "tar.gz",
-        sha256 = "ee10e43ae4a853c0a3591d4e2ada1719e553be18199d9da9d4a83f5927c2f5c7",
-        strip_prefix = "anyhow-1.0.45",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.anyhow-1.0.45.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__atty__0_2_14",
-        url = "https://crates.io/api/v1/crates/atty/0.2.14/download",
-        type = "tar.gz",
-        sha256 = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8",
-        strip_prefix = "atty-0.2.14",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.atty-0.2.14.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__bitflags__1_3_2",
-        url = "https://crates.io/api/v1/crates/bitflags/1.3.2/download",
-        type = "tar.gz",
-        sha256 = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a",
-        strip_prefix = "bitflags-1.3.2",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.bitflags-1.3.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__cfg_if__1_0_0",
-        url = "https://crates.io/api/v1/crates/cfg-if/1.0.0/download",
-        type = "tar.gz",
-        sha256 = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd",
-        strip_prefix = "cfg-if-1.0.0",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.cfg-if-1.0.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__clap__2_33_3",
-        url = "https://crates.io/api/v1/crates/clap/2.33.3/download",
-        type = "tar.gz",
-        sha256 = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002",
-        strip_prefix = "clap-2.33.3",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.clap-2.33.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__either__1_6_1",
-        url = "https://crates.io/api/v1/crates/either/1.6.1/download",
-        type = "tar.gz",
-        sha256 = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457",
-        strip_prefix = "either-1.6.1",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.either-1.6.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__env_logger__0_9_0",
-        url = "https://crates.io/api/v1/crates/env_logger/0.9.0/download",
-        type = "tar.gz",
-        sha256 = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3",
-        strip_prefix = "env_logger-0.9.0",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.env_logger-0.9.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__heck__0_3_3",
-        url = "https://crates.io/api/v1/crates/heck/0.3.3/download",
-        type = "tar.gz",
-        sha256 = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c",
-        strip_prefix = "heck-0.3.3",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.heck-0.3.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__hermit_abi__0_1_19",
-        url = "https://crates.io/api/v1/crates/hermit-abi/0.1.19/download",
-        type = "tar.gz",
-        sha256 = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33",
-        strip_prefix = "hermit-abi-0.1.19",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.hermit-abi-0.1.19.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__humantime__2_1_0",
-        url = "https://crates.io/api/v1/crates/humantime/2.1.0/download",
-        type = "tar.gz",
-        sha256 = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4",
-        strip_prefix = "humantime-2.1.0",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.humantime-2.1.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__itertools__0_10_1",
-        url = "https://crates.io/api/v1/crates/itertools/0.10.1/download",
-        type = "tar.gz",
-        sha256 = "69ddb889f9d0d08a67338271fa9b62996bc788c7796a5c18cf057420aaed5eaf",
-        strip_prefix = "itertools-0.10.1",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.itertools-0.10.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__itoa__0_4_8",
-        url = "https://crates.io/api/v1/crates/itoa/0.4.8/download",
-        type = "tar.gz",
-        sha256 = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4",
-        strip_prefix = "itoa-0.4.8",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.itoa-0.4.8.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__lazy_static__1_4_0",
-        url = "https://crates.io/api/v1/crates/lazy_static/1.4.0/download",
-        type = "tar.gz",
-        sha256 = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646",
-        strip_prefix = "lazy_static-1.4.0",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.lazy_static-1.4.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__libc__0_2_107",
-        url = "https://crates.io/api/v1/crates/libc/0.2.107/download",
-        type = "tar.gz",
-        sha256 = "fbe5e23404da5b4f555ef85ebed98fb4083e55a00c317800bc2a50ede9f3d219",
-        strip_prefix = "libc-0.2.107",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.libc-0.2.107.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__log__0_4_14",
-        url = "https://crates.io/api/v1/crates/log/0.4.14/download",
-        type = "tar.gz",
-        sha256 = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710",
-        strip_prefix = "log-0.4.14",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.log-0.4.14.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__memchr__2_4_1",
-        url = "https://crates.io/api/v1/crates/memchr/2.4.1/download",
-        type = "tar.gz",
-        sha256 = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a",
-        strip_prefix = "memchr-2.4.1",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.memchr-2.4.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__proc_macro_error__1_0_4",
-        url = "https://crates.io/api/v1/crates/proc-macro-error/1.0.4/download",
-        type = "tar.gz",
-        sha256 = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c",
-        strip_prefix = "proc-macro-error-1.0.4",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.proc-macro-error-1.0.4.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__proc_macro_error_attr__1_0_4",
-        url = "https://crates.io/api/v1/crates/proc-macro-error-attr/1.0.4/download",
-        type = "tar.gz",
-        sha256 = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869",
-        strip_prefix = "proc-macro-error-attr-1.0.4",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.proc-macro-error-attr-1.0.4.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__proc_macro2__1_0_32",
-        url = "https://crates.io/api/v1/crates/proc-macro2/1.0.32/download",
-        type = "tar.gz",
-        sha256 = "ba508cc11742c0dc5c1659771673afbab7a0efab23aa17e854cbab0837ed0b43",
-        strip_prefix = "proc-macro2-1.0.32",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.proc-macro2-1.0.32.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__quote__1_0_10",
-        url = "https://crates.io/api/v1/crates/quote/1.0.10/download",
-        type = "tar.gz",
-        sha256 = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05",
-        strip_prefix = "quote-1.0.10",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.quote-1.0.10.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__regex__1_5_4",
-        url = "https://crates.io/api/v1/crates/regex/1.5.4/download",
-        type = "tar.gz",
-        sha256 = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461",
-        strip_prefix = "regex-1.5.4",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.regex-1.5.4.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__regex_syntax__0_6_25",
-        url = "https://crates.io/api/v1/crates/regex-syntax/0.6.25/download",
-        type = "tar.gz",
-        sha256 = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b",
-        strip_prefix = "regex-syntax-0.6.25",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.regex-syntax-0.6.25.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__ryu__1_0_5",
-        url = "https://crates.io/api/v1/crates/ryu/1.0.5/download",
-        type = "tar.gz",
-        sha256 = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e",
-        strip_prefix = "ryu-1.0.5",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.ryu-1.0.5.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__serde__1_0_130",
-        url = "https://crates.io/api/v1/crates/serde/1.0.130/download",
-        type = "tar.gz",
-        sha256 = "f12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913",
-        strip_prefix = "serde-1.0.130",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.serde-1.0.130.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__serde_derive__1_0_130",
-        url = "https://crates.io/api/v1/crates/serde_derive/1.0.130/download",
-        type = "tar.gz",
-        sha256 = "d7bc1a1ab1961464eae040d96713baa5a724a8152c1222492465b54322ec508b",
-        strip_prefix = "serde_derive-1.0.130",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.serde_derive-1.0.130.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__serde_json__1_0_69",
-        url = "https://crates.io/api/v1/crates/serde_json/1.0.69/download",
-        type = "tar.gz",
-        sha256 = "e466864e431129c7e0d3476b92f20458e5879919a0596c6472738d9fa2d342f8",
-        strip_prefix = "serde_json-1.0.69",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.serde_json-1.0.69.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__strsim__0_8_0",
-        url = "https://crates.io/api/v1/crates/strsim/0.8.0/download",
-        type = "tar.gz",
-        sha256 = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a",
-        strip_prefix = "strsim-0.8.0",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.strsim-0.8.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__structopt__0_3_25",
-        url = "https://crates.io/api/v1/crates/structopt/0.3.25/download",
-        type = "tar.gz",
-        sha256 = "40b9788f4202aa75c240ecc9c15c65185e6a39ccdeb0fd5d008b98825464c87c",
-        strip_prefix = "structopt-0.3.25",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.structopt-0.3.25.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__structopt_derive__0_4_18",
-        url = "https://crates.io/api/v1/crates/structopt-derive/0.4.18/download",
-        type = "tar.gz",
-        sha256 = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0",
-        strip_prefix = "structopt-derive-0.4.18",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.structopt-derive-0.4.18.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__syn__1_0_81",
-        url = "https://crates.io/api/v1/crates/syn/1.0.81/download",
-        type = "tar.gz",
-        sha256 = "f2afee18b8beb5a596ecb4a2dce128c719b4ba399d34126b9e4396e3f9860966",
-        strip_prefix = "syn-1.0.81",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.syn-1.0.81.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__termcolor__1_1_2",
-        url = "https://crates.io/api/v1/crates/termcolor/1.1.2/download",
-        type = "tar.gz",
-        sha256 = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4",
-        strip_prefix = "termcolor-1.1.2",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.termcolor-1.1.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__textwrap__0_11_0",
-        url = "https://crates.io/api/v1/crates/textwrap/0.11.0/download",
-        type = "tar.gz",
-        sha256 = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060",
-        strip_prefix = "textwrap-0.11.0",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.textwrap-0.11.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__unicode_segmentation__1_8_0",
-        url = "https://crates.io/api/v1/crates/unicode-segmentation/1.8.0/download",
-        type = "tar.gz",
-        sha256 = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b",
-        strip_prefix = "unicode-segmentation-1.8.0",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.unicode-segmentation-1.8.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__unicode_width__0_1_9",
-        url = "https://crates.io/api/v1/crates/unicode-width/0.1.9/download",
-        type = "tar.gz",
-        sha256 = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973",
-        strip_prefix = "unicode-width-0.1.9",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.unicode-width-0.1.9.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__unicode_xid__0_2_2",
-        url = "https://crates.io/api/v1/crates/unicode-xid/0.2.2/download",
-        type = "tar.gz",
-        sha256 = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3",
-        strip_prefix = "unicode-xid-0.2.2",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.unicode-xid-0.2.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__vec_map__0_8_2",
-        url = "https://crates.io/api/v1/crates/vec_map/0.8.2/download",
-        type = "tar.gz",
-        sha256 = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191",
-        strip_prefix = "vec_map-0.8.2",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.vec_map-0.8.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__version_check__0_9_3",
-        url = "https://crates.io/api/v1/crates/version_check/0.9.3/download",
-        type = "tar.gz",
-        sha256 = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe",
-        strip_prefix = "version_check-0.9.3",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.version_check-0.9.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__winapi__0_3_9",
-        url = "https://crates.io/api/v1/crates/winapi/0.3.9/download",
-        type = "tar.gz",
-        sha256 = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419",
-        strip_prefix = "winapi-0.3.9",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.winapi-0.3.9.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__winapi_i686_pc_windows_gnu__0_4_0",
-        url = "https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download",
-        type = "tar.gz",
-        sha256 = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6",
-        strip_prefix = "winapi-i686-pc-windows-gnu-0.4.0",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__winapi_util__0_1_5",
-        url = "https://crates.io/api/v1/crates/winapi-util/0.1.5/download",
-        type = "tar.gz",
-        sha256 = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178",
-        strip_prefix = "winapi-util-0.1.5",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.winapi-util-0.1.5.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__winapi_x86_64_pc_windows_gnu__0_4_0",
-        url = "https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download",
-        type = "tar.gz",
-        sha256 = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f",
-        strip_prefix = "winapi-x86_64-pc-windows-gnu-0.4.0",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel"),
-    )
diff --git a/tools/rust_analyzer/raze/remote/BUILD.aho-corasick-0.7.18.bazel b/tools/rust_analyzer/raze/remote/BUILD.aho-corasick-0.7.18.bazel
deleted file mode 100644
index d0d1788..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.aho-corasick-0.7.18.bazel
+++ /dev/null
@@ -1,56 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "unencumbered",  # Unlicense from expression "Unlicense OR MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "aho_corasick",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.7.18",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_tools_rust_analyzer__memchr__2_4_1//:memchr",
-    ],
-)
diff --git a/tools/rust_analyzer/raze/remote/BUILD.ansi_term-0.11.0.bazel b/tools/rust_analyzer/raze/remote/BUILD.ansi_term-0.11.0.bazel
deleted file mode 100644
index e742b36..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.ansi_term-0.11.0.bazel
+++ /dev/null
@@ -1,66 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "colours" with type "example" omitted
-
-rust_library(
-    name = "ansi_term",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.11.0",
-    # buildifier: leave-alone
-    deps = [
-    ] + selects.with_or({
-        # cfg(target_os = "windows")
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@rules_rust_tools_rust_analyzer__winapi__0_3_9//:winapi",
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/tools/rust_analyzer/raze/remote/BUILD.anyhow-1.0.45.bazel b/tools/rust_analyzer/raze/remote/BUILD.anyhow-1.0.45.bazel
deleted file mode 100644
index 737d7df..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.anyhow-1.0.45.bazel
+++ /dev/null
@@ -1,113 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "anyhow_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.45",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "anyhow",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.45",
-    # buildifier: leave-alone
-    deps = [
-        ":anyhow_build_script",
-    ],
-)
-
-# Unsupported target "compiletest" with type "test" omitted
-
-# Unsupported target "test_autotrait" with type "test" omitted
-
-# Unsupported target "test_backtrace" with type "test" omitted
-
-# Unsupported target "test_boxed" with type "test" omitted
-
-# Unsupported target "test_chain" with type "test" omitted
-
-# Unsupported target "test_context" with type "test" omitted
-
-# Unsupported target "test_convert" with type "test" omitted
-
-# Unsupported target "test_downcast" with type "test" omitted
-
-# Unsupported target "test_ffi" with type "test" omitted
-
-# Unsupported target "test_fmt" with type "test" omitted
-
-# Unsupported target "test_macros" with type "test" omitted
-
-# Unsupported target "test_repr" with type "test" omitted
-
-# Unsupported target "test_source" with type "test" omitted
diff --git a/tools/rust_analyzer/raze/remote/BUILD.atty-0.2.14.bazel b/tools/rust_analyzer/raze/remote/BUILD.atty-0.2.14.bazel
deleted file mode 100644
index c8b5efa..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.atty-0.2.14.bazel
+++ /dev/null
@@ -1,89 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "atty" with type "example" omitted
-
-rust_library(
-    name = "atty",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.14",
-    # buildifier: leave-alone
-    deps = [
-    ] + selects.with_or({
-        # cfg(unix)
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@rules_rust_tools_rust_analyzer__libc__0_2_107//:libc",
-        ],
-        "//conditions:default": [],
-    }) + selects.with_or({
-        # cfg(windows)
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@rules_rust_tools_rust_analyzer__winapi__0_3_9//:winapi",
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/tools/rust_analyzer/raze/remote/BUILD.bazel b/tools/rust_analyzer/raze/remote/BUILD.bazel
deleted file mode 100644
index e69de29..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.bazel
+++ /dev/null
diff --git a/tools/rust_analyzer/raze/remote/BUILD.bitflags-1.3.2.bazel b/tools/rust_analyzer/raze/remote/BUILD.bitflags-1.3.2.bazel
deleted file mode 100644
index 417aee7..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.bitflags-1.3.2.bazel
+++ /dev/null
@@ -1,58 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "bitflags",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.3.2",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "basic" with type "test" omitted
-
-# Unsupported target "compile" with type "test" omitted
diff --git a/tools/rust_analyzer/raze/remote/BUILD.cfg-if-1.0.0.bazel b/tools/rust_analyzer/raze/remote/BUILD.cfg-if-1.0.0.bazel
deleted file mode 100644
index 84595a6..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.cfg-if-1.0.0.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "cfg_if",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "xcrate" with type "test" omitted
diff --git a/tools/rust_analyzer/raze/remote/BUILD.clap-2.33.3.bazel b/tools/rust_analyzer/raze/remote/BUILD.clap-2.33.3.bazel
deleted file mode 100644
index 0ecdf7a..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.clap-2.33.3.bazel
+++ /dev/null
@@ -1,93 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "clap",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-        "ansi_term",
-        "atty",
-        "color",
-        "default",
-        "strsim",
-        "suggestions",
-        "vec_map",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "2.33.3",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_tools_rust_analyzer__atty__0_2_14//:atty",
-        "@rules_rust_tools_rust_analyzer__bitflags__1_3_2//:bitflags",
-        "@rules_rust_tools_rust_analyzer__strsim__0_8_0//:strsim",
-        "@rules_rust_tools_rust_analyzer__textwrap__0_11_0//:textwrap",
-        "@rules_rust_tools_rust_analyzer__unicode_width__0_1_9//:unicode_width",
-        "@rules_rust_tools_rust_analyzer__vec_map__0_8_2//:vec_map",
-    ] + selects.with_or({
-        # cfg(not(windows))
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:wasm32-unknown-unknown",
-            "@rules_rust//rust/platform:wasm32-wasi",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@rules_rust_tools_rust_analyzer__ansi_term__0_11_0//:ansi_term",
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/tools/rust_analyzer/raze/remote/BUILD.either-1.6.1.bazel b/tools/rust_analyzer/raze/remote/BUILD.either-1.6.1.bazel
deleted file mode 100644
index 0af0135..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.either-1.6.1.bazel
+++ /dev/null
@@ -1,53 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "either",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.6.1",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/tools/rust_analyzer/raze/remote/BUILD.env_logger-0.9.0.bazel b/tools/rust_analyzer/raze/remote/BUILD.env_logger-0.9.0.bazel
deleted file mode 100644
index 4d35482..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.env_logger-0.9.0.bazel
+++ /dev/null
@@ -1,71 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "env_logger",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "atty",
-        "default",
-        "humantime",
-        "regex",
-        "termcolor",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.9.0",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_tools_rust_analyzer__atty__0_2_14//:atty",
-        "@rules_rust_tools_rust_analyzer__humantime__2_1_0//:humantime",
-        "@rules_rust_tools_rust_analyzer__log__0_4_14//:log",
-        "@rules_rust_tools_rust_analyzer__regex__1_5_4//:regex",
-        "@rules_rust_tools_rust_analyzer__termcolor__1_1_2//:termcolor",
-    ],
-)
-
-# Unsupported target "init-twice-retains-filter" with type "test" omitted
-
-# Unsupported target "log-in-log" with type "test" omitted
-
-# Unsupported target "log_tls_dtors" with type "test" omitted
-
-# Unsupported target "regexp_filter" with type "test" omitted
diff --git a/tools/rust_analyzer/raze/remote/BUILD.heck-0.3.3.bazel b/tools/rust_analyzer/raze/remote/BUILD.heck-0.3.3.bazel
deleted file mode 100644
index 7aac083..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.heck-0.3.3.bazel
+++ /dev/null
@@ -1,54 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "heck",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.3",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_tools_rust_analyzer__unicode_segmentation__1_8_0//:unicode_segmentation",
-    ],
-)
diff --git a/tools/rust_analyzer/raze/remote/BUILD.hermit-abi-0.1.19.bazel b/tools/rust_analyzer/raze/remote/BUILD.hermit-abi-0.1.19.bazel
deleted file mode 100644
index 99cba1b..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.hermit-abi-0.1.19.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "hermit_abi",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.19",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_tools_rust_analyzer__libc__0_2_107//:libc",
-    ],
-)
diff --git a/tools/rust_analyzer/raze/remote/BUILD.humantime-2.1.0.bazel b/tools/rust_analyzer/raze/remote/BUILD.humantime-2.1.0.bazel
deleted file mode 100644
index 9905a0d..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.humantime-2.1.0.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "datetime_format" with type "bench" omitted
-
-# Unsupported target "datetime_parse" with type "bench" omitted
-
-rust_library(
-    name = "humantime",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "2.1.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/tools/rust_analyzer/raze/remote/BUILD.itertools-0.10.1.bazel b/tools/rust_analyzer/raze/remote/BUILD.itertools-0.10.1.bazel
deleted file mode 100644
index 20935bf..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.itertools-0.10.1.bazel
+++ /dev/null
@@ -1,99 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "bench1" with type "bench" omitted
-
-# Unsupported target "combinations" with type "bench" omitted
-
-# Unsupported target "combinations_with_replacement" with type "bench" omitted
-
-# Unsupported target "fold_specialization" with type "bench" omitted
-
-# Unsupported target "powerset" with type "bench" omitted
-
-# Unsupported target "tree_fold1" with type "bench" omitted
-
-# Unsupported target "tuple_combinations" with type "bench" omitted
-
-# Unsupported target "tuples" with type "bench" omitted
-
-# Unsupported target "iris" with type "example" omitted
-
-rust_library(
-    name = "itertools",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "use_alloc",
-        "use_std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.10.1",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_tools_rust_analyzer__either__1_6_1//:either",
-    ],
-)
-
-# Unsupported target "adaptors_no_collect" with type "test" omitted
-
-# Unsupported target "flatten_ok" with type "test" omitted
-
-# Unsupported target "fold_specialization" with type "test" omitted
-
-# Unsupported target "macros_hygiene" with type "test" omitted
-
-# Unsupported target "merge_join" with type "test" omitted
-
-# Unsupported target "peeking_take_while" with type "test" omitted
-
-# Unsupported target "quick" with type "test" omitted
-
-# Unsupported target "specializations" with type "test" omitted
-
-# Unsupported target "test_core" with type "test" omitted
-
-# Unsupported target "test_std" with type "test" omitted
-
-# Unsupported target "tuples" with type "test" omitted
-
-# Unsupported target "zip" with type "test" omitted
diff --git a/tools/rust_analyzer/raze/remote/BUILD.itoa-0.4.8.bazel b/tools/rust_analyzer/raze/remote/BUILD.itoa-0.4.8.bazel
deleted file mode 100644
index 27868c7..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.itoa-0.4.8.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "bench" with type "bench" omitted
-
-rust_library(
-    name = "itoa",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.8",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "test" with type "test" omitted
diff --git a/tools/rust_analyzer/raze/remote/BUILD.lazy_static-1.4.0.bazel b/tools/rust_analyzer/raze/remote/BUILD.lazy_static-1.4.0.bazel
deleted file mode 100644
index ba88ed7..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.lazy_static-1.4.0.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "lazy_static",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.4.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "no_std" with type "test" omitted
-
-# Unsupported target "test" with type "test" omitted
diff --git a/tools/rust_analyzer/raze/remote/BUILD.libc-0.2.107.bazel b/tools/rust_analyzer/raze/remote/BUILD.libc-0.2.107.bazel
deleted file mode 100644
index bfb4b82..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.libc-0.2.107.bazel
+++ /dev/null
@@ -1,85 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "libc_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.107",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "libc",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.107",
-    # buildifier: leave-alone
-    deps = [
-        ":libc_build_script",
-    ],
-)
-
-# Unsupported target "const_fn" with type "test" omitted
diff --git a/tools/rust_analyzer/raze/remote/BUILD.log-0.4.14.bazel b/tools/rust_analyzer/raze/remote/BUILD.log-0.4.14.bazel
deleted file mode 100644
index 79cad4d..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.log-0.4.14.bazel
+++ /dev/null
@@ -1,92 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "log_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "std",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.14",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-# Unsupported target "value" with type "bench" omitted
-
-rust_library(
-    name = "log",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.14",
-    # buildifier: leave-alone
-    deps = [
-        ":log_build_script",
-        "@rules_rust_tools_rust_analyzer__cfg_if__1_0_0//:cfg_if",
-    ],
-)
-
-# Unsupported target "filters" with type "test" omitted
-
-# Unsupported target "macros" with type "test" omitted
diff --git a/tools/rust_analyzer/raze/remote/BUILD.memchr-2.4.1.bazel b/tools/rust_analyzer/raze/remote/BUILD.memchr-2.4.1.bazel
deleted file mode 100644
index 2016ce4..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.memchr-2.4.1.bazel
+++ /dev/null
@@ -1,87 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "unencumbered",  # Unlicense from expression "Unlicense OR MIT"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "memchr_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "2.4.1",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "memchr",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "2.4.1",
-    # buildifier: leave-alone
-    deps = [
-        ":memchr_build_script",
-    ],
-)
diff --git a/tools/rust_analyzer/raze/remote/BUILD.proc-macro-error-1.0.4.bazel b/tools/rust_analyzer/raze/remote/BUILD.proc-macro-error-1.0.4.bazel
deleted file mode 100644
index c6c622c..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.proc-macro-error-1.0.4.bazel
+++ /dev/null
@@ -1,102 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "proc_macro_error_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "default",
-        "syn",
-        "syn-error",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.4",
-    visibility = ["//visibility:private"],
-    deps = [
-        "@rules_rust_tools_rust_analyzer__version_check__0_9_3//:version_check",
-    ],
-)
-
-rust_library(
-    name = "proc_macro_error",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "syn",
-        "syn-error",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    proc_macro_deps = [
-        "@rules_rust_tools_rust_analyzer__proc_macro_error_attr__1_0_4//:proc_macro_error_attr",
-    ],
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.4",
-    # buildifier: leave-alone
-    deps = [
-        ":proc_macro_error_build_script",
-        "@rules_rust_tools_rust_analyzer__proc_macro2__1_0_32//:proc_macro2",
-        "@rules_rust_tools_rust_analyzer__quote__1_0_10//:quote",
-        "@rules_rust_tools_rust_analyzer__syn__1_0_81//:syn",
-    ],
-)
-
-# Unsupported target "macro-errors" with type "test" omitted
-
-# Unsupported target "ok" with type "test" omitted
-
-# Unsupported target "runtime-errors" with type "test" omitted
diff --git a/tools/rust_analyzer/raze/remote/BUILD.proc-macro-error-attr-1.0.4.bazel b/tools/rust_analyzer/raze/remote/BUILD.proc-macro-error-attr-1.0.4.bazel
deleted file mode 100644
index ba807a8..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.proc-macro-error-attr-1.0.4.bazel
+++ /dev/null
@@ -1,86 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "proc_macro_error_attr_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.4",
-    visibility = ["//visibility:private"],
-    deps = [
-        "@rules_rust_tools_rust_analyzer__version_check__0_9_3//:version_check",
-    ],
-)
-
-rust_proc_macro(
-    name = "proc_macro_error_attr",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.4",
-    # buildifier: leave-alone
-    deps = [
-        ":proc_macro_error_attr_build_script",
-        "@rules_rust_tools_rust_analyzer__proc_macro2__1_0_32//:proc_macro2",
-        "@rules_rust_tools_rust_analyzer__quote__1_0_10//:quote",
-    ],
-)
diff --git a/tools/rust_analyzer/raze/remote/BUILD.proc-macro2-1.0.32.bazel b/tools/rust_analyzer/raze/remote/BUILD.proc-macro2-1.0.32.bazel
deleted file mode 100644
index 9252841..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.proc-macro2-1.0.32.bazel
+++ /dev/null
@@ -1,98 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "proc_macro2_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "default",
-        "proc-macro",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.32",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "proc_macro2",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "proc-macro",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.32",
-    # buildifier: leave-alone
-    deps = [
-        ":proc_macro2_build_script",
-        "@rules_rust_tools_rust_analyzer__unicode_xid__0_2_2//:unicode_xid",
-    ],
-)
-
-# Unsupported target "comments" with type "test" omitted
-
-# Unsupported target "features" with type "test" omitted
-
-# Unsupported target "marker" with type "test" omitted
-
-# Unsupported target "test" with type "test" omitted
-
-# Unsupported target "test_fmt" with type "test" omitted
diff --git a/tools/rust_analyzer/raze/remote/BUILD.quote-1.0.10.bazel b/tools/rust_analyzer/raze/remote/BUILD.quote-1.0.10.bazel
deleted file mode 100644
index 77f5236..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.quote-1.0.10.bazel
+++ /dev/null
@@ -1,62 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "bench" with type "bench" omitted
-
-rust_library(
-    name = "quote",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "proc-macro",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.10",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_tools_rust_analyzer__proc_macro2__1_0_32//:proc_macro2",
-    ],
-)
-
-# Unsupported target "compiletest" with type "test" omitted
-
-# Unsupported target "test" with type "test" omitted
diff --git a/tools/rust_analyzer/raze/remote/BUILD.regex-1.5.4.bazel b/tools/rust_analyzer/raze/remote/BUILD.regex-1.5.4.bazel
deleted file mode 100644
index 8ba41a8..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.regex-1.5.4.bazel
+++ /dev/null
@@ -1,94 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "shootout-regex-dna" with type "example" omitted
-
-# Unsupported target "shootout-regex-dna-bytes" with type "example" omitted
-
-# Unsupported target "shootout-regex-dna-cheat" with type "example" omitted
-
-# Unsupported target "shootout-regex-dna-replace" with type "example" omitted
-
-# Unsupported target "shootout-regex-dna-single" with type "example" omitted
-
-# Unsupported target "shootout-regex-dna-single-cheat" with type "example" omitted
-
-rust_library(
-    name = "regex",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "aho-corasick",
-        "memchr",
-        "perf",
-        "perf-cache",
-        "perf-dfa",
-        "perf-inline",
-        "perf-literal",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.5.4",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_tools_rust_analyzer__aho_corasick__0_7_18//:aho_corasick",
-        "@rules_rust_tools_rust_analyzer__memchr__2_4_1//:memchr",
-        "@rules_rust_tools_rust_analyzer__regex_syntax__0_6_25//:regex_syntax",
-    ],
-)
-
-# Unsupported target "backtrack" with type "test" omitted
-
-# Unsupported target "backtrack-bytes" with type "test" omitted
-
-# Unsupported target "backtrack-utf8bytes" with type "test" omitted
-
-# Unsupported target "crates-regex" with type "test" omitted
-
-# Unsupported target "default" with type "test" omitted
-
-# Unsupported target "default-bytes" with type "test" omitted
-
-# Unsupported target "nfa" with type "test" omitted
-
-# Unsupported target "nfa-bytes" with type "test" omitted
-
-# Unsupported target "nfa-utf8bytes" with type "test" omitted
diff --git a/tools/rust_analyzer/raze/remote/BUILD.regex-syntax-0.6.25.bazel b/tools/rust_analyzer/raze/remote/BUILD.regex-syntax-0.6.25.bazel
deleted file mode 100644
index d4e0b56..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.regex-syntax-0.6.25.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "bench" with type "bench" omitted
-
-rust_library(
-    name = "regex_syntax",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.6.25",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/tools/rust_analyzer/raze/remote/BUILD.ryu-1.0.5.bazel b/tools/rust_analyzer/raze/remote/BUILD.ryu-1.0.5.bazel
deleted file mode 100644
index d4df380..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.ryu-1.0.5.bazel
+++ /dev/null
@@ -1,101 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0 OR BSL-1.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "ryu_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.5",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-# Unsupported target "bench" with type "bench" omitted
-
-# Unsupported target "upstream_benchmark" with type "example" omitted
-
-rust_library(
-    name = "ryu",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.5",
-    # buildifier: leave-alone
-    deps = [
-        ":ryu_build_script",
-    ],
-)
-
-# Unsupported target "common_test" with type "test" omitted
-
-# Unsupported target "d2s_table_test" with type "test" omitted
-
-# Unsupported target "d2s_test" with type "test" omitted
-
-# Unsupported target "exhaustive" with type "test" omitted
-
-# Unsupported target "f2s_test" with type "test" omitted
-
-# Unsupported target "s2d_test" with type "test" omitted
-
-# Unsupported target "s2f_test" with type "test" omitted
diff --git a/tools/rust_analyzer/raze/remote/BUILD.serde-1.0.130.bazel b/tools/rust_analyzer/raze/remote/BUILD.serde-1.0.130.bazel
deleted file mode 100644
index 7b5cb8c..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.serde-1.0.130.bazel
+++ /dev/null
@@ -1,94 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "serde_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "default",
-        "derive",
-        "serde_derive",
-        "std",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.130",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "serde",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "derive",
-        "serde_derive",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    proc_macro_deps = [
-        "@rules_rust_tools_rust_analyzer__serde_derive__1_0_130//:serde_derive",
-    ],
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.130",
-    # buildifier: leave-alone
-    deps = [
-        ":serde_build_script",
-    ],
-)
diff --git a/tools/rust_analyzer/raze/remote/BUILD.serde_derive-1.0.130.bazel b/tools/rust_analyzer/raze/remote/BUILD.serde_derive-1.0.130.bazel
deleted file mode 100644
index 2d84e1d..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.serde_derive-1.0.130.bazel
+++ /dev/null
@@ -1,88 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "serde_derive_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "default",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.130",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_proc_macro(
-    name = "serde_derive",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.130",
-    # buildifier: leave-alone
-    deps = [
-        ":serde_derive_build_script",
-        "@rules_rust_tools_rust_analyzer__proc_macro2__1_0_32//:proc_macro2",
-        "@rules_rust_tools_rust_analyzer__quote__1_0_10//:quote",
-        "@rules_rust_tools_rust_analyzer__syn__1_0_81//:syn",
-    ],
-)
diff --git a/tools/rust_analyzer/raze/remote/BUILD.serde_json-1.0.69.bazel b/tools/rust_analyzer/raze/remote/BUILD.serde_json-1.0.69.bazel
deleted file mode 100644
index 2f4105f..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.serde_json-1.0.69.bazel
+++ /dev/null
@@ -1,90 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "serde_json_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.69",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "serde_json",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.69",
-    # buildifier: leave-alone
-    deps = [
-        ":serde_json_build_script",
-        "@rules_rust_tools_rust_analyzer__itoa__0_4_8//:itoa",
-        "@rules_rust_tools_rust_analyzer__ryu__1_0_5//:ryu",
-        "@rules_rust_tools_rust_analyzer__serde__1_0_130//:serde",
-    ],
-)
diff --git a/tools/rust_analyzer/raze/remote/BUILD.strsim-0.8.0.bazel b/tools/rust_analyzer/raze/remote/BUILD.strsim-0.8.0.bazel
deleted file mode 100644
index a4df21a..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.strsim-0.8.0.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "benches" with type "bench" omitted
-
-rust_library(
-    name = "strsim",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.8.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "lib" with type "test" omitted
diff --git a/tools/rust_analyzer/raze/remote/BUILD.structopt-0.3.25.bazel b/tools/rust_analyzer/raze/remote/BUILD.structopt-0.3.25.bazel
deleted file mode 100644
index 24b86f7..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.structopt-0.3.25.bazel
+++ /dev/null
@@ -1,155 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0 OR MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "after_help" with type "example" omitted
-
-# Unsupported target "at_least_two" with type "example" omitted
-
-# Unsupported target "basic" with type "example" omitted
-
-# Unsupported target "deny_missing_docs" with type "example" omitted
-
-# Unsupported target "doc_comments" with type "example" omitted
-
-# Unsupported target "enum_in_args" with type "example" omitted
-
-# Unsupported target "enum_in_args_with_strum" with type "example" omitted
-
-# Unsupported target "enum_tuple" with type "example" omitted
-
-# Unsupported target "env" with type "example" omitted
-
-# Unsupported target "example" with type "example" omitted
-
-# Unsupported target "flatten" with type "example" omitted
-
-# Unsupported target "gen_completions" with type "example" omitted
-
-# Unsupported target "git" with type "example" omitted
-
-# Unsupported target "group" with type "example" omitted
-
-# Unsupported target "keyvalue" with type "example" omitted
-
-# Unsupported target "negative_flag" with type "example" omitted
-
-# Unsupported target "no_version" with type "example" omitted
-
-# Unsupported target "rename_all" with type "example" omitted
-
-# Unsupported target "required_if" with type "example" omitted
-
-# Unsupported target "skip" with type "example" omitted
-
-# Unsupported target "subcommand_aliases" with type "example" omitted
-
-# Unsupported target "true_or_false" with type "example" omitted
-
-rust_library(
-    name = "structopt",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    proc_macro_deps = [
-        "@rules_rust_tools_rust_analyzer__structopt_derive__0_4_18//:structopt_derive",
-    ],
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.25",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_tools_rust_analyzer__clap__2_33_3//:clap",
-        "@rules_rust_tools_rust_analyzer__lazy_static__1_4_0//:lazy_static",
-    ],
-)
-
-# Unsupported target "argument_naming" with type "test" omitted
-
-# Unsupported target "arguments" with type "test" omitted
-
-# Unsupported target "author_version_about" with type "test" omitted
-
-# Unsupported target "custom-string-parsers" with type "test" omitted
-
-# Unsupported target "default_value" with type "test" omitted
-
-# Unsupported target "deny-warnings" with type "test" omitted
-
-# Unsupported target "doc-comments-help" with type "test" omitted
-
-# Unsupported target "explicit_name_no_renaming" with type "test" omitted
-
-# Unsupported target "flags" with type "test" omitted
-
-# Unsupported target "flatten" with type "test" omitted
-
-# Unsupported target "generics" with type "test" omitted
-
-# Unsupported target "issues" with type "test" omitted
-
-# Unsupported target "macro-errors" with type "test" omitted
-
-# Unsupported target "nested-subcommands" with type "test" omitted
-
-# Unsupported target "non_literal_attributes" with type "test" omitted
-
-# Unsupported target "options" with type "test" omitted
-
-# Unsupported target "privacy" with type "test" omitted
-
-# Unsupported target "raw_bool_literal" with type "test" omitted
-
-# Unsupported target "raw_idents" with type "test" omitted
-
-# Unsupported target "regressions" with type "test" omitted
-
-# Unsupported target "rename_all_env" with type "test" omitted
-
-# Unsupported target "skip" with type "test" omitted
-
-# Unsupported target "special_types" with type "test" omitted
-
-# Unsupported target "subcommands" with type "test" omitted
-
-# Unsupported target "utils" with type "test" omitted
-
-# Unsupported target "we_need_syn_full" with type "test" omitted
diff --git a/tools/rust_analyzer/raze/remote/BUILD.structopt-derive-0.4.18.bazel b/tools/rust_analyzer/raze/remote/BUILD.structopt-derive-0.4.18.bazel
deleted file mode 100644
index 8c8dfd8..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.structopt-derive-0.4.18.bazel
+++ /dev/null
@@ -1,58 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0 OR MIT"
-])
-
-# Generated Targets
-
-rust_proc_macro(
-    name = "structopt_derive",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.18",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_tools_rust_analyzer__heck__0_3_3//:heck",
-        "@rules_rust_tools_rust_analyzer__proc_macro2__1_0_32//:proc_macro2",
-        "@rules_rust_tools_rust_analyzer__proc_macro_error__1_0_4//:proc_macro_error",
-        "@rules_rust_tools_rust_analyzer__quote__1_0_10//:quote",
-        "@rules_rust_tools_rust_analyzer__syn__1_0_81//:syn",
-    ],
-)
diff --git a/tools/rust_analyzer/raze/remote/BUILD.syn-1.0.81.bazel b/tools/rust_analyzer/raze/remote/BUILD.syn-1.0.81.bazel
deleted file mode 100644
index efd5cfe..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.syn-1.0.81.bazel
+++ /dev/null
@@ -1,158 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "syn_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "clone-impls",
-        "default",
-        "derive",
-        "full",
-        "parsing",
-        "printing",
-        "proc-macro",
-        "quote",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.81",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-# Unsupported target "file" with type "bench" omitted
-
-# Unsupported target "rust" with type "bench" omitted
-
-rust_library(
-    name = "syn",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "clone-impls",
-        "default",
-        "derive",
-        "full",
-        "parsing",
-        "printing",
-        "proc-macro",
-        "quote",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.81",
-    # buildifier: leave-alone
-    deps = [
-        ":syn_build_script",
-        "@rules_rust_tools_rust_analyzer__proc_macro2__1_0_32//:proc_macro2",
-        "@rules_rust_tools_rust_analyzer__quote__1_0_10//:quote",
-        "@rules_rust_tools_rust_analyzer__unicode_xid__0_2_2//:unicode_xid",
-    ],
-)
-
-# Unsupported target "test_asyncness" with type "test" omitted
-
-# Unsupported target "test_attribute" with type "test" omitted
-
-# Unsupported target "test_derive_input" with type "test" omitted
-
-# Unsupported target "test_expr" with type "test" omitted
-
-# Unsupported target "test_generics" with type "test" omitted
-
-# Unsupported target "test_grouping" with type "test" omitted
-
-# Unsupported target "test_ident" with type "test" omitted
-
-# Unsupported target "test_item" with type "test" omitted
-
-# Unsupported target "test_iterators" with type "test" omitted
-
-# Unsupported target "test_lit" with type "test" omitted
-
-# Unsupported target "test_meta" with type "test" omitted
-
-# Unsupported target "test_parse_buffer" with type "test" omitted
-
-# Unsupported target "test_parse_stream" with type "test" omitted
-
-# Unsupported target "test_pat" with type "test" omitted
-
-# Unsupported target "test_path" with type "test" omitted
-
-# Unsupported target "test_precedence" with type "test" omitted
-
-# Unsupported target "test_receiver" with type "test" omitted
-
-# Unsupported target "test_round_trip" with type "test" omitted
-
-# Unsupported target "test_shebang" with type "test" omitted
-
-# Unsupported target "test_should_parse" with type "test" omitted
-
-# Unsupported target "test_size" with type "test" omitted
-
-# Unsupported target "test_stmt" with type "test" omitted
-
-# Unsupported target "test_token_trees" with type "test" omitted
-
-# Unsupported target "test_ty" with type "test" omitted
-
-# Unsupported target "test_visibility" with type "test" omitted
-
-# Unsupported target "zzz_stable" with type "test" omitted
diff --git a/tools/rust_analyzer/raze/remote/BUILD.termcolor-1.1.2.bazel b/tools/rust_analyzer/raze/remote/BUILD.termcolor-1.1.2.bazel
deleted file mode 100644
index 7605e0c..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.termcolor-1.1.2.bazel
+++ /dev/null
@@ -1,64 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "unencumbered",  # Unlicense from expression "Unlicense OR MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "termcolor",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.1.2",
-    # buildifier: leave-alone
-    deps = [
-    ] + selects.with_or({
-        # cfg(windows)
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@rules_rust_tools_rust_analyzer__winapi_util__0_1_5//:winapi_util",
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/tools/rust_analyzer/raze/remote/BUILD.textwrap-0.11.0.bazel b/tools/rust_analyzer/raze/remote/BUILD.textwrap-0.11.0.bazel
deleted file mode 100644
index 38a4138..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.textwrap-0.11.0.bazel
+++ /dev/null
@@ -1,62 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "linear" with type "bench" omitted
-
-# Unsupported target "layout" with type "example" omitted
-
-# Unsupported target "termwidth" with type "example" omitted
-
-rust_library(
-    name = "textwrap",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.11.0",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_tools_rust_analyzer__unicode_width__0_1_9//:unicode_width",
-    ],
-)
-
-# Unsupported target "version-numbers" with type "test" omitted
diff --git a/tools/rust_analyzer/raze/remote/BUILD.unicode-segmentation-1.8.0.bazel b/tools/rust_analyzer/raze/remote/BUILD.unicode-segmentation-1.8.0.bazel
deleted file mode 100644
index 126a432..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.unicode-segmentation-1.8.0.bazel
+++ /dev/null
@@ -1,59 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "graphemes" with type "bench" omitted
-
-# Unsupported target "unicode_words" with type "bench" omitted
-
-# Unsupported target "word_bounds" with type "bench" omitted
-
-rust_library(
-    name = "unicode_segmentation",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.8.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/tools/rust_analyzer/raze/remote/BUILD.unicode-width-0.1.9.bazel b/tools/rust_analyzer/raze/remote/BUILD.unicode-width-0.1.9.bazel
deleted file mode 100644
index 1b1b356..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.unicode-width-0.1.9.bazel
+++ /dev/null
@@ -1,54 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "unicode_width",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.9",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/tools/rust_analyzer/raze/remote/BUILD.unicode-xid-0.2.2.bazel b/tools/rust_analyzer/raze/remote/BUILD.unicode-xid-0.2.2.bazel
deleted file mode 100644
index 9b7936d..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.unicode-xid-0.2.2.bazel
+++ /dev/null
@@ -1,58 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "xid" with type "bench" omitted
-
-rust_library(
-    name = "unicode_xid",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.2",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "exhaustive_tests" with type "test" omitted
diff --git a/tools/rust_analyzer/raze/remote/BUILD.vec_map-0.8.2.bazel b/tools/rust_analyzer/raze/remote/BUILD.vec_map-0.8.2.bazel
deleted file mode 100644
index a9ca9b9..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.vec_map-0.8.2.bazel
+++ /dev/null
@@ -1,53 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "vec_map",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.8.2",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/tools/rust_analyzer/raze/remote/BUILD.version_check-0.9.3.bazel b/tools/rust_analyzer/raze/remote/BUILD.version_check-0.9.3.bazel
deleted file mode 100644
index 2d24b1f..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.version_check-0.9.3.bazel
+++ /dev/null
@@ -1,53 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "version_check",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.9.3",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/tools/rust_analyzer/raze/remote/BUILD.winapi-0.3.9.bazel b/tools/rust_analyzer/raze/remote/BUILD.winapi-0.3.9.bazel
deleted file mode 100644
index 89fc3a8..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.winapi-0.3.9.bazel
+++ /dev/null
@@ -1,105 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "winapi_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "consoleapi",
-        "errhandlingapi",
-        "fileapi",
-        "minwinbase",
-        "minwindef",
-        "processenv",
-        "std",
-        "winbase",
-        "wincon",
-        "winerror",
-        "winnt",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.9",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "winapi",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "consoleapi",
-        "errhandlingapi",
-        "fileapi",
-        "minwinbase",
-        "minwindef",
-        "processenv",
-        "std",
-        "winbase",
-        "wincon",
-        "winerror",
-        "winnt",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.9",
-    # buildifier: leave-alone
-    deps = [
-        ":winapi_build_script",
-    ],
-)
diff --git a/tools/rust_analyzer/raze/remote/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel b/tools/rust_analyzer/raze/remote/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
deleted file mode 100644
index 0920950..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
+++ /dev/null
@@ -1,83 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "winapi_i686_pc_windows_gnu_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.0",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "winapi_i686_pc_windows_gnu",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.0",
-    # buildifier: leave-alone
-    deps = [
-        ":winapi_i686_pc_windows_gnu_build_script",
-    ],
-)
diff --git a/tools/rust_analyzer/raze/remote/BUILD.winapi-util-0.1.5.bazel b/tools/rust_analyzer/raze/remote/BUILD.winapi-util-0.1.5.bazel
deleted file mode 100644
index d72f51f..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.winapi-util-0.1.5.bazel
+++ /dev/null
@@ -1,64 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "unencumbered",  # Unlicense from expression "Unlicense OR MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "winapi_util",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.5",
-    # buildifier: leave-alone
-    deps = [
-    ] + selects.with_or({
-        # cfg(windows)
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@rules_rust_tools_rust_analyzer__winapi__0_3_9//:winapi",
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/tools/rust_analyzer/raze/remote/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel b/tools/rust_analyzer/raze/remote/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
deleted file mode 100644
index b6b2804..0000000
--- a/tools/rust_analyzer/raze/remote/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
+++ /dev/null
@@ -1,83 +0,0 @@
-"""
-@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 "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "winapi_x86_64_pc_windows_gnu_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.0",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "winapi_x86_64_pc_windows_gnu",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.0",
-    # buildifier: leave-alone
-    deps = [
-        ":winapi_x86_64_pc_windows_gnu_build_script",
-    ],
-)
diff --git a/tools/rust_analyzer/rust_project.rs b/tools/rust_analyzer/rust_project.rs
index 0cc9378..30bb377 100644
--- a/tools/rust_analyzer/rust_project.rs
+++ b/tools/rust_analyzer/rust_project.rs
@@ -177,12 +177,17 @@
 pub fn write_rust_project(
     rust_project_path: &Path,
     execution_root: &Path,
+    output_base: &Path,
     rust_project: &RustProject,
 ) -> anyhow::Result<()> {
     let execution_root = execution_root
         .to_str()
         .ok_or_else(|| anyhow!("execution_root is not valid UTF-8"))?;
 
+    let output_base = output_base
+        .to_str()
+        .ok_or_else(|| anyhow!("output_base is not valid UTF-8"))?;
+
     // Try to remove the existing rust-project.json. It's OK if the file doesn't exist.
     match std::fs::remove_file(rust_project_path) {
         Ok(_) => {}
@@ -197,8 +202,9 @@
 
     // Render the `rust-project.json` file and replace the exec root
     // placeholders with the path to the local exec root.
-    let rust_project_content =
-        serde_json::to_string(rust_project)?.replace("__EXEC_ROOT__", execution_root);
+    let rust_project_content = serde_json::to_string(rust_project)?
+        .replace("__EXEC_ROOT__", execution_root)
+        .replace("__OUTPUT_BASE__", output_base);
 
     // Write the new rust-project.json file.
     std::fs::write(rust_project_path, rust_project_content)?;