Updated bindgen version (#1470)

diff --git a/bindgen/3rdparty/BUILD.bazel b/bindgen/3rdparty/BUILD.bazel
index 9aa6558..7e169ee 100644
--- a/bindgen/3rdparty/BUILD.bazel
+++ b/bindgen/3rdparty/BUILD.bazel
@@ -10,6 +10,9 @@
         "clang-sys": [crate.annotation(
             gen_build_script = True,
         )],
+        "indexmap": [crate.annotation(
+            gen_build_script = True,
+        )],
         "libloading": [crate.annotation(
             gen_build_script = True,
         )],
@@ -22,10 +25,10 @@
     mode = "remote",
     packages = {
         "bindgen": crate.spec(
-            version = "0.58.1",
+            version = "0.60.1",
         ),
         "libloading": crate.spec(
-            version = "=0.6.3",
+            version = "0.7.3",
         ),
     },
     repository_name = "rules_rust_bindgen",
diff --git a/bindgen/3rdparty/Cargo.Bazel.lock b/bindgen/3rdparty/Cargo.Bazel.lock
index 13d6b28..0ed2fcd 100644
--- a/bindgen/3rdparty/Cargo.Bazel.lock
+++ b/bindgen/3rdparty/Cargo.Bazel.lock
@@ -12,15 +12,6 @@
 ]
 
 [[package]]
-name = "ansi_term"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
-dependencies = [
- "winapi",
-]
-
-[[package]]
 name = "atty"
 version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -32,10 +23,16 @@
 ]
 
 [[package]]
-name = "bindgen"
-version = "0.58.1"
+name = "autocfg"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f8523b410d7187a43085e7e064416ea32ded16bd0a4e6fc025e21616d01258f"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "bindgen"
+version = "0.60.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "062dddbc1ba4aca46de6338e2bf87771414c335f7b2f2036e8f3e9befebf88e6"
 dependencies = [
  "bitflags",
  "cexpr",
@@ -62,21 +59,15 @@
 
 [[package]]
 name = "cexpr"
-version = "0.4.0"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27"
+checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
 dependencies = [
  "nom",
 ]
 
 [[package]]
 name = "cfg-if"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
-
-[[package]]
-name = "cfg-if"
 version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
@@ -89,22 +80,31 @@
 dependencies = [
  "glob",
  "libc",
- "libloading 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libloading",
 ]
 
 [[package]]
 name = "clap"
-version = "2.34.0"
+version = "3.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
+checksum = "ab8b79fe3946ceb4a0b1c080b4018992b8d27e9ff363644c1c9b6387c854614d"
 dependencies = [
- "ansi_term",
  "atty",
  "bitflags",
+ "clap_lex",
+ "indexmap",
  "strsim",
+ "termcolor",
  "textwrap",
- "unicode-width",
- "vec_map",
+]
+
+[[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]]
@@ -112,14 +112,20 @@
 version = "0.0.1"
 dependencies = [
  "bindgen",
- "libloading 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libloading",
 ]
 
 [[package]]
-name = "env_logger"
-version = "0.8.4"
+name = "either"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
+checksum = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be"
+
+[[package]]
+name = "env_logger"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3"
 dependencies = [
  "atty",
  "humantime",
@@ -135,6 +141,12 @@
 checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
 
 [[package]]
+name = "hashbrown"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+
+[[package]]
 name = "hermit-abi"
 version = "0.1.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -150,6 +162,16 @@
 checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
 
 [[package]]
+name = "indexmap"
+version = "1.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e"
+dependencies = [
+ "autocfg",
+ "hashbrown",
+]
+
+[[package]]
 name = "lazy_static"
 version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -169,21 +191,11 @@
 
 [[package]]
 name = "libloading"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2443d8f0478b16759158b2f66d525991a05491138bc05814ef52a250148ef4f9"
-dependencies = [
- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi",
-]
-
-[[package]]
-name = "libloading"
 version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd"
 dependencies = [
- "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cfg-if",
  "winapi",
 ]
 
@@ -193,7 +205,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
 dependencies = [
- "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cfg-if",
 ]
 
 [[package]]
@@ -203,16 +215,28 @@
 checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
 
 [[package]]
-name = "nom"
-version = "5.1.2"
+name = "minimal-lexical"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"
+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+
+[[package]]
+name = "nom"
+version = "7.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36"
 dependencies = [
  "memchr",
- "version_check",
+ "minimal-lexical",
 ]
 
 [[package]]
+name = "os_str_bytes"
+version = "6.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "648001efe5d5c0102d8cea768e348da85d90af8ba91f0bea908f157951493cd4"
+
+[[package]]
 name = "peeking_take_while"
 version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -267,9 +291,9 @@
 
 [[package]]
 name = "strsim"
-version = "0.8.0"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
 name = "termcolor"
@@ -282,43 +306,24 @@
 
 [[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-ident"
-version = "1.0.1"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c"
-
-[[package]]
-name = "unicode-width"
-version = "0.1.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
-
-[[package]]
-name = "vec_map"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
-
-[[package]]
-name = "version_check"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+checksum = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7"
 
 [[package]]
 name = "which"
-version = "3.1.1"
+version = "4.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d011071ae14a2f6671d0b74080ae0cd8ebf3a6f8c9589a2cd45f23126fe29724"
+checksum = "5c4fb54e6113b6a8772ee41c3404fb0301ac79604489467e0a9ce1f3e97c24ae"
 dependencies = [
+ "either",
+ "lazy_static",
  "libc",
 ]
 
diff --git a/bindgen/3rdparty/crates/BUILD.version_check-0.9.4.bazel b/bindgen/3rdparty/crates/BUILD.autocfg-1.1.0.bazel
similarity index 95%
rename from bindgen/3rdparty/crates/BUILD.version_check-0.9.4.bazel
rename to bindgen/3rdparty/crates/BUILD.autocfg-1.1.0.bazel
index b3c1b82..d8c2b8b 100644
--- a/bindgen/3rdparty/crates/BUILD.version_check-0.9.4.bazel
+++ b/bindgen/3rdparty/crates/BUILD.autocfg-1.1.0.bazel
@@ -21,11 +21,11 @@
 package(default_visibility = ["//visibility:public"])
 
 # licenses([
-#     "TODO",  # MIT/Apache-2.0
+#     "TODO",  # Apache-2.0 OR MIT
 # ])
 
 rust_library(
-    name = "version_check",
+    name = "autocfg",
     srcs = glob(
         include = [
             "**/*.rs",
@@ -81,7 +81,7 @@
         "noclippy",
         "norustfmt",
     ],
-    version = "0.9.4",
+    version = "1.1.0",
     deps = [
     ] + select_with_or({
         "//conditions:default": [
diff --git a/bindgen/3rdparty/crates/BUILD.bazel b/bindgen/3rdparty/crates/BUILD.bazel
index 9601454..7021421 100644
--- a/bindgen/3rdparty/crates/BUILD.bazel
+++ b/bindgen/3rdparty/crates/BUILD.bazel
@@ -29,19 +29,25 @@
 # Workspace Member Dependencies
 alias(
     name = "bindgen",
-    actual = "@rules_rust_bindgen__bindgen-0.58.1//:bindgen",
+    actual = "@rules_rust_bindgen__bindgen-0.60.1//:bindgen",
     tags = ["manual"],
 )
 
 alias(
     name = "libloading",
-    actual = "@rules_rust_bindgen__libloading-0.6.3//:libloading",
+    actual = "@rules_rust_bindgen__libloading-0.7.3//:libloading",
     tags = ["manual"],
 )
 
 # Binaries
 alias(
     name = "bindgen__bindgen",
-    actual = "@rules_rust_bindgen__bindgen-0.58.1//:bindgen__bin",
+    actual = "@rules_rust_bindgen__bindgen-0.60.1//:bindgen__bin",
+    tags = ["manual"],
+)
+
+alias(
+    name = "clap__stdio-fixture",
+    actual = "@rules_rust_bindgen__clap-3.2.12//:stdio-fixture__bin",
     tags = ["manual"],
 )
diff --git a/bindgen/3rdparty/crates/BUILD.bindgen-0.58.1.bazel b/bindgen/3rdparty/crates/BUILD.bindgen-0.60.1.bazel
similarity index 91%
rename from bindgen/3rdparty/crates/BUILD.bindgen-0.58.1.bazel
rename to bindgen/3rdparty/crates/BUILD.bindgen-0.60.1.bazel
index d8eecc8..65ed0d9 100644
--- a/bindgen/3rdparty/crates/BUILD.bindgen-0.58.1.bazel
+++ b/bindgen/3rdparty/crates/BUILD.bindgen-0.60.1.bazel
@@ -94,16 +94,16 @@
         "noclippy",
         "norustfmt",
     ],
-    version = "0.58.1",
+    version = "0.60.1",
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@rules_rust_bindgen__bindgen-0.58.1//:build_script_build",
+            "@rules_rust_bindgen__bindgen-0.60.1//:build_script_build",
             "@rules_rust_bindgen__bitflags-1.3.2//:bitflags",
-            "@rules_rust_bindgen__cexpr-0.4.0//:cexpr",
+            "@rules_rust_bindgen__cexpr-0.6.0//:cexpr",
             "@rules_rust_bindgen__clang-sys-1.3.3//:clang_sys",
-            "@rules_rust_bindgen__clap-2.34.0//:clap",
-            "@rules_rust_bindgen__env_logger-0.8.4//:env_logger",
+            "@rules_rust_bindgen__clap-3.2.12//:clap",
+            "@rules_rust_bindgen__env_logger-0.9.0//:env_logger",
             "@rules_rust_bindgen__lazy_static-1.4.0//:lazy_static",
             "@rules_rust_bindgen__lazycell-1.3.0//:lazycell",
             "@rules_rust_bindgen__log-0.4.17//:log",
@@ -113,7 +113,7 @@
             "@rules_rust_bindgen__regex-1.6.0//:regex",
             "@rules_rust_bindgen__rustc-hash-1.1.0//:rustc_hash",
             "@rules_rust_bindgen__shlex-1.1.0//:shlex",
-            "@rules_rust_bindgen__which-3.1.1//:which",
+            "@rules_rust_bindgen__which-4.2.5//:which",
         ],
     }),
 )
@@ -183,17 +183,17 @@
         "noclippy",
         "norustfmt",
     ],
-    version = "0.58.1",
+    version = "0.60.1",
     deps = [
         ":bindgen",
     ] + select_with_or({
         "//conditions:default": [
-            "@rules_rust_bindgen__bindgen-0.58.1//:build_script_build",
+            "@rules_rust_bindgen__bindgen-0.60.1//:build_script_build",
             "@rules_rust_bindgen__bitflags-1.3.2//:bitflags",
-            "@rules_rust_bindgen__cexpr-0.4.0//:cexpr",
+            "@rules_rust_bindgen__cexpr-0.6.0//:cexpr",
             "@rules_rust_bindgen__clang-sys-1.3.3//:clang_sys",
-            "@rules_rust_bindgen__clap-2.34.0//:clap",
-            "@rules_rust_bindgen__env_logger-0.8.4//:env_logger",
+            "@rules_rust_bindgen__clap-3.2.12//:clap",
+            "@rules_rust_bindgen__env_logger-0.9.0//:env_logger",
             "@rules_rust_bindgen__lazy_static-1.4.0//:lazy_static",
             "@rules_rust_bindgen__lazycell-1.3.0//:lazycell",
             "@rules_rust_bindgen__log-0.4.17//:log",
@@ -203,7 +203,7 @@
             "@rules_rust_bindgen__regex-1.6.0//:regex",
             "@rules_rust_bindgen__rustc-hash-1.1.0//:rustc_hash",
             "@rules_rust_bindgen__shlex-1.1.0//:shlex",
-            "@rules_rust_bindgen__which-3.1.1//:which",
+            "@rules_rust_bindgen__which-4.2.5//:which",
         ],
     }),
 )
@@ -273,7 +273,7 @@
         "//conditions:default": [
         ],
     }),
-    version = "0.58.1",
+    version = "0.60.1",
     visibility = ["//visibility:private"],
     deps = [
     ] + select_with_or({
diff --git a/bindgen/3rdparty/crates/BUILD.cexpr-0.4.0.bazel b/bindgen/3rdparty/crates/BUILD.cexpr-0.6.0.bazel
similarity index 96%
rename from bindgen/3rdparty/crates/BUILD.cexpr-0.4.0.bazel
rename to bindgen/3rdparty/crates/BUILD.cexpr-0.6.0.bazel
index c28ec21..62b2c50 100644
--- a/bindgen/3rdparty/crates/BUILD.cexpr-0.4.0.bazel
+++ b/bindgen/3rdparty/crates/BUILD.cexpr-0.6.0.bazel
@@ -81,11 +81,11 @@
         "noclippy",
         "norustfmt",
     ],
-    version = "0.4.0",
+    version = "0.6.0",
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@rules_rust_bindgen__nom-5.1.2//:nom",
+            "@rules_rust_bindgen__nom-7.1.1//:nom",
         ],
     }),
 )
diff --git a/bindgen/3rdparty/crates/BUILD.clap-2.34.0.bazel b/bindgen/3rdparty/crates/BUILD.clap-2.34.0.bazel
deleted file mode 100644
index dc4e3e2..0000000
--- a/bindgen/3rdparty/crates/BUILD.clap-2.34.0.bazel
+++ /dev/null
@@ -1,139 +0,0 @@
-###############################################################################
-# @generated
-# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
-# regenerate this file, run the following:
-#
-#     bazel run //bindgen/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 = "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 = [
-        "ansi_term",
-        "atty",
-        "color",
-        "default",
-        "strsim",
-        "suggestions",
-        "vec_map",
-    ],
-    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.34.0",
-    deps = [
-    ] + select_with_or({
-        # cfg(not(windows))
-        (
-            "@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:riscv32imc-unknown-none-elf",
-            "@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-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_bindgen__ansi_term-0.12.1//:ansi_term",
-
-            # Common Deps
-            "@rules_rust_bindgen__atty-0.2.14//:atty",
-            "@rules_rust_bindgen__bitflags-1.3.2//:bitflags",
-            "@rules_rust_bindgen__strsim-0.8.0//:strsim",
-            "@rules_rust_bindgen__textwrap-0.11.0//:textwrap",
-            "@rules_rust_bindgen__unicode-width-0.1.9//:unicode_width",
-            "@rules_rust_bindgen__vec_map-0.8.2//:vec_map",
-        ],
-        "//conditions:default": [
-            "@rules_rust_bindgen__atty-0.2.14//:atty",
-            "@rules_rust_bindgen__bitflags-1.3.2//:bitflags",
-            "@rules_rust_bindgen__strsim-0.8.0//:strsim",
-            "@rules_rust_bindgen__textwrap-0.11.0//:textwrap",
-            "@rules_rust_bindgen__unicode-width-0.1.9//:unicode_width",
-            "@rules_rust_bindgen__vec_map-0.8.2//:vec_map",
-        ],
-    }),
-)
diff --git a/bindgen/3rdparty/crates/BUILD.clap-3.2.12.bazel b/bindgen/3rdparty/crates/BUILD.clap-3.2.12.bazel
new file mode 100644
index 0000000..de7dad1
--- /dev/null
+++ b/bindgen/3rdparty/crates/BUILD.clap-3.2.12.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 //bindgen/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",
+        "color",
+        "default",
+        "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": [
+        ],
+    }),
+    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_bindgen__atty-0.2.14//:atty",
+            "@rules_rust_bindgen__bitflags-1.3.2//:bitflags",
+            "@rules_rust_bindgen__clap_lex-0.2.4//:clap_lex",
+            "@rules_rust_bindgen__indexmap-1.9.1//:indexmap",
+            "@rules_rust_bindgen__strsim-0.10.0//:strsim",
+            "@rules_rust_bindgen__termcolor-1.1.3//:termcolor",
+            "@rules_rust_bindgen__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",
+        "color",
+        "default",
+        "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": [
+        ],
+    }),
+    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_bindgen__atty-0.2.14//:atty",
+            "@rules_rust_bindgen__bitflags-1.3.2//:bitflags",
+            "@rules_rust_bindgen__clap_lex-0.2.4//:clap_lex",
+            "@rules_rust_bindgen__indexmap-1.9.1//:indexmap",
+            "@rules_rust_bindgen__strsim-0.10.0//:strsim",
+            "@rules_rust_bindgen__termcolor-1.1.3//:termcolor",
+            "@rules_rust_bindgen__textwrap-0.15.0//:textwrap",
+        ],
+    }),
+)
diff --git a/bindgen/3rdparty/crates/BUILD.unicode-ident-1.0.1.bazel b/bindgen/3rdparty/crates/BUILD.clap_lex-0.2.4.bazel
similarity index 93%
copy from bindgen/3rdparty/crates/BUILD.unicode-ident-1.0.1.bazel
copy to bindgen/3rdparty/crates/BUILD.clap_lex-0.2.4.bazel
index 4151bd3..6d7a45c 100644
--- a/bindgen/3rdparty/crates/BUILD.unicode-ident-1.0.1.bazel
+++ b/bindgen/3rdparty/crates/BUILD.clap_lex-0.2.4.bazel
@@ -25,7 +25,7 @@
 # ])
 
 rust_library(
-    name = "unicode_ident",
+    name = "clap_lex",
     srcs = glob(
         include = [
             "**/*.rs",
@@ -56,7 +56,7 @@
         "//conditions:default": [
         ],
     }),
-    edition = "2018",
+    edition = "2021",
     proc_macro_deps = [
     ] + select_with_or({
         "//conditions:default": [
@@ -81,10 +81,11 @@
         "noclippy",
         "norustfmt",
     ],
-    version = "1.0.1",
+    version = "0.2.4",
     deps = [
     ] + select_with_or({
         "//conditions:default": [
+            "@rules_rust_bindgen__os_str_bytes-6.2.0//:os_str_bytes",
         ],
     }),
 )
diff --git a/bindgen/3rdparty/crates/BUILD.cfg-if-0.1.10.bazel b/bindgen/3rdparty/crates/BUILD.either-1.7.0.bazel
similarity index 95%
copy from bindgen/3rdparty/crates/BUILD.cfg-if-0.1.10.bazel
copy to bindgen/3rdparty/crates/BUILD.either-1.7.0.bazel
index ecc4b68..b9a02d0 100644
--- a/bindgen/3rdparty/crates/BUILD.cfg-if-0.1.10.bazel
+++ b/bindgen/3rdparty/crates/BUILD.either-1.7.0.bazel
@@ -25,7 +25,7 @@
 # ])
 
 rust_library(
-    name = "cfg_if",
+    name = "either",
     srcs = glob(
         include = [
             "**/*.rs",
@@ -50,6 +50,8 @@
         ],
     }),
     crate_features = [
+        "default",
+        "use_std",
     ],
     crate_root = "src/lib.rs",
     data = select_with_or({
@@ -81,7 +83,7 @@
         "noclippy",
         "norustfmt",
     ],
-    version = "0.1.10",
+    version = "1.7.0",
     deps = [
     ] + select_with_or({
         "//conditions:default": [
diff --git a/bindgen/3rdparty/crates/BUILD.env_logger-0.8.4.bazel b/bindgen/3rdparty/crates/BUILD.env_logger-0.9.0.bazel
similarity index 98%
rename from bindgen/3rdparty/crates/BUILD.env_logger-0.8.4.bazel
rename to bindgen/3rdparty/crates/BUILD.env_logger-0.9.0.bazel
index c6b85fc..8cef2f1 100644
--- a/bindgen/3rdparty/crates/BUILD.env_logger-0.8.4.bazel
+++ b/bindgen/3rdparty/crates/BUILD.env_logger-0.9.0.bazel
@@ -86,7 +86,7 @@
         "noclippy",
         "norustfmt",
     ],
-    version = "0.8.4",
+    version = "0.9.0",
     deps = [
     ] + select_with_or({
         "//conditions:default": [
diff --git a/bindgen/3rdparty/crates/BUILD.unicode-ident-1.0.1.bazel b/bindgen/3rdparty/crates/BUILD.hashbrown-0.12.3.bazel
similarity index 95%
copy from bindgen/3rdparty/crates/BUILD.unicode-ident-1.0.1.bazel
copy to bindgen/3rdparty/crates/BUILD.hashbrown-0.12.3.bazel
index 4151bd3..2324de1 100644
--- a/bindgen/3rdparty/crates/BUILD.unicode-ident-1.0.1.bazel
+++ b/bindgen/3rdparty/crates/BUILD.hashbrown-0.12.3.bazel
@@ -25,7 +25,7 @@
 # ])
 
 rust_library(
-    name = "unicode_ident",
+    name = "hashbrown",
     srcs = glob(
         include = [
             "**/*.rs",
@@ -50,13 +50,14 @@
         ],
     }),
     crate_features = [
+        "raw",
     ],
     crate_root = "src/lib.rs",
     data = select_with_or({
         "//conditions:default": [
         ],
     }),
-    edition = "2018",
+    edition = "2021",
     proc_macro_deps = [
     ] + select_with_or({
         "//conditions:default": [
@@ -81,7 +82,7 @@
         "noclippy",
         "norustfmt",
     ],
-    version = "1.0.1",
+    version = "0.12.3",
     deps = [
     ] + select_with_or({
         "//conditions:default": [
diff --git a/bindgen/3rdparty/crates/BUILD.libloading-0.6.3.bazel b/bindgen/3rdparty/crates/BUILD.indexmap-1.9.1.bazel
similarity index 64%
rename from bindgen/3rdparty/crates/BUILD.libloading-0.6.3.bazel
rename to bindgen/3rdparty/crates/BUILD.indexmap-1.9.1.bazel
index c5ddf00..e2235d8 100644
--- a/bindgen/3rdparty/crates/BUILD.libloading-0.6.3.bazel
+++ b/bindgen/3rdparty/crates/BUILD.indexmap-1.9.1.bazel
@@ -25,11 +25,11 @@
 package(default_visibility = ["//visibility:public"])
 
 # licenses([
-#     "TODO",  # ISC
+#     "TODO",  # Apache-2.0 OR MIT
 # ])
 
 rust_library(
-    name = "libloading",
+    name = "indexmap",
     srcs = glob(
         include = [
             "**/*.rs",
@@ -54,13 +54,14 @@
         ],
     }),
     crate_features = [
+        "std",
     ],
     crate_root = "src/lib.rs",
     data = select_with_or({
         "//conditions:default": [
         ],
     }),
-    edition = "2015",
+    edition = "2021",
     proc_macro_deps = [
     ] + select_with_or({
         "//conditions:default": [
@@ -85,57 +86,19 @@
         "noclippy",
         "norustfmt",
     ],
-    version = "0.6.3",
+    version = "1.9.1",
     deps = [
     ] + select_with_or({
-        # 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_bindgen__cfg-if-0.1.10//:cfg_if",
-
-            # Common Deps
-            "@rules_rust_bindgen__libloading-0.6.3//:build_script_build",
-        ],
-        # cfg(windows)
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            # Target Deps
-            "@rules_rust_bindgen__winapi-0.3.9//:winapi",
-
-            # Common Deps
-            "@rules_rust_bindgen__libloading-0.6.3//:build_script_build",
-        ],
         "//conditions:default": [
-            "@rules_rust_bindgen__libloading-0.6.3//:build_script_build",
+            "@rules_rust_bindgen__hashbrown-0.12.3//:hashbrown",
+            "@rules_rust_bindgen__indexmap-1.9.1//:build_script_build",
         ],
     }),
 )
 
 cargo_build_script(
     # See comment associated with alias. Do not change this name
-    name = "libloading_build_script",
+    name = "indexmap_build_script",
     srcs = glob(
         include = [
             "**/*.rs",
@@ -154,6 +117,7 @@
         ],
     }),
     crate_features = [
+        "std",
     ],
     crate_name = "build_script_build",
     crate_root = "build.rs",
@@ -161,7 +125,7 @@
         "//conditions:default": [
         ],
     }),
-    edition = "2015",
+    edition = "2021",
     proc_macro_deps = [
     ] + select_with_or({
         "//conditions:default": [
@@ -190,11 +154,12 @@
         "//conditions:default": [
         ],
     }),
-    version = "0.6.3",
+    version = "1.9.1",
     visibility = ["//visibility:private"],
     deps = [
     ] + select_with_or({
         "//conditions:default": [
+            "@rules_rust_bindgen__autocfg-1.1.0//:autocfg",
         ],
     }),
 )
@@ -206,7 +171,7 @@
     # of `build_script_build` without losing out on having certain Cargo
     # environment variables set.
     name = "build_script_build",
-    actual = "libloading_build_script",
+    actual = "indexmap_build_script",
     tags = [
         "manual",
     ],
diff --git a/bindgen/3rdparty/crates/BUILD.memchr-2.5.0.bazel b/bindgen/3rdparty/crates/BUILD.memchr-2.5.0.bazel
index 1c26083..e549393 100644
--- a/bindgen/3rdparty/crates/BUILD.memchr-2.5.0.bazel
+++ b/bindgen/3rdparty/crates/BUILD.memchr-2.5.0.bazel
@@ -52,7 +52,6 @@
     crate_features = [
         "default",
         "std",
-        "use_std",
     ],
     crate_root = "src/lib.rs",
     data = select_with_or({
diff --git a/bindgen/3rdparty/crates/BUILD.cfg-if-0.1.10.bazel b/bindgen/3rdparty/crates/BUILD.minimal-lexical-0.2.1.bazel
similarity index 96%
rename from bindgen/3rdparty/crates/BUILD.cfg-if-0.1.10.bazel
rename to bindgen/3rdparty/crates/BUILD.minimal-lexical-0.2.1.bazel
index ecc4b68..bb6a767 100644
--- a/bindgen/3rdparty/crates/BUILD.cfg-if-0.1.10.bazel
+++ b/bindgen/3rdparty/crates/BUILD.minimal-lexical-0.2.1.bazel
@@ -25,7 +25,7 @@
 # ])
 
 rust_library(
-    name = "cfg_if",
+    name = "minimal_lexical",
     srcs = glob(
         include = [
             "**/*.rs",
@@ -50,6 +50,7 @@
         ],
     }),
     crate_features = [
+        "std",
     ],
     crate_root = "src/lib.rs",
     data = select_with_or({
@@ -81,7 +82,7 @@
         "noclippy",
         "norustfmt",
     ],
-    version = "0.1.10",
+    version = "0.2.1",
     deps = [
     ] + select_with_or({
         "//conditions:default": [
diff --git a/bindgen/3rdparty/crates/BUILD.nom-5.1.2.bazel b/bindgen/3rdparty/crates/BUILD.nom-7.1.1.bazel
similarity index 95%
rename from bindgen/3rdparty/crates/BUILD.nom-5.1.2.bazel
rename to bindgen/3rdparty/crates/BUILD.nom-7.1.1.bazel
index adb48b9..cbfbefb 100644
--- a/bindgen/3rdparty/crates/BUILD.nom-5.1.2.bazel
+++ b/bindgen/3rdparty/crates/BUILD.nom-7.1.1.bazel
@@ -83,11 +83,12 @@
         "noclippy",
         "norustfmt",
     ],
-    version = "5.1.2",
+    version = "7.1.1",
     deps = [
     ] + select_with_or({
         "//conditions:default": [
             "@rules_rust_bindgen__memchr-2.5.0//:memchr",
+            "@rules_rust_bindgen__minimal-lexical-0.2.1//:minimal_lexical",
         ],
     }),
 )
diff --git a/bindgen/3rdparty/crates/BUILD.unicode-ident-1.0.1.bazel b/bindgen/3rdparty/crates/BUILD.os_str_bytes-6.2.0.bazel
similarity index 95%
copy from bindgen/3rdparty/crates/BUILD.unicode-ident-1.0.1.bazel
copy to bindgen/3rdparty/crates/BUILD.os_str_bytes-6.2.0.bazel
index 4151bd3..95c948d 100644
--- a/bindgen/3rdparty/crates/BUILD.unicode-ident-1.0.1.bazel
+++ b/bindgen/3rdparty/crates/BUILD.os_str_bytes-6.2.0.bazel
@@ -25,7 +25,7 @@
 # ])
 
 rust_library(
-    name = "unicode_ident",
+    name = "os_str_bytes",
     srcs = glob(
         include = [
             "**/*.rs",
@@ -50,13 +50,14 @@
         ],
     }),
     crate_features = [
+        "raw_os_str",
     ],
     crate_root = "src/lib.rs",
     data = select_with_or({
         "//conditions:default": [
         ],
     }),
-    edition = "2018",
+    edition = "2021",
     proc_macro_deps = [
     ] + select_with_or({
         "//conditions:default": [
@@ -81,7 +82,7 @@
         "noclippy",
         "norustfmt",
     ],
-    version = "1.0.1",
+    version = "6.2.0",
     deps = [
     ] + select_with_or({
         "//conditions:default": [
diff --git a/bindgen/3rdparty/crates/BUILD.proc-macro2-1.0.40.bazel b/bindgen/3rdparty/crates/BUILD.proc-macro2-1.0.40.bazel
index a3c698d..e1e99e6 100644
--- a/bindgen/3rdparty/crates/BUILD.proc-macro2-1.0.40.bazel
+++ b/bindgen/3rdparty/crates/BUILD.proc-macro2-1.0.40.bazel
@@ -85,7 +85,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@rules_rust_bindgen__unicode-ident-1.0.1//:unicode_ident",
+            "@rules_rust_bindgen__unicode-ident-1.0.2//:unicode_ident",
         ],
     }),
 )
diff --git a/bindgen/3rdparty/crates/BUILD.strsim-0.8.0.bazel b/bindgen/3rdparty/crates/BUILD.strsim-0.10.0.bazel
similarity index 98%
rename from bindgen/3rdparty/crates/BUILD.strsim-0.8.0.bazel
rename to bindgen/3rdparty/crates/BUILD.strsim-0.10.0.bazel
index b4e82d9..8c741af 100644
--- a/bindgen/3rdparty/crates/BUILD.strsim-0.8.0.bazel
+++ b/bindgen/3rdparty/crates/BUILD.strsim-0.10.0.bazel
@@ -81,7 +81,7 @@
         "noclippy",
         "norustfmt",
     ],
-    version = "0.8.0",
+    version = "0.10.0",
     deps = [
     ] + select_with_or({
         "//conditions:default": [
diff --git a/bindgen/3rdparty/crates/BUILD.textwrap-0.11.0.bazel b/bindgen/3rdparty/crates/BUILD.textwrap-0.11.0.bazel
deleted file mode 100644
index 5246548..0000000
--- a/bindgen/3rdparty/crates/BUILD.textwrap-0.11.0.bazel
+++ /dev/null
@@ -1,91 +0,0 @@
-###############################################################################
-# @generated
-# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
-# regenerate this file, run the following:
-#
-#     bazel run //bindgen/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 = "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.11.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@rules_rust_bindgen__unicode-width-0.1.9//:unicode_width",
-        ],
-    }),
-)
diff --git a/bindgen/3rdparty/crates/BUILD.strsim-0.8.0.bazel b/bindgen/3rdparty/crates/BUILD.textwrap-0.15.0.bazel
similarity index 96%
copy from bindgen/3rdparty/crates/BUILD.strsim-0.8.0.bazel
copy to bindgen/3rdparty/crates/BUILD.textwrap-0.15.0.bazel
index b4e82d9..99bfc63 100644
--- a/bindgen/3rdparty/crates/BUILD.strsim-0.8.0.bazel
+++ b/bindgen/3rdparty/crates/BUILD.textwrap-0.15.0.bazel
@@ -25,7 +25,7 @@
 # ])
 
 rust_library(
-    name = "strsim",
+    name = "textwrap",
     srcs = glob(
         include = [
             "**/*.rs",
@@ -56,7 +56,7 @@
         "//conditions:default": [
         ],
     }),
-    edition = "2015",
+    edition = "2018",
     proc_macro_deps = [
     ] + select_with_or({
         "//conditions:default": [
@@ -81,7 +81,7 @@
         "noclippy",
         "norustfmt",
     ],
-    version = "0.8.0",
+    version = "0.15.0",
     deps = [
     ] + select_with_or({
         "//conditions:default": [
diff --git a/bindgen/3rdparty/crates/BUILD.unicode-ident-1.0.1.bazel b/bindgen/3rdparty/crates/BUILD.unicode-ident-1.0.2.bazel
similarity index 95%
rename from bindgen/3rdparty/crates/BUILD.unicode-ident-1.0.1.bazel
rename to bindgen/3rdparty/crates/BUILD.unicode-ident-1.0.2.bazel
index 4151bd3..a403831 100644
--- a/bindgen/3rdparty/crates/BUILD.unicode-ident-1.0.1.bazel
+++ b/bindgen/3rdparty/crates/BUILD.unicode-ident-1.0.2.bazel
@@ -21,7 +21,7 @@
 package(default_visibility = ["//visibility:public"])
 
 # licenses([
-#     "TODO",  # MIT OR Apache-2.0
+#     "TODO",  # (MIT OR Apache-2.0) AND Unicode-DFS-2016
 # ])
 
 rust_library(
@@ -81,7 +81,7 @@
         "noclippy",
         "norustfmt",
     ],
-    version = "1.0.1",
+    version = "1.0.2",
     deps = [
     ] + select_with_or({
         "//conditions:default": [
diff --git a/bindgen/3rdparty/crates/BUILD.unicode-width-0.1.9.bazel b/bindgen/3rdparty/crates/BUILD.unicode-width-0.1.9.bazel
deleted file mode 100644
index 32bd8c5..0000000
--- a/bindgen/3rdparty/crates/BUILD.unicode-width-0.1.9.bazel
+++ /dev/null
@@ -1,91 +0,0 @@
-###############################################################################
-# @generated
-# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
-# regenerate this file, run the following:
-#
-#     bazel run //bindgen/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 = "unicode_width",
-    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 = "0.1.9",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/bindgen/3rdparty/crates/BUILD.vec_map-0.8.2.bazel b/bindgen/3rdparty/crates/BUILD.vec_map-0.8.2.bazel
deleted file mode 100644
index d3c8c85..0000000
--- a/bindgen/3rdparty/crates/BUILD.vec_map-0.8.2.bazel
+++ /dev/null
@@ -1,90 +0,0 @@
-###############################################################################
-# @generated
-# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
-# regenerate this file, run the following:
-#
-#     bazel run //bindgen/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 = "vec_map",
-    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.8.2",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/bindgen/3rdparty/crates/BUILD.which-3.1.1.bazel b/bindgen/3rdparty/crates/BUILD.which-3.1.1.bazel
deleted file mode 100644
index d4f6aa9..0000000
--- a/bindgen/3rdparty/crates/BUILD.which-3.1.1.bazel
+++ /dev/null
@@ -1,91 +0,0 @@
-###############################################################################
-# @generated
-# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
-# regenerate this file, run the following:
-#
-#     bazel run //bindgen/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 = "which",
-    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 = "3.1.1",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@rules_rust_bindgen__libc-0.2.126//:libc",
-        ],
-    }),
-)
diff --git a/bindgen/3rdparty/crates/BUILD.ansi_term-0.12.1.bazel b/bindgen/3rdparty/crates/BUILD.which-4.2.5.bazel
similarity index 85%
rename from bindgen/3rdparty/crates/BUILD.ansi_term-0.12.1.bazel
rename to bindgen/3rdparty/crates/BUILD.which-4.2.5.bazel
index 79ba915..acf903d 100644
--- a/bindgen/3rdparty/crates/BUILD.ansi_term-0.12.1.bazel
+++ b/bindgen/3rdparty/crates/BUILD.which-4.2.5.bazel
@@ -25,7 +25,7 @@
 # ])
 
 rust_library(
-    name = "ansi_term",
+    name = "which",
     srcs = glob(
         include = [
             "**/*.rs",
@@ -56,7 +56,7 @@
         "//conditions:default": [
         ],
     }),
-    edition = "2015",
+    edition = "2018",
     proc_macro_deps = [
     ] + select_with_or({
         "//conditions:default": [
@@ -81,20 +81,24 @@
         "noclippy",
         "norustfmt",
     ],
-    version = "0.12.1",
+    version = "4.2.5",
     deps = [
     ] + select_with_or({
-        # cfg(target_os = "windows")
+        # cfg(windows)
         (
             "@rules_rust//rust/platform:i686-pc-windows-msvc",
             "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
         ): [
             # Target Deps
-            "@rules_rust_bindgen__winapi-0.3.9//:winapi",
+            "@rules_rust_bindgen__lazy_static-1.4.0//:lazy_static",
 
             # Common Deps
+            "@rules_rust_bindgen__either-1.7.0//:either",
+            "@rules_rust_bindgen__libc-0.2.126//:libc",
         ],
         "//conditions:default": [
+            "@rules_rust_bindgen__either-1.7.0//:either",
+            "@rules_rust_bindgen__libc-0.2.126//:libc",
         ],
     }),
 )
diff --git a/bindgen/3rdparty/crates/BUILD.winapi-0.3.9.bazel b/bindgen/3rdparty/crates/BUILD.winapi-0.3.9.bazel
index c71dbba..8747875 100644
--- a/bindgen/3rdparty/crates/BUILD.winapi-0.3.9.bazel
+++ b/bindgen/3rdparty/crates/BUILD.winapi-0.3.9.bazel
@@ -53,7 +53,6 @@
         "consoleapi",
         "errhandlingapi",
         "fileapi",
-        "handleapi",
         "libloaderapi",
         "minwinbase",
         "minwindef",
diff --git a/bindgen/3rdparty/crates/defs.bzl b/bindgen/3rdparty/crates/defs.bzl
index c6c3430..a7ef859 100644
--- a/bindgen/3rdparty/crates/defs.bzl
+++ b/bindgen/3rdparty/crates/defs.bzl
@@ -291,8 +291,8 @@
 _NORMAL_DEPENDENCIES = {
     "": {
         _COMMON_CONDITION: {
-            "bindgen": "@rules_rust_bindgen__bindgen-0.58.1//:bindgen",
-            "libloading": "@rules_rust_bindgen__libloading-0.6.3//:libloading",
+            "bindgen": "@rules_rust_bindgen__bindgen-0.60.1//:bindgen",
+            "libloading": "@rules_rust_bindgen__libloading-0.7.3//:libloading",
         },
     },
 }
@@ -355,9 +355,7 @@
 }
 
 _CONDITIONS = {
-    "cfg(not(windows))": ["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", "riscv32imc-unknown-none-elf", "s390x-unknown-linux-gnu", "wasm32-unknown-unknown", "wasm32-wasi", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
     "cfg(target_os = \"hermit\")": [],
-    "cfg(target_os = \"windows\")": ["i686-pc-windows-msvc", "x86_64-pc-windows-msvc"],
     "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": [],
@@ -380,16 +378,6 @@
 
     maybe(
         http_archive,
-        name = "rules_rust_bindgen__ansi_term-0.12.1",
-        sha256 = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2",
-        type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/ansi_term/0.12.1/download"],
-        strip_prefix = "ansi_term-0.12.1",
-        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.ansi_term-0.12.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
         name = "rules_rust_bindgen__atty-0.2.14",
         sha256 = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8",
         type = "tar.gz",
@@ -400,12 +388,22 @@
 
     maybe(
         http_archive,
-        name = "rules_rust_bindgen__bindgen-0.58.1",
-        sha256 = "0f8523b410d7187a43085e7e064416ea32ded16bd0a4e6fc025e21616d01258f",
+        name = "rules_rust_bindgen__autocfg-1.1.0",
+        sha256 = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/bindgen/0.58.1/download"],
-        strip_prefix = "bindgen-0.58.1",
-        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.bindgen-0.58.1.bazel"),
+        urls = ["https://crates.io/api/v1/crates/autocfg/1.1.0/download"],
+        strip_prefix = "autocfg-1.1.0",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.autocfg-1.1.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__bindgen-0.60.1",
+        sha256 = "062dddbc1ba4aca46de6338e2bf87771414c335f7b2f2036e8f3e9befebf88e6",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/bindgen/0.60.1/download"],
+        strip_prefix = "bindgen-0.60.1",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.bindgen-0.60.1.bazel"),
     )
 
     maybe(
@@ -420,22 +418,12 @@
 
     maybe(
         http_archive,
-        name = "rules_rust_bindgen__cexpr-0.4.0",
-        sha256 = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27",
+        name = "rules_rust_bindgen__cexpr-0.6.0",
+        sha256 = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/cexpr/0.4.0/download"],
-        strip_prefix = "cexpr-0.4.0",
-        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.cexpr-0.4.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__cfg-if-0.1.10",
-        sha256 = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822",
-        type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/cfg-if/0.1.10/download"],
-        strip_prefix = "cfg-if-0.1.10",
-        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.cfg-if-0.1.10.bazel"),
+        urls = ["https://crates.io/api/v1/crates/cexpr/0.6.0/download"],
+        strip_prefix = "cexpr-0.6.0",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.cexpr-0.6.0.bazel"),
     )
 
     maybe(
@@ -460,22 +448,42 @@
 
     maybe(
         http_archive,
-        name = "rules_rust_bindgen__clap-2.34.0",
-        sha256 = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c",
+        name = "rules_rust_bindgen__clap-3.2.12",
+        sha256 = "ab8b79fe3946ceb4a0b1c080b4018992b8d27e9ff363644c1c9b6387c854614d",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/clap/2.34.0/download"],
-        strip_prefix = "clap-2.34.0",
-        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.clap-2.34.0.bazel"),
+        urls = ["https://crates.io/api/v1/crates/clap/3.2.12/download"],
+        strip_prefix = "clap-3.2.12",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.clap-3.2.12.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "rules_rust_bindgen__env_logger-0.8.4",
-        sha256 = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3",
+        name = "rules_rust_bindgen__clap_lex-0.2.4",
+        sha256 = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/env_logger/0.8.4/download"],
-        strip_prefix = "env_logger-0.8.4",
-        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.env_logger-0.8.4.bazel"),
+        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//bindgen/3rdparty/crates:BUILD.clap_lex-0.2.4.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__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//bindgen/3rdparty/crates:BUILD.either-1.7.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__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//bindgen/3rdparty/crates:BUILD.env_logger-0.9.0.bazel"),
     )
 
     maybe(
@@ -490,6 +498,16 @@
 
     maybe(
         http_archive,
+        name = "rules_rust_bindgen__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//bindgen/3rdparty/crates:BUILD.hashbrown-0.12.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
         name = "rules_rust_bindgen__hermit-abi-0.1.19",
         sha256 = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33",
         type = "tar.gz",
@@ -510,6 +528,16 @@
 
     maybe(
         http_archive,
+        name = "rules_rust_bindgen__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//bindgen/3rdparty/crates:BUILD.indexmap-1.9.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
         name = "rules_rust_bindgen__lazy_static-1.4.0",
         sha256 = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646",
         type = "tar.gz",
@@ -540,16 +568,6 @@
 
     maybe(
         http_archive,
-        name = "rules_rust_bindgen__libloading-0.6.3",
-        sha256 = "2443d8f0478b16759158b2f66d525991a05491138bc05814ef52a250148ef4f9",
-        type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/libloading/0.6.3/download"],
-        strip_prefix = "libloading-0.6.3",
-        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.libloading-0.6.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
         name = "rules_rust_bindgen__libloading-0.7.3",
         sha256 = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd",
         type = "tar.gz",
@@ -580,12 +598,32 @@
 
     maybe(
         http_archive,
-        name = "rules_rust_bindgen__nom-5.1.2",
-        sha256 = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af",
+        name = "rules_rust_bindgen__minimal-lexical-0.2.1",
+        sha256 = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/nom/5.1.2/download"],
-        strip_prefix = "nom-5.1.2",
-        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.nom-5.1.2.bazel"),
+        urls = ["https://crates.io/api/v1/crates/minimal-lexical/0.2.1/download"],
+        strip_prefix = "minimal-lexical-0.2.1",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.minimal-lexical-0.2.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__nom-7.1.1",
+        sha256 = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/nom/7.1.1/download"],
+        strip_prefix = "nom-7.1.1",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.nom-7.1.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__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//bindgen/3rdparty/crates:BUILD.os_str_bytes-6.2.0.bazel"),
     )
 
     maybe(
@@ -660,12 +698,12 @@
 
     maybe(
         http_archive,
-        name = "rules_rust_bindgen__strsim-0.8.0",
-        sha256 = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a",
+        name = "rules_rust_bindgen__strsim-0.10.0",
+        sha256 = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/strsim/0.8.0/download"],
-        strip_prefix = "strsim-0.8.0",
-        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.strsim-0.8.0.bazel"),
+        urls = ["https://crates.io/api/v1/crates/strsim/0.10.0/download"],
+        strip_prefix = "strsim-0.10.0",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.strsim-0.10.0.bazel"),
     )
 
     maybe(
@@ -680,62 +718,32 @@
 
     maybe(
         http_archive,
-        name = "rules_rust_bindgen__textwrap-0.11.0",
-        sha256 = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060",
+        name = "rules_rust_bindgen__textwrap-0.15.0",
+        sha256 = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/textwrap/0.11.0/download"],
-        strip_prefix = "textwrap-0.11.0",
-        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.textwrap-0.11.0.bazel"),
+        urls = ["https://crates.io/api/v1/crates/textwrap/0.15.0/download"],
+        strip_prefix = "textwrap-0.15.0",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.textwrap-0.15.0.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "rules_rust_bindgen__unicode-ident-1.0.1",
-        sha256 = "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c",
+        name = "rules_rust_bindgen__unicode-ident-1.0.2",
+        sha256 = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/unicode-ident/1.0.1/download"],
-        strip_prefix = "unicode-ident-1.0.1",
-        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.unicode-ident-1.0.1.bazel"),
+        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//bindgen/3rdparty/crates:BUILD.unicode-ident-1.0.2.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "rules_rust_bindgen__unicode-width-0.1.9",
-        sha256 = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973",
+        name = "rules_rust_bindgen__which-4.2.5",
+        sha256 = "5c4fb54e6113b6a8772ee41c3404fb0301ac79604489467e0a9ce1f3e97c24ae",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/unicode-width/0.1.9/download"],
-        strip_prefix = "unicode-width-0.1.9",
-        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.unicode-width-0.1.9.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__vec_map-0.8.2",
-        sha256 = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191",
-        type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/vec_map/0.8.2/download"],
-        strip_prefix = "vec_map-0.8.2",
-        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.vec_map-0.8.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__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//bindgen/3rdparty/crates:BUILD.version_check-0.9.4.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__which-3.1.1",
-        sha256 = "d011071ae14a2f6671d0b74080ae0cd8ebf3a6f8c9589a2cd45f23126fe29724",
-        type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/which/3.1.1/download"],
-        strip_prefix = "which-3.1.1",
-        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.which-3.1.1.bazel"),
+        urls = ["https://crates.io/api/v1/crates/which/4.2.5/download"],
+        strip_prefix = "which-4.2.5",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.which-4.2.5.bazel"),
     )
 
     maybe(