summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Geisler <mgeisler@google.com>2024-03-19 13:24:40 +0100
committerMartin Geisler <mgeisler@google.com>2024-03-19 12:26:24 +0000
commit61091e28e57684ca4ef3edeb89560ff59ac8130c (patch)
tree0ede5ed4a81064d7b0bee30126cbfc25acd472d2
parent4861ea85c01670f1f96d9a755d413dad10c5f7a4 (diff)
downloadmaybe-async-upstream.tar.gz
Import 'maybe-async' crateupstream
Request Document: go/android-rust-importing-crates For CL Reviewers: go/android3p#cl-review For Build Team: go/ab-third-party-imports Bug: http://b/328419425 Test: m libmaybe_async Change-Id: I6414c9264bc1a1735d007a5772a3436716be308c
-rw-r--r--.cargo_vcs_info.json6
-rw-r--r--.github/dependabot.yml12
-rw-r--r--.github/workflows/linux.yml83
-rw-r--r--.gitignore6
-rw-r--r--.rustfmt.toml6
-rw-r--r--.standard-version/cargo-updater.js12
-rw-r--r--.versionrc14
-rw-r--r--Android.bp20
-rw-r--r--CHANGELOG.md72
-rw-r--r--Cargo.toml70
-rw-r--r--LICENSE19
-rw-r--r--METADATA20
-rw-r--r--MODULE_LICENSE_MIT0
-rw-r--r--OWNERS2
-rw-r--r--README.md295
-rw-r--r--README.tpl3
-rw-r--r--cargo.metadata1
-rw-r--r--cargo_embargo.json3
-rw-r--r--examples/service_client.rs77
-rw-r--r--src/lib.rs626
-rw-r--r--src/parse.rs43
-rw-r--r--src/visit.rs187
-rw-r--r--tests/test.rs15
-rw-r--r--tests/ui/01-maybe-async.rs122
-rw-r--r--tests/ui/02-must-be-async.rs134
-rw-r--r--tests/ui/03-must-be-sync.rs88
-rw-r--r--tests/ui/04-unit-test-util.rs38
-rw-r--r--tests/ui/05-replace-future-generic-type-with-output.rs34
-rw-r--r--tests/ui/06-sync_impl_async_impl.rs44
-rw-r--r--tests/ui/test_fail/01-empty-test.rs17
-rw-r--r--tests/ui/test_fail/01-empty-test.stderr7
-rw-r--r--tests/ui/test_fail/02-unknown-path.rs17
-rw-r--r--tests/ui/test_fail/02-unknown-path.stderr5
-rw-r--r--tests/ui/test_fail/03-async-gt2.rs16
-rw-r--r--tests/ui/test_fail/03-async-gt2.stderr5
-rw-r--r--tests/ui/test_fail/04-bad-sync-cond.rs17
-rw-r--r--tests/ui/test_fail/04-bad-sync-cond.stderr5
-rw-r--r--tests/unit-test-util.rs30
38 files changed, 2171 insertions, 0 deletions
diff --git a/.cargo_vcs_info.json b/.cargo_vcs_info.json
new file mode 100644
index 0000000..a45c9f6
--- /dev/null
+++ b/.cargo_vcs_info.json
@@ -0,0 +1,6 @@
+{
+ "git": {
+ "sha1": "9e2532439ca262f2ba12cc62ef7d44fbbc3e68db"
+ },
+ "path_in_vcs": ""
+} \ No newline at end of file
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000..b64b7c1
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,12 @@
+version: 2
+updates:
+- package-ecosystem: cargo
+ directory: "/"
+ schedule:
+ interval: daily
+ time: "21:00"
+ open-pull-requests-limit: 10
+ ignore:
+ - dependency-name: tokio
+ versions:
+ - 0.2.25
diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml
new file mode 100644
index 0000000..daf0a40
--- /dev/null
+++ b/.github/workflows/linux.yml
@@ -0,0 +1,83 @@
+name: CI (Linux)
+
+on: [push, pull_request]
+
+jobs:
+ build_and_test:
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: rustfmt
+ uses: actions-rs/cargo@v1
+ with:
+ command: fmt
+ args: --all -- --check
+
+ - name: check build (async)
+ uses: actions-rs/cargo@v1
+ with:
+ command: check
+ args: --all --bins --examples --tests
+
+ - name: tests (async)
+ uses: actions-rs/cargo@v1
+ timeout-minutes: 40
+ with:
+ command: test
+ args: --all --no-fail-fast -- --nocapture
+
+ - name: check build (is_sync)
+ uses: actions-rs/cargo@v1
+ with:
+ command: check
+ args: --features=is_sync --all --bins --examples --tests
+
+ - name: tests (is_sync)
+ uses: actions-rs/cargo@v1
+ timeout-minutes: 40
+ with:
+ command: test
+ args: --features=is_sync --all --no-fail-fast -- --nocapture
+
+ doc:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: doc (async)
+ uses: actions-rs/cargo@v1
+ env:
+ RUSTDOCFLAGS: -Dwarnings
+ with:
+ command: doc
+ args: --all --no-deps
+
+ - name: doc (is_sync)
+ uses: actions-rs/cargo@v1
+ env:
+ RUSTDOCFLAGS: -Dwarnings
+ with:
+ command: doc
+ args: --all --no-deps --features=is_sync
+
+ publish:
+ name: Publish Package
+ needs: build_and_test
+ if: startsWith(github.ref, 'refs/tags/v')
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: login
+ env:
+ SUPER_SECRET: ${{ secrets.CARGO_TOKEN }}
+ run: cargo login "$SUPER_SECRET"
+ shell: bash
+
+ - name: publish
+ uses: actions-rs/cargo@v1
+ with:
+ command: publish
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..bd23b36
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,6 @@
+/target
+**/*.rs.bk
+Cargo.lock
+
+.idea/**
+.vscode/** \ No newline at end of file
diff --git a/.rustfmt.toml b/.rustfmt.toml
new file mode 100644
index 0000000..2a3df68
--- /dev/null
+++ b/.rustfmt.toml
@@ -0,0 +1,6 @@
+reorder_imports = true
+format_code_in_doc_comments = true
+normalize_doc_attributes = true
+wrap_comments = true
+format_strings = true
+merge_imports = true \ No newline at end of file
diff --git a/.standard-version/cargo-updater.js b/.standard-version/cargo-updater.js
new file mode 100644
index 0000000..ddcb2c4
--- /dev/null
+++ b/.standard-version/cargo-updater.js
@@ -0,0 +1,12 @@
+const TOML = require('@iarna/toml')
+
+module.exports.readVersion = function (contents) {
+ let data = TOML.parse(contents);
+ return data.package.version;
+}
+
+module.exports.writeVersion = function (contents, version) {
+ let data = TOML.parse(contents);
+ data.package.version = version;
+ return TOML.stringify(data);
+}
diff --git a/.versionrc b/.versionrc
new file mode 100644
index 0000000..cb4b638
--- /dev/null
+++ b/.versionrc
@@ -0,0 +1,14 @@
+{
+ "bumpFiles": [
+ {
+ "filename": "Cargo.toml",
+ "updater": ".standard-version/cargo-updater.js"
+ }
+ ],
+ "packageFiles": [
+ {
+ "filename": "Cargo.toml",
+ "updater": ".standard-version/cargo-updater.js"
+ }
+ ]
+}
diff --git a/Android.bp b/Android.bp
new file mode 100644
index 0000000..e650a51
--- /dev/null
+++ b/Android.bp
@@ -0,0 +1,20 @@
+// This file is generated by cargo_embargo.
+// Do not modify this file as changes will be overridden on upgrade.
+
+// TODO: Add license.
+rust_proc_macro {
+ name: "libmaybe_async",
+ crate_name: "maybe_async",
+ cargo_env_compat: true,
+ cargo_pkg_version: "0.2.10",
+ srcs: ["src/lib.rs"],
+ edition: "2021",
+ features: ["default"],
+ rustlibs: [
+ "libproc_macro2",
+ "libquote",
+ "libsyn",
+ ],
+ product_available: true,
+ vendor_available: true,
+}
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..ea2b08c
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,72 @@
+# Changelog
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+### [0.2.10](https://github.com/fMeow/maybe-async-rs/compare/v0.2.9...v0.2.10) (2024-02-22)
+
+### [0.2.9](https://github.com/fMeow/maybe-async-rs/compare/v0.2.8...v0.2.9) (2024-01-31)
+
+
+### Features
+
+* support `async fn` in traits ([282eb76](https://github.com/fMeow/maybe-async-rs/commit/282eb76c0be0433ade8d0a2a11646e09db2f37b7))
+
+### [0.2.8](https://github.com/fMeow/maybe-async-rs/compare/v0.2.7...v0.2.8) (2024-01-30)
+
+### [0.2.7](https://github.com/fMeow/maybe-async-rs/compare/v0.2.6...v0.2.7) (2023-02-01)
+
+
+### Features
+
+* allow `maybe_async` on static ([a08b112](https://github.com/fMeow/maybe-async-rs/commit/a08b11218bab0d1db304a4f68e0230c022632168))
+
+
+### Bug Fixes
+
+* applying to pub(crate) trait fail ([8cf762f](https://github.com/fMeow/maybe-async-rs/commit/8cf762fdeb1d316716fa01fb2525e5a6f5d25987))
+
+### [0.2.6](https://github.com/guoli-lyu/maybe-async-rs/compare/v0.2.4...v0.2.6) (2021-05-28)
+
+
+### Bug Fixes
+
+* remove async test if condition not match ([0089daa](https://github.com/guoli-lyu/maybe-async-rs/commit/0089daad6e3419e11d123e8c5c87a1139880027f))
+* test is removed when is_sync ([377815a](https://github.com/guoli-lyu/maybe-async-rs/commit/377815a7a81efc4a0332cc2716a7d603b350ff03))
+
+### [0.2.5](https://github.com/guoli-lyu/maybe-async-rs/compare/v0.2.4...v0.2.5) (2021-05-28)
+
+
+### Bug Fixes
+
+* remove async test if condition not match ([0c49246](https://github.com/guoli-lyu/maybe-async-rs/commit/0c49246a3245773faff482f6b42d66522d2af208))
+
+### [0.2.4](https://github.com/guoli-lyu/maybe-async-rs/compare/v0.2.3...v0.2.4) (2021-03-28)
+
+
+### Features
+
+* replace generic type of Future with Output ([f296cc0](https://github.com/guoli-lyu/maybe-async-rs/commit/f296cc05c90923ae3a3eeea3c5173d06d642c2ab))
+* search trait bound that ends with `Future` ([3508ff2](https://github.com/guoli-lyu/maybe-async-rs/commit/3508ff2987cce61808297aa920c522e0f2012a8a))
+
+### [0.2.3](https://github.com/guoli-lyu/maybe-async-rs/compare/v0.2.2...v0.2.3) (2021-03-27)
+
+
+### Bug Fixes
+
+* enable full feature gate for syn ([614c085](https://github.com/guoli-lyu/maybe-async-rs/commit/614c085444caf6d0d493422ca20f8ed3b86b7315))
+
+### [0.2.2](https://github.com/guoli-lyu/maybe-async-rs/compare/v0.2.1...v0.2.2) (2020-10-19)
+
+
+### Features
+
+* avoid extra parenthesis and braces ([8d146f9](https://github.com/guoli-lyu/maybe-async-rs/commit/8d146f9a9234339de1ef6b9f7ffd44421a8d6c68))
+* remove parenthesis wrap in await ([bc5f460](https://github.com/guoli-lyu/maybe-async-rs/commit/bc5f46078bfb5ccc1599570303aa72a84cc5e2d7))
+* wrap await expr into block instead of paren ([5c4232a](https://github.com/guoli-lyu/maybe-async-rs/commit/5c4232a07035e9c2d4add280cc5b090a7bde471b))
+
+### [0.2.1](https://github.com/guoli-lyu/maybe-async-rs/compare/v0.2.0...v0.2.1) (2020-10-05)
+
+
+### Bug Fixes
+
+* allow unused_paren when convert to sync ([242ded2](https://github.com/guoli-lyu/maybe-async-rs/commit/242ded2fb9f1cc3c883e0f39a081a555e7a74198))
diff --git a/Cargo.toml b/Cargo.toml
new file mode 100644
index 0000000..d715650
--- /dev/null
+++ b/Cargo.toml
@@ -0,0 +1,70 @@
+# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
+#
+# When uploading crates to the registry Cargo will automatically
+# "normalize" Cargo.toml files for maximal compatibility
+# with all versions of Cargo and also rewrite `path` dependencies
+# to registry (e.g., crates.io) dependencies.
+#
+# If you are reading this file be aware that the original Cargo.toml
+# will likely look very different (and much more reasonable).
+# See Cargo.toml.orig for the original contents.
+
+[package]
+edition = "2021"
+name = "maybe-async"
+version = "0.2.10"
+authors = ["Guoli Lyu <guoli-lv@hotmail.com>"]
+description = "A procedure macro to unify SYNC and ASYNC implementation"
+documentation = "https://docs.rs/maybe-async"
+readme = "README.md"
+keywords = [
+ "maybe",
+ "async",
+ "futures",
+ "macros",
+ "proc_macro",
+]
+license = "MIT"
+repository = "https://github.com/fMeow/maybe-async-rs"
+
+[lib]
+path = "src/lib.rs"
+proc-macro = true
+
+[dependencies.proc-macro2]
+version = "1.0"
+
+[dependencies.quote]
+version = "1.0"
+
+[dependencies.syn]
+version = "2.0"
+features = [
+ "visit-mut",
+ "full",
+]
+
+[dev-dependencies.async-std]
+version = "1"
+features = ["attributes"]
+
+[dev-dependencies.async-trait]
+version = "0.1"
+
+[dev-dependencies.tokio]
+version = "1"
+features = [
+ "macros",
+ "rt-multi-thread",
+]
+
+[dev-dependencies.trybuild]
+version = "1"
+features = ["diff"]
+
+[features]
+default = []
+is_sync = []
+
+[badges.maintenance]
+status = "actively-developed"
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..db45620
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2020 Guoli Lyu
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/METADATA b/METADATA
new file mode 100644
index 0000000..9ca0a6b
--- /dev/null
+++ b/METADATA
@@ -0,0 +1,20 @@
+name: "maybe-async"
+description: "A procedure macro to unify SYNC and ASYNC implementation"
+third_party {
+ identifier {
+ type: "crates.io"
+ value: "maybe-async"
+ }
+ identifier {
+ type: "Archive"
+ value: "https://static.crates.io/crates/maybe-async/maybe-async-0.2.10.crate"
+ primary_source: true
+ }
+ version: "0.2.10"
+ license_type: NOTICE
+ last_upgrade_date {
+ year: 2024
+ month: 2
+ day: 22
+ }
+}
diff --git a/MODULE_LICENSE_MIT b/MODULE_LICENSE_MIT
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/MODULE_LICENSE_MIT
diff --git a/OWNERS b/OWNERS
new file mode 100644
index 0000000..48bea6e
--- /dev/null
+++ b/OWNERS
@@ -0,0 +1,2 @@
+# Bug component: 688011
+include platform/prebuilts/rust:main:/OWNERS
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..1289a73
--- /dev/null
+++ b/README.md
@@ -0,0 +1,295 @@
+# maybe-async
+
+**Why bother writing similar code twice for blocking and async code?**
+
+[![Build Status](https://github.com/fMeow/maybe-async-rs/workflows/CI%20%28Linux%29/badge.svg?branch=main)](https://github.com/fMeow/maybe-async-rs/actions)
+[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)
+[![Latest Version](https://img.shields.io/crates/v/maybe-async.svg)](https://crates.io/crates/maybe-async)
+[![maybe-async](https://docs.rs/maybe-async/badge.svg)](https://docs.rs/maybe-async)
+
+When implementing both sync and async versions of API in a crate, most API
+of the two version are almost the same except for some async/await keyword.
+
+`maybe-async` help unifying async and sync implementation by **procedural
+macro**.
+- Write async code with normal `async`, `await`, and let `maybe_async`
+ handles
+those `async` and `await` when you need a blocking code.
+- Switch between sync and async by toggling `is_sync` feature gate in
+ `Cargo.toml`.
+- use `must_be_async` and `must_be_sync` to keep code in specified version
+- use `async_impl` and `sync_impl` to only compile code block on specified
+ version
+- A handy macro to unify unit test code is also provided.
+
+These procedural macros can be applied to the following codes:
+- trait item declaration
+- trait implementation
+- function definition
+- struct definition
+
+**RECOMMENDATION**: Enable **resolver ver2** in your crate, which is
+introduced in Rust 1.51. If not, two crates in dependency with conflict
+version (one async and another blocking) can fail compilation.
+
+
+### Motivation
+
+The async/await language feature alters the async world of rust.
+Comparing with the map/and_then style, now the async code really resembles
+sync version code.
+
+In many crates, the async and sync version of crates shares the same API,
+but the minor difference that all async code must be awaited prevent the
+unification of async and sync code. In other words, we are forced to write
+an async and a sync implementation respectively.
+
+### Macros in Detail
+
+`maybe-async` offers 4 set of attribute macros: `maybe_async`,
+`sync_impl`/`async_impl`, `must_be_sync`/`must_be_async`, and `test`.
+
+To use `maybe-async`, we must know which block of codes is only used on
+blocking implementation, and which on async. These two implementation should
+share the same function signatures except for async/await keywords, and use
+`sync_impl` and `async_impl` to mark these implementation.
+
+Use `maybe_async` macro on codes that share the same API on both async and
+blocking code except for async/await keywords. And use feature gate
+`is_sync` in `Cargo.toml` to toggle between async and blocking code.
+
+- `maybe_async`
+
+ Offers a unified feature gate to provide sync and async conversion on
+ demand by feature gate `is_sync`, with **async first** policy.
+
+ Want to keep async code? add `maybe_async` in dependencies with default
+ features, which means `maybe_async` is the same as `must_be_async`:
+
+ ```toml
+ [dependencies]
+ maybe_async = "0.2"
+ ```
+
+ Want to convert async code to sync? Add `maybe_async` to dependencies with
+ an `is_sync` feature gate. In this way, `maybe_async` is the same as
+ `must_be_sync`:
+
+ ```toml
+ [dependencies]
+ maybe_async = { version = "0.2", features = ["is_sync"] }
+ ```
+
+ There are three usage variants for `maybe_async` attribute usage:
+ - `#[maybe_async]` or `#[maybe_async(Send)]`
+
+ In this mode, `#[async_trait::async_trait]` is added to trait declarations and trait implementations
+ to support async fn in traits.
+
+ - `#[maybe_async(?Send)]`
+
+ Not all async traits need futures that are `dyn Future + Send`.
+ In this mode, `#[async_trait::async_trait(?Send)]` is added to trait declarations and trait implementations,
+ to avoid having "Send" and "Sync" bounds placed on the async trait
+ methods.
+
+ - `#[maybe_async(AFIT)]`
+
+ AFIT is acronym for **a**sync **f**unction **i**n **t**rait, stabilized from rust 1.74
+
+ For compatibility reasons, the `async fn` in traits is supported via a verbose `AFIT` flag. This will become
+ the default mode for the next major release.
+
+- `must_be_async`
+
+ **Keep async**.
+
+ There are three usage variants for `must_be_async` attribute usage:
+ - `#[must_be_async]` or `#[must_be_async(Send)]`
+ - `#[must_be_async(?Send)]`
+ - `#[must_be_async(AFIT)]`
+
+- `must_be_sync`
+
+ **Convert to sync code**. Convert the async code into sync code by
+ removing all `async move`, `async` and `await` keyword
+
+
+- `sync_impl`
+
+ A sync implementation should compile on blocking implementation and
+ must simply disappear when we want async version.
+
+ Although most of the API are almost the same, there definitely come to a
+ point when the async and sync version should differ greatly. For
+ example, a MongoDB client may use the same API for async and sync
+ version, but the code to actually send reqeust are quite different.
+
+ Here, we can use `sync_impl` to mark a synchronous implementation, and a
+ sync implementation should disappear when we want async version.
+
+- `async_impl`
+
+ An async implementation should on compile on async implementation and
+ must simply disappear when we want sync version.
+
+ There are three usage variants for `async_impl` attribute usage:
+ - `#[async_impl]` or `#[async_impl(Send)]`
+ - `#[async_impl(?Send)]`
+ - `#[async_impl(AFIT)]`
+
+- `test`
+
+ Handy macro to unify async and sync **unit and e2e test** code.
+
+ You can specify the condition to compile to sync test code
+ and also the conditions to compile to async test code with given test
+ macro, e.x. `tokio::test`, `async_std::test`, etc. When only sync
+ condition is specified,the test code only compiles when sync condition
+ is met.
+
+ ```rust
+ # #[maybe_async::maybe_async]
+ # async fn async_fn() -> bool {
+ # true
+ # }
+
+ ##[maybe_async::test(
+ feature="is_sync",
+ async(
+ all(not(feature="is_sync"), feature="async_std"),
+ async_std::test
+ ),
+ async(
+ all(not(feature="is_sync"), feature="tokio"),
+ tokio::test
+ )
+ )]
+ async fn test_async_fn() {
+ let res = async_fn().await;
+ assert_eq!(res, true);
+ }
+ ```
+
+### What's Under the Hook
+
+`maybe-async` compiles your code in different way with the `is_sync` feature
+gate. It removes all `await` and `async` keywords in your code under
+`maybe_async` macro and conditionally compiles codes under `async_impl` and
+`sync_impl`.
+
+Here is a detailed example on what's going on whe the `is_sync` feature
+gate set or not.
+
+```rust
+#[maybe_async::maybe_async(AFIT)]
+trait A {
+ async fn async_fn_name() -> Result<(), ()> {
+ Ok(())
+ }
+ fn sync_fn_name() -> Result<(), ()> {
+ Ok(())
+ }
+}
+
+struct Foo;
+
+#[maybe_async::maybe_async(AFIT)]
+impl A for Foo {
+ async fn async_fn_name() -> Result<(), ()> {
+ Ok(())
+ }
+ fn sync_fn_name() -> Result<(), ()> {
+ Ok(())
+ }
+}
+
+#[maybe_async::maybe_async]
+async fn maybe_async_fn() -> Result<(), ()> {
+ let a = Foo::async_fn_name().await?;
+
+ let b = Foo::sync_fn_name()?;
+ Ok(())
+}
+```
+
+When `maybe-async` feature gate `is_sync` is **NOT** set, the generated code
+is async code:
+
+```rust
+// Compiled code when `is_sync` is toggled off.
+trait A {
+ async fn maybe_async_fn_name() -> Result<(), ()> {
+ Ok(())
+ }
+ fn sync_fn_name() -> Result<(), ()> {
+ Ok(())
+ }
+}
+
+struct Foo;
+
+impl A for Foo {
+ async fn maybe_async_fn_name() -> Result<(), ()> {
+ Ok(())
+ }
+ fn sync_fn_name() -> Result<(), ()> {
+ Ok(())
+ }
+}
+
+async fn maybe_async_fn() -> Result<(), ()> {
+ let a = Foo::maybe_async_fn_name().await?;
+ let b = Foo::sync_fn_name()?;
+ Ok(())
+}
+```
+
+When `maybe-async` feature gate `is_sync` is set, all async keyword is
+ignored and yields a sync version code:
+
+```rust
+// Compiled code when `is_sync` is toggled on.
+trait A {
+ fn maybe_async_fn_name() -> Result<(), ()> {
+ Ok(())
+ }
+ fn sync_fn_name() -> Result<(), ()> {
+ Ok(())
+ }
+}
+
+struct Foo;
+
+impl A for Foo {
+ fn maybe_async_fn_name() -> Result<(), ()> {
+ Ok(())
+ }
+ fn sync_fn_name() -> Result<(), ()> {
+ Ok(())
+ }
+}
+
+fn maybe_async_fn() -> Result<(), ()> {
+ let a = Foo::maybe_async_fn_name()?;
+ let b = Foo::sync_fn_name()?;
+ Ok(())
+}
+```
+
+### Examples
+
+#### rust client for services
+
+When implementing rust client for any services, like awz3. The higher level
+API of async and sync version is almost the same, such as creating or
+deleting a bucket, retrieving an object, etc.
+
+The example `service_client` is a proof of concept that `maybe_async` can
+actually free us from writing almost the same code for sync and async. We
+can toggle between a sync AWZ3 client and async one by `is_sync` feature
+gate when we add `maybe-async` to dependency.
+
+
+## License
+MIT
diff --git a/README.tpl b/README.tpl
new file mode 100644
index 0000000..0d9b104
--- /dev/null
+++ b/README.tpl
@@ -0,0 +1,3 @@
+# {{crate}}
+
+{{readme}}
diff --git a/cargo.metadata b/cargo.metadata
new file mode 100644
index 0000000..92642b5
--- /dev/null
+++ b/cargo.metadata
@@ -0,0 +1 @@
+{"packages":[{"name":"addr2line","version":"0.21.0","id":"addr2line 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 OR MIT","license_file":null,"description":"A cross-platform symbolication library written in Rust, using `gimli`","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"rustc-std-workspace-alloc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.0","kind":null,"rename":"alloc","optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"compiler_builtins","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.2","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rustc-std-workspace-core","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.0","kind":null,"rename":"core","optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"cpp_demangle","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":["alloc"],"target":null,"registry":null},{"name":"fallible-iterator","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.0","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"gimli","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.28.0","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":["read"],"target":null,"registry":null},{"name":"memmap2","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.5.5","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"object","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.32.0","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":["read"],"target":null,"registry":null},{"name":"rustc-demangle","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"smallvec","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"backtrace","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.13","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"clap","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^4.3.21","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":["wrap_help"],"target":null,"registry":null},{"name":"findshlibs","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.10","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"libtest-mimic","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.6.1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"typed-arena","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"addr2line","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/addr2line-0.21.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["example"],"crate_types":["bin"],"name":"addr2line","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/addr2line-0.21.0/examples/addr2line.rs","edition":"2018","required-features":["default"],"doc":false,"doctest":false,"test":false},{"kind":["test"],"crate_types":["bin"],"name":"output_equivalence","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/addr2line-0.21.0/tests/output_equivalence.rs","edition":"2018","required-features":["default"],"doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"correctness","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/addr2line-0.21.0/tests/correctness.rs","edition":"2018","required-features":["default"],"doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"parse","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/addr2line-0.21.0/tests/parse.rs","edition":"2018","required-features":["std-object"],"doc":false,"doctest":false,"test":true}],"features":{"alloc":["dep:alloc"],"compiler_builtins":["dep:compiler_builtins"],"core":["dep:core"],"cpp_demangle":["dep:cpp_demangle"],"default":["rustc-demangle","cpp_demangle","std-object","fallible-iterator","smallvec","memmap2"],"fallible-iterator":["dep:fallible-iterator"],"memmap2":["dep:memmap2"],"object":["dep:object"],"rustc-demangle":["dep:rustc-demangle"],"rustc-dep-of-std":["core","alloc","compiler_builtins","gimli/rustc-dep-of-std"],"smallvec":["dep:smallvec"],"std":["gimli/std"],"std-object":["std","object","object/std","object/compression","gimli/endian-reader"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/addr2line-0.21.0/Cargo.toml","metadata":null,"publish":null,"authors":[],"categories":["development-tools::debugging"],"keywords":["DWARF","debug","elf","symbolicate","atos"],"readme":"./README.md","repository":"https://github.com/gimli-rs/addr2line","homepage":null,"documentation":"https://docs.rs/addr2line","edition":"2018","links":null,"default_run":null,"rust_version":"1.65"},{"name":"adler","version":"1.0.2","id":"adler 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)","license":"0BSD OR MIT OR Apache-2.0","license_file":null,"description":"A simple clean-room implementation of the Adler-32 checksum","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"compiler_builtins","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.2","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rustc-std-workspace-core","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.0","kind":null,"rename":"core","optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"criterion","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.2","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"adler","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/adler-1.0.2/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},{"kind":["bench"],"crate_types":["bin"],"name":"bench","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/adler-1.0.2/benches/bench.rs","edition":"2015","doc":false,"doctest":false,"test":false}],"features":{"compiler_builtins":["dep:compiler_builtins"],"core":["dep:core"],"default":["std"],"rustc-dep-of-std":["core","compiler_builtins"],"std":[]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/adler-1.0.2/Cargo.toml","metadata":{"docs":{"rs":{"rustdoc-args":["--cfg=docsrs"]}},"release":{"no-dev-version":true,"pre-release-commit-message":"Release {{version}}","tag-message":"{{version}}","pre-release-replacements":[{"file":"CHANGELOG.md","replace":"## Unreleased\n\nNo changes.\n\n## [{{version}} - {{date}}](https://github.com/jonas-schievink/adler/releases/tag/v{{version}})\n","search":"## Unreleased\n"},{"file":"README.md","replace":"adler = \"{{version}}\"","search":"adler = \"[a-z0-9\\\\.-]+\""},{"file":"src/lib.rs","replace":"https://docs.rs/adler/{{version}}","search":"https://docs.rs/adler/[a-z0-9\\.-]+"}]}},"publish":null,"authors":["Jonas Schievink <jonasschievink@gmail.com>"],"categories":["algorithms"],"keywords":["checksum","integrity","hash","adler32","zlib"],"readme":"README.md","repository":"https://github.com/jonas-schievink/adler.git","homepage":null,"documentation":"https://docs.rs/adler/","edition":"2015","links":null,"default_run":null,"rust_version":null},{"name":"async-attributes","version":"1.1.2","id":"async-attributes 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Experimental language-level polyfills for Async Rust.","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"quote","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"syn","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":["full"],"target":null,"registry":null},{"name":"async-std","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.99.5","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"async-attributes","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-attributes-1.1.2/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["example"],"crate_types":["bin"],"name":"main","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-attributes-1.1.2/examples/main.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["test"],"crate_types":["bin"],"name":"test","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-attributes-1.1.2/tests/test.rs","edition":"2018","doc":false,"doctest":false,"test":true}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-attributes-1.1.2/Cargo.toml","metadata":null,"publish":null,"authors":["Yoshua Wuyts <yoshuawuyts@gmail.com>"],"categories":["asynchronous","network-programming","filesystem","concurrency","api-bindings"],"keywords":["async","await","macro","futures"],"readme":"README.md","repository":"https://github.com/async-rs/async-attributes","homepage":"https://github.com/async-rs/async-attributes","documentation":"https://docs.rs/async-attributes","edition":"2018","links":null,"default_run":null,"rust_version":null},{"name":"async-channel","version":"1.9.0","id":"async-channel 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 OR MIT","license_file":null,"description":"Async multi-producer multi-consumer channel","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"concurrent-queue","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"event-listener","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.4.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"futures-core","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.5","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"easy-parallel","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^3","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"futures-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"async-channel","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-channel-1.9.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"bounded","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-channel-1.9.0/tests/bounded.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"unbounded","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-channel-1.9.0/tests/unbounded.rs","edition":"2018","doc":false,"doctest":false,"test":true}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-channel-1.9.0/Cargo.toml","metadata":null,"publish":null,"authors":["Stjepan Glavina <stjepang@gmail.com>"],"categories":["asynchronous","concurrency"],"keywords":["mpmc","mpsc","spmc","chan","futures"],"readme":"README.md","repository":"https://github.com/smol-rs/async-channel","homepage":null,"documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":"1.45"},{"name":"async-channel","version":"2.2.0","id":"async-channel 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 OR MIT","license_file":null,"description":"Async multi-producer multi-consumer channel","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"concurrent-queue","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"event-listener","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^5.0.0","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"event-listener-strategy","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.5.0","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"futures-core","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.5","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"pin-project-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.11","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"easy-parallel","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^3","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"futures-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"wasm-bindgen-test","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.37","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(target_family = \"wasm\")","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"async-channel","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-channel-2.2.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"bounded","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-channel-2.2.0/tests/bounded.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"unbounded","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-channel-2.2.0/tests/unbounded.rs","edition":"2021","doc":false,"doctest":false,"test":true}],"features":{"default":["std"],"std":["concurrent-queue/std","event-listener/std","event-listener-strategy/std"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-channel-2.2.0/Cargo.toml","metadata":null,"publish":null,"authors":["Stjepan Glavina <stjepang@gmail.com>"],"categories":["asynchronous","concurrency"],"keywords":["mpmc","mpsc","spmc","chan","futures"],"readme":"README.md","repository":"https://github.com/smol-rs/async-channel","homepage":null,"documentation":null,"edition":"2021","links":null,"default_run":null,"rust_version":"1.60"},{"name":"async-executor","version":"1.8.0","id":"async-executor 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 OR MIT","license_file":null,"description":"Async executor","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"async-lock","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^3.0.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"async-task","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^4.0.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"concurrent-queue","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"fastrand","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"futures-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"slab","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4.4","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"async-channel","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"async-io","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"criterion","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4.0","kind":"dev","rename":null,"optional":false,"uses_default_features":false,"features":["cargo_bench_support"],"target":null,"registry":null},{"name":"easy-parallel","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^3.1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"event-listener","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^3.0.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"fastrand","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"futures-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"once_cell","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.16.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"futures-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":["std"],"target":"cfg(target_family = \"wasm\")","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"async-executor","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-executor-1.8.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},{"kind":["example"],"crate_types":["bin"],"name":"priority","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-executor-1.8.0/examples/priority.rs","edition":"2021","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"limit","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-executor-1.8.0/examples/limit.rs","edition":"2021","doc":false,"doctest":false,"test":false},{"kind":["test"],"crate_types":["bin"],"name":"panic_prop","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-executor-1.8.0/tests/panic_prop.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"different_executors","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-executor-1.8.0/tests/different_executors.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"local_queue","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-executor-1.8.0/tests/local_queue.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"drop","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-executor-1.8.0/tests/drop.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["bench"],"crate_types":["bin"],"name":"executor","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-executor-1.8.0/benches/executor.rs","edition":"2021","doc":false,"doctest":false,"test":false}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-executor-1.8.0/Cargo.toml","metadata":null,"publish":null,"authors":["Stjepan Glavina <stjepang@gmail.com>"],"categories":["asynchronous","concurrency"],"keywords":["asynchronous","executor","single","multi","spawn"],"readme":"README.md","repository":"https://github.com/smol-rs/async-executor","homepage":null,"documentation":null,"edition":"2021","links":null,"default_run":null,"rust_version":"1.61"},{"name":"async-global-executor","version":"2.4.1","id":"async-global-executor 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 OR MIT","license_file":null,"description":"A global executor built on top of async-executor and async-io","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"async-channel","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.1.1","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"async-executor","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.8","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"async-io","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.2.1","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"async-lock","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^3.2","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"blocking","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.5","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"futures-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"once_cell","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.4","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"tokio","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":null,"rename":"tokio-crate","optional":true,"uses_default_features":false,"features":["rt","rt-multi-thread"],"target":null,"registry":null},{"name":"tokio","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2","kind":null,"rename":"tokio02-crate","optional":true,"uses_default_features":false,"features":["rt-core"],"target":null,"registry":null},{"name":"tokio","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.4","kind":null,"rename":"tokio03-crate","optional":true,"uses_default_features":false,"features":["rt","rt-multi-thread"],"target":null,"registry":null},{"name":"doc-comment","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"async-global-executor","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-global-executor-2.4.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true}],"features":{"async-io":["dep:async-io"],"default":["async-io"],"tokio":["tokio-crate"],"tokio-crate":["dep:tokio-crate"],"tokio02":["tokio02-crate"],"tokio02-crate":["dep:tokio02-crate"],"tokio03":["tokio03-crate"],"tokio03-crate":["dep:tokio03-crate"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-global-executor-2.4.1/Cargo.toml","metadata":null,"publish":null,"authors":["Marc-Antoine Perennou <Marc-Antoine@Perennou.com>"],"categories":["asynchronous","concurrency"],"keywords":["async","await","future","executor"],"readme":"README.md","repository":"https://github.com/Keruspe/async-global-executor","homepage":"https://github.com/Keruspe/async-global-executor","documentation":"https://docs.rs/async-global-executor","edition":"2021","links":null,"default_run":null,"rust_version":"1.60"},{"name":"async-io","version":"1.13.0","id":"async-io 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 OR MIT","license_file":null,"description":"Async I/O and timers","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"async-lock","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.6","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"cfg-if","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"concurrent-queue","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"futures-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.11.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"log","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4.11","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"parking","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"polling","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rustix","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.37.1","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":["std","fs"],"target":null,"registry":null},{"name":"slab","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4.2","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"socket2","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4.2","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":["all"],"target":null,"registry":null},{"name":"waker-fn","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.1.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"async-channel","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"async-net","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"blocking","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"criterion","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4","kind":"dev","rename":null,"optional":false,"uses_default_features":false,"features":["cargo_bench_support"],"target":null,"registry":null},{"name":"getrandom","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.7","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"signal-hook","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"tempfile","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^3","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"autocfg","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"build","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"inotify","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.10","kind":"dev","rename":null,"optional":false,"uses_default_features":false,"features":[],"target":"cfg(target_os = \"linux\")","registry":null},{"name":"timerfd","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(target_os = \"linux\")","registry":null},{"name":"uds_windows","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(windows)","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"async-io","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-io-1.13.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["example"],"crate_types":["bin"],"name":"linux-inotify","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-io-1.13.0/examples/linux-inotify.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"linux-timerfd","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-io-1.13.0/examples/linux-timerfd.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"unix-signal","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-io-1.13.0/examples/unix-signal.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"windows-uds","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-io-1.13.0/examples/windows-uds.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["test"],"crate_types":["bin"],"name":"async","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-io-1.13.0/tests/async.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"timer","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-io-1.13.0/tests/timer.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["bench"],"crate_types":["bin"],"name":"io","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-io-1.13.0/benches/io.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["bench"],"crate_types":["bin"],"name":"timer","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-io-1.13.0/benches/timer.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-io-1.13.0/build.rs","edition":"2018","doc":false,"doctest":false,"test":false}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-io-1.13.0/Cargo.toml","metadata":null,"publish":null,"authors":["Stjepan Glavina <stjepang@gmail.com>"],"categories":["asynchronous","network-programming","os"],"keywords":["mio","epoll","kqueue","iocp"],"readme":"README.md","repository":"https://github.com/smol-rs/async-io","homepage":null,"documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":"1.48"},{"name":"async-io","version":"2.3.1","id":"async-io 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 OR MIT","license_file":null,"description":"Async I/O and timers","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"async-lock","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^3.0.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"cfg-if","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"concurrent-queue","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.2.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"futures-io","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.28","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":["std"],"target":null,"registry":null},{"name":"futures-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"parking","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"polling","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^3.0.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rustix","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.38.2","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":["fs","net","std"],"target":null,"registry":null},{"name":"slab","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4.2","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"tracing","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.37","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"async-channel","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"async-net","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"blocking","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"criterion","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4","kind":"dev","rename":null,"optional":false,"uses_default_features":false,"features":["cargo_bench_support"],"target":null,"registry":null},{"name":"getrandom","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.7","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"signal-hook","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"tempfile","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^3","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"inotify","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.10.1","kind":"dev","rename":null,"optional":false,"uses_default_features":false,"features":[],"target":"cfg(target_os = \"linux\")","registry":null},{"name":"timerfd","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(target_os = \"linux\")","registry":null},{"name":"windows-sys","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.52.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":["Win32_Foundation"],"target":"cfg(windows)","registry":null},{"name":"uds_windows","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(windows)","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"async-io","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-io-2.3.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},{"kind":["example"],"crate_types":["bin"],"name":"linux-inotify","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-io-2.3.1/examples/linux-inotify.rs","edition":"2021","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"linux-timerfd","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-io-2.3.1/examples/linux-timerfd.rs","edition":"2021","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"unix-signal","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-io-2.3.1/examples/unix-signal.rs","edition":"2021","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"windows-uds","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-io-2.3.1/examples/windows-uds.rs","edition":"2021","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"kqueue-process","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-io-2.3.1/examples/kqueue-process.rs","edition":"2021","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"windows-command","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-io-2.3.1/examples/windows-command.rs","edition":"2021","doc":false,"doctest":false,"test":false},{"kind":["test"],"crate_types":["bin"],"name":"async","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-io-2.3.1/tests/async.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"block_on","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-io-2.3.1/tests/block_on.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"issue_182","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-io-2.3.1/tests/issue_182.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"timer","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-io-2.3.1/tests/timer.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["bench"],"crate_types":["bin"],"name":"io","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-io-2.3.1/benches/io.rs","edition":"2021","doc":false,"doctest":false,"test":false},{"kind":["bench"],"crate_types":["bin"],"name":"timer","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-io-2.3.1/benches/timer.rs","edition":"2021","doc":false,"doctest":false,"test":false}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-io-2.3.1/Cargo.toml","metadata":null,"publish":null,"authors":["Stjepan Glavina <stjepang@gmail.com>"],"categories":["asynchronous","network-programming","os"],"keywords":["mio","epoll","kqueue","iocp"],"readme":"README.md","repository":"https://github.com/smol-rs/async-io","homepage":null,"documentation":null,"edition":"2021","links":null,"default_run":null,"rust_version":"1.63"},{"name":"async-lock","version":"2.8.0","id":"async-lock 2.8.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 OR MIT","license_file":null,"description":"Async synchronization primitives","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"event-listener","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.5.1","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"async-channel","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.5.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"fastrand","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"futures-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.12.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"waker-fn","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"wasm-bindgen-test","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(any(target_arch = \"wasm32\", target_arch = \"wasm64\"))","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"async-lock","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-lock-2.8.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"rwlock","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-lock-2.8.0/tests/rwlock.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"barrier","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-lock-2.8.0/tests/barrier.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"mutex","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-lock-2.8.0/tests/mutex.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"semaphore","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-lock-2.8.0/tests/semaphore.rs","edition":"2018","doc":false,"doctest":false,"test":true}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-lock-2.8.0/Cargo.toml","metadata":null,"publish":null,"authors":["Stjepan Glavina <stjepang@gmail.com>"],"categories":["asynchronous","concurrency"],"keywords":["lock","mutex","rwlock","semaphore","barrier"],"readme":"README.md","repository":"https://github.com/smol-rs/async-lock","homepage":null,"documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":"1.48"},{"name":"async-lock","version":"3.3.0","id":"async-lock 3.3.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 OR MIT","license_file":null,"description":"Async synchronization primitives","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"event-listener","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^4.0.0","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"event-listener-strategy","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4.0","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"pin-project-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.11","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"async-channel","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"fastrand","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"futures-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"waker-fn","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"wasm-bindgen-test","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(target_family = \"wasm\")","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"async-lock","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-lock-3.3.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"rwlock","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-lock-3.3.0/tests/rwlock.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"barrier","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-lock-3.3.0/tests/barrier.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"mutex","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-lock-3.3.0/tests/mutex.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"semaphore","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-lock-3.3.0/tests/semaphore.rs","edition":"2021","doc":false,"doctest":false,"test":true}],"features":{"default":["std"],"std":["event-listener/std","event-listener-strategy/std"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-lock-3.3.0/Cargo.toml","metadata":null,"publish":null,"authors":["Stjepan Glavina <stjepang@gmail.com>"],"categories":["asynchronous","concurrency"],"keywords":["lock","mutex","rwlock","semaphore","barrier"],"readme":"README.md","repository":"https://github.com/smol-rs/async-lock","homepage":null,"documentation":null,"edition":"2021","links":null,"default_run":null,"rust_version":"1.60"},{"name":"async-std","version":"1.12.0","id":"async-std 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0/MIT","license_file":null,"description":"Async version of the Rust standard library","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"async-attributes","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.1.1","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"async-channel","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.5.1","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"async-lock","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.3.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"crossbeam-utils","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.8.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"futures-core","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.4","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"futures-io","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.4","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"kv-log-macro","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.6","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"log","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4.8","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":["kv_unstable"],"target":null,"registry":null},{"name":"memchr","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.3.3","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"once_cell","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.3.1","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"pin-project-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"pin-utils","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.0-alpha.4","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"slab","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4.2","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"surf","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"femme","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.1.1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"futures","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.4","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rand","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.8.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rand_xorshift","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"tempfile","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^3.1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"async-global-executor","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":["async-io"],"target":"cfg(not(target_os = \"unknown\"))","registry":null},{"name":"async-io","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.1","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":"cfg(not(target_os = \"unknown\"))","registry":null},{"name":"async-process","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.1","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":"cfg(not(target_os = \"unknown\"))","registry":null},{"name":"futures-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":"cfg(not(target_os = \"unknown\"))","registry":null},{"name":"futures-channel","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.4","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":"cfg(target_arch = \"wasm32\")","registry":null},{"name":"gloo-timers","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.1","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":["futures"],"target":"cfg(target_arch = \"wasm32\")","registry":null},{"name":"wasm-bindgen-futures","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4.10","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":"cfg(target_arch = \"wasm32\")","registry":null},{"name":"getrandom","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":["js"],"target":"cfg(target_arch = \"wasm32\")","registry":null},{"name":"wasm-bindgen-test","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.10","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(target_arch = \"wasm32\")","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"async-std","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["example"],"crate_types":["bin"],"name":"tcp-ipv4-and-6-echo","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/examples/tcp-ipv4-and-6-echo.rs","edition":"2018","required-features":["unstable"],"doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"surf-web","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/examples/surf-web.rs","edition":"2018","required-features":["surf"],"doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"logging","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/examples/logging.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"hello-world","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/examples/hello-world.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"a-chat","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/examples/a-chat/main.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"tcp-client","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/examples/tcp-client.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"list-dir","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/examples/list-dir.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"stdin-echo","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/examples/stdin-echo.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"udp-client","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/examples/udp-client.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"line-count","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/examples/line-count.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"task-local","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/examples/task-local.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"stdin-timeout","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/examples/stdin-timeout.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"udp-echo","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/examples/udp-echo.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"task-name","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/examples/task-name.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"tcp-echo","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/examples/tcp-echo.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"socket-timeouts","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/examples/socket-timeouts.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"print-file","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/examples/print-file.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["test"],"crate_types":["bin"],"name":"stream","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/tests/stream.rs","edition":"2018","required-features":["unstable"],"doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"verbose_errors","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/tests/verbose_errors.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"buf_writer","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/tests/buf_writer.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"timeout","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/tests/timeout.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"rwlock","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/tests/rwlock.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"tcp","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/tests/tcp.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"collect","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/tests/collect.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io_timeout","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/tests/io_timeout.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"channel","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/tests/channel.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"block_on","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/tests/block_on.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"addr","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/tests/addr.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"condvar","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/tests/condvar.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"task_local","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/tests/task_local.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"uds","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/tests/uds.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"mutex","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/tests/mutex.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"udp","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/tests/udp.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["bench"],"crate_types":["bin"],"name":"task_local","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/benches/task_local.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["bench"],"crate_types":["bin"],"name":"mutex","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/benches/mutex.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["bench"],"crate_types":["bin"],"name":"task","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/benches/task.rs","edition":"2018","doc":false,"doctest":false,"test":false}],"features":{"alloc":["futures-core/alloc","pin-project-lite"],"async-attributes":["dep:async-attributes"],"async-channel":["dep:async-channel"],"async-global-executor":["dep:async-global-executor"],"async-io":["dep:async-io"],"async-lock":["dep:async-lock"],"async-process":["dep:async-process"],"attributes":["async-attributes"],"crossbeam-utils":["dep:crossbeam-utils"],"default":["std","async-global-executor","async-io","futures-lite","kv-log-macro","log","pin-project-lite","gloo-timers"],"docs":["attributes","unstable","default"],"futures-channel":["dep:futures-channel"],"futures-core":["dep:futures-core"],"futures-io":["dep:futures-io"],"futures-lite":["dep:futures-lite"],"gloo-timers":["dep:gloo-timers"],"kv-log-macro":["dep:kv-log-macro"],"log":["dep:log"],"memchr":["dep:memchr"],"once_cell":["dep:once_cell"],"pin-project-lite":["dep:pin-project-lite"],"pin-utils":["dep:pin-utils"],"slab":["dep:slab"],"std":["alloc","crossbeam-utils","futures-core/std","futures-io","memchr","once_cell","pin-utils","slab","wasm-bindgen-futures","futures-channel","async-channel","async-lock"],"surf":["dep:surf"],"tokio02":["async-global-executor/tokio02"],"tokio03":["async-global-executor/tokio03"],"tokio1":["async-global-executor/tokio"],"unstable":["std","async-io","async-process"],"wasm-bindgen-futures":["dep:wasm-bindgen-futures"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-std-1.12.0/Cargo.toml","metadata":{"docs":{"rs":{"features":["docs"],"rustdoc-args":["--cfg","feature=\"docs\""]}}},"publish":null,"authors":["Stjepan Glavina <stjepang@gmail.com>","Yoshua Wuyts <yoshuawuyts@gmail.com>","Friedel Ziegelmayer <me@dignifiedquire.com>","Contributors to async-std"],"categories":["asynchronous","concurrency","network-programming"],"keywords":["async","await","future","std","task"],"readme":"README.md","repository":"https://github.com/async-rs/async-std","homepage":"https://async.rs","documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":null},{"name":"async-task","version":"4.7.0","id":"async-task 4.7.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 OR MIT","license_file":null,"description":"Task abstraction for building executors","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"portable-atomic","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"atomic-waker","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"easy-parallel","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^3","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"flaky_test","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"flume","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.11","kind":"dev","rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"futures-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"once_cell","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"pin-project-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.10","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"smol","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"async-task","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-task-4.7.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["example"],"crate_types":["bin"],"name":"with-metadata","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-task-4.7.0/examples/with-metadata.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"spawn-on-thread","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-task-4.7.0/examples/spawn-on-thread.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"spawn-local","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-task-4.7.0/examples/spawn-local.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"spawn","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-task-4.7.0/examples/spawn.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["test"],"crate_types":["bin"],"name":"metadata","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-task-4.7.0/tests/metadata.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"waker_ready","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-task-4.7.0/tests/waker_ready.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"basic","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-task-4.7.0/tests/basic.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"waker_pending","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-task-4.7.0/tests/waker_pending.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"ready","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-task-4.7.0/tests/ready.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"panic","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-task-4.7.0/tests/panic.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"join","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-task-4.7.0/tests/join.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"cancel","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-task-4.7.0/tests/cancel.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"waker_panic","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-task-4.7.0/tests/waker_panic.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["bench"],"crate_types":["bin"],"name":"spawn","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-task-4.7.0/benches/spawn.rs","edition":"2018","doc":false,"doctest":false,"test":false}],"features":{"default":["std"],"portable-atomic":["dep:portable-atomic"],"std":[]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-task-4.7.0/Cargo.toml","metadata":null,"publish":null,"authors":["Stjepan Glavina <stjepang@gmail.com>"],"categories":["asynchronous","concurrency","no-std"],"keywords":["futures","task","executor","spawn"],"readme":"README.md","repository":"https://github.com/smol-rs/async-task","homepage":null,"documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":"1.57"},{"name":"async-trait","version":"0.1.77","id":"async-trait 0.1.77 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Type erasure for async trait methods","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"proc-macro2","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.74","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"quote","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.35","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"syn","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.46","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":["full","visit-mut"],"target":null,"registry":null},{"name":"futures","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.30","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rustversion","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.13","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"tracing","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.40","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"tracing-attributes","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.27","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"trybuild","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.81","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":["diff"],"target":null,"registry":null}],"targets":[{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"async-trait","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-trait-0.1.77/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-trait-0.1.77/tests/test.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"compiletest","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-trait-0.1.77/tests/compiletest.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-trait-0.1.77/build.rs","edition":"2021","doc":false,"doctest":false,"test":false}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-trait-0.1.77/Cargo.toml","metadata":{"docs":{"rs":{"rustdoc-args":["--generate-link-to-definition"],"targets":["x86_64-unknown-linux-gnu"]}}},"publish":null,"authors":["David Tolnay <dtolnay@gmail.com>"],"categories":["asynchronous","no-std"],"keywords":["async"],"readme":"README.md","repository":"https://github.com/dtolnay/async-trait","homepage":null,"documentation":"https://docs.rs/async-trait","edition":"2021","links":null,"default_run":null,"rust_version":"1.56"},{"name":"atomic-waker","version":"1.1.2","id":"atomic-waker 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 OR MIT","license_file":null,"description":"A synchronization primitive for task wakeup","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"portable-atomic","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"criterion","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4.0","kind":"dev","rename":null,"optional":false,"uses_default_features":false,"features":["cargo_bench_support"],"target":null,"registry":null},{"name":"futures","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.5","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rayon","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.7.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"atomic-waker","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/atomic-waker-1.1.2/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"basic","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/atomic-waker-1.1.2/tests/basic.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["bench"],"crate_types":["bin"],"name":"waker","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/atomic-waker-1.1.2/benches/waker.rs","edition":"2018","doc":false,"doctest":false,"test":false}],"features":{"portable-atomic":["dep:portable-atomic"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/atomic-waker-1.1.2/Cargo.toml","metadata":null,"publish":null,"authors":["Stjepan Glavina <stjepang@gmail.com>","Contributors to futures-rs"],"categories":["asynchronous","concurrency"],"keywords":["waker","notify","wake","futures","async"],"readme":"README.md","repository":"https://github.com/smol-rs/atomic-waker","homepage":null,"documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":"1.36"},{"name":"autocfg","version":"1.1.0","id":"autocfg 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 OR MIT","license_file":null,"description":"Automatic cfg for Rust compiler features","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"autocfg","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/autocfg-1.1.0/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},{"kind":["example"],"crate_types":["bin"],"name":"paths","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/autocfg-1.1.0/examples/paths.rs","edition":"2015","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"traits","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/autocfg-1.1.0/examples/traits.rs","edition":"2015","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"versions","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/autocfg-1.1.0/examples/versions.rs","edition":"2015","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"integers","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/autocfg-1.1.0/examples/integers.rs","edition":"2015","doc":false,"doctest":false,"test":false},{"kind":["test"],"crate_types":["bin"],"name":"rustflags","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/autocfg-1.1.0/tests/rustflags.rs","edition":"2015","doc":false,"doctest":false,"test":true}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/autocfg-1.1.0/Cargo.toml","metadata":null,"publish":null,"authors":["Josh Stone <cuviper@gmail.com>"],"categories":["development-tools::build-utils"],"keywords":["rustc","build","autoconf"],"readme":"README.md","repository":"https://github.com/cuviper/autocfg","homepage":null,"documentation":null,"edition":"2015","links":null,"default_run":null,"rust_version":null},{"name":"backtrace","version":"0.3.69","id":"backtrace 0.3.69 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"A library to acquire a stack trace (backtrace) at runtime in a Rust program.\n","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"cfg-if","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"cpp_demangle","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4.0","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":["alloc"],"target":null,"registry":null},{"name":"rustc-demangle","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.4","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rustc-serialize","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"serde","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":["derive"],"target":null,"registry":null},{"name":"libloading","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.7","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"cc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.67","kind":"build","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"addr2line","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.21.0","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":"cfg(not(all(windows, target_env = \"msvc\", not(target_vendor = \"uwp\"))))","registry":null},{"name":"libc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.146","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":"cfg(not(all(windows, target_env = \"msvc\", not(target_vendor = \"uwp\"))))","registry":null},{"name":"miniz_oxide","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.7.0","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":"cfg(not(all(windows, target_env = \"msvc\", not(target_vendor = \"uwp\"))))","registry":null},{"name":"object","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.32.0","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":["read_core","elf","macho","pe","unaligned","archive"],"target":"cfg(not(all(windows, target_env = \"msvc\", not(target_vendor = \"uwp\"))))","registry":null},{"name":"winapi","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.9","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":"cfg(windows)","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"backtrace","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.69/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["example"],"crate_types":["bin"],"name":"backtrace","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.69/examples/backtrace.rs","edition":"2018","required-features":["std"],"doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"raw","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.69/examples/raw.rs","edition":"2018","required-features":["std"],"doc":false,"doctest":false,"test":false},{"kind":["test"],"crate_types":["bin"],"name":"skip_inner_frames","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.69/tests/skip_inner_frames.rs","edition":"2018","required-features":["std"],"doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"long_fn_name","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.69/tests/long_fn_name.rs","edition":"2018","required-features":["std"],"doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"smoke","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.69/tests/smoke.rs","edition":"2018","required-features":["std"],"doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"accuracy","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.69/tests/accuracy/main.rs","edition":"2018","required-features":["std"],"doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"concurrent-panics","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.69/tests/concurrent-panics.rs","edition":"2018","required-features":["std"],"doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"current-exe-mismatch","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.69/tests/current-exe-mismatch.rs","edition":"2018","required-features":["std"],"doc":false,"doctest":false,"test":true},{"kind":["bench"],"crate_types":["bin"],"name":"benchmarks","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.69/benches/benchmarks.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.69/build.rs","edition":"2018","doc":false,"doctest":false,"test":false}],"features":{"coresymbolication":[],"cpp_demangle":["dep:cpp_demangle"],"dbghelp":[],"default":["std"],"dladdr":[],"gimli-symbolize":[],"kernel32":[],"libbacktrace":[],"libunwind":[],"rustc-serialize":["dep:rustc-serialize"],"serde":["dep:serde"],"serialize-rustc":["rustc-serialize"],"serialize-serde":["serde"],"std":[],"unix-backtrace":[],"verify-winapi":["winapi/dbghelp","winapi/handleapi","winapi/libloaderapi","winapi/memoryapi","winapi/minwindef","winapi/processthreadsapi","winapi/synchapi","winapi/tlhelp32","winapi/winbase","winapi/winnt"],"winapi":["dep:winapi"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.69/Cargo.toml","metadata":null,"publish":null,"authors":["The Rust Project Developers"],"categories":[],"keywords":[],"readme":"README.md","repository":"https://github.com/rust-lang/backtrace-rs","homepage":"https://github.com/rust-lang/backtrace-rs","documentation":"https://docs.rs/backtrace","edition":"2018","links":null,"default_run":null,"rust_version":null},{"name":"basic-toml","version":"0.1.8","id":"basic-toml 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Minimal TOML library with few dependencies","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"serde","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.194","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"semver","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.17","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":["serde"],"target":null,"registry":null},{"name":"serde","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.194","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":["derive"],"target":null,"registry":null},{"name":"serde_derive","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.194","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"serde_json","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.99","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"basic-toml","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/basic-toml-0.1.8/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},{"kind":["example"],"crate_types":["bin"],"name":"decode","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/basic-toml-0.1.8/examples/decode.rs","edition":"2021","doc":false,"doctest":false,"test":false},{"kind":["test"],"crate_types":["bin"],"name":"de-errors","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/basic-toml-0.1.8/tests/de-errors.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"valid","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/basic-toml-0.1.8/tests/valid.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"invalid-misc","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/basic-toml-0.1.8/tests/invalid-misc.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"invalid","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/basic-toml-0.1.8/tests/invalid.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"datetime","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/basic-toml-0.1.8/tests/datetime.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"parser","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/basic-toml-0.1.8/tests/parser.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"formatting","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/basic-toml-0.1.8/tests/formatting.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"tokens","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/basic-toml-0.1.8/tests/tokens.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"enum_external_deserialize","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/basic-toml-0.1.8/tests/enum_external_deserialize.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"display-tricky","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/basic-toml-0.1.8/tests/display-tricky.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"float","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/basic-toml-0.1.8/tests/float.rs","edition":"2021","doc":false,"doctest":false,"test":true}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/basic-toml-0.1.8/Cargo.toml","metadata":{"docs":{"rs":{"rustdoc-args":["--generate-link-to-definition"],"targets":["x86_64-unknown-linux-gnu"]}}},"publish":null,"authors":["Alex Crichton <alex@alexcrichton.com>","David Tolnay <dtolnay@gmail.com>"],"categories":["config","encoding","parser-implementations"],"keywords":["toml","serde"],"readme":"README.md","repository":"https://github.com/dtolnay/basic-toml","homepage":null,"documentation":"https://docs.rs/basic-toml","edition":"2021","links":null,"default_run":null,"rust_version":null},{"name":"bitflags","version":"1.3.2","id":"bitflags 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT/Apache-2.0","license_file":null,"description":"A macro to generate structures which behave like bitflags.\n","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"compiler_builtins","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.2","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rustc-std-workspace-core","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.0","kind":null,"rename":"core","optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rustversion","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"serde","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"serde_derive","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"serde_json","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"trybuild","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"walkdir","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.3","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"bitflags","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bitflags-1.3.2/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"compile","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bitflags-1.3.2/tests/compile.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"basic","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bitflags-1.3.2/tests/basic.rs","edition":"2018","doc":false,"doctest":false,"test":true}],"features":{"compiler_builtins":["dep:compiler_builtins"],"core":["dep:core"],"default":[],"example_generated":[],"rustc-dep-of-std":["core","compiler_builtins"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bitflags-1.3.2/Cargo.toml","metadata":{"docs":{"rs":{"features":["example_generated"]}}},"publish":null,"authors":["The Rust Project Developers"],"categories":["no-std"],"keywords":["bit","bitmask","bitflags","flags"],"readme":"README.md","repository":"https://github.com/bitflags/bitflags","homepage":"https://github.com/bitflags/bitflags","documentation":"https://docs.rs/bitflags","edition":"2018","links":null,"default_run":null,"rust_version":null},{"name":"bitflags","version":"2.4.2","id":"bitflags 2.4.2 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"A macro to generate structures which behave like bitflags.\n","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"arbitrary","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"bytemuck","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"compiler_builtins","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.2","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rustc-std-workspace-core","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.0","kind":null,"rename":"core","optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"serde","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"arbitrary","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":["derive"],"target":null,"registry":null},{"name":"bytemuck","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":["derive"],"target":null,"registry":null},{"name":"rustversion","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"serde_derive","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"serde_json","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"serde_test","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"trybuild","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"zerocopy","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.6","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"bitflags","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bitflags-2.4.2/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},{"kind":["example"],"crate_types":["bin"],"name":"macro_free","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bitflags-2.4.2/examples/macro_free.rs","edition":"2021","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"fmt","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bitflags-2.4.2/examples/fmt.rs","edition":"2021","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"custom_derive","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bitflags-2.4.2/examples/custom_derive.rs","edition":"2021","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"serde","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bitflags-2.4.2/examples/serde.rs","edition":"2021","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"custom_bits_type","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bitflags-2.4.2/examples/custom_bits_type.rs","edition":"2021","doc":false,"doctest":false,"test":false},{"kind":["bench"],"crate_types":["bin"],"name":"parse","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bitflags-2.4.2/benches/parse.rs","edition":"2021","doc":false,"doctest":false,"test":false}],"features":{"arbitrary":["dep:arbitrary"],"bytemuck":["dep:bytemuck"],"compiler_builtins":["dep:compiler_builtins"],"core":["dep:core"],"example_generated":[],"rustc-dep-of-std":["core","compiler_builtins"],"serde":["dep:serde"],"std":[]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bitflags-2.4.2/Cargo.toml","metadata":{"docs":{"rs":{"features":["example_generated"]}}},"publish":null,"authors":["The Rust Project Developers"],"categories":["no-std"],"keywords":["bit","bitmask","bitflags","flags"],"readme":"README.md","repository":"https://github.com/bitflags/bitflags","homepage":"https://github.com/bitflags/bitflags","documentation":"https://docs.rs/bitflags","edition":"2021","links":null,"default_run":null,"rust_version":"1.56.0"},{"name":"blocking","version":"1.5.1","id":"blocking 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 OR MIT","license_file":null,"description":"A thread pool for isolating blocking I/O in async programs","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"async-channel","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"async-task","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^4.0.2","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"fastrand","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"futures-io","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.28","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":["std"],"target":null,"registry":null},{"name":"futures-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"piper","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"tracing","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.37","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"futures-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"async-lock","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^3.0.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(not(target_family = \"wasm\"))","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"blocking","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/blocking-1.5.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["example"],"crate_types":["bin"],"name":"ls","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/blocking-1.5.1/examples/ls.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["test"],"crate_types":["bin"],"name":"unblock","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/blocking-1.5.1/tests/unblock.rs","edition":"2018","doc":false,"doctest":false,"test":true}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/blocking-1.5.1/Cargo.toml","metadata":null,"publish":null,"authors":["Stjepan Glavina <stjepang@gmail.com>"],"categories":["asynchronous","concurrency"],"keywords":["async","file","stdio","stdin","process"],"readme":"README.md","repository":"https://github.com/smol-rs/blocking","homepage":null,"documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":"1.61"},{"name":"bumpalo","version":"3.15.2","id":"bumpalo 3.15.2 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"A fast bump allocation arena for Rust.","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"allocator-api2","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.8","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"criterion","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.6","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"quickcheck","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.3","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rand","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.8.5","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"bumpalo","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bumpalo-3.15.2/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"try_alloc","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bumpalo-3.15.2/tests/try_alloc.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["bench"],"crate_types":["bin"],"name":"benches","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bumpalo-3.15.2/benches/benches.rs","edition":"2021","required-features":["collections"],"doc":false,"doctest":false,"test":false}],"features":{"allocator-api2":["dep:allocator-api2"],"allocator_api":[],"boxed":[],"collections":[],"default":[],"std":[]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bumpalo-3.15.2/Cargo.toml","metadata":{"docs":{"rs":{"all-features":true}}},"publish":null,"authors":["Nick Fitzgerald <fitzgen@gmail.com>"],"categories":["memory-management","rust-patterns","no-std"],"keywords":[],"readme":"README.md","repository":"https://github.com/fitzgen/bumpalo","homepage":null,"documentation":"https://docs.rs/bumpalo","edition":"2021","links":null,"default_run":null,"rust_version":"1.73.0"},{"name":"cc","version":"1.0.86","id":"cc 1.0.86 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"A build-time dependency for Cargo build scripts to assist in invoking the native\nC compiler to compile native C code into a static archive to be linked into Rust\ncode.\n","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"tempfile","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^3","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"libc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.62","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":[],"target":"cfg(unix)","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"cc","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cc-1.0.86/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true}],"features":{"libc":["dep:libc"],"parallel":["libc"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cc-1.0.86/Cargo.toml","metadata":null,"publish":null,"authors":["Alex Crichton <alex@alexcrichton.com>"],"categories":["development-tools::build-utils"],"keywords":["build-dependencies"],"readme":"README.md","repository":"https://github.com/rust-lang/cc-rs","homepage":"https://github.com/rust-lang/cc-rs","documentation":"https://docs.rs/cc","edition":"2018","links":null,"default_run":null,"rust_version":"1.53"},{"name":"cfg-if","version":"1.0.0","id":"cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT/Apache-2.0","license_file":null,"description":"A macro to ergonomically define an item depending on a large number of #[cfg]\nparameters. Structured like an if-else chain, the first matching branch is the\nitem that gets emitted.\n","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"compiler_builtins","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.2","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rustc-std-workspace-core","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.0","kind":null,"rename":"core","optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"cfg-if","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cfg-if-1.0.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"xcrate","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cfg-if-1.0.0/tests/xcrate.rs","edition":"2018","doc":false,"doctest":false,"test":true}],"features":{"compiler_builtins":["dep:compiler_builtins"],"core":["dep:core"],"rustc-dep-of-std":["core","compiler_builtins"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cfg-if-1.0.0/Cargo.toml","metadata":null,"publish":null,"authors":["Alex Crichton <alex@alexcrichton.com>"],"categories":[],"keywords":[],"readme":"README.md","repository":"https://github.com/alexcrichton/cfg-if","homepage":"https://github.com/alexcrichton/cfg-if","documentation":"https://docs.rs/cfg-if","edition":"2018","links":null,"default_run":null,"rust_version":null},{"name":"concurrent-queue","version":"2.4.0","id":"concurrent-queue 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 OR MIT","license_file":null,"description":"Concurrent multi-producer multi-consumer queue","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"crossbeam-utils","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.8.11","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"portable-atomic","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"criterion","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"easy-parallel","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^3.1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"fastrand","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"loom","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.7","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":"cfg(loom)","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"concurrent-queue","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/concurrent-queue-2.4.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"single","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/concurrent-queue-2.4.0/tests/single.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"bounded","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/concurrent-queue-2.4.0/tests/bounded.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"unbounded","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/concurrent-queue-2.4.0/tests/unbounded.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"loom","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/concurrent-queue-2.4.0/tests/loom.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["bench"],"crate_types":["bin"],"name":"bench","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/concurrent-queue-2.4.0/benches/bench.rs","edition":"2018","doc":false,"doctest":false,"test":false}],"features":{"default":["std"],"loom":["dep:loom"],"portable-atomic":["dep:portable-atomic"],"std":[]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/concurrent-queue-2.4.0/Cargo.toml","metadata":null,"publish":null,"authors":["Stjepan Glavina <stjepang@gmail.com>","Taiki Endo <te316e89@gmail.com>","John Nunley <jtnunley01@gmail.com>"],"categories":["concurrency"],"keywords":["channel","mpmc","spsc","spmc","mpsc"],"readme":"README.md","repository":"https://github.com/smol-rs/concurrent-queue","homepage":null,"documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":"1.59"},{"name":"crossbeam-utils","version":"0.8.19","id":"crossbeam-utils 0.8.19 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Utilities for concurrent programming","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"rand","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.8","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"loom","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.7.1","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":"cfg(crossbeam_loom)","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"crossbeam-utils","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-utils-0.8.19/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"cache_padded","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-utils-0.8.19/tests/cache_padded.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"sharded_lock","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-utils-0.8.19/tests/sharded_lock.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"parker","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-utils-0.8.19/tests/parker.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"wait_group","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-utils-0.8.19/tests/wait_group.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"atomic_cell","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-utils-0.8.19/tests/atomic_cell.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"thread","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-utils-0.8.19/tests/thread.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["bench"],"crate_types":["bin"],"name":"atomic_cell","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-utils-0.8.19/benches/atomic_cell.rs","edition":"2021","doc":false,"doctest":false,"test":false},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-utils-0.8.19/build.rs","edition":"2021","doc":false,"doctest":false,"test":false}],"features":{"default":["std"],"loom":["dep:loom"],"nightly":[],"std":[]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-utils-0.8.19/Cargo.toml","metadata":null,"publish":null,"authors":[],"categories":["algorithms","concurrency","data-structures","no-std"],"keywords":["scoped","thread","atomic","cache"],"readme":"README.md","repository":"https://github.com/crossbeam-rs/crossbeam","homepage":"https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-utils","documentation":null,"edition":"2021","links":null,"default_run":null,"rust_version":"1.60"},{"name":"dissimilar","version":"1.0.7","id":"dissimilar 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0","license_file":null,"description":"Diff library with semantic cleanup, based on Google's diff-match-patch","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"once_cell","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"dissimilar","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/dissimilar-1.0.7/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/dissimilar-1.0.7/tests/test.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["bench"],"crate_types":["bin"],"name":"bench","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/dissimilar-1.0.7/benches/bench.rs","edition":"2018","doc":false,"doctest":false,"test":false}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/dissimilar-1.0.7/Cargo.toml","metadata":{"docs":{"rs":{"rustdoc-args":["--generate-link-to-definition"],"targets":["x86_64-unknown-linux-gnu"]}}},"publish":null,"authors":["David Tolnay <dtolnay@gmail.com>"],"categories":["algorithms","text-processing"],"keywords":["diff"],"readme":"README.md","repository":"https://github.com/dtolnay/dissimilar","homepage":null,"documentation":"https://docs.rs/dissimilar","edition":"2018","links":null,"default_run":null,"rust_version":"1.36"},{"name":"errno","version":"0.3.8","id":"errno 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Cross-platform interface to the `errno` variable.","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"libc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":"cfg(target_os = \"hermit\")","registry":null},{"name":"libc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":"cfg(target_os = \"wasi\")","registry":null},{"name":"libc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":"cfg(unix)","registry":null},{"name":"windows-sys","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.52","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":["Win32_Foundation","Win32_System_Diagnostics_Debug"],"target":"cfg(windows)","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"errno","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/errno-0.3.8/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true}],"features":{"default":["std"],"std":["libc/std"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/errno-0.3.8/Cargo.toml","metadata":null,"publish":null,"authors":["Chris Wong <lambda.fairy@gmail.com>"],"categories":["no-std","os"],"keywords":[],"readme":"README.md","repository":"https://github.com/lambda-fairy/rust-errno","homepage":null,"documentation":"https://docs.rs/errno","edition":"2018","links":null,"default_run":null,"rust_version":"1.56"},{"name":"event-listener","version":"2.5.3","id":"event-listener 2.5.3 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 OR MIT","license_file":null,"description":"Notify async tasks or threads","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"futures","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3","kind":"dev","rename":null,"optional":false,"uses_default_features":false,"features":["std"],"target":null,"registry":null},{"name":"waker-fn","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"event-listener","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/event-listener-2.5.3/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["example"],"crate_types":["bin"],"name":"mutex","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/event-listener-2.5.3/examples/mutex.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["test"],"crate_types":["bin"],"name":"notify","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/event-listener-2.5.3/tests/notify.rs","edition":"2018","doc":false,"doctest":false,"test":true}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/event-listener-2.5.3/Cargo.toml","metadata":null,"publish":null,"authors":["Stjepan Glavina <stjepang@gmail.com>"],"categories":["asynchronous","concurrency"],"keywords":["condvar","eventcount","wake","blocking","park"],"readme":"README.md","repository":"https://github.com/smol-rs/event-listener","homepage":null,"documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":"1.36"},{"name":"event-listener","version":"4.0.3","id":"event-listener 4.0.3 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 OR MIT","license_file":null,"description":"Notify async tasks or threads","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"concurrent-queue","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.2.0","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"pin-project-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.12","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"portable-atomic-util","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.4","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":["alloc"],"target":null,"registry":null},{"name":"portable-atomic","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.2.0","kind":null,"rename":"portable_atomic_crate","optional":true,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"criterion","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.5","kind":"dev","rename":null,"optional":false,"uses_default_features":false,"features":["cargo_bench_support"],"target":null,"registry":null},{"name":"futures-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"waker-fn","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"parking","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":"cfg(not(target_family = \"wasm\"))","registry":null},{"name":"wasm-bindgen-test","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(target_family = \"wasm\")","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"event-listener","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/event-listener-4.0.3/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},{"kind":["example"],"crate_types":["bin"],"name":"mutex","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/event-listener-4.0.3/examples/mutex.rs","edition":"2021","doc":false,"doctest":false,"test":false},{"kind":["test"],"crate_types":["bin"],"name":"notify","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/event-listener-4.0.3/tests/notify.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["bench"],"crate_types":["bin"],"name":"bench","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/event-listener-4.0.3/benches/bench.rs","edition":"2021","doc":false,"doctest":false,"test":false}],"features":{"default":["std"],"parking":["dep:parking"],"portable-atomic":["portable-atomic-util","portable_atomic_crate"],"portable-atomic-util":["dep:portable-atomic-util"],"portable_atomic_crate":["dep:portable_atomic_crate"],"std":["concurrent-queue/std","parking"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/event-listener-4.0.3/Cargo.toml","metadata":null,"publish":null,"authors":["Stjepan Glavina <stjepang@gmail.com>"],"categories":["asynchronous","concurrency"],"keywords":["condvar","eventcount","wake","blocking","park"],"readme":"README.md","repository":"https://github.com/smol-rs/event-listener","homepage":null,"documentation":null,"edition":"2021","links":null,"default_run":null,"rust_version":"1.60"},{"name":"event-listener","version":"5.1.0","id":"event-listener 5.1.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 OR MIT","license_file":null,"description":"Notify async tasks or threads","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"concurrent-queue","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.2.0","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"pin-project-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.12","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"portable-atomic-util","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.4","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":["alloc"],"target":null,"registry":null},{"name":"portable-atomic","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.2.0","kind":null,"rename":"portable_atomic_crate","optional":true,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"criterion","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.5","kind":"dev","rename":null,"optional":false,"uses_default_features":false,"features":["cargo_bench_support"],"target":null,"registry":null},{"name":"futures-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"try-lock","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.5","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"waker-fn","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"parking","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":"cfg(not(target_family = \"wasm\"))","registry":null},{"name":"wasm-bindgen-test","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(target_family = \"wasm\")","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"event-listener","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/event-listener-5.1.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},{"kind":["example"],"crate_types":["bin"],"name":"mutex","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/event-listener-5.1.0/examples/mutex.rs","edition":"2021","doc":false,"doctest":false,"test":false},{"kind":["test"],"crate_types":["bin"],"name":"notify","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/event-listener-5.1.0/tests/notify.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["bench"],"crate_types":["bin"],"name":"bench","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/event-listener-5.1.0/benches/bench.rs","edition":"2021","doc":false,"doctest":false,"test":false}],"features":{"default":["std"],"parking":["dep:parking"],"portable-atomic":["portable-atomic-util","portable_atomic_crate"],"portable-atomic-util":["dep:portable-atomic-util"],"portable_atomic_crate":["dep:portable_atomic_crate"],"std":["concurrent-queue/std","parking"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/event-listener-5.1.0/Cargo.toml","metadata":null,"publish":null,"authors":["Stjepan Glavina <stjepang@gmail.com>"],"categories":["asynchronous","concurrency"],"keywords":["condvar","eventcount","wake","blocking","park"],"readme":"README.md","repository":"https://github.com/smol-rs/event-listener","homepage":null,"documentation":null,"edition":"2021","links":null,"default_run":null,"rust_version":"1.60"},{"name":"event-listener-strategy","version":"0.4.0","id":"event-listener-strategy 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 OR MIT","license_file":null,"description":"Block or poll on event_listener easily","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"event-listener","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^4.0.0","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"pin-project-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.12","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"futures-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"wasm-bindgen-test","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.37","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(target_family = \"wasm\")","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"event-listener-strategy","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/event-listener-strategy-0.4.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"easy_wrapper","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/event-listener-strategy-0.4.0/tests/easy_wrapper.rs","edition":"2018","doc":false,"doctest":false,"test":true}],"features":{"default":["std"],"std":["event-listener/std"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/event-listener-strategy-0.4.0/Cargo.toml","metadata":{"docs":{"rs":{"all-features":true,"rustdoc-args":["--cfg","docsrs"]}}},"publish":null,"authors":["John Nunley <dev@notgull.net>"],"categories":["asynchronous","concurrency"],"keywords":["condvar","envcount","wake","blocking","park"],"readme":"README.md","repository":"https://github.com/smol-rs/event-listener","homepage":null,"documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":"1.59"},{"name":"event-listener-strategy","version":"0.5.0","id":"event-listener-strategy 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 OR MIT","license_file":null,"description":"Block or poll on event_listener easily","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"event-listener","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^5.0.0","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"pin-project-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.12","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"futures-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"wasm-bindgen-test","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.37","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(target_family = \"wasm\")","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"event-listener-strategy","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/event-listener-strategy-0.5.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"easy_wrapper","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/event-listener-strategy-0.5.0/tests/easy_wrapper.rs","edition":"2021","doc":false,"doctest":false,"test":true}],"features":{"default":["std"],"std":["event-listener/std"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/event-listener-strategy-0.5.0/Cargo.toml","metadata":{"docs":{"rs":{"all-features":true,"rustdoc-args":["--cfg","docsrs"]}}},"publish":null,"authors":["John Nunley <dev@notgull.net>"],"categories":["asynchronous","concurrency"],"keywords":["condvar","envcount","wake","blocking","park"],"readme":"README.md","repository":"https://github.com/smol-rs/event-listener","homepage":null,"documentation":null,"edition":"2021","links":null,"default_run":null,"rust_version":"1.60"},{"name":"fastrand","version":"1.9.0","id":"fastrand 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 OR MIT","license_file":null,"description":"A simple and fast random number generator","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"getrandom","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rand","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.8","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"wyhash","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.5","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"instant","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(all(target_arch = \"wasm32\", not(target_os = \"wasi\")))","registry":null},{"name":"getrandom","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":["js"],"target":"cfg(all(target_arch = \"wasm32\", not(target_os = \"wasi\")))","registry":null},{"name":"instant","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":["wasm-bindgen"],"target":"cfg(all(target_arch = \"wasm32\", not(target_os = \"wasi\")))","registry":null},{"name":"wasm-bindgen-test","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(all(target_arch = \"wasm32\", not(target_os = \"wasi\")))","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"fastrand","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/fastrand-1.9.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"char","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/fastrand-1.9.0/tests/char.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"smoke","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/fastrand-1.9.0/tests/smoke.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["bench"],"crate_types":["bin"],"name":"bench","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/fastrand-1.9.0/benches/bench.rs","edition":"2018","doc":false,"doctest":false,"test":false}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/fastrand-1.9.0/Cargo.toml","metadata":null,"publish":null,"authors":["Stjepan Glavina <stjepang@gmail.com>"],"categories":["algorithms"],"keywords":["simple","fast","rand","random","wyrand"],"readme":"README.md","repository":"https://github.com/smol-rs/fastrand","homepage":null,"documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":"1.34"},{"name":"fastrand","version":"2.0.1","id":"fastrand 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 OR MIT","license_file":null,"description":"A simple and fast random number generator","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"getrandom","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rand","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.8","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"wyhash","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.5","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"getrandom","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":["js"],"target":"cfg(all(any(target_arch = \"wasm32\", target_arch = \"wasm64\"), target_os = \"unknown\"))","registry":null},{"name":"getrandom","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":["js"],"target":"cfg(all(any(target_arch = \"wasm32\", target_arch = \"wasm64\"), target_os = \"unknown\"))","registry":null},{"name":"wasm-bindgen-test","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(all(any(target_arch = \"wasm32\", target_arch = \"wasm64\"), target_os = \"unknown\"))","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"fastrand","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/fastrand-2.0.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"char","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/fastrand-2.0.1/tests/char.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"smoke","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/fastrand-2.0.1/tests/smoke.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["bench"],"crate_types":["bin"],"name":"bench","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/fastrand-2.0.1/benches/bench.rs","edition":"2018","doc":false,"doctest":false,"test":false}],"features":{"alloc":[],"default":["std"],"getrandom":["dep:getrandom"],"js":["std","getrandom"],"std":["alloc"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/fastrand-2.0.1/Cargo.toml","metadata":{"docs":{"rs":{"all-features":true,"rustdoc-args":["--cfg","docsrs"]}}},"publish":null,"authors":["Stjepan Glavina <stjepang@gmail.com>"],"categories":["algorithms"],"keywords":["simple","fast","rand","random","wyrand"],"readme":"README.md","repository":"https://github.com/smol-rs/fastrand","homepage":null,"documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":"1.36"},{"name":"futures-channel","version":"0.3.30","id":"futures-channel 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Channels for asynchronous communication using futures-rs.\n","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"futures-core","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.30","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"futures-sink","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.30","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"futures-channel","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-channel-0.3.30/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"mpsc","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-channel-0.3.30/tests/mpsc.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"channel","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-channel-0.3.30/tests/channel.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"mpsc-size_hint","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-channel-0.3.30/tests/mpsc-size_hint.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"oneshot","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-channel-0.3.30/tests/oneshot.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"mpsc-close","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-channel-0.3.30/tests/mpsc-close.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["bench"],"crate_types":["bin"],"name":"sync_mpsc","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-channel-0.3.30/benches/sync_mpsc.rs","edition":"2018","doc":false,"doctest":false,"test":false}],"features":{"alloc":["futures-core/alloc"],"cfg-target-has-atomic":[],"default":["std"],"futures-sink":["dep:futures-sink"],"sink":["futures-sink"],"std":["alloc","futures-core/std"],"unstable":[]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-channel-0.3.30/Cargo.toml","metadata":{"docs":{"rs":{"all-features":true,"rustdoc-args":["--cfg","docsrs"]}}},"publish":null,"authors":[],"categories":[],"keywords":[],"readme":"README.md","repository":"https://github.com/rust-lang/futures-rs","homepage":"https://rust-lang.github.io/futures-rs","documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":"1.56"},{"name":"futures-core","version":"0.3.30","id":"futures-core 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"The core traits and types in for the `futures` library.\n","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"portable-atomic","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.3","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":["require-cas"],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"futures-core","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-core-0.3.30/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true}],"features":{"alloc":[],"cfg-target-has-atomic":[],"default":["std"],"portable-atomic":["dep:portable-atomic"],"std":["alloc"],"unstable":[]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-core-0.3.30/Cargo.toml","metadata":{"docs":{"rs":{"all-features":true,"rustdoc-args":["--cfg","docsrs"]}}},"publish":null,"authors":[],"categories":[],"keywords":[],"readme":"README.md","repository":"https://github.com/rust-lang/futures-rs","homepage":"https://rust-lang.github.io/futures-rs","documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":"1.36"},{"name":"futures-io","version":"0.3.30","id":"futures-io 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"The `AsyncRead`, `AsyncWrite`, `AsyncSeek`, and `AsyncBufRead` traits for the futures-rs library.\n","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"futures-io","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-io-0.3.30/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true}],"features":{"default":["std"],"std":[],"unstable":[]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-io-0.3.30/Cargo.toml","metadata":{"docs":{"rs":{"all-features":true,"rustdoc-args":["--cfg","docsrs"]}}},"publish":null,"authors":[],"categories":[],"keywords":[],"readme":"README.md","repository":"https://github.com/rust-lang/futures-rs","homepage":"https://rust-lang.github.io/futures-rs","documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":"1.36"},{"name":"futures-lite","version":"1.13.0","id":"futures-lite 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 OR MIT","license_file":null,"description":"Futures, streams, and async I/O combinators","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"fastrand","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.3.4","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"futures-core","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.5","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"futures-io","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.5","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"memchr","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.3.3","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"parking","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"pin-project-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"waker-fn","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"spin_on","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"futures-lite","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-lite-1.13.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true}],"features":{"alloc":[],"default":["std"],"fastrand":["dep:fastrand"],"futures-io":["dep:futures-io"],"memchr":["dep:memchr"],"parking":["dep:parking"],"std":["alloc","fastrand","futures-io","parking","memchr","waker-fn"],"waker-fn":["dep:waker-fn"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-lite-1.13.0/Cargo.toml","metadata":null,"publish":null,"authors":["Stjepan Glavina <stjepang@gmail.com>","Contributors to futures-rs"],"categories":["asynchronous","concurrency"],"keywords":["asynchronous","futures","async"],"readme":"README.md","repository":"https://github.com/smol-rs/futures-lite","homepage":"https://github.com/smol-rs/futures-lite","documentation":"https://docs.rs/futures-lite","edition":"2018","links":null,"default_run":null,"rust_version":"1.40"},{"name":"futures-lite","version":"2.2.0","id":"futures-lite 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 OR MIT","license_file":null,"description":"Futures, streams, and async I/O combinators","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"fastrand","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"futures-core","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.5","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"futures-io","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.5","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"memchr","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.3.3","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"parking","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.2.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"pin-project-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"spin_on","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"waker-fn","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"futures-lite","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-lite-2.2.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true}],"features":{"alloc":[],"default":["race","std"],"fastrand":["dep:fastrand"],"futures-io":["dep:futures-io"],"memchr":["dep:memchr"],"parking":["dep:parking"],"race":["fastrand"],"std":["alloc","fastrand/std","futures-io","parking"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-lite-2.2.0/Cargo.toml","metadata":null,"publish":null,"authors":["Stjepan Glavina <stjepang@gmail.com>","Contributors to futures-rs"],"categories":["asynchronous","concurrency"],"keywords":["asynchronous","futures","async"],"readme":"README.md","repository":"https://github.com/smol-rs/futures-lite","homepage":"https://github.com/smol-rs/futures-lite","documentation":"https://docs.rs/futures-lite","edition":"2021","links":null,"default_run":null,"rust_version":"1.60"},{"name":"gimli","version":"0.28.1","id":"gimli 0.28.1 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"A library for reading and writing the DWARF debugging format.","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"rustc-std-workspace-alloc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.0","kind":null,"rename":"alloc","optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"compiler_builtins","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.2","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rustc-std-workspace-core","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.0","kind":null,"rename":"core","optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"fallible-iterator","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.0","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"indexmap","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"stable_deref_trait","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.1.0","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"test-assembler","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.3","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"gimli","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/gimli-0.28.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true}],"features":{"default":["read-all","write"],"endian-reader":["read","dep:stable_deref_trait"],"fallible-iterator":["dep:fallible-iterator"],"read":["read-core"],"read-all":["read","std","fallible-iterator","endian-reader"],"read-core":[],"rustc-dep-of-std":["dep:core","dep:alloc","dep:compiler_builtins"],"std":["fallible-iterator?/std","stable_deref_trait?/std"],"write":["dep:indexmap"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/gimli-0.28.1/Cargo.toml","metadata":null,"publish":null,"authors":[],"categories":["development-tools::debugging","development-tools::profiling","parser-implementations"],"keywords":["DWARF","debug","ELF","eh_frame"],"readme":"./README.md","repository":"https://github.com/gimli-rs/gimli","homepage":null,"documentation":"https://docs.rs/gimli","edition":"2018","links":null,"default_run":null,"rust_version":"1.60"},{"name":"glob","version":"0.3.1","id":"glob 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Support for matching file paths against Unix shell style patterns.\n","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"doc-comment","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"tempdir","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"glob","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/glob-0.3.1/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"glob-std","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/glob-0.3.1/tests/glob-std.rs","edition":"2015","doc":false,"doctest":false,"test":true}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/glob-0.3.1/Cargo.toml","metadata":null,"publish":null,"authors":["The Rust Project Developers"],"categories":["filesystem"],"keywords":[],"readme":"README.md","repository":"https://github.com/rust-lang/glob","homepage":"https://github.com/rust-lang/glob","documentation":"https://docs.rs/glob/0.3.1","edition":"2015","links":null,"default_run":null,"rust_version":null},{"name":"gloo-timers","version":"0.2.6","id":"gloo-timers 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT/Apache-2.0","license_file":null,"description":"Convenience crate for working with JavaScript timers","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"futures-channel","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"futures-core","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"js-sys","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.31","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"wasm-bindgen","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"futures-util","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"wasm-bindgen-futures","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4.4","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"wasm-bindgen-test","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.4","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"gloo-timers","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/gloo-timers-0.2.6/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"web","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/gloo-timers-0.2.6/tests/web.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"node","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/gloo-timers-0.2.6/tests/node.rs","edition":"2018","doc":false,"doctest":false,"test":true}],"features":{"default":[],"futures":["futures-core","futures-channel"],"futures-channel":["dep:futures-channel"],"futures-core":["dep:futures-core"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/gloo-timers-0.2.6/Cargo.toml","metadata":{"docs":{"rs":{"features":["futures"]}}},"publish":null,"authors":["Rust and WebAssembly Working Group"],"categories":["api-bindings","asynchronous","wasm"],"keywords":[],"readme":"README.md","repository":"https://github.com/rustwasm/gloo/tree/master/crates/timers","homepage":"https://github.com/rustwasm/gloo","documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":null},{"name":"hermit-abi","version":"0.3.6","id":"hermit-abi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Hermit system calls definitions.","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"rustc-std-workspace-alloc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.0","kind":null,"rename":"alloc","optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"compiler_builtins","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rustc-std-workspace-core","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.0","kind":null,"rename":"core","optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"hermit-abi","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/hermit-abi-0.3.6/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true}],"features":{"alloc":["dep:alloc"],"compiler_builtins":["dep:compiler_builtins"],"core":["dep:core"],"default":[],"rustc-dep-of-std":["core","alloc","compiler_builtins/rustc-dep-of-std"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/hermit-abi-0.3.6/Cargo.toml","metadata":null,"publish":null,"authors":["Stefan Lankes"],"categories":["os"],"keywords":["unikernel","libos"],"readme":"README.md","repository":"https://github.com/hermitcore/hermit-rs","homepage":null,"documentation":null,"edition":"2021","links":null,"default_run":null,"rust_version":null},{"name":"instant","version":"0.1.12","id":"instant 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)","license":"BSD-3-Clause","license_file":null,"description":"A partial replacement for std::time::Instant that works on WASM too.","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"cfg-if","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"wasm-bindgen-test","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"js-sys","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":"asmjs-unknown-emscripten","registry":null},{"name":"stdweb","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":"asmjs-unknown-emscripten","registry":null},{"name":"wasm-bindgen","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2","kind":null,"rename":"wasm-bindgen_rs","optional":true,"uses_default_features":true,"features":[],"target":"asmjs-unknown-emscripten","registry":null},{"name":"web-sys","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":["Window","Performance","PerformanceTiming"],"target":"asmjs-unknown-emscripten","registry":null},{"name":"js-sys","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":"wasm32-unknown-emscripten","registry":null},{"name":"stdweb","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":"wasm32-unknown-emscripten","registry":null},{"name":"wasm-bindgen","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2","kind":null,"rename":"wasm-bindgen_rs","optional":true,"uses_default_features":true,"features":[],"target":"wasm32-unknown-emscripten","registry":null},{"name":"web-sys","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":["Window","Performance","PerformanceTiming"],"target":"wasm32-unknown-emscripten","registry":null},{"name":"js-sys","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":"wasm32-unknown-unknown","registry":null},{"name":"stdweb","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":"wasm32-unknown-unknown","registry":null},{"name":"wasm-bindgen","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2","kind":null,"rename":"wasm-bindgen_rs","optional":true,"uses_default_features":true,"features":[],"target":"wasm32-unknown-unknown","registry":null},{"name":"web-sys","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":["Window","Performance","PerformanceTiming"],"target":"wasm32-unknown-unknown","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"instant","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/instant-0.1.12/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"wasm","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/instant-0.1.12/tests/wasm.rs","edition":"2018","doc":false,"doctest":false,"test":true}],"features":{"inaccurate":[],"js-sys":["dep:js-sys"],"now":[],"stdweb":["dep:stdweb"],"wasm-bindgen":["js-sys","wasm-bindgen_rs","web-sys"],"wasm-bindgen_rs":["dep:wasm-bindgen_rs"],"web-sys":["dep:web-sys"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/instant-0.1.12/Cargo.toml","metadata":null,"publish":null,"authors":["sebcrozet <developer@crozet.re>"],"categories":[],"keywords":["time","wasm"],"readme":"README.md","repository":"https://github.com/sebcrozet/instant","homepage":null,"documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":null},{"name":"io-lifetimes","version":"1.0.11","id":"io-lifetimes 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT","license_file":null,"description":"A low-level I/O ownership and borrowing library","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"fs-err","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.6.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"async-std","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.12.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":"cfg(not(target_os = \"wasi\"))","registry":null},{"name":"mio","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.8.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":["net","os-ext"],"target":"cfg(not(target_os = \"wasi\"))","registry":null},{"name":"os_pipe","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":["io_safety"],"target":"cfg(not(target_os = \"wasi\"))","registry":null},{"name":"socket2","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":"cfg(not(target_os = \"wasi\"))","registry":null},{"name":"tokio","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.6.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":["io-std","fs","net","process"],"target":"cfg(not(target_os = \"wasi\"))","registry":null},{"name":"libc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.96","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":"cfg(not(windows))","registry":null},{"name":"hermit-abi","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":"cfg(target_os = \"hermit\")","registry":null},{"name":"windows-sys","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.48.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":["Win32_Foundation","Win32_Storage_FileSystem","Win32_Networking_WinSock","Win32_Security","Win32_System_IO","Win32_System_Threading"],"target":"cfg(windows)","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"io-lifetimes","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/io-lifetimes-1.0.11/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/io-lifetimes-1.0.11/build.rs","edition":"2018","doc":false,"doctest":false,"test":false}],"features":{"async-std":["dep:async-std"],"close":["libc","hermit-abi","windows-sys"],"default":["close"],"fs-err":["dep:fs-err"],"hermit-abi":["dep:hermit-abi"],"libc":["dep:libc"],"mio":["dep:mio"],"os_pipe":["dep:os_pipe"],"socket2":["dep:socket2"],"tokio":["dep:tokio"],"windows-sys":["dep:windows-sys"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/io-lifetimes-1.0.11/Cargo.toml","metadata":null,"publish":null,"authors":["Dan Gohman <dev@sunfishcode.online>"],"categories":["os","rust-patterns"],"keywords":["api","io"],"readme":"README.md","repository":"https://github.com/sunfishcode/io-lifetimes","homepage":null,"documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":null},{"name":"itoa","version":"1.0.10","id":"itoa 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Fast integer primitive to string conversion","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"no-panic","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"itoa","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/itoa-1.0.10/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/itoa-1.0.10/tests/test.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["bench"],"crate_types":["bin"],"name":"bench","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/itoa-1.0.10/benches/bench.rs","edition":"2018","doc":false,"doctest":false,"test":false}],"features":{"no-panic":["dep:no-panic"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/itoa-1.0.10/Cargo.toml","metadata":{"docs":{"rs":{"rustdoc-args":["--generate-link-to-definition"],"targets":["x86_64-unknown-linux-gnu"]}}},"publish":null,"authors":["David Tolnay <dtolnay@gmail.com>"],"categories":["value-formatting","no-std","no-std::no-alloc"],"keywords":["integer"],"readme":"README.md","repository":"https://github.com/dtolnay/itoa","homepage":null,"documentation":"https://docs.rs/itoa","edition":"2018","links":null,"default_run":null,"rust_version":"1.36"},{"name":"js-sys","version":"0.3.68","id":"js-sys 0.3.68 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Bindings for all JS global objects and functions in all JS environments like\nNode.js and browsers, built on `#[wasm_bindgen]` using the `wasm-bindgen` crate.\n","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"wasm-bindgen","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.91","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"wasm-bindgen-futures","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4.41","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(target_arch = \"wasm32\")","registry":null},{"name":"wasm-bindgen-test","source":"registry+https://github.com/rust-lang/crates.io-index","req":"=0.3.41","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(target_arch = \"wasm32\")","registry":null},{"name":"web-sys","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.68","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":["Headers","Response","ResponseInit"],"target":"cfg(target_arch = \"wasm32\")","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"js-sys","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/js-sys-0.3.68/src/lib.rs","edition":"2018","doc":true,"doctest":false,"test":false},{"kind":["test"],"crate_types":["bin"],"name":"wasm","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/js-sys-0.3.68/tests/wasm/main.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"headless","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/js-sys-0.3.68/tests/headless.rs","edition":"2018","doc":false,"doctest":false,"test":true}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/js-sys-0.3.68/Cargo.toml","metadata":null,"publish":null,"authors":["The wasm-bindgen Developers"],"categories":["wasm"],"keywords":[],"readme":"./README.md","repository":"https://github.com/rustwasm/wasm-bindgen/tree/master/crates/js-sys","homepage":"https://rustwasm.github.io/wasm-bindgen/","documentation":"https://docs.rs/js-sys","edition":"2018","links":null,"default_run":null,"rust_version":"1.57"},{"name":"kv-log-macro","version":"1.0.7","id":"kv-log-macro 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Log macro for log's kv-unstable backend.","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"log","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4.8","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":["kv_unstable"],"target":null,"registry":null},{"name":"femme","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.2.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"kv-log-macro","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/kv-log-macro-1.0.7/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["example"],"crate_types":["bin"],"name":"main","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/kv-log-macro-1.0.7/examples/main.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["test"],"crate_types":["bin"],"name":"test","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/kv-log-macro-1.0.7/tests/test.rs","edition":"2018","doc":false,"doctest":false,"test":true}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/kv-log-macro-1.0.7/Cargo.toml","metadata":null,"publish":null,"authors":["Yoshua Wuyts <yoshuawuyts@gmail.com>"],"categories":["text-processing"],"keywords":["log","macro","kv","key","value"],"readme":"README.md","repository":"https://github.com/yoshuawuyts/kv-log-macro","homepage":null,"documentation":"https://docs.rs/kv-log-macro","edition":"2018","links":null,"default_run":null,"rust_version":null},{"name":"libc","version":"0.2.153","id":"libc 0.2.153 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Raw FFI bindings to platform libraries like libc.\n","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"rustc-std-workspace-core","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"libc","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/libc-0.2.153/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"const_fn","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/libc-0.2.153/tests/const_fn.rs","edition":"2015","doc":false,"doctest":false,"test":true},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/libc-0.2.153/build.rs","edition":"2015","doc":false,"doctest":false,"test":false}],"features":{"align":[],"const-extern-fn":[],"default":["std"],"extra_traits":[],"rustc-dep-of-std":["align","rustc-std-workspace-core"],"rustc-std-workspace-core":["dep:rustc-std-workspace-core"],"std":[],"use_std":["std"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/libc-0.2.153/Cargo.toml","metadata":{"docs":{"rs":{"cargo-args":["-Zbuild-std=core"],"default-target":"x86_64-unknown-linux-gnu","features":["const-extern-fn","extra_traits"],"targets":["aarch64-apple-darwin","aarch64-apple-ios","aarch64-linux-android","aarch64-pc-windows-msvc","aarch64-unknown-freebsd","aarch64-unknown-fuchsia","aarch64-unknown-hermit","aarch64-unknown-linux-gnu","aarch64-unknown-linux-musl","aarch64-unknown-netbsd","aarch64-unknown-openbsd","aarch64-wrs-vxworks","arm-linux-androideabi","arm-unknown-linux-gnueabi","arm-unknown-linux-gnueabihf","arm-unknown-linux-musleabi","arm-unknown-linux-musleabihf","armebv7r-none-eabi","armebv7r-none-eabihf","armv5te-unknown-linux-gnueabi","armv5te-unknown-linux-musleabi","armv7-linux-androideabi","armv7-unknown-linux-gnueabihf","armv7-unknown-linux-musleabihf","armv7-wrs-vxworks-eabihf","armv7r-none-eabi","armv7r-none-eabihf","hexagon-unknown-linux-musl","i586-pc-windows-msvc","i586-unknown-linux-gnu","i586-unknown-linux-musl","i686-linux-android","i686-pc-windows-gnu","i686-pc-windows-msvc","i686-pc-windows-msvc","i686-unknown-freebsd","i686-unknown-haiku","i686-unknown-linux-gnu","i686-unknown-linux-musl","i686-unknown-netbsd","i686-unknown-openbsd","i686-wrs-vxworks","mips-unknown-linux-gnu","mips-unknown-linux-musl","mips64-unknown-linux-gnuabi64","mips64-unknown-linux-muslabi64","mips64el-unknown-linux-gnuabi64","mips64el-unknown-linux-muslabi64","mipsel-sony-psp","mipsel-unknown-linux-gnu","mipsel-unknown-linux-musl","nvptx64-nvidia-cuda","powerpc-unknown-linux-gnu","powerpc-unknown-linux-gnuspe","powerpc-unknown-netbsd","powerpc-wrs-vxworks","powerpc-wrs-vxworks-spe","powerpc64-unknown-freebsd","powerpc64-unknown-linux-gnu","powerpc64-wrs-vxworks","powerpc64le-unknown-linux-gnu","riscv32gc-unknown-linux-gnu","riscv32i-unknown-none-elf","riscv32imac-unknown-none-elf","riscv32imc-unknown-none-elf","riscv64gc-unknown-freebsd","riscv64gc-unknown-hermit","riscv64gc-unknown-linux-gnu","riscv64gc-unknown-linux-musl","riscv64gc-unknown-none-elf","riscv64imac-unknown-none-elf","s390x-unknown-linux-gnu","s390x-unknown-linux-musl","sparc-unknown-linux-gnu","sparc64-unknown-linux-gnu","sparc64-unknown-netbsd","sparcv9-sun-solaris","thumbv6m-none-eabi","thumbv7em-none-eabi","thumbv7em-none-eabihf","thumbv7m-none-eabi","thumbv7neon-linux-androideabi","thumbv7neon-unknown-linux-gnueabihf","wasm32-unknown-emscripten","wasm32-unknown-unknown","wasm32-wasi","x86_64-apple-darwin","x86_64-apple-ios","x86_64-fortanix-unknown-sgx","x86_64-linux-android","x86_64-pc-solaris","x86_64-pc-windows-gnu","x86_64-pc-windows-msvc","x86_64-unknown-dragonfly","x86_64-unknown-freebsd","x86_64-unknown-fuchsia","x86_64-unknown-haiku","x86_64-unknown-hermit","x86_64-unknown-illumos","x86_64-unknown-l4re-uclibc","x86_64-unknown-linux-gnu","x86_64-unknown-linux-gnux32","x86_64-unknown-linux-musl","x86_64-unknown-netbsd","x86_64-unknown-openbsd","x86_64-unknown-redox","x86_64-wrs-vxworks"]}}},"publish":null,"authors":["The Rust Project Developers"],"categories":["external-ffi-bindings","no-std","os"],"keywords":["libc","ffi","bindings","operating","system"],"readme":"README.md","repository":"https://github.com/rust-lang/libc","homepage":"https://github.com/rust-lang/libc","documentation":"https://docs.rs/libc/","edition":"2015","links":null,"default_run":null,"rust_version":null},{"name":"linux-raw-sys","version":"0.3.8","id":"linux-raw-sys 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT","license_file":null,"description":"Generated bindings for Linux's userspace API","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"compiler_builtins","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.49","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rustc-std-workspace-core","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.0","kind":null,"rename":"core","optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"libc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.100","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"static_assertions","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"linux-raw-sys","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/linux-raw-sys-0.3.8/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true}],"features":{"compiler_builtins":["dep:compiler_builtins"],"core":["dep:core"],"default":["std","general","errno"],"errno":[],"general":[],"ioctl":[],"netlink":[],"no_std":[],"rustc-dep-of-std":["core","compiler_builtins","no_std"],"std":[]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/linux-raw-sys-0.3.8/Cargo.toml","metadata":{"docs":{"rs":{"features":["default","ioctl","netlink"],"targets":["x86_64-unknown-linux-gnu","i686-unknown-linux-gnu"]}}},"publish":null,"authors":["Dan Gohman <dev@sunfishcode.online>"],"categories":["external-ffi-bindings"],"keywords":["linux","uapi","ffi"],"readme":"README.md","repository":"https://github.com/sunfishcode/linux-raw-sys","homepage":null,"documentation":"https://docs.rs/linux-raw-sys","edition":"2018","links":null,"default_run":null,"rust_version":"1.48"},{"name":"linux-raw-sys","version":"0.4.13","id":"linux-raw-sys 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT","license_file":null,"description":"Generated bindings for Linux's userspace API","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"compiler_builtins","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.49","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rustc-std-workspace-core","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.0","kind":null,"rename":"core","optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"libc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.100","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"static_assertions","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"linux-raw-sys","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/linux-raw-sys-0.4.13/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true}],"features":{"compiler_builtins":["dep:compiler_builtins"],"core":["dep:core"],"default":["std","general","errno"],"elf":[],"errno":[],"general":[],"if_ether":[],"if_packet":[],"io_uring":[],"ioctl":[],"mempolicy":[],"net":[],"netlink":[],"no_std":[],"prctl":[],"rustc-dep-of-std":["core","compiler_builtins","no_std"],"std":[],"system":[],"xdp":[]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/linux-raw-sys-0.4.13/Cargo.toml","metadata":{"docs":{"rs":{"features":["default","ioctl","netlink","io_uring","if_ether","net","prctl","elf","xdp","mempolicy","system"],"targets":["x86_64-unknown-linux-gnu","i686-unknown-linux-gnu"]}}},"publish":null,"authors":["Dan Gohman <dev@sunfishcode.online>"],"categories":["external-ffi-bindings"],"keywords":["linux","uapi","ffi"],"readme":"README.md","repository":"https://github.com/sunfishcode/linux-raw-sys","homepage":null,"documentation":"https://docs.rs/linux-raw-sys","edition":"2021","links":null,"default_run":null,"rust_version":"1.63"},{"name":"log","version":"0.4.20","id":"log 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"A lightweight logging facade for Rust\n","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"serde","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"sval","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.1","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"sval_ref","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.1","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"value-bag","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.4","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"proc-macro2","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.63","kind":"dev","rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"serde","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":["derive"],"target":null,"registry":null},{"name":"serde_test","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"sval","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"sval_derive","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"value-bag","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.4","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":["test"],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"log","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/log-0.4.20/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"filters","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/log-0.4.20/tests/filters.rs","edition":"2015","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"macros","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/log-0.4.20/tests/macros.rs","edition":"2015","doc":false,"doctest":false,"test":true},{"kind":["bench"],"crate_types":["bin"],"name":"value","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/log-0.4.20/benches/value.rs","edition":"2015","doc":false,"doctest":false,"test":false}],"features":{"kv_unstable":["value-bag"],"kv_unstable_serde":["kv_unstable_std","value-bag/serde","serde"],"kv_unstable_std":["std","kv_unstable","value-bag/error"],"kv_unstable_sval":["kv_unstable","value-bag/sval","sval","sval_ref"],"max_level_debug":[],"max_level_error":[],"max_level_info":[],"max_level_off":[],"max_level_trace":[],"max_level_warn":[],"release_max_level_debug":[],"release_max_level_error":[],"release_max_level_info":[],"release_max_level_off":[],"release_max_level_trace":[],"release_max_level_warn":[],"serde":["dep:serde"],"std":[],"sval":["dep:sval"],"sval_ref":["dep:sval_ref"],"value-bag":["dep:value-bag"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/log-0.4.20/Cargo.toml","metadata":{"docs":{"rs":{"features":["std","serde","kv_unstable_std","kv_unstable_sval","kv_unstable_serde"]}}},"publish":null,"authors":["The Rust Project Developers"],"categories":["development-tools::debugging"],"keywords":["logging"],"readme":"README.md","repository":"https://github.com/rust-lang/log","homepage":null,"documentation":"https://docs.rs/log","edition":"2015","links":null,"default_run":null,"rust_version":"1.60.0"},{"name":"maybe-async","version":"0.2.10","id":"maybe-async 0.2.10 (path+file:///usr/local/google/home/mgeisler/src/aosp/external/rust/crates/maybe-async-0.2.10)","license":"MIT","license_file":null,"description":"A procedure macro to unify SYNC and ASYNC implementation","source":null,"dependencies":[{"name":"proc-macro2","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"quote","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"syn","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":["visit-mut","full"],"target":null,"registry":null},{"name":"async-std","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":["attributes"],"target":null,"registry":null},{"name":"async-trait","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"tokio","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":["macros","rt-multi-thread"],"target":null,"registry":null},{"name":"trybuild","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":["diff"],"target":null,"registry":null}],"targets":[{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"maybe-async","src_path":"/usr/local/google/home/mgeisler/src/aosp/external/rust/crates/maybe-async-0.2.10/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},{"kind":["example"],"crate_types":["bin"],"name":"service_client","src_path":"/usr/local/google/home/mgeisler/src/aosp/external/rust/crates/maybe-async-0.2.10/examples/service_client.rs","edition":"2021","doc":false,"doctest":false,"test":false},{"kind":["test"],"crate_types":["bin"],"name":"test","src_path":"/usr/local/google/home/mgeisler/src/aosp/external/rust/crates/maybe-async-0.2.10/tests/test.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"unit-test-util","src_path":"/usr/local/google/home/mgeisler/src/aosp/external/rust/crates/maybe-async-0.2.10/tests/unit-test-util.rs","edition":"2021","doc":false,"doctest":false,"test":true}],"features":{"default":[],"is_sync":[]},"manifest_path":"/usr/local/google/home/mgeisler/src/aosp/external/rust/crates/maybe-async-0.2.10/Cargo.toml","metadata":null,"publish":null,"authors":["Guoli Lyu <guoli-lv@hotmail.com>"],"categories":[],"keywords":["maybe","async","futures","macros","proc_macro"],"readme":"README.md","repository":"https://github.com/fMeow/maybe-async-rs","homepage":null,"documentation":"https://docs.rs/maybe-async","edition":"2021","links":null,"default_run":null,"rust_version":null},{"name":"memchr","version":"2.7.1","id":"memchr 2.7.1 (registry+https://github.com/rust-lang/crates.io-index)","license":"Unlicense OR MIT","license_file":null,"description":"Provides extremely fast (uses SIMD on x86_64, aarch64 and wasm32) routines for\n1, 2 or 3 byte search and single substring search.\n","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"compiler_builtins","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.2","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rustc-std-workspace-core","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.0","kind":null,"rename":"core","optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"log","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4.20","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"quickcheck","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.3","kind":"dev","rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"memchr","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.7.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true}],"features":{"alloc":[],"compiler_builtins":["dep:compiler_builtins"],"core":["dep:core"],"default":["std"],"libc":[],"logging":["dep:log"],"rustc-dep-of-std":["core","compiler_builtins"],"std":["alloc"],"use_std":["std"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.7.1/Cargo.toml","metadata":{"docs":{"rs":{"rustdoc-args":["--generate-link-to-definition"]}}},"publish":null,"authors":["Andrew Gallant <jamslam@gmail.com>","bluss"],"categories":[],"keywords":["memchr","memmem","substring","find","search"],"readme":"README.md","repository":"https://github.com/BurntSushi/memchr","homepage":"https://github.com/BurntSushi/memchr","documentation":"https://docs.rs/memchr/","edition":"2021","links":null,"default_run":null,"rust_version":"1.61"},{"name":"miniz_oxide","version":"0.7.2","id":"miniz_oxide 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Zlib OR Apache-2.0","license_file":null,"description":"DEFLATE compression and decompression library rewritten in Rust based on miniz","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"adler","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"rustc-std-workspace-alloc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.0","kind":null,"rename":"alloc","optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"compiler_builtins","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.2","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rustc-std-workspace-core","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.0","kind":null,"rename":"core","optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"simd-adler32","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"miniz_oxide","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/miniz_oxide-0.7.2/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true}],"features":{"alloc":["dep:alloc"],"compiler_builtins":["dep:compiler_builtins"],"core":["dep:core"],"default":["with-alloc"],"rustc-dep-of-std":["core","alloc","compiler_builtins","adler/rustc-dep-of-std"],"simd":["simd-adler32"],"simd-adler32":["dep:simd-adler32"],"std":[],"with-alloc":[]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/miniz_oxide-0.7.2/Cargo.toml","metadata":null,"publish":null,"authors":["Frommi <daniil.liferenko@gmail.com>","oyvindln <oyvindln@users.noreply.github.com>"],"categories":["compression"],"keywords":["zlib","miniz","deflate","encoding"],"readme":"Readme.md","repository":"https://github.com/Frommi/miniz_oxide/tree/master/miniz_oxide","homepage":"https://github.com/Frommi/miniz_oxide/tree/master/miniz_oxide","documentation":"https://docs.rs/miniz_oxide","edition":"2018","links":null,"default_run":null,"rust_version":null},{"name":"num_cpus","version":"1.16.0","id":"num_cpus 1.16.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Get the number of CPUs on a machine.","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"libc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.26","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(not(windows))","registry":null},{"name":"hermit-abi","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(target_os = \"hermit\")","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"num_cpus","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/num_cpus-1.16.0/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},{"kind":["example"],"crate_types":["bin"],"name":"values","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/num_cpus-1.16.0/examples/values.rs","edition":"2015","doc":false,"doctest":false,"test":false}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/num_cpus-1.16.0/Cargo.toml","metadata":null,"publish":null,"authors":["Sean McArthur <sean@seanmonstar.com>"],"categories":["hardware-support"],"keywords":["cpu","cpus","cores"],"readme":"README.md","repository":"https://github.com/seanmonstar/num_cpus","homepage":null,"documentation":"https://docs.rs/num_cpus","edition":"2015","links":null,"default_run":null,"rust_version":null},{"name":"object","version":"0.32.2","id":"object 0.32.2 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 OR MIT","license_file":null,"description":"A unified interface for reading and writing object file formats.","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"rustc-std-workspace-alloc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.0","kind":null,"rename":"alloc","optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"compiler_builtins","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.2","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rustc-std-workspace-core","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.0","kind":null,"rename":"core","optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"crc32fast","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.2","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"flate2","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"hashbrown","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.14.0","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":["ahash"],"target":null,"registry":null},{"name":"indexmap","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"memchr","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.4.1","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"ruzstd","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.5.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"wasmparser","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.118.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"object","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/object-0.32.2/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"parse_self","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/object-0.32.2/tests/parse_self.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"integration","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/object-0.32.2/tests/integration.rs","edition":"2018","doc":false,"doctest":false,"test":true}],"features":{"all":["read","write","std","compression","wasm"],"alloc":["dep:alloc"],"archive":[],"cargo-all":[],"coff":[],"compiler_builtins":["dep:compiler_builtins"],"compression":["dep:flate2","dep:ruzstd","std"],"core":["dep:core"],"default":["read","compression"],"doc":["read_core","write_std","std","compression","archive","coff","elf","macho","pe","wasm","xcoff"],"elf":[],"macho":[],"pe":["coff"],"read":["read_core","archive","coff","elf","macho","pe","xcoff","unaligned"],"read_core":[],"rustc-dep-of-std":["core","compiler_builtins","alloc","memchr/rustc-dep-of-std"],"std":["memchr/std"],"unaligned":[],"unstable":[],"unstable-all":["all","unstable"],"wasm":["dep:wasmparser"],"write":["write_std","coff","elf","macho","pe","xcoff"],"write_core":["dep:crc32fast","dep:indexmap","dep:hashbrown"],"write_std":["write_core","std","indexmap?/std","crc32fast?/std"],"xcoff":[]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/object-0.32.2/Cargo.toml","metadata":{"docs":{"rs":{"features":["doc"]}}},"publish":null,"authors":[],"categories":[],"keywords":["object","elf","mach-o","pe","coff"],"readme":"README.md","repository":"https://github.com/gimli-rs/object","homepage":null,"documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":"1.60"},{"name":"once_cell","version":"1.19.0","id":"once_cell 1.19.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Single assignment cells and lazy values.","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"critical-section","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"parking_lot_core","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.9.3","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"portable-atomic","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"critical-section","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.1.1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":["std"],"target":null,"registry":null},{"name":"regex","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.2.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"once_cell","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.19.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},{"kind":["example"],"crate_types":["bin"],"name":"bench","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.19.0/examples/bench.rs","edition":"2021","required-features":["std"],"doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"bench_acquire","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.19.0/examples/bench_acquire.rs","edition":"2021","required-features":["std"],"doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"lazy_static","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.19.0/examples/lazy_static.rs","edition":"2021","required-features":["std"],"doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"reentrant_init_deadlocks","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.19.0/examples/reentrant_init_deadlocks.rs","edition":"2021","required-features":["std"],"doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"regex","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.19.0/examples/regex.rs","edition":"2021","required-features":["std"],"doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"test_synchronization","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.19.0/examples/test_synchronization.rs","edition":"2021","required-features":["std"],"doc":false,"doctest":false,"test":false},{"kind":["test"],"crate_types":["bin"],"name":"it","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.19.0/tests/it/main.rs","edition":"2021","doc":false,"doctest":false,"test":true}],"features":{"alloc":["race"],"atomic-polyfill":["critical-section"],"critical-section":["dep:critical-section","portable-atomic"],"default":["std"],"parking_lot":["dep:parking_lot_core"],"portable-atomic":["dep:portable-atomic"],"race":[],"std":["alloc"],"unstable":[]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.19.0/Cargo.toml","metadata":{"docs":{"rs":{"all-features":true,"rustdoc-args":["--generate-link-to-definition"]}}},"publish":null,"authors":["Aleksey Kladov <aleksey.kladov@gmail.com>"],"categories":["rust-patterns","memory-management"],"keywords":["lazy","static"],"readme":"README.md","repository":"https://github.com/matklad/once_cell","homepage":null,"documentation":"https://docs.rs/once_cell","edition":"2021","links":null,"default_run":null,"rust_version":"1.60"},{"name":"parking","version":"2.2.0","id":"parking 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 OR MIT","license_file":null,"description":"Thread parking and unparking","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"easy-parallel","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^3.0.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"loom","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.7","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":"cfg(loom)","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"parking","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/parking-2.2.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"parking","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/parking-2.2.0/tests/parking.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"loom","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/parking-2.2.0/tests/loom.rs","edition":"2018","doc":false,"doctest":false,"test":true}],"features":{"loom":["dep:loom"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/parking-2.2.0/Cargo.toml","metadata":null,"publish":null,"authors":["Stjepan Glavina <stjepang@gmail.com>","The Rust Project Developers"],"categories":["concurrency"],"keywords":["park","notify","thread","wake","condition"],"readme":"README.md","repository":"https://github.com/smol-rs/parking","homepage":"https://github.com/smol-rs/parking","documentation":"https://docs.rs/parking","edition":"2018","links":null,"default_run":null,"rust_version":"1.51"},{"name":"pin-project-lite","version":"0.2.13","id":"pin-project-lite 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 OR MIT","license_file":null,"description":"A lightweight version of pin-project written with declarative macros.\n","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"macrotest","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.9","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"once_cell","source":"registry+https://github.com/rust-lang/crates.io-index","req":"=1.14","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"proc-macro2","source":"registry+https://github.com/rust-lang/crates.io-index","req":"=1.0.65","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"quote","source":"registry+https://github.com/rust-lang/crates.io-index","req":"=1.0.30","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rustversion","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"serde","source":"registry+https://github.com/rust-lang/crates.io-index","req":"=1.0.156","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"static_assertions","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"toml","source":"registry+https://github.com/rust-lang/crates.io-index","req":"=0.5.9","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"trybuild","source":"registry+https://github.com/rust-lang/crates.io-index","req":"=1.0.67","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"pin-project-lite","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pin-project-lite-0.2.13/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"proper_unpin","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pin-project-lite-0.2.13/tests/proper_unpin.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"lint","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pin-project-lite-0.2.13/tests/lint.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pin-project-lite-0.2.13/tests/test.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"compiletest","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pin-project-lite-0.2.13/tests/compiletest.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"drop_order","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pin-project-lite-0.2.13/tests/drop_order.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"expandtest","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pin-project-lite-0.2.13/tests/expandtest.rs","edition":"2018","doc":false,"doctest":false,"test":true}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pin-project-lite-0.2.13/Cargo.toml","metadata":{"docs":{"rs":{"targets":["x86_64-unknown-linux-gnu"]}}},"publish":null,"authors":[],"categories":["no-std","no-std::no-alloc","rust-patterns"],"keywords":["pin","macros"],"readme":"README.md","repository":"https://github.com/taiki-e/pin-project-lite","homepage":null,"documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":"1.37"},{"name":"pin-utils","version":"0.1.0","id":"pin-utils 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Utilities for pinning\n","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"pin-utils","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pin-utils-0.1.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"projection","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pin-utils-0.1.0/tests/projection.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"stack_pin","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pin-utils-0.1.0/tests/stack_pin.rs","edition":"2018","doc":false,"doctest":false,"test":true}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pin-utils-0.1.0/Cargo.toml","metadata":null,"publish":null,"authors":["Josef Brandl <mail@josefbrandl.de>"],"categories":[],"keywords":[],"readme":"README.md","repository":"https://github.com/rust-lang-nursery/pin-utils","homepage":null,"documentation":"https://docs.rs/pin-utils","edition":"2018","links":null,"default_run":null,"rust_version":null},{"name":"piper","version":"0.2.1","id":"piper 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Async pipes, channels, mutexes, and more.","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"atomic-waker","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.1.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"fastrand","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"futures-io","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.28","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"portable-atomic-util","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.2","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":["alloc"],"target":null,"registry":null},{"name":"portable-atomic","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.2.0","kind":null,"rename":"portable_atomic_crate","optional":true,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"async-channel","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.8.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"async-executor","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.5.1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"async-io","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.13.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"criterion","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4.0","kind":"dev","rename":null,"optional":false,"uses_default_features":false,"features":["cargo_bench_support"],"target":null,"registry":null},{"name":"easy-parallel","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^3.2.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"futures-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.12.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"piper","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/piper-0.2.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"pipe","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/piper-0.2.1/tests/pipe.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["bench"],"crate_types":["bin"],"name":"pipe_comparison","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/piper-0.2.1/benches/pipe_comparison.rs","edition":"2018","doc":false,"doctest":false,"test":false}],"features":{"default":["std"],"futures-io":["dep:futures-io"],"portable-atomic":["atomic-waker/portable-atomic","portable_atomic_crate","portable-atomic-util"],"portable-atomic-util":["dep:portable-atomic-util"],"portable_atomic_crate":["dep:portable_atomic_crate"],"std":["fastrand/std","futures-io"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/piper-0.2.1/Cargo.toml","metadata":null,"publish":null,"authors":["Stjepan Glavina <stjepang@gmail.com>","John Nunley <dev@notgull.net>"],"categories":[],"keywords":[],"readme":"README.md","repository":"https://github.com/notgull/piper","homepage":null,"documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":"1.36"},{"name":"polling","version":"2.8.0","id":"polling 2.8.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 OR MIT","license_file":null,"description":"Portable interface to epoll, kqueue, event ports, and IOCP","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"cfg-if","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"log","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4.11","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"easy-parallel","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^3.1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"fastrand","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.9.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"autocfg","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"build","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"libc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.77","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(any(unix, target_os = \"fuchsia\", target_os = \"vxworks\"))","registry":null},{"name":"bitflags","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.3.2","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(windows)","registry":null},{"name":"concurrent-queue","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.2.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(windows)","registry":null},{"name":"pin-project-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.9","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(windows)","registry":null},{"name":"windows-sys","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.48","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":["Win32_Foundation","Win32_Networking_WinSock","Win32_Storage_FileSystem","Win32_System_IO","Win32_System_LibraryLoader","Win32_System_Threading","Win32_System_WindowsProgramming"],"target":"cfg(windows)","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"polling","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/polling-2.8.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["example"],"crate_types":["bin"],"name":"wait-signal","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/polling-2.8.0/examples/wait-signal.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"two-listeners","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/polling-2.8.0/examples/two-listeners.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["test"],"crate_types":["bin"],"name":"many_connections","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/polling-2.8.0/tests/many_connections.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"notify","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/polling-2.8.0/tests/notify.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"precision","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/polling-2.8.0/tests/precision.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"timeout","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/polling-2.8.0/tests/timeout.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"other_modes","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/polling-2.8.0/tests/other_modes.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/polling-2.8.0/tests/io.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"windows_post","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/polling-2.8.0/tests/windows_post.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"concurrent_modification","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/polling-2.8.0/tests/concurrent_modification.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/polling-2.8.0/build.rs","edition":"2018","doc":false,"doctest":false,"test":false}],"features":{"default":["std"],"std":[]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/polling-2.8.0/Cargo.toml","metadata":{"docs":{"rs":{"rustdoc-args":["--cfg","docsrs"]}}},"publish":null,"authors":["Stjepan Glavina <stjepang@gmail.com>"],"categories":["asynchronous","network-programming","os"],"keywords":["mio","epoll","kqueue","iocp"],"readme":"README.md","repository":"https://github.com/smol-rs/polling","homepage":null,"documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":"1.47"},{"name":"polling","version":"3.5.0","id":"polling 3.5.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 OR MIT","license_file":null,"description":"Portable interface to epoll, kqueue, event ports, and IOCP","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"cfg-if","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"tracing","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.37","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"easy-parallel","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^3.1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"fastrand","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"socket2","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.5.5","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rustix","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.38.31","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":["event","fs","pipe","process","std","time"],"target":"cfg(any(unix, target_os = \"fuchsia\", target_os = \"vxworks\"))","registry":null},{"name":"libc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(unix)","registry":null},{"name":"signal-hook","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.17","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(unix)","registry":null},{"name":"concurrent-queue","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.2.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(windows)","registry":null},{"name":"pin-project-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.9","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(windows)","registry":null},{"name":"windows-sys","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.52","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":["Wdk_Foundation","Wdk_Storage_FileSystem","Win32_Foundation","Win32_Networking_WinSock","Win32_Security","Win32_Storage_FileSystem","Win32_System_IO","Win32_System_LibraryLoader","Win32_System_Threading","Win32_System_WindowsProgramming"],"target":"cfg(windows)","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"polling","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/polling-3.5.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},{"kind":["example"],"crate_types":["bin"],"name":"wait-signal","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/polling-3.5.0/examples/wait-signal.rs","edition":"2021","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"tcp_client","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/polling-3.5.0/examples/tcp_client.rs","edition":"2021","doc":false,"doctest":false,"test":false},{"kind":["example"],"crate_types":["bin"],"name":"two-listeners","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/polling-3.5.0/examples/two-listeners.rs","edition":"2021","doc":false,"doctest":false,"test":false},{"kind":["test"],"crate_types":["bin"],"name":"windows_waitable","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/polling-3.5.0/tests/windows_waitable.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"many_connections","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/polling-3.5.0/tests/many_connections.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"notify","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/polling-3.5.0/tests/notify.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"precision","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/polling-3.5.0/tests/precision.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"timeout","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/polling-3.5.0/tests/timeout.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"other_modes","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/polling-3.5.0/tests/other_modes.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/polling-3.5.0/tests/io.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"multiple_pollers","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/polling-3.5.0/tests/multiple_pollers.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"windows_post","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/polling-3.5.0/tests/windows_post.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"concurrent_modification","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/polling-3.5.0/tests/concurrent_modification.rs","edition":"2021","doc":false,"doctest":false,"test":true}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/polling-3.5.0/Cargo.toml","metadata":{"docs":{"rs":{"rustdoc-args":["--cfg","docsrs"]}}},"publish":null,"authors":["Stjepan Glavina <stjepang@gmail.com>","John Nunley <dev@notgull.net>"],"categories":["asynchronous","network-programming","os"],"keywords":["mio","epoll","kqueue","iocp"],"readme":"README.md","repository":"https://github.com/smol-rs/polling","homepage":null,"documentation":null,"edition":"2021","links":null,"default_run":null,"rust_version":"1.63"},{"name":"proc-macro2","version":"1.0.78","id":"proc-macro2 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"A substitute implementation of the compiler's `proc_macro` API to decouple token-based libraries from the procedural macro use case.","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"unicode-ident","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"flate2","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"quote","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"rayon","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rustversion","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"tar","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"proc-macro2","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.78/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_size","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.78/tests/test_size.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.78/tests/test.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"marker","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.78/tests/marker.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"comments","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.78/tests/comments.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_fmt","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.78/tests/test_fmt.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"features","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.78/tests/features.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.78/build.rs","edition":"2021","doc":false,"doctest":false,"test":false}],"features":{"default":["proc-macro"],"nightly":[],"proc-macro":[],"span-locations":[]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.78/Cargo.toml","metadata":{"docs":{"rs":{"rustc-args":["--cfg","procmacro2_semver_exempt"],"rustdoc-args":["--cfg","procmacro2_semver_exempt","--cfg","doc_cfg","--generate-link-to-definition"],"targets":["x86_64-unknown-linux-gnu"]}},"playground":{"features":["span-locations"]}},"publish":null,"authors":["David Tolnay <dtolnay@gmail.com>","Alex Crichton <alex@alexcrichton.com>"],"categories":["development-tools::procedural-macro-helpers"],"keywords":["macros","syn"],"readme":"README.md","repository":"https://github.com/dtolnay/proc-macro2","homepage":null,"documentation":"https://docs.rs/proc-macro2","edition":"2021","links":null,"default_run":null,"rust_version":"1.56"},{"name":"quote","version":"1.0.35","id":"quote 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Quasi-quoting macro quote!(...)","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"proc-macro2","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.74","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"rustversion","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"trybuild","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.66","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":["diff"],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"quote","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/quote-1.0.35/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/quote-1.0.35/tests/test.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"compiletest","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/quote-1.0.35/tests/compiletest.rs","edition":"2018","doc":false,"doctest":false,"test":true}],"features":{"default":["proc-macro"],"proc-macro":["proc-macro2/proc-macro"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/quote-1.0.35/Cargo.toml","metadata":{"docs":{"rs":{"rustdoc-args":["--generate-link-to-definition"],"targets":["x86_64-unknown-linux-gnu"]}}},"publish":null,"authors":["David Tolnay <dtolnay@gmail.com>"],"categories":["development-tools::procedural-macro-helpers"],"keywords":["macros","syn"],"readme":"README.md","repository":"https://github.com/dtolnay/quote","homepage":null,"documentation":"https://docs.rs/quote/","edition":"2018","links":null,"default_run":null,"rust_version":"1.56"},{"name":"rustc-demangle","version":"0.1.23","id":"rustc-demangle 0.1.23 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT/Apache-2.0","license_file":null,"description":"Rust compiler symbol demangling.\n","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"compiler_builtins","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.2","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rustc-std-workspace-core","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.0","kind":null,"rename":"core","optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"rustc-demangle","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rustc-demangle-0.1.23/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true}],"features":{"compiler_builtins":["dep:compiler_builtins"],"core":["dep:core"],"rustc-dep-of-std":["core","compiler_builtins"],"std":[]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rustc-demangle-0.1.23/Cargo.toml","metadata":{"docs":{"rs":{"features":["std"],"rustdoc-args":["--cfg","docsrs"]}}},"publish":null,"authors":["Alex Crichton <alex@alexcrichton.com>"],"categories":[],"keywords":[],"readme":"README.md","repository":"https://github.com/alexcrichton/rustc-demangle","homepage":"https://github.com/alexcrichton/rustc-demangle","documentation":"https://docs.rs/rustc-demangle","edition":"2015","links":null,"default_run":null,"rust_version":null},{"name":"rustix","version":"0.37.27","id":"rustix 0.37.27 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT","license_file":null,"description":"Safe Rust bindings to POSIX/Unix/Linux/Winsock2-like syscalls","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"rustc-std-workspace-alloc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.0","kind":null,"rename":"alloc","optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"bitflags","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.3.2","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"compiler_builtins","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.49","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rustc-std-workspace-core","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.0","kind":null,"rename":"core","optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"io-lifetimes","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.10","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":["close"],"target":null,"registry":null},{"name":"itoa","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.1","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"flate2","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"io-lifetimes","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.10","kind":"dev","rename":null,"optional":false,"uses_default_features":false,"features":["close"],"target":null,"registry":null},{"name":"libc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.144","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"errno","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.1","kind":"dev","rename":"libc_errno","optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"memoffset","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.9.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"tempfile","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^3.4.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"cc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.68","kind":"build","rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"linux-raw-sys","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.6","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":["general","ioctl","no_std"],"target":"cfg(all(any(target_os = \"android\", target_os = \"linux\"), any(rustix_use_libc, miri, not(all(target_os = \"linux\", any(target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\"), all(target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"powerpc64\", target_arch = \"riscv64\", target_arch = \"mips\", target_arch = \"mips64\"))))))))","registry":null},{"name":"libc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.144","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":["extra_traits"],"target":"cfg(all(not(rustix_use_libc), not(miri), target_os = \"linux\", any(target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\"), all(target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"powerpc64\", target_arch = \"riscv64\", target_arch = \"mips\", target_arch = \"mips64\")))))","registry":null},{"name":"errno","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.1","kind":null,"rename":"libc_errno","optional":true,"uses_default_features":false,"features":[],"target":"cfg(all(not(rustix_use_libc), not(miri), target_os = \"linux\", any(target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\"), all(target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"powerpc64\", target_arch = \"riscv64\", target_arch = \"mips\", target_arch = \"mips64\")))))","registry":null},{"name":"linux-raw-sys","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.6","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":["general","errno","ioctl","no_std"],"target":"cfg(all(not(rustix_use_libc), not(miri), target_os = \"linux\", any(target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\"), all(target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"powerpc64\", target_arch = \"riscv64\", target_arch = \"mips\", target_arch = \"mips64\")))))","registry":null},{"name":"libc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.144","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":["extra_traits"],"target":"cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = \"linux\", any(target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\"), all(target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"powerpc64\", target_arch = \"riscv64\", target_arch = \"mips\", target_arch = \"mips64\"))))))))","registry":null},{"name":"errno","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.1","kind":null,"rename":"libc_errno","optional":false,"uses_default_features":false,"features":[],"target":"cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = \"linux\", any(target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\"), all(target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"powerpc64\", target_arch = \"riscv64\", target_arch = \"mips\", target_arch = \"mips64\"))))))))","registry":null},{"name":"once_cell","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.5.2","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":"cfg(any(target_os = \"android\", target_os = \"linux\"))","registry":null},{"name":"errno","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.1","kind":null,"rename":"libc_errno","optional":false,"uses_default_features":false,"features":[],"target":"cfg(windows)","registry":null},{"name":"windows-sys","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.48.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":["Win32_Foundation","Win32_Networking_WinSock","Win32_NetworkManagement_IpHelper","Win32_System_Threading"],"target":"cfg(windows)","registry":null},{"name":"ctor","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(windows)","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"rustix","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rustix-0.37.27/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rustix-0.37.27/build.rs","edition":"2018","doc":false,"doctest":false,"test":false}],"features":{"all-apis":["fs","io_uring","mm","net","param","process","procfs","pty","rand","runtime","termios","thread","time"],"all-impls":["os_pipe","fs-err"],"alloc":["dep:alloc"],"cc":["dep:cc"],"compiler_builtins":["dep:compiler_builtins"],"core":["dep:core"],"default":["std","use-libc-auxv"],"fs":[],"fs-err":["io-lifetimes/fs-err"],"io-lifetimes":["dep:io-lifetimes"],"io_uring":["fs","net"],"itoa":["dep:itoa"],"libc":["dep:libc"],"libc_errno":["dep:libc_errno"],"linux_4_11":[],"linux_latest":["linux_4_11"],"mm":[],"net":[],"once_cell":["dep:once_cell"],"os_pipe":["io-lifetimes/os_pipe"],"param":["fs"],"process":[],"procfs":["once_cell","itoa","fs"],"pty":["itoa","fs"],"rand":[],"runtime":[],"rustc-dep-of-std":["core","alloc","compiler_builtins","linux-raw-sys/rustc-dep-of-std","bitflags/rustc-dep-of-std"],"std":["io-lifetimes"],"termios":[],"thread":[],"time":[],"use-libc":["libc_errno","libc"],"use-libc-auxv":["libc"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rustix-0.37.27/Cargo.toml","metadata":{"docs":{"rs":{"features":["all-apis"],"rustdoc-args":["--cfg","doc_cfg"],"targets":["x86_64-unknown-linux-gnu","i686-unknown-linux-gnu","x86_64-apple-darwin","x86_64-pc-windows-msvc","x86_64-unknown-freebsd","x86_64-unknown-openbsd","x86_64-unknown-netbsd","x86_64-unknown-dragonfly","x86_64-unknown-illumos","x86_64-unknown-redox","x86_64-unknown-haiku","wasm32-unknown-emscripten","wasm32-wasi"]}}},"publish":null,"authors":["Dan Gohman <dev@sunfishcode.online>","Jakub Konka <kubkon@jakubkonka.com>"],"categories":["os::unix-apis","date-and-time","filesystem","network-programming"],"keywords":["api","file","network","safe","syscall"],"readme":"README.md","repository":"https://github.com/bytecodealliance/rustix","homepage":null,"documentation":"https://docs.rs/rustix","edition":"2018","links":null,"default_run":null,"rust_version":"1.48"},{"name":"rustix","version":"0.38.31","id":"rustix 0.38.31 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT","license_file":null,"description":"Safe Rust bindings to POSIX/Unix/Linux/Winsock-like syscalls","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"rustc-std-workspace-alloc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.0","kind":null,"rename":"alloc","optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"bitflags","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.4.0","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"compiler_builtins","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.49","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rustc-std-workspace-core","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.0","kind":null,"rename":"core","optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"itoa","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.1","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"flate2","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"libc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.152","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"errno","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.8","kind":"dev","rename":"libc_errno","optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"memoffset","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.9.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"serial_test","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"static_assertions","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"tempfile","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^3.5.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"linux-raw-sys","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4.12","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":["general","ioctl","no_std"],"target":"cfg(all(any(target_os = \"android\", target_os = \"linux\"), any(rustix_use_libc, miri, not(all(target_os = \"linux\", target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"riscv64\", all(rustix_use_experimental_asm, target_arch = \"powerpc64\"), all(rustix_use_experimental_asm, target_arch = \"mips\"), all(rustix_use_experimental_asm, target_arch = \"mips32r6\"), all(rustix_use_experimental_asm, target_arch = \"mips64\"), all(rustix_use_experimental_asm, target_arch = \"mips64r6\"), target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\")))))))","registry":null},{"name":"criterion","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(all(criterion, not(any(target_os = \"emscripten\", target_os = \"wasi\"))))","registry":null},{"name":"libc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.152","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":["extra_traits"],"target":"cfg(all(not(rustix_use_libc), not(miri), target_os = \"linux\", target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"riscv64\", all(rustix_use_experimental_asm, target_arch = \"powerpc64\"), all(rustix_use_experimental_asm, target_arch = \"mips\"), all(rustix_use_experimental_asm, target_arch = \"mips32r6\"), all(rustix_use_experimental_asm, target_arch = \"mips64\"), all(rustix_use_experimental_asm, target_arch = \"mips64r6\"), target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\"))))","registry":null},{"name":"errno","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.8","kind":null,"rename":"libc_errno","optional":true,"uses_default_features":false,"features":[],"target":"cfg(all(not(rustix_use_libc), not(miri), target_os = \"linux\", target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"riscv64\", all(rustix_use_experimental_asm, target_arch = \"powerpc64\"), all(rustix_use_experimental_asm, target_arch = \"mips\"), all(rustix_use_experimental_asm, target_arch = \"mips32r6\"), all(rustix_use_experimental_asm, target_arch = \"mips64\"), all(rustix_use_experimental_asm, target_arch = \"mips64r6\"), target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\"))))","registry":null},{"name":"linux-raw-sys","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4.12","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":["general","errno","ioctl","no_std","elf"],"target":"cfg(all(not(rustix_use_libc), not(miri), target_os = \"linux\", target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"riscv64\", all(rustix_use_experimental_asm, target_arch = \"powerpc64\"), all(rustix_use_experimental_asm, target_arch = \"mips\"), all(rustix_use_experimental_asm, target_arch = \"mips32r6\"), all(rustix_use_experimental_asm, target_arch = \"mips64\"), all(rustix_use_experimental_asm, target_arch = \"mips64r6\"), target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\"))))","registry":null},{"name":"libc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.152","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":["extra_traits"],"target":"cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = \"linux\", target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"riscv64\", all(rustix_use_experimental_asm, target_arch = \"powerpc64\"), all(rustix_use_experimental_asm, target_arch = \"mips\"), all(rustix_use_experimental_asm, target_arch = \"mips32r6\"), all(rustix_use_experimental_asm, target_arch = \"mips64\"), all(rustix_use_experimental_asm, target_arch = \"mips64r6\"), target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\")))))))","registry":null},{"name":"errno","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.8","kind":null,"rename":"libc_errno","optional":false,"uses_default_features":false,"features":[],"target":"cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = \"linux\", target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"riscv64\", all(rustix_use_experimental_asm, target_arch = \"powerpc64\"), all(rustix_use_experimental_asm, target_arch = \"mips\"), all(rustix_use_experimental_asm, target_arch = \"mips32r6\"), all(rustix_use_experimental_asm, target_arch = \"mips64\"), all(rustix_use_experimental_asm, target_arch = \"mips64r6\"), target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\")))))))","registry":null},{"name":"once_cell","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.5.2","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":"cfg(any(target_os = \"android\", target_os = \"linux\"))","registry":null},{"name":"errno","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.8","kind":null,"rename":"libc_errno","optional":false,"uses_default_features":false,"features":[],"target":"cfg(windows)","registry":null},{"name":"windows-sys","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.52.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":["Win32_Foundation","Win32_Networking_WinSock","Win32_NetworkManagement_IpHelper","Win32_System_Threading"],"target":"cfg(windows)","registry":null},{"name":"ctor","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(windows)","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"rustix","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rustix-0.38.31/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},{"kind":["bench"],"crate_types":["bin"],"name":"mod","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rustix-0.38.31/benches/mod.rs","edition":"2021","doc":false,"doctest":false,"test":false},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rustix-0.38.31/build.rs","edition":"2021","doc":false,"doctest":false,"test":false}],"features":{"all-apis":["event","fs","io_uring","mm","mount","net","param","pipe","process","procfs","pty","rand","runtime","shm","stdio","system","termios","thread","time"],"alloc":[],"cc":[],"default":["std","use-libc-auxv"],"event":[],"fs":[],"io_uring":["event","fs","net","linux-raw-sys/io_uring"],"itoa":["dep:itoa"],"libc":["dep:libc"],"libc_errno":["dep:libc_errno"],"linux_4_11":[],"linux_latest":["linux_4_11"],"mm":[],"mount":[],"net":["linux-raw-sys/net","linux-raw-sys/netlink","linux-raw-sys/if_ether","linux-raw-sys/xdp"],"once_cell":["dep:once_cell"],"param":["fs"],"pipe":[],"process":["linux-raw-sys/prctl"],"procfs":["once_cell","itoa","fs"],"pty":["itoa","fs"],"rand":[],"runtime":["linux-raw-sys/prctl"],"rustc-dep-of-std":["dep:core","dep:alloc","dep:compiler_builtins","linux-raw-sys/rustc-dep-of-std","bitflags/rustc-dep-of-std","compiler_builtins?/rustc-dep-of-std"],"shm":["fs"],"std":["bitflags/std","alloc","libc?/std","libc_errno?/std"],"stdio":[],"system":["linux-raw-sys/system"],"termios":[],"thread":["linux-raw-sys/prctl"],"time":[],"use-explicitly-provided-auxv":[],"use-libc":["libc_errno","libc"],"use-libc-auxv":[]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rustix-0.38.31/Cargo.toml","metadata":{"docs":{"rs":{"features":["all-apis"],"rustdoc-args":["--cfg","doc_cfg"],"targets":["x86_64-unknown-linux-gnu","i686-unknown-linux-gnu","x86_64-apple-darwin","x86_64-pc-windows-msvc","x86_64-unknown-freebsd","x86_64-unknown-openbsd","x86_64-unknown-netbsd","x86_64-unknown-dragonfly","x86_64-unknown-illumos","x86_64-unknown-redox","x86_64-unknown-haiku","wasm32-unknown-emscripten","wasm32-wasi"]}}},"publish":null,"authors":["Dan Gohman <dev@sunfishcode.online>","Jakub Konka <kubkon@jakubkonka.com>"],"categories":["os::unix-apis","date-and-time","filesystem","network-programming"],"keywords":["api","file","network","safe","syscall"],"readme":"README.md","repository":"https://github.com/bytecodealliance/rustix","homepage":null,"documentation":"https://docs.rs/rustix","edition":"2021","links":null,"default_run":null,"rust_version":"1.63"},{"name":"ryu","version":"1.0.17","id":"ryu 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 OR BSL-1.0","license_file":null,"description":"Fast floating point to string conversion","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"no-panic","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"num_cpus","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.8","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rand","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.8","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rand_xorshift","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"ryu","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ryu-1.0.17/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["example"],"crate_types":["bin"],"name":"upstream_benchmark","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ryu-1.0.17/examples/upstream_benchmark.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["test"],"crate_types":["bin"],"name":"d2s_intrinsics_test","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ryu-1.0.17/tests/d2s_intrinsics_test.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"f2s_test","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ryu-1.0.17/tests/f2s_test.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"d2s_table_test","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ryu-1.0.17/tests/d2s_table_test.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"s2d_test","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ryu-1.0.17/tests/s2d_test.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"exhaustive","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ryu-1.0.17/tests/exhaustive.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"s2f_test","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ryu-1.0.17/tests/s2f_test.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"common_test","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ryu-1.0.17/tests/common_test.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"d2s_test","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ryu-1.0.17/tests/d2s_test.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["bench"],"crate_types":["bin"],"name":"bench","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ryu-1.0.17/benches/bench.rs","edition":"2018","doc":false,"doctest":false,"test":false}],"features":{"no-panic":["dep:no-panic"],"small":[]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ryu-1.0.17/Cargo.toml","metadata":{"docs":{"rs":{"rustdoc-args":["--generate-link-to-definition"],"targets":["x86_64-unknown-linux-gnu"]}}},"publish":null,"authors":["David Tolnay <dtolnay@gmail.com>"],"categories":["value-formatting","no-std","no-std::no-alloc"],"keywords":["float"],"readme":"README.md","repository":"https://github.com/dtolnay/ryu","homepage":null,"documentation":"https://docs.rs/ryu","edition":"2018","links":null,"default_run":null,"rust_version":"1.36"},{"name":"serde","version":"1.0.197","id":"serde 1.0.197 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"A generic serialization/deserialization framework","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"serde_derive","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"serde_derive","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"serde_derive","source":"registry+https://github.com/rust-lang/crates.io-index","req":"=1.0.197","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(any())","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"serde","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.197/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.197/build.rs","edition":"2018","doc":false,"doctest":false,"test":false}],"features":{"alloc":[],"default":["std"],"derive":["serde_derive"],"rc":[],"serde_derive":["dep:serde_derive"],"std":[],"unstable":[]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.197/Cargo.toml","metadata":{"docs":{"rs":{"features":["derive","rc","unstable"],"rustdoc-args":["--cfg","doc_cfg","--generate-link-to-definition"],"targets":["x86_64-unknown-linux-gnu"]}},"playground":{"features":["derive","rc"]}},"publish":null,"authors":["Erick Tryzelaar <erick.tryzelaar@gmail.com>","David Tolnay <dtolnay@gmail.com>"],"categories":["encoding","no-std","no-std::no-alloc"],"keywords":["serde","serialization","no_std"],"readme":"crates-io.md","repository":"https://github.com/serde-rs/serde","homepage":"https://serde.rs","documentation":"https://docs.rs/serde","edition":"2018","links":null,"default_run":null,"rust_version":"1.31"},{"name":"serde_derive","version":"1.0.197","id":"serde_derive 1.0.197 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Macros 1.1 implementation of #[derive(Serialize, Deserialize)]","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"proc-macro2","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.74","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":["proc-macro"],"target":null,"registry":null},{"name":"quote","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.35","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":["proc-macro"],"target":null,"registry":null},{"name":"syn","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.46","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":["clone-impls","derive","parsing","printing","proc-macro"],"target":null,"registry":null},{"name":"serde","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"serde_derive","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_derive-1.0.197/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true}],"features":{"default":[],"deserialize_in_place":[]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_derive-1.0.197/Cargo.toml","metadata":{"docs":{"rs":{"rustdoc-args":["--generate-link-to-definition"],"targets":["x86_64-unknown-linux-gnu"]}}},"publish":null,"authors":["Erick Tryzelaar <erick.tryzelaar@gmail.com>","David Tolnay <dtolnay@gmail.com>"],"categories":["no-std","no-std::no-alloc"],"keywords":["serde","serialization","no_std","derive"],"readme":"crates-io.md","repository":"https://github.com/serde-rs/serde","homepage":"https://serde.rs","documentation":"https://serde.rs/derive.html","edition":"2015","links":null,"default_run":null,"rust_version":"1.56"},{"name":"serde_json","version":"1.0.114","id":"serde_json 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"A JSON serialization file format","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"indexmap","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.2.1","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"itoa","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"ryu","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"serde","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.194","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"automod","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.11","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"indoc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0.2","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"ref-cast","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.18","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rustversion","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.13","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"serde","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.194","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":["derive"],"target":null,"registry":null},{"name":"serde_bytes","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.11.10","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"serde_derive","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.166","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"serde_stacker","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.8","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"trybuild","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.81","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":["diff"],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"serde_json","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_json-1.0.114/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"regression","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_json-1.0.114/tests/regression.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"debug","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_json-1.0.114/tests/debug.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"map","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_json-1.0.114/tests/map.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"stream","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_json-1.0.114/tests/stream.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_json-1.0.114/tests/test.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"lexical","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_json-1.0.114/tests/lexical.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"compiletest","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_json-1.0.114/tests/compiletest.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_json-1.0.114/build.rs","edition":"2021","doc":false,"doctest":false,"test":false}],"features":{"alloc":["serde/alloc"],"arbitrary_precision":[],"default":["std"],"float_roundtrip":[],"indexmap":["dep:indexmap"],"preserve_order":["indexmap","std"],"raw_value":[],"std":["serde/std"],"unbounded_depth":[]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_json-1.0.114/Cargo.toml","metadata":{"docs":{"rs":{"features":["preserve_order","raw_value","unbounded_depth"],"rustdoc-args":["--cfg","docsrs","--generate-link-to-definition"],"targets":["x86_64-unknown-linux-gnu"]}},"playground":{"features":["raw_value"]}},"publish":null,"authors":["Erick Tryzelaar <erick.tryzelaar@gmail.com>","David Tolnay <dtolnay@gmail.com>"],"categories":["encoding","parser-implementations","no-std"],"keywords":["json","serde","serialization"],"readme":"README.md","repository":"https://github.com/serde-rs/json","homepage":null,"documentation":"https://docs.rs/serde_json","edition":"2021","links":null,"default_run":null,"rust_version":"1.56"},{"name":"slab","version":"0.4.9","id":"slab 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT","license_file":null,"description":"Pre-allocated storage for a uniform data type","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"serde","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.95","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":["alloc"],"target":null,"registry":null},{"name":"rustversion","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"serde","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":["derive"],"target":null,"registry":null},{"name":"serde_test","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"autocfg","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"build","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"slab","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/slab-0.4.9/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"slab","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/slab-0.4.9/tests/slab.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"serde","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/slab-0.4.9/tests/serde.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/slab-0.4.9/build.rs","edition":"2018","doc":false,"doctest":false,"test":false}],"features":{"default":["std"],"serde":["dep:serde"],"std":[]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/slab-0.4.9/Cargo.toml","metadata":null,"publish":null,"authors":["Carl Lerche <me@carllerche.com>"],"categories":["memory-management","data-structures","no-std"],"keywords":["slab","allocator","no_std"],"readme":"README.md","repository":"https://github.com/tokio-rs/slab","homepage":null,"documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":"1.31"},{"name":"socket2","version":"0.4.10","id":"socket2 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Utilities for handling networking sockets with a maximal amount of configuration\npossible intended.\n","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"libc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.149","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(unix)","registry":null},{"name":"winapi","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.9","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":["handleapi","ws2ipdef","ws2tcpip"],"target":"cfg(windows)","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"socket2","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/socket2-0.4.10/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true}],"features":{"all":[]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/socket2-0.4.10/Cargo.toml","metadata":{"docs":{"rs":{"all-features":true,"rustdoc-args":["--cfg","docsrs"]}},"playground":{"features":["all"]}},"publish":null,"authors":["Alex Crichton <alex@alexcrichton.com>","Thomas de Zeeuw <thomasdezeeuw@gmail.com>"],"categories":["api-bindings","network-programming"],"keywords":["io","socket","network"],"readme":"README.md","repository":"https://github.com/rust-lang/socket2","homepage":"https://github.com/rust-lang/socket2","documentation":"https://docs.rs/socket2","edition":"2018","links":null,"default_run":null,"rust_version":null},{"name":"syn","version":"1.0.109","id":"syn 1.0.109 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Parser for Rust source code","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"proc-macro2","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.46","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"quote","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"unicode-ident","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"anyhow","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"automod","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"flate2","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"insta","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rayon","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"ref-cast","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"regex","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"reqwest","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.11","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":["blocking"],"target":null,"registry":null},{"name":"syn-test-suite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"tar","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4.16","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"termcolor","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"walkdir","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"syn","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"regression","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/tests/regression.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_derive_input","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/tests/test_derive_input.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_attribute","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/tests/test_attribute.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_should_parse","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/tests/test_should_parse.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_receiver","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/tests/test_receiver.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_asyncness","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/tests/test_asyncness.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_parse_buffer","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/tests/test_parse_buffer.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_shebang","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/tests/test_shebang.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_item","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/tests/test_item.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_expr","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/tests/test_expr.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_size","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/tests/test_size.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_token_trees","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/tests/test_token_trees.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_generics","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/tests/test_generics.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_parse_stream","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/tests/test_parse_stream.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_stmt","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/tests/test_stmt.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"zzz_stable","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/tests/zzz_stable.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_visibility","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/tests/test_visibility.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_path","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/tests/test_path.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_ty","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/tests/test_ty.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_iterators","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/tests/test_iterators.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_lit","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/tests/test_lit.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_ident","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/tests/test_ident.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_meta","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/tests/test_meta.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_round_trip","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/tests/test_round_trip.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_grouping","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/tests/test_grouping.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_pat","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/tests/test_pat.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_precedence","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/tests/test_precedence.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["bench"],"crate_types":["bin"],"name":"rust","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/benches/rust.rs","edition":"2018","required-features":["full","parsing"],"doc":false,"doctest":false,"test":false},{"kind":["bench"],"crate_types":["bin"],"name":"file","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/benches/file.rs","edition":"2018","required-features":["full","parsing"],"doc":false,"doctest":false,"test":false},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/build.rs","edition":"2018","doc":false,"doctest":false,"test":false}],"features":{"clone-impls":[],"default":["derive","parsing","printing","clone-impls","proc-macro"],"derive":[],"extra-traits":[],"fold":[],"full":[],"parsing":[],"printing":["quote"],"proc-macro":["proc-macro2/proc-macro","quote/proc-macro"],"quote":["dep:quote"],"test":["syn-test-suite/all-features"],"visit":[],"visit-mut":[]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/Cargo.toml","metadata":{"docs":{"rs":{"all-features":true,"rustdoc-args":["--cfg","doc_cfg"],"targets":["x86_64-unknown-linux-gnu"]}},"playground":{"features":["full","visit","visit-mut","fold","extra-traits"]}},"publish":null,"authors":["David Tolnay <dtolnay@gmail.com>"],"categories":["development-tools::procedural-macro-helpers","parser-implementations"],"keywords":["macros","syn"],"readme":"README.md","repository":"https://github.com/dtolnay/syn","homepage":null,"documentation":"https://docs.rs/syn","edition":"2018","links":null,"default_run":null,"rust_version":"1.31"},{"name":"syn","version":"2.0.50","id":"syn 2.0.50 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Parser for Rust source code","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"proc-macro2","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.75","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"quote","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.35","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"unicode-ident","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"anyhow","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"automod","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"flate2","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"insta","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rayon","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"ref-cast","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"reqwest","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.11","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":["blocking"],"target":null,"registry":null},{"name":"rustversion","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"syn-test-suite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"tar","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4.16","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"termcolor","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"walkdir","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.3.2","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"syn","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.50/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"regression","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.50/tests/regression.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_derive_input","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.50/tests/test_derive_input.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_attribute","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.50/tests/test_attribute.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_should_parse","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.50/tests/test_should_parse.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_receiver","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.50/tests/test_receiver.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_asyncness","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.50/tests/test_asyncness.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_parse_buffer","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.50/tests/test_parse_buffer.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_shebang","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.50/tests/test_shebang.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_item","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.50/tests/test_item.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_expr","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.50/tests/test_expr.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_size","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.50/tests/test_size.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_token_trees","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.50/tests/test_token_trees.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_generics","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.50/tests/test_generics.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_parse_stream","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.50/tests/test_parse_stream.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_stmt","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.50/tests/test_stmt.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"zzz_stable","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.50/tests/zzz_stable.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_visibility","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.50/tests/test_visibility.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_path","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.50/tests/test_path.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_ty","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.50/tests/test_ty.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_iterators","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.50/tests/test_iterators.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_lit","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.50/tests/test_lit.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_ident","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.50/tests/test_ident.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_meta","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.50/tests/test_meta.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_round_trip","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.50/tests/test_round_trip.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_grouping","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.50/tests/test_grouping.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_parse_quote","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.50/tests/test_parse_quote.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_pat","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.50/tests/test_pat.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_precedence","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.50/tests/test_precedence.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["bench"],"crate_types":["bin"],"name":"rust","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.50/benches/rust.rs","edition":"2021","required-features":["full","parsing"],"doc":false,"doctest":false,"test":false},{"kind":["bench"],"crate_types":["bin"],"name":"file","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.50/benches/file.rs","edition":"2021","required-features":["full","parsing"],"doc":false,"doctest":false,"test":false}],"features":{"clone-impls":[],"default":["derive","parsing","printing","clone-impls","proc-macro"],"derive":[],"extra-traits":[],"fold":[],"full":[],"parsing":[],"printing":["quote"],"proc-macro":["proc-macro2/proc-macro","quote/proc-macro"],"quote":["dep:quote"],"test":["syn-test-suite/all-features"],"visit":[],"visit-mut":[]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.50/Cargo.toml","metadata":{"docs":{"rs":{"all-features":true,"rustdoc-args":["--cfg","doc_cfg","--generate-link-to-definition"],"targets":["x86_64-unknown-linux-gnu"]}},"playground":{"features":["full","visit","visit-mut","fold","extra-traits"]}},"publish":null,"authors":["David Tolnay <dtolnay@gmail.com>"],"categories":["development-tools::procedural-macro-helpers","parser-implementations"],"keywords":["macros","syn"],"readme":"README.md","repository":"https://github.com/dtolnay/syn","homepage":null,"documentation":"https://docs.rs/syn","edition":"2021","links":null,"default_run":null,"rust_version":"1.56"},{"name":"termcolor","version":"1.4.1","id":"termcolor 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)","license":"Unlicense OR MIT","license_file":null,"description":"A simple cross platform library for writing colored text to a terminal.\n","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"winapi-util","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.3","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(windows)","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"termcolor","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/termcolor-1.4.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/termcolor-1.4.1/Cargo.toml","metadata":null,"publish":null,"authors":["Andrew Gallant <jamslam@gmail.com>"],"categories":[],"keywords":["windows","win","color","ansi","console"],"readme":"README.md","repository":"https://github.com/BurntSushi/termcolor","homepage":"https://github.com/BurntSushi/termcolor","documentation":"https://docs.rs/termcolor","edition":"2018","links":null,"default_run":null,"rust_version":null},{"name":"tokio","version":"1.36.0","id":"tokio 1.36.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT","license_file":null,"description":"An event-driven, non-blocking I/O platform for writing asynchronous I/O\nbacked applications.\n","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"bytes","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"mio","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.8.9","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"num_cpus","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.8.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"parking_lot","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.12.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"pin-project-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.11","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"tokio-macros","source":"registry+https://github.com/rust-lang/crates.io-index","req":"~2.2.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"async-stream","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"futures","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":["async-await"],"target":null,"registry":null},{"name":"mockall","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.11.1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"tokio-stream","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"tokio-test","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"wasm-bindgen-test","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(all(target_family = \"wasm\", not(target_os = \"wasi\")))","registry":null},{"name":"loom","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.7","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":["futures","checkpoint"],"target":"cfg(loom)","registry":null},{"name":"rand","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.8.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(not(all(target_family = \"wasm\", target_os = \"unknown\")))","registry":null},{"name":"socket2","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.5.5","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":["all"],"target":"cfg(not(target_family = \"wasm\"))","registry":null},{"name":"socket2","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.5.5","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(not(target_family = \"wasm\"))","registry":null},{"name":"tempfile","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^3.1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(not(target_family = \"wasm\"))","registry":null},{"name":"mio-aio","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.8.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":["tokio"],"target":"cfg(target_os = \"freebsd\")","registry":null},{"name":"backtrace","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.58","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(tokio_taskdump)","registry":null},{"name":"tracing","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.25","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":["std"],"target":"cfg(tokio_unstable)","registry":null},{"name":"libc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.149","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":"cfg(unix)","registry":null},{"name":"signal-hook-registry","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.1.1","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":"cfg(unix)","registry":null},{"name":"libc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.149","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(unix)","registry":null},{"name":"nix","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.27.1","kind":"dev","rename":null,"optional":false,"uses_default_features":false,"features":["fs","socket"],"target":"cfg(unix)","registry":null},{"name":"windows-sys","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.48","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":"cfg(windows)","registry":null},{"name":"windows-sys","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.48","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":["Win32_Foundation","Win32_Security_Authorization"],"target":"cfg(windows)","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"tokio","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"macros_rename_test","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/macros_rename_test.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io_chain","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/io_chain.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"macros_join","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/macros_join.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"tcp_connect","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/tcp_connect.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"rt_handle","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/rt_handle.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io_mem_stream","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/io_mem_stream.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"rt_threaded","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/rt_threaded.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io_read_to_string","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/io_read_to_string.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"macros_select","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/macros_select.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"uds_cred","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/uds_cred.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"net_unix_pipe","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/net_unix_pipe.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"macros_test","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/macros_test.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io_async_read","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/io_async_read.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io_fill_buf","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/io_fill_buf.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"fs","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/fs.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"sync_once_cell","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/sync_once_cell.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"sync_notify","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/sync_notify.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"macros_try_join","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/macros_try_join.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"unwindsafe","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/unwindsafe.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"no_rt","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/no_rt.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"sync_errors","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/sync_errors.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"tcp_stream","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/tcp_stream.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"uds_socket","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/uds_socket.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"fs_try_exists","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/fs_try_exists.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"sync_barrier","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/sync_barrier.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io_read_exact","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/io_read_exact.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"tcp_into_std","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/tcp_into_std.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"uds_stream","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/uds_stream.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"rt_metrics","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/rt_metrics.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"task_builder","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/task_builder.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"signal_multi_rt","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/signal_multi_rt.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"macros_pin","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/macros_pin.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"net_panic","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/net_panic.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"async_send_sync","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/async_send_sync.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io_split","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/io_split.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"tcp_peek","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/tcp_peek.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"fs_canonicalize_dir","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/fs_canonicalize_dir.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io_copy","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/io_copy.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"tcp_into_split","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/tcp_into_split.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"_require_full","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/_require_full.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"process_change_of_runtime","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/process_change_of_runtime.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"tcp_shutdown","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/tcp_shutdown.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"uds_split","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/uds_split.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io_write_all","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/io_write_all.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"rt_threaded_alt","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/rt_threaded_alt.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"sync_watch","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/sync_watch.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"fs_remove_dir_all","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/fs_remove_dir_all.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"time_sleep","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/time_sleep.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"sync_oneshot","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/sync_oneshot.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"signal_drop_signal","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/signal_drop_signal.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"time_interval","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/time_interval.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"sync_mpsc","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/sync_mpsc.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"signal_drop_rt","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/signal_drop_rt.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io_read_buf","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/io_read_buf.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"fs_open_options_windows","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/fs_open_options_windows.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io_sink","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/io_sink.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"task_local_set","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/task_local_set.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"dump","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/dump.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"uds_datagram","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/uds_datagram.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"process_issue_2174","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/process_issue_2174.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"sync_semaphore","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/sync_semaphore.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"sync_mutex_owned","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/sync_mutex_owned.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"task_blocking","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/task_blocking.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"process_arg0","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/process_arg0.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io_write","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/io_write.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io_poll_aio","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/io_poll_aio.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"signal_notify_both","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/signal_notify_both.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"tcp_split","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/tcp_split.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"net_named_pipe","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/net_named_pipe.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"tcp_socket","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/tcp_socket.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"rt_common","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/rt_common.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"tcp_echo","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/tcp_echo.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"process_smoke","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/process_smoke.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"time_timeout","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/time_timeout.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io_repeat","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/io_repeat.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io_read_line","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/io_read_line.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"time_panic","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/time_panic.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"signal_twice","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/signal_twice.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"task_local","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/task_local.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"time_rt","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/time_rt.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"task_join_set","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/task_join_set.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"task_abort","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/task_abort.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io_buf_writer","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/io_buf_writer.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"sync_panic","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/sync_panic.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"sync_mutex","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/sync_mutex.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io_read","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/io_read.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io_take","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/io_take.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io_write_buf","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/io_write_buf.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io_write_int","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/io_write_int.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"udp","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/udp.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"sync_rwlock","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/sync_rwlock.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"sync_mpsc_weak","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/sync_mpsc_weak.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"signal_drop_recv","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/signal_drop_recv.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"fs_copy","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/fs_copy.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"duplex_stream","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/duplex_stream.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"rt_panic","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/rt_panic.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"signal_panic","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/signal_panic.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"fs_symlink_dir_windows","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/fs_symlink_dir_windows.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"fs_rename","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/fs_rename.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"coop_budget","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/coop_budget.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"fs_dir","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/fs_dir.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"join_handle_panic","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/join_handle_panic.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io_util_empty","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/io_util_empty.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"task_panic","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/task_panic.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"sync_broadcast","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/sync_broadcast.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"fs_file","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/fs_file.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"task_yield_now","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/task_yield_now.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io_driver","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/io_driver.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"rt_time_start_paused","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/rt_time_start_paused.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io_read_to_end","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/io_read_to_end.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"fs_symlink_file_windows","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/fs_symlink_file_windows.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"net_bind_resource","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/net_bind_resource.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"rt_basic","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/rt_basic.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io_buf_reader","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/io_buf_reader.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io_lines","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/io_lines.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"process_kill_on_drop","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/process_kill_on_drop.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"net_lookup_host","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/net_lookup_host.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"rt_handle_block_on","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/rt_handle_block_on.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"fs_remove_file","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/fs_remove_file.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test_clock","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/test_clock.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"sync_semaphore_owned","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/sync_semaphore_owned.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"signal_usr1","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/signal_usr1.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"signal_ctrl_c","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/signal_ctrl_c.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io_driver_drop","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/io_driver_drop.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io_read_until","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/io_read_until.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"tcp_accept","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/tcp_accept.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"buffered","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/buffered.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io_async_fd","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/io_async_fd.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"fs_link","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/fs_link.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"signal_no_rt","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/signal_no_rt.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"fs_open_options","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/fs_open_options.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io_join","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/io_join.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"process_issue_42","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/process_issue_42.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io_write_all_buf","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/io_write_all_buf.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"time_pause","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/time_pause.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io_copy_bidirectional","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/io_copy_bidirectional.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"task_id","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/task_id.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"process_raw_handle","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/process_raw_handle.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"io_panic","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/tests/io_panic.rs","edition":"2021","doc":false,"doctest":false,"test":true}],"features":{"bytes":["dep:bytes"],"default":[],"fs":[],"full":["fs","io-util","io-std","macros","net","parking_lot","process","rt","rt-multi-thread","signal","sync","time"],"io-std":[],"io-util":["bytes"],"libc":["dep:libc"],"macros":["tokio-macros"],"mio":["dep:mio"],"net":["libc","mio/os-poll","mio/os-ext","mio/net","socket2","windows-sys/Win32_Foundation","windows-sys/Win32_Security","windows-sys/Win32_Storage_FileSystem","windows-sys/Win32_System_Pipes","windows-sys/Win32_System_SystemServices"],"num_cpus":["dep:num_cpus"],"parking_lot":["dep:parking_lot"],"process":["bytes","libc","mio/os-poll","mio/os-ext","mio/net","signal-hook-registry","windows-sys/Win32_Foundation","windows-sys/Win32_System_Threading","windows-sys/Win32_System_WindowsProgramming"],"rt":[],"rt-multi-thread":["num_cpus","rt"],"signal":["libc","mio/os-poll","mio/net","mio/os-ext","signal-hook-registry","windows-sys/Win32_Foundation","windows-sys/Win32_System_Console"],"signal-hook-registry":["dep:signal-hook-registry"],"socket2":["dep:socket2"],"sync":[],"test-util":["rt","sync","time"],"time":[],"tokio-macros":["dep:tokio-macros"],"tracing":["dep:tracing"],"windows-sys":["dep:windows-sys"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/Cargo.toml","metadata":{"cargo_check_external_types":{"allowed_external_types":["bytes::buf::buf_impl::Buf","bytes::buf::buf_mut::BufMut","tokio_macros::*"]},"docs":{"rs":{"all-features":true,"rustc-args":["--cfg","tokio_unstable","--cfg","tokio_taskdump"],"rustdoc-args":["--cfg","docsrs","--cfg","tokio_unstable","--cfg","tokio_taskdump"]}},"playground":{"features":["full","test-util"]}},"publish":null,"authors":["Tokio Contributors <team@tokio.rs>"],"categories":["asynchronous","network-programming"],"keywords":["io","async","non-blocking","futures"],"readme":"README.md","repository":"https://github.com/tokio-rs/tokio","homepage":"https://tokio.rs","documentation":null,"edition":"2021","links":null,"default_run":null,"rust_version":"1.63"},{"name":"tokio-macros","version":"2.2.0","id":"tokio-macros 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT","license_file":null,"description":"Tokio's proc macros.\n","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"proc-macro2","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.60","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"quote","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"syn","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":["full"],"target":null,"registry":null},{"name":"tokio","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":["full"],"target":null,"registry":null}],"targets":[{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"tokio-macros","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-macros-2.2.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-macros-2.2.0/Cargo.toml","metadata":{"docs":{"rs":{"all-features":true}}},"publish":null,"authors":["Tokio Contributors <team@tokio.rs>"],"categories":["asynchronous"],"keywords":[],"readme":"README.md","repository":"https://github.com/tokio-rs/tokio","homepage":"https://tokio.rs","documentation":null,"edition":"2021","links":null,"default_run":null,"rust_version":"1.63"},{"name":"tracing","version":"0.1.40","id":"tracing 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT","license_file":null,"description":"Application-level tracing for Rust.\n","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"log","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4.17","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"pin-project-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.9","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"tracing-attributes","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.27","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"tracing-core","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.32","kind":null,"rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"criterion","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.6","kind":"dev","rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"futures","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.21","kind":"dev","rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"log","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4.17","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"wasm-bindgen-test","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(target_arch = \"wasm32\")","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"tracing","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"macros","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/tests/macros.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"enabled","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/tests/enabled.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"filters_are_reevaluated_for_different_call_sites","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/tests/filters_are_reevaluated_for_different_call_sites.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"future_send","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/tests/future_send.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"filters_dont_leak","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/tests/filters_dont_leak.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"filters_are_not_reevaluated_for_the_same_span","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/tests/filters_are_not_reevaluated_for_the_same_span.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"macros_incompatible_concat","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/tests/macros_incompatible_concat.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"no_subscriber","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/tests/no_subscriber.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"macro_imports","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/tests/macro_imports.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"span","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/tests/span.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"scoped_clobbers_default","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/tests/scoped_clobbers_default.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"register_callsite_deadlock","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/tests/register_callsite_deadlock.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"filter_caching_is_lexically_scoped","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/tests/filter_caching_is_lexically_scoped.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"max_level_hint","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/tests/max_level_hint.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"multiple_max_level_hints","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/tests/multiple_max_level_hints.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"instrument","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/tests/instrument.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"event","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/tests/event.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"subscriber","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/tests/subscriber.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["bench"],"crate_types":["bin"],"name":"baseline","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/benches/baseline.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["bench"],"crate_types":["bin"],"name":"dispatch_get_clone","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/benches/dispatch_get_clone.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["bench"],"crate_types":["bin"],"name":"dispatch_get_ref","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/benches/dispatch_get_ref.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["bench"],"crate_types":["bin"],"name":"empty_span","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/benches/empty_span.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["bench"],"crate_types":["bin"],"name":"enter_span","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/benches/enter_span.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["bench"],"crate_types":["bin"],"name":"event","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/benches/event.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["bench"],"crate_types":["bin"],"name":"span_fields","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/benches/span_fields.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["bench"],"crate_types":["bin"],"name":"span_no_fields","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/benches/span_no_fields.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["bench"],"crate_types":["bin"],"name":"span_repeated","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/benches/span_repeated.rs","edition":"2018","doc":false,"doctest":false,"test":false},{"kind":["bench"],"crate_types":["bin"],"name":"shared","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/benches/shared.rs","edition":"2018","doc":false,"doctest":false,"test":false}],"features":{"async-await":[],"attributes":["tracing-attributes"],"default":["std","attributes"],"log":["dep:log"],"log-always":["log"],"max_level_debug":[],"max_level_error":[],"max_level_info":[],"max_level_off":[],"max_level_trace":[],"max_level_warn":[],"release_max_level_debug":[],"release_max_level_error":[],"release_max_level_info":[],"release_max_level_off":[],"release_max_level_trace":[],"release_max_level_warn":[],"std":["tracing-core/std"],"tracing-attributes":["dep:tracing-attributes"],"valuable":["tracing-core/valuable"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/Cargo.toml","metadata":{"docs":{"rs":{"all-features":true,"rustc-args":["--cfg","tracing_unstable"],"rustdoc-args":["--cfg","docsrs","--cfg","tracing_unstable"]}}},"publish":null,"authors":["Eliza Weisman <eliza@buoyant.io>","Tokio Contributors <team@tokio.rs>"],"categories":["development-tools::debugging","development-tools::profiling","asynchronous","no-std"],"keywords":["logging","tracing","metrics","async"],"readme":"README.md","repository":"https://github.com/tokio-rs/tracing","homepage":"https://tokio.rs","documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":"1.56.0"},{"name":"tracing-core","version":"0.1.32","id":"tracing-core 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT","license_file":null,"description":"Core primitives for application-level tracing.\n","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"once_cell","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.13.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"valuable","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.0","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":[],"target":"cfg(tracing_unstable)","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"tracing-core","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-core-0.1.32/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"macros","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-core-0.1.32/tests/macros.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"local_dispatch_before_init","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-core-0.1.32/tests/local_dispatch_before_init.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"global_dispatch","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-core-0.1.32/tests/global_dispatch.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"dispatch","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-core-0.1.32/tests/dispatch.rs","edition":"2018","doc":false,"doctest":false,"test":true}],"features":{"default":["std","valuable/std"],"once_cell":["dep:once_cell"],"std":["once_cell"],"valuable":["dep:valuable"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-core-0.1.32/Cargo.toml","metadata":{"docs":{"rs":{"all-features":true,"rustc-args":["--cfg","tracing_unstable"],"rustdoc-args":["--cfg","docsrs","--cfg","tracing_unstable"]}}},"publish":null,"authors":["Tokio Contributors <team@tokio.rs>"],"categories":["development-tools::debugging","development-tools::profiling","asynchronous"],"keywords":["logging","tracing","profiling"],"readme":"README.md","repository":"https://github.com/tokio-rs/tracing","homepage":"https://tokio.rs","documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":"1.56.0"},{"name":"trybuild","version":"1.0.89","id":"trybuild 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Test harness for ui tests of compiler diagnostics","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"basic-toml","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1.8","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"dissimilar","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"glob","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"once_cell","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.9","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"serde","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.194","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"serde_derive","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.194","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"serde_json","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.110","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"termcolor","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.4","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"automod","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.10","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"trybuild","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/trybuild-1.0.89/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"test","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/trybuild-1.0.89/tests/test.rs","edition":"2021","doc":false,"doctest":false,"test":true},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/trybuild-1.0.89/build.rs","edition":"2021","doc":false,"doctest":false,"test":false}],"features":{"diff":["dissimilar"],"dissimilar":["dep:dissimilar"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/trybuild-1.0.89/Cargo.toml","metadata":{"docs":{"rs":{"rustdoc-args":["--generate-link-to-definition"],"targets":["x86_64-unknown-linux-gnu"]}}},"publish":null,"authors":["David Tolnay <dtolnay@gmail.com>"],"categories":["development-tools::testing"],"keywords":["macros","testing","dev-dependencies"],"readme":"README.md","repository":"https://github.com/dtolnay/trybuild","homepage":null,"documentation":"https://docs.rs/trybuild","edition":"2021","links":null,"default_run":null,"rust_version":"1.56"},{"name":"unicode-ident","version":"1.0.12","id":"unicode-ident 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)","license":"(MIT OR Apache-2.0) AND Unicode-DFS-2016","license_file":null,"description":"Determine whether characters have the XID_Start or XID_Continue properties according to Unicode Standard Annex #31","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"criterion","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.5","kind":"dev","rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"fst","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"rand","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.8","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":["small_rng"],"target":null,"registry":null},{"name":"roaring","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.10","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"ucd-trie","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1","kind":"dev","rename":null,"optional":false,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"unicode-xid","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.4","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"unicode-ident","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/unicode-ident-1.0.12/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"compare","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/unicode-ident-1.0.12/tests/compare.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"static_size","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/unicode-ident-1.0.12/tests/static_size.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["bench"],"crate_types":["bin"],"name":"xid","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/unicode-ident-1.0.12/benches/xid.rs","edition":"2018","doc":false,"doctest":false,"test":false}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/unicode-ident-1.0.12/Cargo.toml","metadata":{"docs":{"rs":{"rustdoc-args":["--generate-link-to-definition"],"targets":["x86_64-unknown-linux-gnu"]}}},"publish":null,"authors":["David Tolnay <dtolnay@gmail.com>"],"categories":["development-tools::procedural-macro-helpers","no-std","no-std::no-alloc"],"keywords":["unicode","xid"],"readme":"README.md","repository":"https://github.com/dtolnay/unicode-ident","homepage":null,"documentation":"https://docs.rs/unicode-ident","edition":"2018","links":null,"default_run":null,"rust_version":"1.31"},{"name":"value-bag","version":"1.7.0","id":"value-bag 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 OR MIT","license_file":null,"description":"Anonymous structured values","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"value-bag-serde1","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.7.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"value-bag-sval2","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.7.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"wasm-bindgen","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(target_arch = \"wasm32\")","registry":null},{"name":"wasm-bindgen-test","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(target_arch = \"wasm32\")","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"value-bag","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/value-bag-1.7.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},{"kind":["bench"],"crate_types":["bin"],"name":"seq","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/value-bag-1.7.0/benches/seq.rs","edition":"2021","doc":false,"doctest":false,"test":false},{"kind":["bench"],"crate_types":["bin"],"name":"capture","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/value-bag-1.7.0/benches/capture.rs","edition":"2021","doc":false,"doctest":false,"test":false},{"kind":["bench"],"crate_types":["bin"],"name":"owned","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/value-bag-1.7.0/benches/owned.rs","edition":"2021","doc":false,"doctest":false,"test":false},{"kind":["bench"],"crate_types":["bin"],"name":"by_ref","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/value-bag-1.7.0/benches/by_ref.rs","edition":"2021","doc":false,"doctest":false,"test":false}],"features":{"alloc":["value-bag-sval2?/alloc","value-bag-serde1?/alloc"],"error":["std"],"inline-i128":[],"owned":["alloc","value-bag-serde1?/owned"],"seq":[],"serde":["serde1"],"serde1":["alloc","value-bag-serde1","value-bag-sval2?/serde1"],"std":["alloc","value-bag-sval2?/std","value-bag-serde1?/std"],"sval":["sval2"],"sval2":["value-bag-sval2"],"test":["std"],"value-bag-serde1":["dep:value-bag-serde1"],"value-bag-sval2":["dep:value-bag-sval2"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/value-bag-1.7.0/Cargo.toml","metadata":{"docs":{"rs":{"features":["std","error","sval","serde","test","owned","seq"]}}},"publish":null,"authors":["Ashley Mannix <ashleymannix@live.com.au>"],"categories":["encoding","no-std"],"keywords":["serialization","no_std"],"readme":"README.md","repository":"https://github.com/sval-rs/value-bag","homepage":null,"documentation":"https://docs.rs/value-bag","edition":"2021","links":null,"default_run":null,"rust_version":null},{"name":"waker-fn","version":"1.1.1","id":"waker-fn 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)","license":"Apache-2.0 OR MIT","license_file":null,"description":"Convert closures into wakers","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"waker-fn","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/waker-fn-1.1.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/waker-fn-1.1.1/Cargo.toml","metadata":null,"publish":null,"authors":["Stjepan Glavina <stjepang@gmail.com>"],"categories":["concurrency"],"keywords":["async","waker","wake","closure","callback"],"readme":"README.md","repository":"https://github.com/smol-rs/waker-fn","homepage":"https://github.com/smol-rs/waker-fn","documentation":"https://docs.rs/waker-fn","edition":"2018","links":null,"default_run":null,"rust_version":"1.51"},{"name":"wasm-bindgen","version":"0.2.91","id":"wasm-bindgen 0.2.91 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Easy support for interacting between JS and Rust.\n","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"cfg-if","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"serde","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"serde_json","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":null,"rename":null,"optional":true,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"wasm-bindgen-macro","source":"registry+https://github.com/rust-lang/crates.io-index","req":"=0.2.91","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"js-sys","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.68","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(target_arch = \"wasm32\")","registry":null},{"name":"serde_derive","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(target_arch = \"wasm32\")","registry":null},{"name":"wasm-bindgen-futures","source":"registry+https://github.com/rust-lang/crates.io-index","req":"=0.4.41","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(target_arch = \"wasm32\")","registry":null},{"name":"wasm-bindgen-test","source":"registry+https://github.com/rust-lang/crates.io-index","req":"=0.3.41","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(target_arch = \"wasm32\")","registry":null},{"name":"wasm-bindgen-test-crate-a","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(target_arch = \"wasm32\")","registry":null},{"name":"wasm-bindgen-test-crate-b","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.1","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(target_arch = \"wasm32\")","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"wasm-bindgen","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wasm-bindgen-0.2.91/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":false},{"kind":["test"],"crate_types":["bin"],"name":"must_use","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wasm-bindgen-0.2.91/tests/must_use.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"wasm","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wasm-bindgen-0.2.91/tests/wasm/main.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"headless","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wasm-bindgen-0.2.91/tests/headless/main.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"std-crate-no-std-dep","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wasm-bindgen-0.2.91/tests/std-crate-no-std-dep.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"unwrap_throw","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wasm-bindgen-0.2.91/tests/unwrap_throw.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"non_wasm","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wasm-bindgen-0.2.91/tests/non_wasm.rs","edition":"2018","doc":false,"doctest":false,"test":true},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wasm-bindgen-0.2.91/build.rs","edition":"2018","doc":false,"doctest":false,"test":false}],"features":{"default":["spans","std"],"enable-interning":["std"],"gg-alloc":["wasm-bindgen-test/gg-alloc"],"serde":["dep:serde"],"serde-serialize":["serde","serde_json","std"],"serde_json":["dep:serde_json"],"spans":["wasm-bindgen-macro/spans"],"std":[],"strict-macro":["wasm-bindgen-macro/strict-macro"],"xxx_debug_only_print_generated_code":["wasm-bindgen-macro/xxx_debug_only_print_generated_code"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wasm-bindgen-0.2.91/Cargo.toml","metadata":{"docs":{"rs":{"features":["serde-serialize"]}}},"publish":null,"authors":["The wasm-bindgen Developers"],"categories":["wasm"],"keywords":[],"readme":"README.md","repository":"https://github.com/rustwasm/wasm-bindgen","homepage":"https://rustwasm.github.io/","documentation":"https://docs.rs/wasm-bindgen","edition":"2018","links":null,"default_run":null,"rust_version":"1.57"},{"name":"wasm-bindgen-backend","version":"0.2.91","id":"wasm-bindgen-backend 0.2.91 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Backend code generation of the wasm-bindgen tool\n","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"bumpalo","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^3.0.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"log","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"once_cell","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.12","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"proc-macro2","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"quote","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"syn","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":["full"],"target":null,"registry":null},{"name":"wasm-bindgen-shared","source":"registry+https://github.com/rust-lang/crates.io-index","req":"=0.2.91","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"wasm-bindgen-backend","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wasm-bindgen-backend-0.2.91/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true}],"features":{"extra-traits":["syn/extra-traits"],"spans":[]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wasm-bindgen-backend-0.2.91/Cargo.toml","metadata":null,"publish":null,"authors":["The wasm-bindgen Developers"],"categories":[],"keywords":[],"readme":null,"repository":"https://github.com/rustwasm/wasm-bindgen/tree/master/crates/backend","homepage":"https://rustwasm.github.io/wasm-bindgen/","documentation":"https://docs.rs/wasm-bindgen-backend","edition":"2018","links":null,"default_run":null,"rust_version":"1.57"},{"name":"wasm-bindgen-futures","version":"0.4.41","id":"wasm-bindgen-futures 0.4.41 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Bridging the gap between Rust Futures and JavaScript Promises","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"cfg-if","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"futures-core","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.8","kind":null,"rename":null,"optional":true,"uses_default_features":false,"features":[],"target":null,"registry":null},{"name":"js-sys","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.68","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"wasm-bindgen","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.91","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"futures-channel-preview","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.0-alpha.18","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(target_arch = \"wasm32\")","registry":null},{"name":"futures-lite","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.11.3","kind":"dev","rename":null,"optional":false,"uses_default_features":false,"features":[],"target":"cfg(target_arch = \"wasm32\")","registry":null},{"name":"wasm-bindgen-test","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.41","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(target_arch = \"wasm32\")","registry":null},{"name":"web-sys","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.24","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":["MessageEvent","Worker"],"target":"cfg(target_feature = \"atomics\")","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"wasm-bindgen-futures","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wasm-bindgen-futures-0.4.41/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"tests","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wasm-bindgen-futures-0.4.41/tests/tests.rs","edition":"2018","doc":false,"doctest":false,"test":true}],"features":{"futures-core":["dep:futures-core"],"futures-core-03-stream":["futures-core"]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wasm-bindgen-futures-0.4.41/Cargo.toml","metadata":null,"publish":null,"authors":["The wasm-bindgen Developers"],"categories":[],"keywords":[],"readme":"./README.md","repository":"https://github.com/rustwasm/wasm-bindgen/tree/master/crates/futures","homepage":"https://rustwasm.github.io/wasm-bindgen/","documentation":"https://docs.rs/wasm-bindgen-futures","edition":"2018","links":null,"default_run":null,"rust_version":"1.57"},{"name":"wasm-bindgen-macro","version":"0.2.91","id":"wasm-bindgen-macro 0.2.91 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Definition of the `#[wasm_bindgen]` attribute, an internal dependency\n","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"quote","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"wasm-bindgen-macro-support","source":"registry+https://github.com/rust-lang/crates.io-index","req":"=0.2.91","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"trybuild","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"wasm-bindgen","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.91","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"wasm-bindgen-futures","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4.41","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"web-sys","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.68","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":["Worker"],"target":null,"registry":null}],"targets":[{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"wasm-bindgen-macro","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wasm-bindgen-macro-0.2.91/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["test"],"crate_types":["bin"],"name":"ui","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wasm-bindgen-macro-0.2.91/tests/ui.rs","edition":"2018","doc":false,"doctest":false,"test":true}],"features":{"spans":["wasm-bindgen-macro-support/spans"],"strict-macro":["wasm-bindgen-macro-support/strict-macro"],"xxx_debug_only_print_generated_code":[]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wasm-bindgen-macro-0.2.91/Cargo.toml","metadata":null,"publish":null,"authors":["The wasm-bindgen Developers"],"categories":[],"keywords":[],"readme":"README.md","repository":"https://github.com/rustwasm/wasm-bindgen/tree/master/crates/macro","homepage":"https://rustwasm.github.io/wasm-bindgen/","documentation":"https://docs.rs/wasm-bindgen","edition":"2018","links":null,"default_run":null,"rust_version":"1.57"},{"name":"wasm-bindgen-macro-support","version":"0.2.91","id":"wasm-bindgen-macro-support 0.2.91 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"The part of the implementation of the `#[wasm_bindgen]` attribute that is not in the shared backend crate\n","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"proc-macro2","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"quote","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^1.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"syn","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^2.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":["visit","full"],"target":null,"registry":null},{"name":"wasm-bindgen-backend","source":"registry+https://github.com/rust-lang/crates.io-index","req":"=0.2.91","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"wasm-bindgen-shared","source":"registry+https://github.com/rust-lang/crates.io-index","req":"=0.2.91","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"wasm-bindgen-macro-support","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wasm-bindgen-macro-support-0.2.91/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true}],"features":{"extra-traits":["syn/extra-traits"],"spans":["wasm-bindgen-backend/spans"],"strict-macro":[]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wasm-bindgen-macro-support-0.2.91/Cargo.toml","metadata":null,"publish":null,"authors":["The wasm-bindgen Developers"],"categories":[],"keywords":[],"readme":null,"repository":"https://github.com/rustwasm/wasm-bindgen/tree/master/crates/macro-support","homepage":"https://rustwasm.github.io/wasm-bindgen/","documentation":"https://docs.rs/wasm-bindgen","edition":"2018","links":null,"default_run":null,"rust_version":"1.57"},{"name":"wasm-bindgen-shared","version":"0.2.91","id":"wasm-bindgen-shared 0.2.91 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Shared support between wasm-bindgen and wasm-bindgen cli, an internal\ndependency.\n","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"wasm-bindgen-shared","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wasm-bindgen-shared-0.2.91/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wasm-bindgen-shared-0.2.91/build.rs","edition":"2018","doc":false,"doctest":false,"test":false}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wasm-bindgen-shared-0.2.91/Cargo.toml","metadata":null,"publish":null,"authors":["The wasm-bindgen Developers"],"categories":[],"keywords":[],"readme":null,"repository":"https://github.com/rustwasm/wasm-bindgen/tree/master/crates/shared","homepage":"https://rustwasm.github.io/wasm-bindgen/","documentation":"https://docs.rs/wasm-bindgen-shared","edition":"2018","links":"wasm_bindgen","default_run":null,"rust_version":"1.57"},{"name":"web-sys","version":"0.3.68","id":"web-sys 0.3.68 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Bindings for all Web APIs, a procedurally generated crate from WebIDL\n","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"js-sys","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.68","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"wasm-bindgen","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.2.91","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null},{"name":"wasm-bindgen-futures","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4.41","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(target_arch = \"wasm32\")","registry":null},{"name":"wasm-bindgen-test","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3.41","kind":"dev","rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(target_arch = \"wasm32\")","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"web-sys","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/web-sys-0.3.68/src/lib.rs","edition":"2018","doc":true,"doctest":false,"test":false},{"kind":["test"],"crate_types":["bin"],"name":"wasm","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/web-sys-0.3.68/tests/wasm/main.rs","edition":"2018","doc":false,"doctest":false,"test":true}],"features":{"AbortController":[],"AbortSignal":["EventTarget"],"AddEventListenerOptions":[],"AesCbcParams":[],"AesCtrParams":[],"AesDerivedKeyParams":[],"AesGcmParams":[],"AesKeyAlgorithm":[],"AesKeyGenParams":[],"Algorithm":[],"AlignSetting":[],"AllowedBluetoothDevice":[],"AllowedUsbDevice":[],"AlphaOption":[],"AnalyserNode":["AudioNode","EventTarget"],"AnalyserOptions":[],"AngleInstancedArrays":[],"Animation":["EventTarget"],"AnimationEffect":[],"AnimationEvent":["Event"],"AnimationEventInit":[],"AnimationPlayState":[],"AnimationPlaybackEvent":["Event"],"AnimationPlaybackEventInit":[],"AnimationPropertyDetails":[],"AnimationPropertyValueDetails":[],"AnimationTimeline":[],"AssignedNodesOptions":[],"AttestationConveyancePreference":[],"Attr":["EventTarget","Node"],"AttributeNameValue":[],"AudioBuffer":[],"AudioBufferOptions":[],"AudioBufferSourceNode":["AudioNode","AudioScheduledSourceNode","EventTarget"],"AudioBufferSourceOptions":[],"AudioConfiguration":[],"AudioContext":["BaseAudioContext","EventTarget"],"AudioContextLatencyCategory":[],"AudioContextOptions":[],"AudioContextState":[],"AudioData":[],"AudioDataCopyToOptions":[],"AudioDataInit":[],"AudioDecoder":[],"AudioDecoderConfig":[],"AudioDecoderInit":[],"AudioDecoderSupport":[],"AudioDestinationNode":["AudioNode","EventTarget"],"AudioEncoder":[],"AudioEncoderConfig":[],"AudioEncoderInit":[],"AudioEncoderSupport":[],"AudioListener":[],"AudioNode":["EventTarget"],"AudioNodeOptions":[],"AudioParam":[],"AudioParamMap":[],"AudioProcessingEvent":["Event"],"AudioSampleFormat":[],"AudioScheduledSourceNode":["AudioNode","EventTarget"],"AudioSinkInfo":[],"AudioSinkOptions":[],"AudioSinkType":[],"AudioStreamTrack":["EventTarget","MediaStreamTrack"],"AudioTrack":[],"AudioTrackList":["EventTarget"],"AudioWorklet":["Worklet"],"AudioWorkletGlobalScope":["WorkletGlobalScope"],"AudioWorkletNode":["AudioNode","EventTarget"],"AudioWorkletNodeOptions":[],"AudioWorkletProcessor":[],"AuthenticationExtensionsClientInputs":[],"AuthenticationExtensionsClientOutputs":[],"AuthenticatorAssertionResponse":["AuthenticatorResponse"],"AuthenticatorAttachment":[],"AuthenticatorAttestationResponse":["AuthenticatorResponse"],"AuthenticatorResponse":[],"AuthenticatorSelectionCriteria":[],"AuthenticatorTransport":[],"AutoKeyword":[],"AutocompleteInfo":[],"BarProp":[],"BaseAudioContext":["EventTarget"],"BaseComputedKeyframe":[],"BaseKeyframe":[],"BasePropertyIndexedKeyframe":[],"BasicCardRequest":[],"BasicCardResponse":[],"BasicCardType":[],"BatteryManager":["EventTarget"],"BeforeUnloadEvent":["Event"],"BinaryType":[],"BiquadFilterNode":["AudioNode","EventTarget"],"BiquadFilterOptions":[],"BiquadFilterType":[],"Blob":[],"BlobEvent":["Event"],"BlobEventInit":[],"BlobPropertyBag":[],"BlockParsingOptions":[],"Bluetooth":["EventTarget"],"BluetoothAdvertisingEvent":["Event"],"BluetoothAdvertisingEventInit":[],"BluetoothCharacteristicProperties":[],"BluetoothDataFilterInit":[],"BluetoothDevice":["EventTarget"],"BluetoothLeScanFilterInit":[],"BluetoothManufacturerDataMap":[],"BluetoothPermissionDescriptor":[],"BluetoothPermissionResult":["EventTarget","PermissionStatus"],"BluetoothPermissionStorage":[],"BluetoothRemoteGattCharacteristic":["EventTarget"],"BluetoothRemoteGattDescriptor":[],"BluetoothRemoteGattServer":[],"BluetoothRemoteGattService":["EventTarget"],"BluetoothServiceDataMap":[],"BluetoothUuid":[],"BoxQuadOptions":[],"BroadcastChannel":["EventTarget"],"BrowserElementDownloadOptions":[],"BrowserElementExecuteScriptOptions":[],"BrowserFeedWriter":[],"BrowserFindCaseSensitivity":[],"BrowserFindDirection":[],"ByteLengthQueuingStrategy":[],"Cache":[],"CacheBatchOperation":[],"CacheQueryOptions":[],"CacheStorage":[],"CacheStorageNamespace":[],"CanvasCaptureMediaStream":["EventTarget","MediaStream"],"CanvasCaptureMediaStreamTrack":["EventTarget","MediaStreamTrack"],"CanvasGradient":[],"CanvasPattern":[],"CanvasRenderingContext2d":[],"CanvasWindingRule":[],"CaretChangedReason":[],"CaretPosition":[],"CaretStateChangedEventInit":[],"CdataSection":["CharacterData","EventTarget","Node","Text"],"ChannelCountMode":[],"ChannelInterpretation":[],"ChannelMergerNode":["AudioNode","EventTarget"],"ChannelMergerOptions":[],"ChannelSplitterNode":["AudioNode","EventTarget"],"ChannelSplitterOptions":[],"CharacterData":["EventTarget","Node"],"CheckerboardReason":[],"CheckerboardReport":[],"CheckerboardReportService":[],"ChromeFilePropertyBag":[],"ChromeWorker":["EventTarget","Worker"],"Client":[],"ClientQueryOptions":[],"ClientRectsAndTexts":[],"ClientType":[],"Clients":[],"Clipboard":["EventTarget"],"ClipboardEvent":["Event"],"ClipboardEventInit":[],"ClipboardItem":[],"ClipboardItemOptions":[],"ClipboardPermissionDescriptor":[],"CloseEvent":["Event"],"CloseEventInit":[],"CodecState":[],"CollectedClientData":[],"ColorSpaceConversion":[],"Comment":["CharacterData","EventTarget","Node"],"CompositeOperation":[],"CompositionEvent":["Event","UiEvent"],"CompositionEventInit":[],"CompressionFormat":[],"CompressionStream":[],"ComputedEffectTiming":[],"ConnStatusDict":[],"ConnectionType":[],"ConsoleCounter":[],"ConsoleCounterError":[],"ConsoleEvent":[],"ConsoleInstance":[],"ConsoleInstanceOptions":[],"ConsoleLevel":[],"ConsoleLogLevel":[],"ConsoleProfileEvent":[],"ConsoleStackEntry":[],"ConsoleTimerError":[],"ConsoleTimerLogOrEnd":[],"ConsoleTimerStart":[],"ConstantSourceNode":["AudioNode","AudioScheduledSourceNode","EventTarget"],"ConstantSourceOptions":[],"ConstrainBooleanParameters":[],"ConstrainDomStringParameters":[],"ConstrainDoubleRange":[],"ConstrainLongRange":[],"ContextAttributes2d":[],"ConvertCoordinateOptions":[],"ConvolverNode":["AudioNode","EventTarget"],"ConvolverOptions":[],"Coordinates":[],"CountQueuingStrategy":[],"Credential":[],"CredentialCreationOptions":[],"CredentialRequestOptions":[],"CredentialsContainer":[],"Crypto":[],"CryptoKey":[],"CryptoKeyPair":[],"CssAnimation":["Animation","EventTarget"],"CssBoxType":[],"CssConditionRule":["CssGroupingRule","CssRule"],"CssCounterStyleRule":["CssRule"],"CssFontFaceRule":["CssRule"],"CssFontFeatureValuesRule":["CssRule"],"CssGroupingRule":["CssRule"],"CssImportRule":["CssRule"],"CssKeyframeRule":["CssRule"],"CssKeyframesRule":["CssRule"],"CssMediaRule":["CssConditionRule","CssGroupingRule","CssRule"],"CssNamespaceRule":["CssRule"],"CssPageRule":["CssRule"],"CssPseudoElement":[],"CssRule":[],"CssRuleList":[],"CssStyleDeclaration":[],"CssStyleRule":["CssRule"],"CssStyleSheet":["StyleSheet"],"CssStyleSheetParsingMode":[],"CssSupportsRule":["CssConditionRule","CssGroupingRule","CssRule"],"CssTransition":["Animation","EventTarget"],"CustomElementRegistry":[],"CustomEvent":["Event"],"CustomEventInit":[],"DataTransfer":[],"DataTransferItem":[],"DataTransferItemList":[],"DateTimeValue":[],"DecoderDoctorNotification":[],"DecoderDoctorNotificationType":[],"DecompressionStream":[],"DedicatedWorkerGlobalScope":["EventTarget","WorkerGlobalScope"],"DelayNode":["AudioNode","EventTarget"],"DelayOptions":[],"DeviceAcceleration":[],"DeviceAccelerationInit":[],"DeviceLightEvent":["Event"],"DeviceLightEventInit":[],"DeviceMotionEvent":["Event"],"DeviceMotionEventInit":[],"DeviceOrientationEvent":["Event"],"DeviceOrientationEventInit":[],"DeviceProximityEvent":["Event"],"DeviceProximityEventInit":[],"DeviceRotationRate":[],"DeviceRotationRateInit":[],"DhKeyDeriveParams":[],"DirectionSetting":[],"Directory":[],"DirectoryPickerOptions":[],"DisplayMediaStreamConstraints":[],"DisplayNameOptions":[],"DisplayNameResult":[],"DistanceModelType":[],"DnsCacheDict":[],"DnsCacheEntry":[],"DnsLookupDict":[],"Document":["EventTarget","Node"],"DocumentFragment":["EventTarget","Node"],"DocumentTimeline":["AnimationTimeline"],"DocumentTimelineOptions":[],"DocumentType":["EventTarget","Node"],"DomError":[],"DomException":[],"DomImplementation":[],"DomMatrix":["DomMatrixReadOnly"],"DomMatrix2dInit":[],"DomMatrixInit":[],"DomMatrixReadOnly":[],"DomParser":[],"DomPoint":["DomPointReadOnly"],"DomPointInit":[],"DomPointReadOnly":[],"DomQuad":[],"DomQuadInit":[],"DomQuadJson":[],"DomRect":["DomRectReadOnly"],"DomRectInit":[],"DomRectList":[],"DomRectReadOnly":[],"DomRequest":["EventTarget"],"DomRequestReadyState":[],"DomStringList":[],"DomStringMap":[],"DomTokenList":[],"DomWindowResizeEventDetail":[],"DragEvent":["Event","MouseEvent","UiEvent"],"DragEventInit":[],"DynamicsCompressorNode":["AudioNode","EventTarget"],"DynamicsCompressorOptions":[],"EcKeyAlgorithm":[],"EcKeyGenParams":[],"EcKeyImportParams":[],"EcdhKeyDeriveParams":[],"EcdsaParams":[],"EffectTiming":[],"Element":["EventTarget","Node"],"ElementCreationOptions":[],"ElementDefinitionOptions":[],"EncodedAudioChunk":[],"EncodedAudioChunkInit":[],"EncodedAudioChunkMetadata":[],"EncodedAudioChunkType":[],"EncodedVideoChunk":[],"EncodedVideoChunkInit":[],"EncodedVideoChunkMetadata":[],"EncodedVideoChunkType":[],"EndingTypes":[],"ErrorCallback":[],"ErrorEvent":["Event"],"ErrorEventInit":[],"Event":[],"EventInit":[],"EventListener":[],"EventListenerOptions":[],"EventModifierInit":[],"EventSource":["EventTarget"],"EventSourceInit":[],"EventTarget":[],"Exception":[],"ExtBlendMinmax":[],"ExtColorBufferFloat":[],"ExtColorBufferHalfFloat":[],"ExtDisjointTimerQuery":[],"ExtFragDepth":[],"ExtSRgb":[],"ExtShaderTextureLod":[],"ExtTextureFilterAnisotropic":[],"ExtTextureNorm16":[],"ExtendableEvent":["Event"],"ExtendableEventInit":[],"ExtendableMessageEvent":["Event","ExtendableEvent"],"ExtendableMessageEventInit":[],"External":[],"FakePluginMimeEntry":[],"FakePluginTagInit":[],"FetchEvent":["Event","ExtendableEvent"],"FetchEventInit":[],"FetchObserver":["EventTarget"],"FetchReadableStreamReadDataArray":[],"FetchReadableStreamReadDataDone":[],"FetchState":[],"File":["Blob"],"FileCallback":[],"FileList":[],"FilePickerAcceptType":[],"FilePickerOptions":[],"FilePropertyBag":[],"FileReader":["EventTarget"],"FileReaderSync":[],"FileSystem":[],"FileSystemCreateWritableOptions":[],"FileSystemDirectoryEntry":["FileSystemEntry"],"FileSystemDirectoryHandle":["FileSystemHandle"],"FileSystemDirectoryReader":[],"FileSystemEntriesCallback":[],"FileSystemEntry":[],"FileSystemEntryCallback":[],"FileSystemFileEntry":["FileSystemEntry"],"FileSystemFileHandle":["FileSystemHandle"],"FileSystemFlags":[],"FileSystemGetDirectoryOptions":[],"FileSystemGetFileOptions":[],"FileSystemHandle":[],"FileSystemHandleKind":[],"FileSystemHandlePermissionDescriptor":[],"FileSystemPermissionDescriptor":[],"FileSystemPermissionMode":[],"FileSystemReadWriteOptions":[],"FileSystemRemoveOptions":[],"FileSystemSyncAccessHandle":[],"FileSystemWritableFileStream":["WritableStream"],"FillMode":[],"FlashClassification":[],"FlowControlType":[],"FocusEvent":["Event","UiEvent"],"FocusEventInit":[],"FontData":[],"FontFace":[],"FontFaceDescriptors":[],"FontFaceLoadStatus":[],"FontFaceSet":["EventTarget"],"FontFaceSetIterator":[],"FontFaceSetIteratorResult":[],"FontFaceSetLoadEvent":["Event"],"FontFaceSetLoadEventInit":[],"FontFaceSetLoadStatus":[],"FormData":[],"FrameType":[],"FuzzingFunctions":[],"GainNode":["AudioNode","EventTarget"],"GainOptions":[],"Gamepad":[],"GamepadAxisMoveEvent":["Event","GamepadEvent"],"GamepadAxisMoveEventInit":[],"GamepadButton":[],"GamepadButtonEvent":["Event","GamepadEvent"],"GamepadButtonEventInit":[],"GamepadEvent":["Event"],"GamepadEventInit":[],"GamepadHand":[],"GamepadHapticActuator":[],"GamepadHapticActuatorType":[],"GamepadMappingType":[],"GamepadPose":[],"GamepadServiceTest":[],"Geolocation":[],"GetAnimationsOptions":[],"GetRootNodeOptions":[],"GetUserMediaRequest":[],"Gpu":[],"GpuAdapter":[],"GpuAdapterInfo":[],"GpuAddressMode":[],"GpuAutoLayoutMode":[],"GpuBindGroup":[],"GpuBindGroupDescriptor":[],"GpuBindGroupEntry":[],"GpuBindGroupLayout":[],"GpuBindGroupLayoutDescriptor":[],"GpuBindGroupLayoutEntry":[],"GpuBlendComponent":[],"GpuBlendFactor":[],"GpuBlendOperation":[],"GpuBlendState":[],"GpuBuffer":[],"GpuBufferBinding":[],"GpuBufferBindingLayout":[],"GpuBufferBindingType":[],"GpuBufferDescriptor":[],"GpuBufferMapState":[],"GpuCanvasAlphaMode":[],"GpuCanvasConfiguration":[],"GpuCanvasContext":[],"GpuColorDict":[],"GpuColorTargetState":[],"GpuCommandBuffer":[],"GpuCommandBufferDescriptor":[],"GpuCommandEncoder":[],"GpuCommandEncoderDescriptor":[],"GpuCompareFunction":[],"GpuCompilationInfo":[],"GpuCompilationMessage":[],"GpuCompilationMessageType":[],"GpuComputePassDescriptor":[],"GpuComputePassEncoder":[],"GpuComputePassTimestampWrites":[],"GpuComputePipeline":[],"GpuComputePipelineDescriptor":[],"GpuCullMode":[],"GpuDepthStencilState":[],"GpuDevice":["EventTarget"],"GpuDeviceDescriptor":[],"GpuDeviceLostInfo":[],"GpuDeviceLostReason":[],"GpuError":[],"GpuErrorFilter":[],"GpuExtent3dDict":[],"GpuExternalTexture":[],"GpuExternalTextureBindingLayout":[],"GpuExternalTextureDescriptor":[],"GpuFeatureName":[],"GpuFilterMode":[],"GpuFragmentState":[],"GpuFrontFace":[],"GpuImageCopyBuffer":[],"GpuImageCopyExternalImage":[],"GpuImageCopyTexture":[],"GpuImageCopyTextureTagged":[],"GpuImageDataLayout":[],"GpuIndexFormat":[],"GpuInternalError":["GpuError"],"GpuLoadOp":[],"GpuMipmapFilterMode":[],"GpuMultisampleState":[],"GpuObjectDescriptorBase":[],"GpuOrigin2dDict":[],"GpuOrigin3dDict":[],"GpuOutOfMemoryError":["GpuError"],"GpuPipelineDescriptorBase":[],"GpuPipelineError":["DomException"],"GpuPipelineErrorInit":[],"GpuPipelineErrorReason":[],"GpuPipelineLayout":[],"GpuPipelineLayoutDescriptor":[],"GpuPowerPreference":[],"GpuPrimitiveState":[],"GpuPrimitiveTopology":[],"GpuProgrammableStage":[],"GpuQuerySet":[],"GpuQuerySetDescriptor":[],"GpuQueryType":[],"GpuQueue":[],"GpuQueueDescriptor":[],"GpuRenderBundle":[],"GpuRenderBundleDescriptor":[],"GpuRenderBundleEncoder":[],"GpuRenderBundleEncoderDescriptor":[],"GpuRenderPassColorAttachment":[],"GpuRenderPassDepthStencilAttachment":[],"GpuRenderPassDescriptor":[],"GpuRenderPassEncoder":[],"GpuRenderPassLayout":[],"GpuRenderPassTimestampWrites":[],"GpuRenderPipeline":[],"GpuRenderPipelineDescriptor":[],"GpuRequestAdapterOptions":[],"GpuSampler":[],"GpuSamplerBindingLayout":[],"GpuSamplerBindingType":[],"GpuSamplerDescriptor":[],"GpuShaderModule":[],"GpuShaderModuleCompilationHint":[],"GpuShaderModuleDescriptor":[],"GpuStencilFaceState":[],"GpuStencilOperation":[],"GpuStorageTextureAccess":[],"GpuStorageTextureBindingLayout":[],"GpuStoreOp":[],"GpuSupportedFeatures":[],"GpuSupportedLimits":[],"GpuTexture":[],"GpuTextureAspect":[],"GpuTextureBindingLayout":[],"GpuTextureDescriptor":[],"GpuTextureDimension":[],"GpuTextureFormat":[],"GpuTextureSampleType":[],"GpuTextureView":[],"GpuTextureViewDescriptor":[],"GpuTextureViewDimension":[],"GpuUncapturedErrorEvent":["Event"],"GpuUncapturedErrorEventInit":[],"GpuValidationError":["GpuError"],"GpuVertexAttribute":[],"GpuVertexBufferLayout":[],"GpuVertexFormat":[],"GpuVertexState":[],"GpuVertexStepMode":[],"GroupedHistoryEventInit":[],"HalfOpenInfoDict":[],"HardwareAcceleration":[],"HashChangeEvent":["Event"],"HashChangeEventInit":[],"Headers":[],"HeadersGuardEnum":[],"Hid":["EventTarget"],"HidCollectionInfo":[],"HidConnectionEvent":["Event"],"HidConnectionEventInit":[],"HidDevice":["EventTarget"],"HidDeviceFilter":[],"HidDeviceRequestOptions":[],"HidInputReportEvent":["Event"],"HidInputReportEventInit":[],"HidReportInfo":[],"HidReportItem":[],"HidUnitSystem":[],"HiddenPluginEventInit":[],"History":[],"HitRegionOptions":[],"HkdfParams":[],"HmacDerivedKeyParams":[],"HmacImportParams":[],"HmacKeyAlgorithm":[],"HmacKeyGenParams":[],"HtmlAllCollection":[],"HtmlAnchorElement":["Element","EventTarget","HtmlElement","Node"],"HtmlAreaElement":["Element","EventTarget","HtmlElement","Node"],"HtmlAudioElement":["Element","EventTarget","HtmlElement","HtmlMediaElement","Node"],"HtmlBaseElement":["Element","EventTarget","HtmlElement","Node"],"HtmlBodyElement":["Element","EventTarget","HtmlElement","Node"],"HtmlBrElement":["Element","EventTarget","HtmlElement","Node"],"HtmlButtonElement":["Element","EventTarget","HtmlElement","Node"],"HtmlCanvasElement":["Element","EventTarget","HtmlElement","Node"],"HtmlCollection":[],"HtmlDListElement":["Element","EventTarget","HtmlElement","Node"],"HtmlDataElement":["Element","EventTarget","HtmlElement","Node"],"HtmlDataListElement":["Element","EventTarget","HtmlElement","Node"],"HtmlDetailsElement":["Element","EventTarget","HtmlElement","Node"],"HtmlDialogElement":["Element","EventTarget","HtmlElement","Node"],"HtmlDirectoryElement":["Element","EventTarget","HtmlElement","Node"],"HtmlDivElement":["Element","EventTarget","HtmlElement","Node"],"HtmlDocument":["Document","EventTarget","Node"],"HtmlElement":["Element","EventTarget","Node"],"HtmlEmbedElement":["Element","EventTarget","HtmlElement","Node"],"HtmlFieldSetElement":["Element","EventTarget","HtmlElement","Node"],"HtmlFontElement":["Element","EventTarget","HtmlElement","Node"],"HtmlFormControlsCollection":["HtmlCollection"],"HtmlFormElement":["Element","EventTarget","HtmlElement","Node"],"HtmlFrameElement":["Element","EventTarget","HtmlElement","Node"],"HtmlFrameSetElement":["Element","EventTarget","HtmlElement","Node"],"HtmlHeadElement":["Element","EventTarget","HtmlElement","Node"],"HtmlHeadingElement":["Element","EventTarget","HtmlElement","Node"],"HtmlHrElement":["Element","EventTarget","HtmlElement","Node"],"HtmlHtmlElement":["Element","EventTarget","HtmlElement","Node"],"HtmlIFrameElement":["Element","EventTarget","HtmlElement","Node"],"HtmlImageElement":["Element","EventTarget","HtmlElement","Node"],"HtmlInputElement":["Element","EventTarget","HtmlElement","Node"],"HtmlLabelElement":["Element","EventTarget","HtmlElement","Node"],"HtmlLegendElement":["Element","EventTarget","HtmlElement","Node"],"HtmlLiElement":["Element","EventTarget","HtmlElement","Node"],"HtmlLinkElement":["Element","EventTarget","HtmlElement","Node"],"HtmlMapElement":["Element","EventTarget","HtmlElement","Node"],"HtmlMediaElement":["Element","EventTarget","HtmlElement","Node"],"HtmlMenuElement":["Element","EventTarget","HtmlElement","Node"],"HtmlMenuItemElement":["Element","EventTarget","HtmlElement","Node"],"HtmlMetaElement":["Element","EventTarget","HtmlElement","Node"],"HtmlMeterElement":["Element","EventTarget","HtmlElement","Node"],"HtmlModElement":["Element","EventTarget","HtmlElement","Node"],"HtmlOListElement":["Element","EventTarget","HtmlElement","Node"],"HtmlObjectElement":["Element","EventTarget","HtmlElement","Node"],"HtmlOptGroupElement":["Element","EventTarget","HtmlElement","Node"],"HtmlOptionElement":["Element","EventTarget","HtmlElement","Node"],"HtmlOptionsCollection":["HtmlCollection"],"HtmlOutputElement":["Element","EventTarget","HtmlElement","Node"],"HtmlParagraphElement":["Element","EventTarget","HtmlElement","Node"],"HtmlParamElement":["Element","EventTarget","HtmlElement","Node"],"HtmlPictureElement":["Element","EventTarget","HtmlElement","Node"],"HtmlPreElement":["Element","EventTarget","HtmlElement","Node"],"HtmlProgressElement":["Element","EventTarget","HtmlElement","Node"],"HtmlQuoteElement":["Element","EventTarget","HtmlElement","Node"],"HtmlScriptElement":["Element","EventTarget","HtmlElement","Node"],"HtmlSelectElement":["Element","EventTarget","HtmlElement","Node"],"HtmlSlotElement":["Element","EventTarget","HtmlElement","Node"],"HtmlSourceElement":["Element","EventTarget","HtmlElement","Node"],"HtmlSpanElement":["Element","EventTarget","HtmlElement","Node"],"HtmlStyleElement":["Element","EventTarget","HtmlElement","Node"],"HtmlTableCaptionElement":["Element","EventTarget","HtmlElement","Node"],"HtmlTableCellElement":["Element","EventTarget","HtmlElement","Node"],"HtmlTableColElement":["Element","EventTarget","HtmlElement","Node"],"HtmlTableElement":["Element","EventTarget","HtmlElement","Node"],"HtmlTableRowElement":["Element","EventTarget","HtmlElement","Node"],"HtmlTableSectionElement":["Element","EventTarget","HtmlElement","Node"],"HtmlTemplateElement":["Element","EventTarget","HtmlElement","Node"],"HtmlTextAreaElement":["Element","EventTarget","HtmlElement","Node"],"HtmlTimeElement":["Element","EventTarget","HtmlElement","Node"],"HtmlTitleElement":["Element","EventTarget","HtmlElement","Node"],"HtmlTrackElement":["Element","EventTarget","HtmlElement","Node"],"HtmlUListElement":["Element","EventTarget","HtmlElement","Node"],"HtmlUnknownElement":["Element","EventTarget","HtmlElement","Node"],"HtmlVideoElement":["Element","EventTarget","HtmlElement","HtmlMediaElement","Node"],"HttpConnDict":[],"HttpConnInfo":[],"HttpConnectionElement":[],"IdbCursor":[],"IdbCursorDirection":[],"IdbCursorWithValue":["IdbCursor"],"IdbDatabase":["EventTarget"],"IdbFactory":[],"IdbFileHandle":["EventTarget"],"IdbFileMetadataParameters":[],"IdbFileRequest":["DomRequest","EventTarget"],"IdbIndex":[],"IdbIndexParameters":[],"IdbKeyRange":[],"IdbLocaleAwareKeyRange":["IdbKeyRange"],"IdbMutableFile":["EventTarget"],"IdbObjectStore":[],"IdbObjectStoreParameters":[],"IdbOpenDbOptions":[],"IdbOpenDbRequest":["EventTarget","IdbRequest"],"IdbRequest":["EventTarget"],"IdbRequestReadyState":[],"IdbTransaction":["EventTarget"],"IdbTransactionMode":[],"IdbVersionChangeEvent":["Event"],"IdbVersionChangeEventInit":[],"IdleDeadline":[],"IdleRequestOptions":[],"IirFilterNode":["AudioNode","EventTarget"],"IirFilterOptions":[],"ImageBitmap":[],"ImageBitmapOptions":[],"ImageBitmapRenderingContext":[],"ImageCapture":[],"ImageCaptureError":[],"ImageCaptureErrorEvent":["Event"],"ImageCaptureErrorEventInit":[],"ImageData":[],"ImageDecodeOptions":[],"ImageDecodeResult":[],"ImageDecoder":[],"ImageDecoderInit":[],"ImageEncodeOptions":[],"ImageOrientation":[],"ImageTrack":["EventTarget"],"ImageTrackList":[],"InputEvent":["Event","UiEvent"],"InputEventInit":[],"IntersectionObserver":[],"IntersectionObserverEntry":[],"IntersectionObserverEntryInit":[],"IntersectionObserverInit":[],"IntlUtils":[],"IsInputPendingOptions":[],"IterableKeyAndValueResult":[],"IterableKeyOrValueResult":[],"IterationCompositeOperation":[],"JsonWebKey":[],"KeyAlgorithm":[],"KeyEvent":[],"KeyIdsInitData":[],"KeyboardEvent":["Event","UiEvent"],"KeyboardEventInit":[],"KeyframeAnimationOptions":[],"KeyframeEffect":["AnimationEffect"],"KeyframeEffectOptions":[],"L10nElement":[],"L10nValue":[],"LatencyMode":[],"LifecycleCallbacks":[],"LineAlignSetting":[],"ListBoxObject":[],"LocalMediaStream":["EventTarget","MediaStream"],"LocaleInfo":[],"Location":[],"Lock":[],"LockInfo":[],"LockManager":[],"LockManagerSnapshot":[],"LockMode":[],"LockOptions":[],"MediaCapabilities":[],"MediaCapabilitiesInfo":[],"MediaConfiguration":[],"MediaDecodingConfiguration":[],"MediaDecodingType":[],"MediaDeviceInfo":[],"MediaDeviceKind":[],"MediaDevices":["EventTarget"],"MediaElementAudioSourceNode":["AudioNode","EventTarget"],"MediaElementAudioSourceOptions":[],"MediaEncodingConfiguration":[],"MediaEncodingType":[],"MediaEncryptedEvent":["Event"],"MediaError":[],"MediaImage":[],"MediaKeyError":["Event"],"MediaKeyMessageEvent":["Event"],"MediaKeyMessageEventInit":[],"MediaKeyMessageType":[],"MediaKeyNeededEventInit":[],"MediaKeySession":["EventTarget"],"MediaKeySessionType":[],"MediaKeyStatus":[],"MediaKeyStatusMap":[],"MediaKeySystemAccess":[],"MediaKeySystemConfiguration":[],"MediaKeySystemMediaCapability":[],"MediaKeySystemStatus":[],"MediaKeys":[],"MediaKeysPolicy":[],"MediaKeysRequirement":[],"MediaList":[],"MediaMetadata":[],"MediaMetadataInit":[],"MediaPositionState":[],"MediaQueryList":["EventTarget"],"MediaQueryListEvent":["Event"],"MediaQueryListEventInit":[],"MediaRecorder":["EventTarget"],"MediaRecorderErrorEvent":["Event"],"MediaRecorderErrorEventInit":[],"MediaRecorderOptions":[],"MediaSession":[],"MediaSessionAction":[],"MediaSessionActionDetails":[],"MediaSessionPlaybackState":[],"MediaSource":["EventTarget"],"MediaSourceEndOfStreamError":[],"MediaSourceEnum":[],"MediaSourceReadyState":[],"MediaStream":["EventTarget"],"MediaStreamAudioDestinationNode":["AudioNode","EventTarget"],"MediaStreamAudioSourceNode":["AudioNode","EventTarget"],"MediaStreamAudioSourceOptions":[],"MediaStreamConstraints":[],"MediaStreamError":[],"MediaStreamEvent":["Event"],"MediaStreamEventInit":[],"MediaStreamTrack":["EventTarget"],"MediaStreamTrackEvent":["Event"],"MediaStreamTrackEventInit":[],"MediaStreamTrackGenerator":["EventTarget","MediaStreamTrack"],"MediaStreamTrackGeneratorInit":[],"MediaStreamTrackProcessor":[],"MediaStreamTrackProcessorInit":[],"MediaStreamTrackState":[],"MediaTrackConstraintSet":[],"MediaTrackConstraints":[],"MediaTrackSettings":[],"MediaTrackSupportedConstraints":[],"MemoryAttribution":[],"MemoryAttributionContainer":[],"MemoryBreakdownEntry":[],"MemoryMeasurement":[],"MessageChannel":[],"MessageEvent":["Event"],"MessageEventInit":[],"MessagePort":["EventTarget"],"MidiAccess":["EventTarget"],"MidiConnectionEvent":["Event"],"MidiConnectionEventInit":[],"MidiInput":["EventTarget","MidiPort"],"MidiInputMap":[],"MidiMessageEvent":["Event"],"MidiMessageEventInit":[],"MidiOptions":[],"MidiOutput":["EventTarget","MidiPort"],"MidiOutputMap":[],"MidiPort":["EventTarget"],"MidiPortConnectionState":[],"MidiPortDeviceState":[],"MidiPortType":[],"MimeType":[],"MimeTypeArray":[],"MouseEvent":["Event","UiEvent"],"MouseEventInit":[],"MouseScrollEvent":["Event","MouseEvent","UiEvent"],"MozDebug":[],"MutationEvent":["Event"],"MutationObserver":[],"MutationObserverInit":[],"MutationObservingInfo":[],"MutationRecord":[],"NamedNodeMap":[],"NativeOsFileReadOptions":[],"NativeOsFileWriteAtomicOptions":[],"NavigationType":[],"Navigator":[],"NavigatorAutomationInformation":[],"NetworkCommandOptions":[],"NetworkInformation":["EventTarget"],"NetworkResultOptions":[],"Node":["EventTarget"],"NodeFilter":[],"NodeIterator":[],"NodeList":[],"Notification":["EventTarget"],"NotificationAction":[],"NotificationDirection":[],"NotificationEvent":["Event","ExtendableEvent"],"NotificationEventInit":[],"NotificationOptions":[],"NotificationPermission":[],"ObserverCallback":[],"OesElementIndexUint":[],"OesStandardDerivatives":[],"OesTextureFloat":[],"OesTextureFloatLinear":[],"OesTextureHalfFloat":[],"OesTextureHalfFloatLinear":[],"OesVertexArrayObject":[],"OfflineAudioCompletionEvent":["Event"],"OfflineAudioCompletionEventInit":[],"OfflineAudioContext":["BaseAudioContext","EventTarget"],"OfflineAudioContextOptions":[],"OfflineResourceList":["EventTarget"],"OffscreenCanvas":["EventTarget"],"OffscreenCanvasRenderingContext2d":[],"OpenFilePickerOptions":[],"OpenWindowEventDetail":[],"OptionalEffectTiming":[],"OrientationLockType":[],"OrientationType":[],"OscillatorNode":["AudioNode","AudioScheduledSourceNode","EventTarget"],"OscillatorOptions":[],"OscillatorType":[],"OverSampleType":[],"OvrMultiview2":[],"PageTransitionEvent":["Event"],"PageTransitionEventInit":[],"PaintRequest":[],"PaintRequestList":[],"PaintWorkletGlobalScope":["WorkletGlobalScope"],"PannerNode":["AudioNode","EventTarget"],"PannerOptions":[],"PanningModelType":[],"ParityType":[],"Path2d":[],"PaymentAddress":[],"PaymentComplete":[],"PaymentMethodChangeEvent":["Event","PaymentRequestUpdateEvent"],"PaymentMethodChangeEventInit":[],"PaymentRequestUpdateEvent":["Event"],"PaymentRequestUpdateEventInit":[],"PaymentResponse":[],"Pbkdf2Params":[],"PcImplIceConnectionState":[],"PcImplIceGatheringState":[],"PcImplSignalingState":[],"PcObserverStateType":[],"Performance":["EventTarget"],"PerformanceEntry":[],"PerformanceEntryEventInit":[],"PerformanceEntryFilterOptions":[],"PerformanceMark":["PerformanceEntry"],"PerformanceMeasure":["PerformanceEntry"],"PerformanceNavigation":[],"PerformanceNavigationTiming":["PerformanceEntry","PerformanceResourceTiming"],"PerformanceObserver":[],"PerformanceObserverEntryList":[],"PerformanceObserverInit":[],"PerformanceResourceTiming":["PerformanceEntry"],"PerformanceServerTiming":[],"PerformanceTiming":[],"PeriodicWave":[],"PeriodicWaveConstraints":[],"PeriodicWaveOptions":[],"PermissionDescriptor":[],"PermissionName":[],"PermissionState":[],"PermissionStatus":["EventTarget"],"Permissions":[],"PlaneLayout":[],"PlaybackDirection":[],"Plugin":[],"PluginArray":[],"PluginCrashedEventInit":[],"PointerEvent":["Event","MouseEvent","UiEvent"],"PointerEventInit":[],"PopStateEvent":["Event"],"PopStateEventInit":[],"PopupBlockedEvent":["Event"],"PopupBlockedEventInit":[],"Position":[],"PositionAlignSetting":[],"PositionError":[],"PositionOptions":[],"PremultiplyAlpha":[],"Presentation":[],"PresentationAvailability":["EventTarget"],"PresentationConnection":["EventTarget"],"PresentationConnectionAvailableEvent":["Event"],"PresentationConnectionAvailableEventInit":[],"PresentationConnectionBinaryType":[],"PresentationConnectionCloseEvent":["Event"],"PresentationConnectionCloseEventInit":[],"PresentationConnectionClosedReason":[],"PresentationConnectionList":["EventTarget"],"PresentationConnectionState":[],"PresentationReceiver":[],"PresentationRequest":["EventTarget"],"PresentationStyle":[],"ProcessingInstruction":["CharacterData","EventTarget","Node"],"ProfileTimelineLayerRect":[],"ProfileTimelineMarker":[],"ProfileTimelineMessagePortOperationType":[],"ProfileTimelineStackFrame":[],"ProfileTimelineWorkerOperationType":[],"ProgressEvent":["Event"],"ProgressEventInit":[],"PromiseNativeHandler":[],"PromiseRejectionEvent":["Event"],"PromiseRejectionEventInit":[],"PublicKeyCredential":["Credential"],"PublicKeyCredentialCreationOptions":[],"PublicKeyCredentialDescriptor":[],"PublicKeyCredentialEntity":[],"PublicKeyCredentialParameters":[],"PublicKeyCredentialRequestOptions":[],"PublicKeyCredentialRpEntity":[],"PublicKeyCredentialType":[],"PublicKeyCredentialUserEntity":[],"PushEncryptionKeyName":[],"PushEvent":["Event","ExtendableEvent"],"PushEventInit":[],"PushManager":[],"PushMessageData":[],"PushPermissionState":[],"PushSubscription":[],"PushSubscriptionInit":[],"PushSubscriptionJson":[],"PushSubscriptionKeys":[],"PushSubscriptionOptions":[],"PushSubscriptionOptionsInit":[],"QueryOptions":[],"QueuingStrategy":[],"QueuingStrategyInit":[],"RadioNodeList":["NodeList"],"Range":[],"RcwnPerfStats":[],"RcwnStatus":[],"ReadableByteStreamController":[],"ReadableStream":[],"ReadableStreamByobReader":[],"ReadableStreamByobRequest":[],"ReadableStreamDefaultController":[],"ReadableStreamDefaultReader":[],"ReadableStreamGetReaderOptions":[],"ReadableStreamIteratorOptions":[],"ReadableStreamReadResult":[],"ReadableStreamReaderMode":[],"ReadableStreamType":[],"ReadableWritablePair":[],"RecordingState":[],"ReferrerPolicy":[],"RegisterRequest":[],"RegisterResponse":[],"RegisteredKey":[],"RegistrationOptions":[],"Request":[],"RequestCache":[],"RequestCredentials":[],"RequestDestination":[],"RequestDeviceOptions":[],"RequestInit":[],"RequestMediaKeySystemAccessNotification":[],"RequestMode":[],"RequestRedirect":[],"ResizeObserver":[],"ResizeObserverBoxOptions":[],"ResizeObserverEntry":[],"ResizeObserverOptions":[],"ResizeObserverSize":[],"ResizeQuality":[],"Response":[],"ResponseInit":[],"ResponseType":[],"RsaHashedImportParams":[],"RsaOaepParams":[],"RsaOtherPrimesInfo":[],"RsaPssParams":[],"RtcAnswerOptions":[],"RtcBundlePolicy":[],"RtcCertificate":[],"RtcCertificateExpiration":[],"RtcCodecStats":[],"RtcConfiguration":[],"RtcDataChannel":["EventTarget"],"RtcDataChannelEvent":["Event"],"RtcDataChannelEventInit":[],"RtcDataChannelInit":[],"RtcDataChannelState":[],"RtcDataChannelType":[],"RtcDegradationPreference":[],"RtcFecParameters":[],"RtcIceCandidate":[],"RtcIceCandidateInit":[],"RtcIceCandidatePairStats":[],"RtcIceCandidateStats":[],"RtcIceComponentStats":[],"RtcIceConnectionState":[],"RtcIceCredentialType":[],"RtcIceGatheringState":[],"RtcIceServer":[],"RtcIceTransportPolicy":[],"RtcIdentityAssertion":[],"RtcIdentityAssertionResult":[],"RtcIdentityProvider":[],"RtcIdentityProviderDetails":[],"RtcIdentityProviderOptions":[],"RtcIdentityProviderRegistrar":[],"RtcIdentityValidationResult":[],"RtcInboundRtpStreamStats":[],"RtcMediaStreamStats":[],"RtcMediaStreamTrackStats":[],"RtcOfferAnswerOptions":[],"RtcOfferOptions":[],"RtcOutboundRtpStreamStats":[],"RtcPeerConnection":["EventTarget"],"RtcPeerConnectionIceEvent":["Event"],"RtcPeerConnectionIceEventInit":[],"RtcPeerConnectionState":[],"RtcPriorityType":[],"RtcRtcpParameters":[],"RtcRtpCapabilities":[],"RtcRtpCodecCapability":[],"RtcRtpCodecParameters":[],"RtcRtpContributingSource":[],"RtcRtpEncodingParameters":[],"RtcRtpHeaderExtensionCapability":[],"RtcRtpHeaderExtensionParameters":[],"RtcRtpParameters":[],"RtcRtpReceiver":[],"RtcRtpSender":[],"RtcRtpSourceEntry":[],"RtcRtpSourceEntryType":[],"RtcRtpSynchronizationSource":[],"RtcRtpTransceiver":[],"RtcRtpTransceiverDirection":[],"RtcRtpTransceiverInit":[],"RtcRtxParameters":[],"RtcSdpType":[],"RtcSessionDescription":[],"RtcSessionDescriptionInit":[],"RtcSignalingState":[],"RtcStats":[],"RtcStatsIceCandidatePairState":[],"RtcStatsIceCandidateType":[],"RtcStatsReport":[],"RtcStatsReportInternal":[],"RtcStatsType":[],"RtcTrackEvent":["Event"],"RtcTrackEventInit":[],"RtcTransportStats":[],"RtcdtmfSender":["EventTarget"],"RtcdtmfToneChangeEvent":["Event"],"RtcdtmfToneChangeEventInit":[],"RtcrtpContributingSourceStats":[],"RtcrtpStreamStats":[],"SaveFilePickerOptions":[],"Scheduler":[],"SchedulerPostTaskOptions":[],"Scheduling":[],"Screen":["EventTarget"],"ScreenColorGamut":[],"ScreenLuminance":[],"ScreenOrientation":["EventTarget"],"ScriptProcessorNode":["AudioNode","EventTarget"],"ScrollAreaEvent":["Event","UiEvent"],"ScrollBehavior":[],"ScrollBoxObject":[],"ScrollIntoViewOptions":[],"ScrollLogicalPosition":[],"ScrollOptions":[],"ScrollRestoration":[],"ScrollSetting":[],"ScrollState":[],"ScrollToOptions":[],"ScrollViewChangeEventInit":[],"SecurityPolicyViolationEvent":["Event"],"SecurityPolicyViolationEventDisposition":[],"SecurityPolicyViolationEventInit":[],"Selection":[],"SelectionMode":[],"Serial":["EventTarget"],"SerialInputSignals":[],"SerialOptions":[],"SerialOutputSignals":[],"SerialPort":["EventTarget"],"SerialPortFilter":[],"SerialPortInfo":[],"SerialPortRequestOptions":[],"ServerSocketOptions":[],"ServiceWorker":["EventTarget"],"ServiceWorkerContainer":["EventTarget"],"ServiceWorkerGlobalScope":["EventTarget","WorkerGlobalScope"],"ServiceWorkerRegistration":["EventTarget"],"ServiceWorkerState":[],"ServiceWorkerUpdateViaCache":[],"ShadowRoot":["DocumentFragment","EventTarget","Node"],"ShadowRootInit":[],"ShadowRootMode":[],"ShareData":[],"SharedWorker":["EventTarget"],"SharedWorkerGlobalScope":["EventTarget","WorkerGlobalScope"],"SignResponse":[],"SocketElement":[],"SocketOptions":[],"SocketReadyState":[],"SocketsDict":[],"SourceBuffer":["EventTarget"],"SourceBufferAppendMode":[],"SourceBufferList":["EventTarget"],"SpeechGrammar":[],"SpeechGrammarList":[],"SpeechRecognition":["EventTarget"],"SpeechRecognitionAlternative":[],"SpeechRecognitionError":["Event"],"SpeechRecognitionErrorCode":[],"SpeechRecognitionErrorInit":[],"SpeechRecognitionEvent":["Event"],"SpeechRecognitionEventInit":[],"SpeechRecognitionResult":[],"SpeechRecognitionResultList":[],"SpeechSynthesis":["EventTarget"],"SpeechSynthesisErrorCode":[],"SpeechSynthesisErrorEvent":["Event","SpeechSynthesisEvent"],"SpeechSynthesisErrorEventInit":[],"SpeechSynthesisEvent":["Event"],"SpeechSynthesisEventInit":[],"SpeechSynthesisUtterance":["EventTarget"],"SpeechSynthesisVoice":[],"StereoPannerNode":["AudioNode","EventTarget"],"StereoPannerOptions":[],"Storage":[],"StorageEstimate":[],"StorageEvent":["Event"],"StorageEventInit":[],"StorageManager":[],"StorageType":[],"StreamPipeOptions":[],"StyleRuleChangeEventInit":[],"StyleSheet":[],"StyleSheetApplicableStateChangeEventInit":[],"StyleSheetChangeEventInit":[],"StyleSheetList":[],"SubmitEvent":["Event"],"SubmitEventInit":[],"SubtleCrypto":[],"SupportedType":[],"SvcOutputMetadata":[],"SvgAngle":[],"SvgAnimateElement":["Element","EventTarget","Node","SvgAnimationElement","SvgElement"],"SvgAnimateMotionElement":["Element","EventTarget","Node","SvgAnimationElement","SvgElement"],"SvgAnimateTransformElement":["Element","EventTarget","Node","SvgAnimationElement","SvgElement"],"SvgAnimatedAngle":[],"SvgAnimatedBoolean":[],"SvgAnimatedEnumeration":[],"SvgAnimatedInteger":[],"SvgAnimatedLength":[],"SvgAnimatedLengthList":[],"SvgAnimatedNumber":[],"SvgAnimatedNumberList":[],"SvgAnimatedPreserveAspectRatio":[],"SvgAnimatedRect":[],"SvgAnimatedString":[],"SvgAnimatedTransformList":[],"SvgAnimationElement":["Element","EventTarget","Node","SvgElement"],"SvgBoundingBoxOptions":[],"SvgCircleElement":["Element","EventTarget","Node","SvgElement","SvgGeometryElement","SvgGraphicsElement"],"SvgClipPathElement":["Element","EventTarget","Node","SvgElement"],"SvgComponentTransferFunctionElement":["Element","EventTarget","Node","SvgElement"],"SvgDefsElement":["Element","EventTarget","Node","SvgElement","SvgGraphicsElement"],"SvgDescElement":["Element","EventTarget","Node","SvgElement"],"SvgElement":["Element","EventTarget","Node"],"SvgEllipseElement":["Element","EventTarget","Node","SvgElement","SvgGeometryElement","SvgGraphicsElement"],"SvgFilterElement":["Element","EventTarget","Node","SvgElement"],"SvgForeignObjectElement":["Element","EventTarget","Node","SvgElement","SvgGraphicsElement"],"SvgGeometryElement":["Element","EventTarget","Node","SvgElement","SvgGraphicsElement"],"SvgGradientElement":["Element","EventTarget","Node","SvgElement"],"SvgGraphicsElement":["Element","EventTarget","Node","SvgElement"],"SvgImageElement":["Element","EventTarget","Node","SvgElement","SvgGraphicsElement"],"SvgLength":[],"SvgLengthList":[],"SvgLineElement":["Element","EventTarget","Node","SvgElement","SvgGeometryElement","SvgGraphicsElement"],"SvgLinearGradientElement":["Element","EventTarget","Node","SvgElement","SvgGradientElement"],"SvgMarkerElement":["Element","EventTarget","Node","SvgElement"],"SvgMaskElement":["Element","EventTarget","Node","SvgElement"],"SvgMatrix":[],"SvgMetadataElement":["Element","EventTarget","Node","SvgElement"],"SvgNumber":[],"SvgNumberList":[],"SvgPathElement":["Element","EventTarget","Node","SvgElement","SvgGeometryElement","SvgGraphicsElement"],"SvgPathSeg":[],"SvgPathSegArcAbs":["SvgPathSeg"],"SvgPathSegArcRel":["SvgPathSeg"],"SvgPathSegClosePath":["SvgPathSeg"],"SvgPathSegCurvetoCubicAbs":["SvgPathSeg"],"SvgPathSegCurvetoCubicRel":["SvgPathSeg"],"SvgPathSegCurvetoCubicSmoothAbs":["SvgPathSeg"],"SvgPathSegCurvetoCubicSmoothRel":["SvgPathSeg"],"SvgPathSegCurvetoQuadraticAbs":["SvgPathSeg"],"SvgPathSegCurvetoQuadraticRel":["SvgPathSeg"],"SvgPathSegCurvetoQuadraticSmoothAbs":["SvgPathSeg"],"SvgPathSegCurvetoQuadraticSmoothRel":["SvgPathSeg"],"SvgPathSegLinetoAbs":["SvgPathSeg"],"SvgPathSegLinetoHorizontalAbs":["SvgPathSeg"],"SvgPathSegLinetoHorizontalRel":["SvgPathSeg"],"SvgPathSegLinetoRel":["SvgPathSeg"],"SvgPathSegLinetoVerticalAbs":["SvgPathSeg"],"SvgPathSegLinetoVerticalRel":["SvgPathSeg"],"SvgPathSegList":[],"SvgPathSegMovetoAbs":["SvgPathSeg"],"SvgPathSegMovetoRel":["SvgPathSeg"],"SvgPatternElement":["Element","EventTarget","Node","SvgElement"],"SvgPoint":[],"SvgPointList":[],"SvgPolygonElement":["Element","EventTarget","Node","SvgElement","SvgGeometryElement","SvgGraphicsElement"],"SvgPolylineElement":["Element","EventTarget","Node","SvgElement","SvgGeometryElement","SvgGraphicsElement"],"SvgPreserveAspectRatio":[],"SvgRadialGradientElement":["Element","EventTarget","Node","SvgElement","SvgGradientElement"],"SvgRect":[],"SvgRectElement":["Element","EventTarget","Node","SvgElement","SvgGeometryElement","SvgGraphicsElement"],"SvgScriptElement":["Element","EventTarget","Node","SvgElement"],"SvgSetElement":["Element","EventTarget","Node","SvgAnimationElement","SvgElement"],"SvgStopElement":["Element","EventTarget","Node","SvgElement"],"SvgStringList":[],"SvgStyleElement":["Element","EventTarget","Node","SvgElement"],"SvgSwitchElement":["Element","EventTarget","Node","SvgElement","SvgGraphicsElement"],"SvgSymbolElement":["Element","EventTarget","Node","SvgElement"],"SvgTextContentElement":["Element","EventTarget","Node","SvgElement","SvgGraphicsElement"],"SvgTextElement":["Element","EventTarget","Node","SvgElement","SvgGraphicsElement","SvgTextContentElement","SvgTextPositioningElement"],"SvgTextPathElement":["Element","EventTarget","Node","SvgElement","SvgGraphicsElement","SvgTextContentElement"],"SvgTextPositioningElement":["Element","EventTarget","Node","SvgElement","SvgGraphicsElement","SvgTextContentElement"],"SvgTitleElement":["Element","EventTarget","Node","SvgElement"],"SvgTransform":[],"SvgTransformList":[],"SvgUnitTypes":[],"SvgUseElement":["Element","EventTarget","Node","SvgElement","SvgGraphicsElement"],"SvgViewElement":["Element","EventTarget","Node","SvgElement"],"SvgZoomAndPan":[],"SvgaElement":["Element","EventTarget","Node","SvgElement","SvgGraphicsElement"],"SvgfeBlendElement":["Element","EventTarget","Node","SvgElement"],"SvgfeColorMatrixElement":["Element","EventTarget","Node","SvgElement"],"SvgfeComponentTransferElement":["Element","EventTarget","Node","SvgElement"],"SvgfeCompositeElement":["Element","EventTarget","Node","SvgElement"],"SvgfeConvolveMatrixElement":["Element","EventTarget","Node","SvgElement"],"SvgfeDiffuseLightingElement":["Element","EventTarget","Node","SvgElement"],"SvgfeDisplacementMapElement":["Element","EventTarget","Node","SvgElement"],"SvgfeDistantLightElement":["Element","EventTarget","Node","SvgElement"],"SvgfeDropShadowElement":["Element","EventTarget","Node","SvgElement"],"SvgfeFloodElement":["Element","EventTarget","Node","SvgElement"],"SvgfeFuncAElement":["Element","EventTarget","Node","SvgComponentTransferFunctionElement","SvgElement"],"SvgfeFuncBElement":["Element","EventTarget","Node","SvgComponentTransferFunctionElement","SvgElement"],"SvgfeFuncGElement":["Element","EventTarget","Node","SvgComponentTransferFunctionElement","SvgElement"],"SvgfeFuncRElement":["Element","EventTarget","Node","SvgComponentTransferFunctionElement","SvgElement"],"SvgfeGaussianBlurElement":["Element","EventTarget","Node","SvgElement"],"SvgfeImageElement":["Element","EventTarget","Node","SvgElement"],"SvgfeMergeElement":["Element","EventTarget","Node","SvgElement"],"SvgfeMergeNodeElement":["Element","EventTarget","Node","SvgElement"],"SvgfeMorphologyElement":["Element","EventTarget","Node","SvgElement"],"SvgfeOffsetElement":["Element","EventTarget","Node","SvgElement"],"SvgfePointLightElement":["Element","EventTarget","Node","SvgElement"],"SvgfeSpecularLightingElement":["Element","EventTarget","Node","SvgElement"],"SvgfeSpotLightElement":["Element","EventTarget","Node","SvgElement"],"SvgfeTileElement":["Element","EventTarget","Node","SvgElement"],"SvgfeTurbulenceElement":["Element","EventTarget","Node","SvgElement"],"SvggElement":["Element","EventTarget","Node","SvgElement","SvgGraphicsElement"],"SvgmPathElement":["Element","EventTarget","Node","SvgElement"],"SvgsvgElement":["Element","EventTarget","Node","SvgElement","SvgGraphicsElement"],"SvgtSpanElement":["Element","EventTarget","Node","SvgElement","SvgGraphicsElement","SvgTextContentElement","SvgTextPositioningElement"],"TaskController":["AbortController"],"TaskControllerInit":[],"TaskPriority":[],"TaskPriorityChangeEvent":["Event"],"TaskPriorityChangeEventInit":[],"TaskSignal":["AbortSignal","EventTarget"],"TaskSignalAnyInit":[],"TcpReadyState":[],"TcpServerSocket":["EventTarget"],"TcpServerSocketEvent":["Event"],"TcpServerSocketEventInit":[],"TcpSocket":["EventTarget"],"TcpSocketBinaryType":[],"TcpSocketErrorEvent":["Event"],"TcpSocketErrorEventInit":[],"TcpSocketEvent":["Event"],"TcpSocketEventInit":[],"Text":["CharacterData","EventTarget","Node"],"TextDecodeOptions":[],"TextDecoder":[],"TextDecoderOptions":[],"TextEncoder":[],"TextMetrics":[],"TextTrack":["EventTarget"],"TextTrackCue":["EventTarget"],"TextTrackCueList":[],"TextTrackKind":[],"TextTrackList":["EventTarget"],"TextTrackMode":[],"TimeEvent":["Event"],"TimeRanges":[],"Touch":[],"TouchEvent":["Event","UiEvent"],"TouchEventInit":[],"TouchInit":[],"TouchList":[],"TrackEvent":["Event"],"TrackEventInit":[],"TransformStream":[],"TransformStreamDefaultController":[],"Transformer":[],"TransitionEvent":["Event"],"TransitionEventInit":[],"Transport":[],"TreeBoxObject":[],"TreeCellInfo":[],"TreeView":[],"TreeWalker":[],"U2f":[],"U2fClientData":[],"UdpMessageEventInit":[],"UdpOptions":[],"UiEvent":["Event"],"UiEventInit":[],"UnderlyingSink":[],"UnderlyingSource":[],"Url":[],"UrlSearchParams":[],"Usb":["EventTarget"],"UsbAlternateInterface":[],"UsbConfiguration":[],"UsbConnectionEvent":["Event"],"UsbConnectionEventInit":[],"UsbControlTransferParameters":[],"UsbDevice":[],"UsbDeviceFilter":[],"UsbDeviceRequestOptions":[],"UsbDirection":[],"UsbEndpoint":[],"UsbEndpointType":[],"UsbInTransferResult":[],"UsbInterface":[],"UsbIsochronousInTransferPacket":[],"UsbIsochronousInTransferResult":[],"UsbIsochronousOutTransferPacket":[],"UsbIsochronousOutTransferResult":[],"UsbOutTransferResult":[],"UsbPermissionDescriptor":[],"UsbPermissionResult":["EventTarget","PermissionStatus"],"UsbPermissionStorage":[],"UsbRecipient":[],"UsbRequestType":[],"UsbTransferStatus":[],"UserActivation":[],"UserProximityEvent":["Event"],"UserProximityEventInit":[],"UserVerificationRequirement":[],"ValidityState":[],"ValueEvent":["Event"],"ValueEventInit":[],"VideoColorPrimaries":[],"VideoColorSpace":[],"VideoColorSpaceInit":[],"VideoConfiguration":[],"VideoDecoder":[],"VideoDecoderConfig":[],"VideoDecoderInit":[],"VideoDecoderSupport":[],"VideoEncoder":[],"VideoEncoderConfig":[],"VideoEncoderEncodeOptions":[],"VideoEncoderInit":[],"VideoEncoderSupport":[],"VideoFacingModeEnum":[],"VideoFrame":[],"VideoFrameBufferInit":[],"VideoFrameCopyToOptions":[],"VideoFrameInit":[],"VideoMatrixCoefficients":[],"VideoPixelFormat":[],"VideoPlaybackQuality":[],"VideoStreamTrack":["EventTarget","MediaStreamTrack"],"VideoTrack":[],"VideoTrackList":["EventTarget"],"VideoTransferCharacteristics":[],"ViewTransition":[],"VisibilityState":[],"VoidCallback":[],"VrDisplay":["EventTarget"],"VrDisplayCapabilities":[],"VrEye":[],"VrEyeParameters":[],"VrFieldOfView":[],"VrFrameData":[],"VrLayer":[],"VrMockController":[],"VrMockDisplay":[],"VrPose":[],"VrServiceTest":[],"VrStageParameters":[],"VrSubmitFrameResult":[],"VttCue":["EventTarget","TextTrackCue"],"VttRegion":[],"WakeLock":[],"WakeLockSentinel":["EventTarget"],"WakeLockType":[],"WatchAdvertisementsOptions":[],"WaveShaperNode":["AudioNode","EventTarget"],"WaveShaperOptions":[],"WebGl2RenderingContext":[],"WebGlActiveInfo":[],"WebGlBuffer":[],"WebGlContextAttributes":[],"WebGlContextEvent":["Event"],"WebGlContextEventInit":[],"WebGlFramebuffer":[],"WebGlPowerPreference":[],"WebGlProgram":[],"WebGlQuery":[],"WebGlRenderbuffer":[],"WebGlRenderingContext":[],"WebGlSampler":[],"WebGlShader":[],"WebGlShaderPrecisionFormat":[],"WebGlSync":[],"WebGlTexture":[],"WebGlTransformFeedback":[],"WebGlUniformLocation":[],"WebGlVertexArrayObject":[],"WebKitCssMatrix":["DomMatrix","DomMatrixReadOnly"],"WebSocket":["EventTarget"],"WebSocketDict":[],"WebSocketElement":[],"WebTransport":[],"WebTransportBidirectionalStream":[],"WebTransportCloseInfo":[],"WebTransportCongestionControl":[],"WebTransportDatagramDuplexStream":[],"WebTransportDatagramStats":[],"WebTransportError":["DomException"],"WebTransportErrorOptions":[],"WebTransportErrorSource":[],"WebTransportHash":[],"WebTransportOptions":[],"WebTransportReceiveStream":["ReadableStream"],"WebTransportReceiveStreamStats":[],"WebTransportReliabilityMode":[],"WebTransportSendStream":["WritableStream"],"WebTransportSendStreamOptions":[],"WebTransportSendStreamStats":[],"WebTransportStats":[],"WebglColorBufferFloat":[],"WebglCompressedTextureAstc":[],"WebglCompressedTextureAtc":[],"WebglCompressedTextureEtc":[],"WebglCompressedTextureEtc1":[],"WebglCompressedTexturePvrtc":[],"WebglCompressedTextureS3tc":[],"WebglCompressedTextureS3tcSrgb":[],"WebglDebugRendererInfo":[],"WebglDebugShaders":[],"WebglDepthTexture":[],"WebglDrawBuffers":[],"WebglLoseContext":[],"WebglMultiDraw":[],"WellKnownDirectory":[],"WgslLanguageFeatures":[],"WheelEvent":["Event","MouseEvent","UiEvent"],"WheelEventInit":[],"WidevineCdmManifest":[],"Window":["EventTarget"],"WindowClient":["Client"],"Worker":["EventTarget"],"WorkerDebuggerGlobalScope":["EventTarget"],"WorkerGlobalScope":["EventTarget"],"WorkerLocation":[],"WorkerNavigator":[],"WorkerOptions":[],"WorkerType":[],"Worklet":[],"WorkletGlobalScope":[],"WorkletOptions":[],"WritableStream":[],"WritableStreamDefaultController":[],"WritableStreamDefaultWriter":[],"WriteCommandType":[],"WriteParams":[],"XPathExpression":[],"XPathNsResolver":[],"XPathResult":[],"XmlDocument":["Document","EventTarget","Node"],"XmlHttpRequest":["EventTarget","XmlHttpRequestEventTarget"],"XmlHttpRequestEventTarget":["EventTarget"],"XmlHttpRequestResponseType":[],"XmlHttpRequestUpload":["EventTarget","XmlHttpRequestEventTarget"],"XmlSerializer":[],"XrBoundedReferenceSpace":["EventTarget","XrReferenceSpace","XrSpace"],"XrEye":[],"XrFrame":[],"XrHand":[],"XrHandJoint":[],"XrHandedness":[],"XrInputSource":[],"XrInputSourceArray":[],"XrInputSourceEvent":["Event"],"XrInputSourceEventInit":[],"XrInputSourcesChangeEvent":["Event"],"XrInputSourcesChangeEventInit":[],"XrJointPose":["XrPose"],"XrJointSpace":["EventTarget","XrSpace"],"XrLayer":["EventTarget"],"XrPermissionDescriptor":[],"XrPermissionStatus":["EventTarget","PermissionStatus"],"XrPose":[],"XrReferenceSpace":["EventTarget","XrSpace"],"XrReferenceSpaceEvent":["Event"],"XrReferenceSpaceEventInit":[],"XrReferenceSpaceType":[],"XrRenderState":[],"XrRenderStateInit":[],"XrRigidTransform":[],"XrSession":["EventTarget"],"XrSessionEvent":["Event"],"XrSessionEventInit":[],"XrSessionInit":[],"XrSessionMode":[],"XrSessionSupportedPermissionDescriptor":[],"XrSpace":["EventTarget"],"XrSystem":["EventTarget"],"XrTargetRayMode":[],"XrView":[],"XrViewerPose":["XrPose"],"XrViewport":[],"XrVisibilityState":[],"XrWebGlLayer":["EventTarget","XrLayer"],"XrWebGlLayerInit":[],"XsltProcessor":[],"console":[],"css":[],"gpu_buffer_usage":[],"gpu_color_write":[],"gpu_map_mode":[],"gpu_shader_stage":[],"gpu_texture_usage":[]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/web-sys-0.3.68/Cargo.toml","metadata":{"docs":{"rs":{"all-features":true,"rustdoc-args":["--cfg=web_sys_unstable_apis"]}}},"publish":null,"authors":["The wasm-bindgen Developers"],"categories":[],"keywords":[],"readme":"./README.md","repository":"https://github.com/rustwasm/wasm-bindgen/tree/master/crates/web-sys","homepage":"https://rustwasm.github.io/wasm-bindgen/web-sys/index.html","documentation":"https://rustwasm.github.io/wasm-bindgen/api/web_sys/","edition":"2018","links":null,"default_run":null,"rust_version":"1.57"},{"name":"winapi","version":"0.3.9","id":"winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT/Apache-2.0","license_file":null,"description":"Raw FFI bindings for all of Windows API.","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"winapi-i686-pc-windows-gnu","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"i686-pc-windows-gnu","registry":null},{"name":"winapi-x86_64-pc-windows-gnu","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.4","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"x86_64-pc-windows-gnu","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"winapi","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winapi-0.3.9/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winapi-0.3.9/build.rs","edition":"2015","doc":false,"doctest":false,"test":false}],"features":{"accctrl":[],"aclapi":[],"activation":[],"adhoc":[],"appmgmt":[],"audioclient":[],"audiosessiontypes":[],"avrt":[],"basetsd":[],"bcrypt":[],"bits":[],"bits10_1":[],"bits1_5":[],"bits2_0":[],"bits2_5":[],"bits3_0":[],"bits4_0":[],"bits5_0":[],"bitscfg":[],"bitsmsg":[],"bluetoothapis":[],"bluetoothleapis":[],"bthdef":[],"bthioctl":[],"bthledef":[],"bthsdpdef":[],"bugcodes":[],"cderr":[],"cfg":[],"cfgmgr32":[],"cguid":[],"combaseapi":[],"coml2api":[],"commapi":[],"commctrl":[],"commdlg":[],"commoncontrols":[],"consoleapi":[],"corecrt":[],"corsym":[],"d2d1":[],"d2d1_1":[],"d2d1_2":[],"d2d1_3":[],"d2d1effectauthor":[],"d2d1effects":[],"d2d1effects_1":[],"d2d1effects_2":[],"d2d1svg":[],"d2dbasetypes":[],"d3d":[],"d3d10":[],"d3d10_1":[],"d3d10_1shader":[],"d3d10effect":[],"d3d10misc":[],"d3d10sdklayers":[],"d3d10shader":[],"d3d11":[],"d3d11_1":[],"d3d11_2":[],"d3d11_3":[],"d3d11_4":[],"d3d11on12":[],"d3d11sdklayers":[],"d3d11shader":[],"d3d11tokenizedprogramformat":[],"d3d12":[],"d3d12sdklayers":[],"d3d12shader":[],"d3d9":[],"d3d9caps":[],"d3d9types":[],"d3dcommon":[],"d3dcompiler":[],"d3dcsx":[],"d3dkmdt":[],"d3dkmthk":[],"d3dukmdt":[],"d3dx10core":[],"d3dx10math":[],"d3dx10mesh":[],"datetimeapi":[],"davclnt":[],"dbghelp":[],"dbt":[],"dcommon":[],"dcomp":[],"dcompanimation":[],"dcomptypes":[],"dde":[],"ddraw":[],"ddrawi":[],"ddrawint":[],"debug":["impl-debug"],"debugapi":[],"devguid":[],"devicetopology":[],"devpkey":[],"devpropdef":[],"dinput":[],"dinputd":[],"dispex":[],"dmksctl":[],"dmusicc":[],"docobj":[],"documenttarget":[],"dot1x":[],"dpa_dsa":[],"dpapi":[],"dsgetdc":[],"dsound":[],"dsrole":[],"dvp":[],"dwmapi":[],"dwrite":[],"dwrite_1":[],"dwrite_2":[],"dwrite_3":[],"dxdiag":[],"dxfile":[],"dxgi":[],"dxgi1_2":[],"dxgi1_3":[],"dxgi1_4":[],"dxgi1_5":[],"dxgi1_6":[],"dxgidebug":[],"dxgiformat":[],"dxgitype":[],"dxva2api":[],"dxvahd":[],"eaptypes":[],"enclaveapi":[],"endpointvolume":[],"errhandlingapi":[],"everything":[],"evntcons":[],"evntprov":[],"evntrace":[],"excpt":[],"exdisp":[],"fibersapi":[],"fileapi":[],"functiondiscoverykeys_devpkey":[],"gl-gl":[],"guiddef":[],"handleapi":[],"heapapi":[],"hidclass":[],"hidpi":[],"hidsdi":[],"hidusage":[],"highlevelmonitorconfigurationapi":[],"hstring":[],"http":[],"ifdef":[],"ifmib":[],"imm":[],"impl-debug":[],"impl-default":[],"in6addr":[],"inaddr":[],"inspectable":[],"interlockedapi":[],"intsafe":[],"ioapiset":[],"ipexport":[],"iphlpapi":[],"ipifcons":[],"ipmib":[],"iprtrmib":[],"iptypes":[],"jobapi":[],"jobapi2":[],"knownfolders":[],"ks":[],"ksmedia":[],"ktmtypes":[],"ktmw32":[],"l2cmn":[],"libloaderapi":[],"limits":[],"lmaccess":[],"lmalert":[],"lmapibuf":[],"lmat":[],"lmcons":[],"lmdfs":[],"lmerrlog":[],"lmjoin":[],"lmmsg":[],"lmremutl":[],"lmrepl":[],"lmserver":[],"lmshare":[],"lmstats":[],"lmsvc":[],"lmuse":[],"lmwksta":[],"lowlevelmonitorconfigurationapi":[],"lsalookup":[],"memoryapi":[],"minschannel":[],"minwinbase":[],"minwindef":[],"mmdeviceapi":[],"mmeapi":[],"mmreg":[],"mmsystem":[],"mprapidef":[],"msaatext":[],"mscat":[],"mschapp":[],"mssip":[],"mstcpip":[],"mswsock":[],"mswsockdef":[],"namedpipeapi":[],"namespaceapi":[],"nb30":[],"ncrypt":[],"netioapi":[],"nldef":[],"ntddndis":[],"ntddscsi":[],"ntddser":[],"ntdef":[],"ntlsa":[],"ntsecapi":[],"ntstatus":[],"oaidl":[],"objbase":[],"objidl":[],"objidlbase":[],"ocidl":[],"ole2":[],"oleauto":[],"olectl":[],"oleidl":[],"opmapi":[],"pdh":[],"perflib":[],"physicalmonitorenumerationapi":[],"playsoundapi":[],"portabledevice":[],"portabledeviceapi":[],"portabledevicetypes":[],"powerbase":[],"powersetting":[],"powrprof":[],"processenv":[],"processsnapshot":[],"processthreadsapi":[],"processtopologyapi":[],"profileapi":[],"propidl":[],"propkey":[],"propkeydef":[],"propsys":[],"prsht":[],"psapi":[],"qos":[],"realtimeapiset":[],"reason":[],"restartmanager":[],"restrictederrorinfo":[],"rmxfguid":[],"roapi":[],"robuffer":[],"roerrorapi":[],"rpc":[],"rpcdce":[],"rpcndr":[],"rtinfo":[],"sapi":[],"sapi51":[],"sapi53":[],"sapiddk":[],"sapiddk51":[],"schannel":[],"sddl":[],"securityappcontainer":[],"securitybaseapi":[],"servprov":[],"setupapi":[],"shellapi":[],"shellscalingapi":[],"shlobj":[],"shobjidl":[],"shobjidl_core":[],"shtypes":[],"softpub":[],"spapidef":[],"spellcheck":[],"sporder":[],"sql":[],"sqlext":[],"sqltypes":[],"sqlucode":[],"sspi":[],"std":[],"stralign":[],"stringapiset":[],"strmif":[],"subauth":[],"synchapi":[],"sysinfoapi":[],"systemtopologyapi":[],"taskschd":[],"tcpestats":[],"tcpmib":[],"textstor":[],"threadpoolapiset":[],"threadpoollegacyapiset":[],"timeapi":[],"timezoneapi":[],"tlhelp32":[],"transportsettingcommon":[],"tvout":[],"udpmib":[],"unknwnbase":[],"urlhist":[],"urlmon":[],"usb":[],"usbioctl":[],"usbiodef":[],"usbscan":[],"usbspec":[],"userenv":[],"usp10":[],"utilapiset":[],"uxtheme":[],"vadefs":[],"vcruntime":[],"vsbackup":[],"vss":[],"vsserror":[],"vswriter":[],"wbemads":[],"wbemcli":[],"wbemdisp":[],"wbemprov":[],"wbemtran":[],"wct":[],"werapi":[],"winbase":[],"wincodec":[],"wincodecsdk":[],"wincon":[],"wincontypes":[],"wincred":[],"wincrypt":[],"windef":[],"windot11":[],"windowsceip":[],"windowsx":[],"winefs":[],"winerror":[],"winevt":[],"wingdi":[],"winhttp":[],"wininet":[],"winineti":[],"winioctl":[],"winnetwk":[],"winnls":[],"winnt":[],"winreg":[],"winsafer":[],"winscard":[],"winsmcrd":[],"winsock2":[],"winspool":[],"winstring":[],"winsvc":[],"wintrust":[],"winusb":[],"winusbio":[],"winuser":[],"winver":[],"wlanapi":[],"wlanihv":[],"wlanihvtypes":[],"wlantypes":[],"wlclient":[],"wmistr":[],"wnnc":[],"wow64apiset":[],"wpdmtpextensions":[],"ws2bth":[],"ws2def":[],"ws2ipdef":[],"ws2spi":[],"ws2tcpip":[],"wtsapi32":[],"wtypes":[],"wtypesbase":[],"xinput":[]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winapi-0.3.9/Cargo.toml","metadata":{"docs":{"rs":{"default-target":"x86_64-pc-windows-msvc","features":["everything","impl-debug","impl-default"],"targets":["aarch64-pc-windows-msvc","i686-pc-windows-msvc","x86_64-pc-windows-msvc"]}}},"publish":null,"authors":["Peter Atashian <retep998@gmail.com>"],"categories":["external-ffi-bindings","no-std","os::windows-apis"],"keywords":["windows","ffi","win32","com","directx"],"readme":"README.md","repository":"https://github.com/retep998/winapi-rs","homepage":null,"documentation":"https://docs.rs/winapi/","edition":"2015","links":null,"default_run":null,"rust_version":null},{"name":"winapi-i686-pc-windows-gnu","version":"0.4.0","id":"winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT/Apache-2.0","license_file":null,"description":"Import libraries for the i686-pc-windows-gnu target. Please don't use this crate directly, depend on winapi instead.","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"winapi-i686-pc-windows-gnu","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winapi-i686-pc-windows-gnu-0.4.0/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winapi-i686-pc-windows-gnu-0.4.0/build.rs","edition":"2015","doc":false,"doctest":false,"test":false}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winapi-i686-pc-windows-gnu-0.4.0/Cargo.toml","metadata":null,"publish":null,"authors":["Peter Atashian <retep998@gmail.com>"],"categories":[],"keywords":["windows"],"readme":null,"repository":"https://github.com/retep998/winapi-rs","homepage":null,"documentation":null,"edition":"2015","links":null,"default_run":null,"rust_version":null},{"name":"winapi-util","version":"0.1.6","id":"winapi-util 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)","license":"Unlicense/MIT","license_file":null,"description":"A dumping ground for high level safe wrappers over winapi.","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"winapi","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.3","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":["std","consoleapi","errhandlingapi","fileapi","minwindef","processenv","sysinfoapi","winbase","wincon","winerror","winnt"],"target":"cfg(windows)","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"winapi-util","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winapi-util-0.1.6/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winapi-util-0.1.6/Cargo.toml","metadata":{"docs":{"rs":{"targets":["x86_64-pc-windows-msvc"]}}},"publish":null,"authors":["Andrew Gallant <jamslam@gmail.com>"],"categories":["os::windows-apis","external-ffi-bindings"],"keywords":["windows","winapi","util","win"],"readme":"README.md","repository":"https://github.com/BurntSushi/winapi-util","homepage":"https://github.com/BurntSushi/winapi-util","documentation":"https://docs.rs/winapi-util","edition":"2021","links":null,"default_run":null,"rust_version":null},{"name":"winapi-x86_64-pc-windows-gnu","version":"0.4.0","id":"winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT/Apache-2.0","license_file":null,"description":"Import libraries for the x86_64-pc-windows-gnu target. Please don't use this crate directly, depend on winapi instead.","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"winapi-x86_64-pc-windows-gnu","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winapi-x86_64-pc-windows-gnu-0.4.0/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winapi-x86_64-pc-windows-gnu-0.4.0/build.rs","edition":"2015","doc":false,"doctest":false,"test":false}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winapi-x86_64-pc-windows-gnu-0.4.0/Cargo.toml","metadata":null,"publish":null,"authors":["Peter Atashian <retep998@gmail.com>"],"categories":[],"keywords":["windows"],"readme":null,"repository":"https://github.com/retep998/winapi-rs","homepage":null,"documentation":null,"edition":"2015","links":null,"default_run":null,"rust_version":null},{"name":"windows-sys","version":"0.48.0","id":"windows-sys 0.48.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Rust for Windows","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"windows-targets","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.48.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"windows-sys","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows-sys-0.48.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true}],"features":{"Wdk":[],"Wdk_System":["Wdk"],"Wdk_System_OfflineRegistry":["Wdk_System"],"Win32":[],"Win32_Data":["Win32"],"Win32_Data_HtmlHelp":["Win32_Data"],"Win32_Data_RightsManagement":["Win32_Data"],"Win32_Data_Xml":["Win32_Data"],"Win32_Data_Xml_MsXml":["Win32_Data_Xml"],"Win32_Data_Xml_XmlLite":["Win32_Data_Xml"],"Win32_Devices":["Win32"],"Win32_Devices_AllJoyn":["Win32_Devices"],"Win32_Devices_BiometricFramework":["Win32_Devices"],"Win32_Devices_Bluetooth":["Win32_Devices"],"Win32_Devices_Communication":["Win32_Devices"],"Win32_Devices_DeviceAccess":["Win32_Devices"],"Win32_Devices_DeviceAndDriverInstallation":["Win32_Devices"],"Win32_Devices_DeviceQuery":["Win32_Devices"],"Win32_Devices_Display":["Win32_Devices"],"Win32_Devices_Enumeration":["Win32_Devices"],"Win32_Devices_Enumeration_Pnp":["Win32_Devices_Enumeration"],"Win32_Devices_Fax":["Win32_Devices"],"Win32_Devices_FunctionDiscovery":["Win32_Devices"],"Win32_Devices_Geolocation":["Win32_Devices"],"Win32_Devices_HumanInterfaceDevice":["Win32_Devices"],"Win32_Devices_ImageAcquisition":["Win32_Devices"],"Win32_Devices_PortableDevices":["Win32_Devices"],"Win32_Devices_Properties":["Win32_Devices"],"Win32_Devices_Pwm":["Win32_Devices"],"Win32_Devices_Sensors":["Win32_Devices"],"Win32_Devices_SerialCommunication":["Win32_Devices"],"Win32_Devices_Tapi":["Win32_Devices"],"Win32_Devices_Usb":["Win32_Devices"],"Win32_Devices_WebServicesOnDevices":["Win32_Devices"],"Win32_Foundation":["Win32"],"Win32_Gaming":["Win32"],"Win32_Globalization":["Win32"],"Win32_Graphics":["Win32"],"Win32_Graphics_Dwm":["Win32_Graphics"],"Win32_Graphics_Gdi":["Win32_Graphics"],"Win32_Graphics_Hlsl":["Win32_Graphics"],"Win32_Graphics_OpenGL":["Win32_Graphics"],"Win32_Graphics_Printing":["Win32_Graphics"],"Win32_Graphics_Printing_PrintTicket":["Win32_Graphics_Printing"],"Win32_Management":["Win32"],"Win32_Management_MobileDeviceManagementRegistration":["Win32_Management"],"Win32_Media":["Win32"],"Win32_Media_Audio":["Win32_Media"],"Win32_Media_Audio_Apo":["Win32_Media_Audio"],"Win32_Media_Audio_DirectMusic":["Win32_Media_Audio"],"Win32_Media_Audio_Endpoints":["Win32_Media_Audio"],"Win32_Media_Audio_XAudio2":["Win32_Media_Audio"],"Win32_Media_DeviceManager":["Win32_Media"],"Win32_Media_DxMediaObjects":["Win32_Media"],"Win32_Media_KernelStreaming":["Win32_Media"],"Win32_Media_LibrarySharingServices":["Win32_Media"],"Win32_Media_MediaPlayer":["Win32_Media"],"Win32_Media_Multimedia":["Win32_Media"],"Win32_Media_Speech":["Win32_Media"],"Win32_Media_Streaming":["Win32_Media"],"Win32_Media_WindowsMediaFormat":["Win32_Media"],"Win32_NetworkManagement":["Win32"],"Win32_NetworkManagement_Dhcp":["Win32_NetworkManagement"],"Win32_NetworkManagement_Dns":["Win32_NetworkManagement"],"Win32_NetworkManagement_InternetConnectionWizard":["Win32_NetworkManagement"],"Win32_NetworkManagement_IpHelper":["Win32_NetworkManagement"],"Win32_NetworkManagement_MobileBroadband":["Win32_NetworkManagement"],"Win32_NetworkManagement_Multicast":["Win32_NetworkManagement"],"Win32_NetworkManagement_Ndis":["Win32_NetworkManagement"],"Win32_NetworkManagement_NetBios":["Win32_NetworkManagement"],"Win32_NetworkManagement_NetManagement":["Win32_NetworkManagement"],"Win32_NetworkManagement_NetShell":["Win32_NetworkManagement"],"Win32_NetworkManagement_NetworkDiagnosticsFramework":["Win32_NetworkManagement"],"Win32_NetworkManagement_NetworkPolicyServer":["Win32_NetworkManagement"],"Win32_NetworkManagement_P2P":["Win32_NetworkManagement"],"Win32_NetworkManagement_QoS":["Win32_NetworkManagement"],"Win32_NetworkManagement_Rras":["Win32_NetworkManagement"],"Win32_NetworkManagement_Snmp":["Win32_NetworkManagement"],"Win32_NetworkManagement_WNet":["Win32_NetworkManagement"],"Win32_NetworkManagement_WebDav":["Win32_NetworkManagement"],"Win32_NetworkManagement_WiFi":["Win32_NetworkManagement"],"Win32_NetworkManagement_WindowsConnectNow":["Win32_NetworkManagement"],"Win32_NetworkManagement_WindowsConnectionManager":["Win32_NetworkManagement"],"Win32_NetworkManagement_WindowsFilteringPlatform":["Win32_NetworkManagement"],"Win32_NetworkManagement_WindowsFirewall":["Win32_NetworkManagement"],"Win32_NetworkManagement_WindowsNetworkVirtualization":["Win32_NetworkManagement"],"Win32_Networking":["Win32"],"Win32_Networking_ActiveDirectory":["Win32_Networking"],"Win32_Networking_BackgroundIntelligentTransferService":["Win32_Networking"],"Win32_Networking_Clustering":["Win32_Networking"],"Win32_Networking_HttpServer":["Win32_Networking"],"Win32_Networking_Ldap":["Win32_Networking"],"Win32_Networking_NetworkListManager":["Win32_Networking"],"Win32_Networking_RemoteDifferentialCompression":["Win32_Networking"],"Win32_Networking_WebSocket":["Win32_Networking"],"Win32_Networking_WinHttp":["Win32_Networking"],"Win32_Networking_WinInet":["Win32_Networking"],"Win32_Networking_WinSock":["Win32_Networking"],"Win32_Networking_WindowsWebServices":["Win32_Networking"],"Win32_Security":["Win32"],"Win32_Security_AppLocker":["Win32_Security"],"Win32_Security_Authentication":["Win32_Security"],"Win32_Security_Authentication_Identity":["Win32_Security_Authentication"],"Win32_Security_Authentication_Identity_Provider":["Win32_Security_Authentication_Identity"],"Win32_Security_Authorization":["Win32_Security"],"Win32_Security_Authorization_UI":["Win32_Security_Authorization"],"Win32_Security_ConfigurationSnapin":["Win32_Security"],"Win32_Security_Credentials":["Win32_Security"],"Win32_Security_Cryptography":["Win32_Security"],"Win32_Security_Cryptography_Catalog":["Win32_Security_Cryptography"],"Win32_Security_Cryptography_Certificates":["Win32_Security_Cryptography"],"Win32_Security_Cryptography_Sip":["Win32_Security_Cryptography"],"Win32_Security_Cryptography_UI":["Win32_Security_Cryptography"],"Win32_Security_DiagnosticDataQuery":["Win32_Security"],"Win32_Security_DirectoryServices":["Win32_Security"],"Win32_Security_EnterpriseData":["Win32_Security"],"Win32_Security_ExtensibleAuthenticationProtocol":["Win32_Security"],"Win32_Security_Isolation":["Win32_Security"],"Win32_Security_LicenseProtection":["Win32_Security"],"Win32_Security_NetworkAccessProtection":["Win32_Security"],"Win32_Security_Tpm":["Win32_Security"],"Win32_Security_WinTrust":["Win32_Security"],"Win32_Security_WinWlx":["Win32_Security"],"Win32_Storage":["Win32"],"Win32_Storage_Cabinets":["Win32_Storage"],"Win32_Storage_CloudFilters":["Win32_Storage"],"Win32_Storage_Compression":["Win32_Storage"],"Win32_Storage_DataDeduplication":["Win32_Storage"],"Win32_Storage_DistributedFileSystem":["Win32_Storage"],"Win32_Storage_EnhancedStorage":["Win32_Storage"],"Win32_Storage_FileHistory":["Win32_Storage"],"Win32_Storage_FileServerResourceManager":["Win32_Storage"],"Win32_Storage_FileSystem":["Win32_Storage"],"Win32_Storage_Imapi":["Win32_Storage"],"Win32_Storage_IndexServer":["Win32_Storage"],"Win32_Storage_InstallableFileSystems":["Win32_Storage"],"Win32_Storage_IscsiDisc":["Win32_Storage"],"Win32_Storage_Jet":["Win32_Storage"],"Win32_Storage_OfflineFiles":["Win32_Storage"],"Win32_Storage_OperationRecorder":["Win32_Storage"],"Win32_Storage_Packaging":["Win32_Storage"],"Win32_Storage_Packaging_Appx":["Win32_Storage_Packaging"],"Win32_Storage_Packaging_Opc":["Win32_Storage_Packaging"],"Win32_Storage_ProjectedFileSystem":["Win32_Storage"],"Win32_Storage_StructuredStorage":["Win32_Storage"],"Win32_Storage_Vhd":["Win32_Storage"],"Win32_Storage_VirtualDiskService":["Win32_Storage"],"Win32_Storage_Vss":["Win32_Storage"],"Win32_Storage_Xps":["Win32_Storage"],"Win32_Storage_Xps_Printing":["Win32_Storage_Xps"],"Win32_System":["Win32"],"Win32_System_AddressBook":["Win32_System"],"Win32_System_Antimalware":["Win32_System"],"Win32_System_ApplicationInstallationAndServicing":["Win32_System"],"Win32_System_ApplicationVerifier":["Win32_System"],"Win32_System_AssessmentTool":["Win32_System"],"Win32_System_ClrHosting":["Win32_System"],"Win32_System_Com":["Win32_System"],"Win32_System_Com_CallObj":["Win32_System_Com"],"Win32_System_Com_ChannelCredentials":["Win32_System_Com"],"Win32_System_Com_Events":["Win32_System_Com"],"Win32_System_Com_Marshal":["Win32_System_Com"],"Win32_System_Com_StructuredStorage":["Win32_System_Com"],"Win32_System_Com_UI":["Win32_System_Com"],"Win32_System_Com_Urlmon":["Win32_System_Com"],"Win32_System_ComponentServices":["Win32_System"],"Win32_System_Console":["Win32_System"],"Win32_System_Contacts":["Win32_System"],"Win32_System_CorrelationVector":["Win32_System"],"Win32_System_DataExchange":["Win32_System"],"Win32_System_DeploymentServices":["Win32_System"],"Win32_System_DesktopSharing":["Win32_System"],"Win32_System_DeveloperLicensing":["Win32_System"],"Win32_System_Diagnostics":["Win32_System"],"Win32_System_Diagnostics_Ceip":["Win32_System_Diagnostics"],"Win32_System_Diagnostics_ClrProfiling":["Win32_System_Diagnostics"],"Win32_System_Diagnostics_Debug":["Win32_System_Diagnostics"],"Win32_System_Diagnostics_Debug_ActiveScript":["Win32_System_Diagnostics_Debug"],"Win32_System_Diagnostics_Debug_Extensions":["Win32_System_Diagnostics_Debug"],"Win32_System_Diagnostics_Etw":["Win32_System_Diagnostics"],"Win32_System_Diagnostics_ProcessSnapshotting":["Win32_System_Diagnostics"],"Win32_System_Diagnostics_ToolHelp":["Win32_System_Diagnostics"],"Win32_System_DistributedTransactionCoordinator":["Win32_System"],"Win32_System_Environment":["Win32_System"],"Win32_System_ErrorReporting":["Win32_System"],"Win32_System_EventCollector":["Win32_System"],"Win32_System_EventLog":["Win32_System"],"Win32_System_EventNotificationService":["Win32_System"],"Win32_System_GroupPolicy":["Win32_System"],"Win32_System_HostCompute":["Win32_System"],"Win32_System_HostComputeNetwork":["Win32_System"],"Win32_System_HostComputeSystem":["Win32_System"],"Win32_System_Hypervisor":["Win32_System"],"Win32_System_IO":["Win32_System"],"Win32_System_Iis":["Win32_System"],"Win32_System_Ioctl":["Win32_System"],"Win32_System_JobObjects":["Win32_System"],"Win32_System_Js":["Win32_System"],"Win32_System_Kernel":["Win32_System"],"Win32_System_LibraryLoader":["Win32_System"],"Win32_System_Mailslots":["Win32_System"],"Win32_System_Mapi":["Win32_System"],"Win32_System_Memory":["Win32_System"],"Win32_System_Memory_NonVolatile":["Win32_System_Memory"],"Win32_System_MessageQueuing":["Win32_System"],"Win32_System_MixedReality":["Win32_System"],"Win32_System_Mmc":["Win32_System"],"Win32_System_Ole":["Win32_System"],"Win32_System_ParentalControls":["Win32_System"],"Win32_System_PasswordManagement":["Win32_System"],"Win32_System_Performance":["Win32_System"],"Win32_System_Performance_HardwareCounterProfiling":["Win32_System_Performance"],"Win32_System_Pipes":["Win32_System"],"Win32_System_Power":["Win32_System"],"Win32_System_ProcessStatus":["Win32_System"],"Win32_System_RealTimeCommunications":["Win32_System"],"Win32_System_Recovery":["Win32_System"],"Win32_System_Registry":["Win32_System"],"Win32_System_RemoteAssistance":["Win32_System"],"Win32_System_RemoteDesktop":["Win32_System"],"Win32_System_RemoteManagement":["Win32_System"],"Win32_System_RestartManager":["Win32_System"],"Win32_System_Restore":["Win32_System"],"Win32_System_Rpc":["Win32_System"],"Win32_System_Search":["Win32_System"],"Win32_System_Search_Common":["Win32_System_Search"],"Win32_System_SecurityCenter":["Win32_System"],"Win32_System_ServerBackup":["Win32_System"],"Win32_System_Services":["Win32_System"],"Win32_System_SettingsManagementInfrastructure":["Win32_System"],"Win32_System_SetupAndMigration":["Win32_System"],"Win32_System_Shutdown":["Win32_System"],"Win32_System_StationsAndDesktops":["Win32_System"],"Win32_System_SubsystemForLinux":["Win32_System"],"Win32_System_SystemInformation":["Win32_System"],"Win32_System_SystemServices":["Win32_System"],"Win32_System_TaskScheduler":["Win32_System"],"Win32_System_Threading":["Win32_System"],"Win32_System_Time":["Win32_System"],"Win32_System_TpmBaseServices":["Win32_System"],"Win32_System_UpdateAgent":["Win32_System"],"Win32_System_UpdateAssessment":["Win32_System"],"Win32_System_UserAccessLogging":["Win32_System"],"Win32_System_VirtualDosMachines":["Win32_System"],"Win32_System_WindowsProgramming":["Win32_System"],"Win32_System_WindowsSync":["Win32_System"],"Win32_System_Wmi":["Win32_System"],"Win32_UI":["Win32"],"Win32_UI_Accessibility":["Win32_UI"],"Win32_UI_Animation":["Win32_UI"],"Win32_UI_ColorSystem":["Win32_UI"],"Win32_UI_Controls":["Win32_UI"],"Win32_UI_Controls_Dialogs":["Win32_UI_Controls"],"Win32_UI_Controls_RichEdit":["Win32_UI_Controls"],"Win32_UI_HiDpi":["Win32_UI"],"Win32_UI_Input":["Win32_UI"],"Win32_UI_Input_Ime":["Win32_UI_Input"],"Win32_UI_Input_Ink":["Win32_UI_Input"],"Win32_UI_Input_KeyboardAndMouse":["Win32_UI_Input"],"Win32_UI_Input_Pointer":["Win32_UI_Input"],"Win32_UI_Input_Radial":["Win32_UI_Input"],"Win32_UI_Input_Touch":["Win32_UI_Input"],"Win32_UI_Input_XboxController":["Win32_UI_Input"],"Win32_UI_InteractionContext":["Win32_UI"],"Win32_UI_LegacyWindowsEnvironmentFeatures":["Win32_UI"],"Win32_UI_Magnification":["Win32_UI"],"Win32_UI_Notifications":["Win32_UI"],"Win32_UI_Ribbon":["Win32_UI"],"Win32_UI_Shell":["Win32_UI"],"Win32_UI_Shell_Common":["Win32_UI_Shell"],"Win32_UI_Shell_PropertiesSystem":["Win32_UI_Shell"],"Win32_UI_TabletPC":["Win32_UI"],"Win32_UI_TextServices":["Win32_UI"],"Win32_UI_WindowsAndMessaging":["Win32_UI"],"Win32_UI_Wpf":["Win32_UI"],"Win32_Web":["Win32"],"Win32_Web_InternetExplorer":["Win32_Web"],"default":[]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows-sys-0.48.0/Cargo.toml","metadata":{"docs":{"rs":{"all-features":true,"default-target":"x86_64-pc-windows-msvc","targets":[]}}},"publish":null,"authors":["Microsoft"],"categories":["os::windows-apis"],"keywords":[],"readme":"readme.md","repository":"https://github.com/microsoft/windows-rs","homepage":null,"documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":"1.48"},{"name":"windows-sys","version":"0.52.0","id":"windows-sys 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Rust for Windows","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"windows-targets","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.52.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":null,"registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"windows-sys","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows-sys-0.52.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true}],"features":{"Wdk":[],"Wdk_Foundation":["Wdk"],"Wdk_Graphics":["Wdk"],"Wdk_Graphics_Direct3D":["Wdk_Graphics"],"Wdk_Storage":["Wdk"],"Wdk_Storage_FileSystem":["Wdk_Storage"],"Wdk_Storage_FileSystem_Minifilters":["Wdk_Storage_FileSystem"],"Wdk_System":["Wdk"],"Wdk_System_IO":["Wdk_System"],"Wdk_System_OfflineRegistry":["Wdk_System"],"Wdk_System_Registry":["Wdk_System"],"Wdk_System_SystemInformation":["Wdk_System"],"Wdk_System_SystemServices":["Wdk_System"],"Wdk_System_Threading":["Wdk_System"],"Win32":[],"Win32_Data":["Win32"],"Win32_Data_HtmlHelp":["Win32_Data"],"Win32_Data_RightsManagement":["Win32_Data"],"Win32_Devices":["Win32"],"Win32_Devices_AllJoyn":["Win32_Devices"],"Win32_Devices_BiometricFramework":["Win32_Devices"],"Win32_Devices_Bluetooth":["Win32_Devices"],"Win32_Devices_Communication":["Win32_Devices"],"Win32_Devices_DeviceAndDriverInstallation":["Win32_Devices"],"Win32_Devices_DeviceQuery":["Win32_Devices"],"Win32_Devices_Display":["Win32_Devices"],"Win32_Devices_Enumeration":["Win32_Devices"],"Win32_Devices_Enumeration_Pnp":["Win32_Devices_Enumeration"],"Win32_Devices_Fax":["Win32_Devices"],"Win32_Devices_HumanInterfaceDevice":["Win32_Devices"],"Win32_Devices_PortableDevices":["Win32_Devices"],"Win32_Devices_Properties":["Win32_Devices"],"Win32_Devices_Pwm":["Win32_Devices"],"Win32_Devices_Sensors":["Win32_Devices"],"Win32_Devices_SerialCommunication":["Win32_Devices"],"Win32_Devices_Tapi":["Win32_Devices"],"Win32_Devices_Usb":["Win32_Devices"],"Win32_Devices_WebServicesOnDevices":["Win32_Devices"],"Win32_Foundation":["Win32"],"Win32_Gaming":["Win32"],"Win32_Globalization":["Win32"],"Win32_Graphics":["Win32"],"Win32_Graphics_Dwm":["Win32_Graphics"],"Win32_Graphics_Gdi":["Win32_Graphics"],"Win32_Graphics_GdiPlus":["Win32_Graphics"],"Win32_Graphics_Hlsl":["Win32_Graphics"],"Win32_Graphics_OpenGL":["Win32_Graphics"],"Win32_Graphics_Printing":["Win32_Graphics"],"Win32_Graphics_Printing_PrintTicket":["Win32_Graphics_Printing"],"Win32_Management":["Win32"],"Win32_Management_MobileDeviceManagementRegistration":["Win32_Management"],"Win32_Media":["Win32"],"Win32_Media_Audio":["Win32_Media"],"Win32_Media_DxMediaObjects":["Win32_Media"],"Win32_Media_KernelStreaming":["Win32_Media"],"Win32_Media_Multimedia":["Win32_Media"],"Win32_Media_Streaming":["Win32_Media"],"Win32_Media_WindowsMediaFormat":["Win32_Media"],"Win32_NetworkManagement":["Win32"],"Win32_NetworkManagement_Dhcp":["Win32_NetworkManagement"],"Win32_NetworkManagement_Dns":["Win32_NetworkManagement"],"Win32_NetworkManagement_InternetConnectionWizard":["Win32_NetworkManagement"],"Win32_NetworkManagement_IpHelper":["Win32_NetworkManagement"],"Win32_NetworkManagement_Multicast":["Win32_NetworkManagement"],"Win32_NetworkManagement_Ndis":["Win32_NetworkManagement"],"Win32_NetworkManagement_NetBios":["Win32_NetworkManagement"],"Win32_NetworkManagement_NetManagement":["Win32_NetworkManagement"],"Win32_NetworkManagement_NetShell":["Win32_NetworkManagement"],"Win32_NetworkManagement_NetworkDiagnosticsFramework":["Win32_NetworkManagement"],"Win32_NetworkManagement_P2P":["Win32_NetworkManagement"],"Win32_NetworkManagement_QoS":["Win32_NetworkManagement"],"Win32_NetworkManagement_Rras":["Win32_NetworkManagement"],"Win32_NetworkManagement_Snmp":["Win32_NetworkManagement"],"Win32_NetworkManagement_WNet":["Win32_NetworkManagement"],"Win32_NetworkManagement_WebDav":["Win32_NetworkManagement"],"Win32_NetworkManagement_WiFi":["Win32_NetworkManagement"],"Win32_NetworkManagement_WindowsConnectionManager":["Win32_NetworkManagement"],"Win32_NetworkManagement_WindowsFilteringPlatform":["Win32_NetworkManagement"],"Win32_NetworkManagement_WindowsFirewall":["Win32_NetworkManagement"],"Win32_NetworkManagement_WindowsNetworkVirtualization":["Win32_NetworkManagement"],"Win32_Networking":["Win32"],"Win32_Networking_ActiveDirectory":["Win32_Networking"],"Win32_Networking_Clustering":["Win32_Networking"],"Win32_Networking_HttpServer":["Win32_Networking"],"Win32_Networking_Ldap":["Win32_Networking"],"Win32_Networking_WebSocket":["Win32_Networking"],"Win32_Networking_WinHttp":["Win32_Networking"],"Win32_Networking_WinInet":["Win32_Networking"],"Win32_Networking_WinSock":["Win32_Networking"],"Win32_Networking_WindowsWebServices":["Win32_Networking"],"Win32_Security":["Win32"],"Win32_Security_AppLocker":["Win32_Security"],"Win32_Security_Authentication":["Win32_Security"],"Win32_Security_Authentication_Identity":["Win32_Security_Authentication"],"Win32_Security_Authorization":["Win32_Security"],"Win32_Security_Credentials":["Win32_Security"],"Win32_Security_Cryptography":["Win32_Security"],"Win32_Security_Cryptography_Catalog":["Win32_Security_Cryptography"],"Win32_Security_Cryptography_Certificates":["Win32_Security_Cryptography"],"Win32_Security_Cryptography_Sip":["Win32_Security_Cryptography"],"Win32_Security_Cryptography_UI":["Win32_Security_Cryptography"],"Win32_Security_DiagnosticDataQuery":["Win32_Security"],"Win32_Security_DirectoryServices":["Win32_Security"],"Win32_Security_EnterpriseData":["Win32_Security"],"Win32_Security_ExtensibleAuthenticationProtocol":["Win32_Security"],"Win32_Security_Isolation":["Win32_Security"],"Win32_Security_LicenseProtection":["Win32_Security"],"Win32_Security_NetworkAccessProtection":["Win32_Security"],"Win32_Security_WinTrust":["Win32_Security"],"Win32_Security_WinWlx":["Win32_Security"],"Win32_Storage":["Win32"],"Win32_Storage_Cabinets":["Win32_Storage"],"Win32_Storage_CloudFilters":["Win32_Storage"],"Win32_Storage_Compression":["Win32_Storage"],"Win32_Storage_DistributedFileSystem":["Win32_Storage"],"Win32_Storage_FileHistory":["Win32_Storage"],"Win32_Storage_FileSystem":["Win32_Storage"],"Win32_Storage_Imapi":["Win32_Storage"],"Win32_Storage_IndexServer":["Win32_Storage"],"Win32_Storage_InstallableFileSystems":["Win32_Storage"],"Win32_Storage_IscsiDisc":["Win32_Storage"],"Win32_Storage_Jet":["Win32_Storage"],"Win32_Storage_Nvme":["Win32_Storage"],"Win32_Storage_OfflineFiles":["Win32_Storage"],"Win32_Storage_OperationRecorder":["Win32_Storage"],"Win32_Storage_Packaging":["Win32_Storage"],"Win32_Storage_Packaging_Appx":["Win32_Storage_Packaging"],"Win32_Storage_ProjectedFileSystem":["Win32_Storage"],"Win32_Storage_StructuredStorage":["Win32_Storage"],"Win32_Storage_Vhd":["Win32_Storage"],"Win32_Storage_Xps":["Win32_Storage"],"Win32_System":["Win32"],"Win32_System_AddressBook":["Win32_System"],"Win32_System_Antimalware":["Win32_System"],"Win32_System_ApplicationInstallationAndServicing":["Win32_System"],"Win32_System_ApplicationVerifier":["Win32_System"],"Win32_System_ClrHosting":["Win32_System"],"Win32_System_Com":["Win32_System"],"Win32_System_Com_Marshal":["Win32_System_Com"],"Win32_System_Com_StructuredStorage":["Win32_System_Com"],"Win32_System_Com_Urlmon":["Win32_System_Com"],"Win32_System_ComponentServices":["Win32_System"],"Win32_System_Console":["Win32_System"],"Win32_System_CorrelationVector":["Win32_System"],"Win32_System_DataExchange":["Win32_System"],"Win32_System_DeploymentServices":["Win32_System"],"Win32_System_DeveloperLicensing":["Win32_System"],"Win32_System_Diagnostics":["Win32_System"],"Win32_System_Diagnostics_Ceip":["Win32_System_Diagnostics"],"Win32_System_Diagnostics_Debug":["Win32_System_Diagnostics"],"Win32_System_Diagnostics_Debug_Extensions":["Win32_System_Diagnostics_Debug"],"Win32_System_Diagnostics_Etw":["Win32_System_Diagnostics"],"Win32_System_Diagnostics_ProcessSnapshotting":["Win32_System_Diagnostics"],"Win32_System_Diagnostics_ToolHelp":["Win32_System_Diagnostics"],"Win32_System_DistributedTransactionCoordinator":["Win32_System"],"Win32_System_Environment":["Win32_System"],"Win32_System_ErrorReporting":["Win32_System"],"Win32_System_EventCollector":["Win32_System"],"Win32_System_EventLog":["Win32_System"],"Win32_System_EventNotificationService":["Win32_System"],"Win32_System_GroupPolicy":["Win32_System"],"Win32_System_HostCompute":["Win32_System"],"Win32_System_HostComputeNetwork":["Win32_System"],"Win32_System_HostComputeSystem":["Win32_System"],"Win32_System_Hypervisor":["Win32_System"],"Win32_System_IO":["Win32_System"],"Win32_System_Iis":["Win32_System"],"Win32_System_Ioctl":["Win32_System"],"Win32_System_JobObjects":["Win32_System"],"Win32_System_Js":["Win32_System"],"Win32_System_Kernel":["Win32_System"],"Win32_System_LibraryLoader":["Win32_System"],"Win32_System_Mailslots":["Win32_System"],"Win32_System_Mapi":["Win32_System"],"Win32_System_Memory":["Win32_System"],"Win32_System_Memory_NonVolatile":["Win32_System_Memory"],"Win32_System_MessageQueuing":["Win32_System"],"Win32_System_MixedReality":["Win32_System"],"Win32_System_Ole":["Win32_System"],"Win32_System_PasswordManagement":["Win32_System"],"Win32_System_Performance":["Win32_System"],"Win32_System_Performance_HardwareCounterProfiling":["Win32_System_Performance"],"Win32_System_Pipes":["Win32_System"],"Win32_System_Power":["Win32_System"],"Win32_System_ProcessStatus":["Win32_System"],"Win32_System_Recovery":["Win32_System"],"Win32_System_Registry":["Win32_System"],"Win32_System_RemoteDesktop":["Win32_System"],"Win32_System_RemoteManagement":["Win32_System"],"Win32_System_RestartManager":["Win32_System"],"Win32_System_Restore":["Win32_System"],"Win32_System_Rpc":["Win32_System"],"Win32_System_Search":["Win32_System"],"Win32_System_Search_Common":["Win32_System_Search"],"Win32_System_SecurityCenter":["Win32_System"],"Win32_System_Services":["Win32_System"],"Win32_System_SetupAndMigration":["Win32_System"],"Win32_System_Shutdown":["Win32_System"],"Win32_System_StationsAndDesktops":["Win32_System"],"Win32_System_SubsystemForLinux":["Win32_System"],"Win32_System_SystemInformation":["Win32_System"],"Win32_System_SystemServices":["Win32_System"],"Win32_System_Threading":["Win32_System"],"Win32_System_Time":["Win32_System"],"Win32_System_TpmBaseServices":["Win32_System"],"Win32_System_UserAccessLogging":["Win32_System"],"Win32_System_Variant":["Win32_System"],"Win32_System_VirtualDosMachines":["Win32_System"],"Win32_System_WindowsProgramming":["Win32_System"],"Win32_System_Wmi":["Win32_System"],"Win32_UI":["Win32"],"Win32_UI_Accessibility":["Win32_UI"],"Win32_UI_ColorSystem":["Win32_UI"],"Win32_UI_Controls":["Win32_UI"],"Win32_UI_Controls_Dialogs":["Win32_UI_Controls"],"Win32_UI_HiDpi":["Win32_UI"],"Win32_UI_Input":["Win32_UI"],"Win32_UI_Input_Ime":["Win32_UI_Input"],"Win32_UI_Input_KeyboardAndMouse":["Win32_UI_Input"],"Win32_UI_Input_Pointer":["Win32_UI_Input"],"Win32_UI_Input_Touch":["Win32_UI_Input"],"Win32_UI_Input_XboxController":["Win32_UI_Input"],"Win32_UI_InteractionContext":["Win32_UI"],"Win32_UI_Magnification":["Win32_UI"],"Win32_UI_Shell":["Win32_UI"],"Win32_UI_Shell_PropertiesSystem":["Win32_UI_Shell"],"Win32_UI_TabletPC":["Win32_UI"],"Win32_UI_TextServices":["Win32_UI"],"Win32_UI_WindowsAndMessaging":["Win32_UI"],"Win32_Web":["Win32"],"Win32_Web_InternetExplorer":["Win32_Web"],"default":[],"docs":[]},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows-sys-0.52.0/Cargo.toml","metadata":{"docs":{"rs":{"all-features":true,"default-target":"x86_64-pc-windows-msvc","targets":[]}}},"publish":null,"authors":["Microsoft"],"categories":["os::windows-apis"],"keywords":[],"readme":"readme.md","repository":"https://github.com/microsoft/windows-rs","homepage":null,"documentation":null,"edition":"2021","links":null,"default_run":null,"rust_version":"1.56"},{"name":"windows-targets","version":"0.48.5","id":"windows-targets 0.48.5 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Import libs for Windows","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"windows_aarch64_gnullvm","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.48.5","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"aarch64-pc-windows-gnullvm","registry":null},{"name":"windows_aarch64_msvc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.48.5","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(all(target_arch = \"aarch64\", target_env = \"msvc\", not(windows_raw_dylib)))","registry":null},{"name":"windows_i686_gnu","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.48.5","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(all(target_arch = \"x86\", target_env = \"gnu\", not(windows_raw_dylib)))","registry":null},{"name":"windows_i686_msvc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.48.5","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(all(target_arch = \"x86\", target_env = \"msvc\", not(windows_raw_dylib)))","registry":null},{"name":"windows_x86_64_gnu","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.48.5","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(all(target_arch = \"x86_64\", target_env = \"gnu\", not(target_abi = \"llvm\"), not(windows_raw_dylib)))","registry":null},{"name":"windows_x86_64_msvc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.48.5","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(all(target_arch = \"x86_64\", target_env = \"msvc\", not(windows_raw_dylib)))","registry":null},{"name":"windows_x86_64_gnullvm","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.48.5","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"x86_64-pc-windows-gnullvm","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"windows-targets","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows-targets-0.48.5/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows-targets-0.48.5/Cargo.toml","metadata":null,"publish":null,"authors":["Microsoft"],"categories":[],"keywords":[],"readme":"readme.md","repository":"https://github.com/microsoft/windows-rs","homepage":null,"documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":null},{"name":"windows-targets","version":"0.52.0","id":"windows-targets 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Import libs for Windows","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[{"name":"windows_aarch64_gnullvm","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.52.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"aarch64-pc-windows-gnullvm","registry":null},{"name":"windows_aarch64_msvc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.52.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(all(target_arch = \"aarch64\", target_env = \"msvc\", not(windows_raw_dylib)))","registry":null},{"name":"windows_i686_gnu","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.52.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(all(target_arch = \"x86\", target_env = \"gnu\", not(windows_raw_dylib)))","registry":null},{"name":"windows_i686_msvc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.52.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(all(target_arch = \"x86\", target_env = \"msvc\", not(windows_raw_dylib)))","registry":null},{"name":"windows_x86_64_gnu","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.52.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(all(target_arch = \"x86_64\", target_env = \"gnu\", not(target_abi = \"llvm\"), not(windows_raw_dylib)))","registry":null},{"name":"windows_x86_64_msvc","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.52.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"cfg(all(target_arch = \"x86_64\", target_env = \"msvc\", not(windows_raw_dylib)))","registry":null},{"name":"windows_x86_64_gnullvm","source":"registry+https://github.com/rust-lang/crates.io-index","req":"^0.52.0","kind":null,"rename":null,"optional":false,"uses_default_features":true,"features":[],"target":"x86_64-pc-windows-gnullvm","registry":null}],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"windows-targets","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows-targets-0.52.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows-targets-0.52.0/Cargo.toml","metadata":null,"publish":null,"authors":["Microsoft"],"categories":[],"keywords":[],"readme":"readme.md","repository":"https://github.com/microsoft/windows-rs","homepage":null,"documentation":null,"edition":"2021","links":null,"default_run":null,"rust_version":"1.56"},{"name":"windows_aarch64_gnullvm","version":"0.48.5","id":"windows_aarch64_gnullvm 0.48.5 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Import lib for Windows","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"windows_aarch64_gnullvm","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_aarch64_gnullvm-0.48.5/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_aarch64_gnullvm-0.48.5/build.rs","edition":"2018","doc":false,"doctest":false,"test":false}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_aarch64_gnullvm-0.48.5/Cargo.toml","metadata":{"docs":{"rs":{"default-target":"x86_64-pc-windows-msvc","targets":[]}}},"publish":null,"authors":["Microsoft"],"categories":[],"keywords":[],"readme":null,"repository":"https://github.com/microsoft/windows-rs","homepage":null,"documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":null},{"name":"windows_aarch64_gnullvm","version":"0.52.0","id":"windows_aarch64_gnullvm 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Import lib for Windows","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"windows_aarch64_gnullvm","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_aarch64_gnullvm-0.52.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_aarch64_gnullvm-0.52.0/build.rs","edition":"2021","doc":false,"doctest":false,"test":false}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_aarch64_gnullvm-0.52.0/Cargo.toml","metadata":{"docs":{"rs":{"default-target":"x86_64-pc-windows-msvc","targets":[]}}},"publish":null,"authors":["Microsoft"],"categories":[],"keywords":[],"readme":null,"repository":"https://github.com/microsoft/windows-rs","homepage":null,"documentation":null,"edition":"2021","links":null,"default_run":null,"rust_version":"1.56"},{"name":"windows_aarch64_msvc","version":"0.48.5","id":"windows_aarch64_msvc 0.48.5 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Import lib for Windows","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"windows_aarch64_msvc","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_aarch64_msvc-0.48.5/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_aarch64_msvc-0.48.5/build.rs","edition":"2018","doc":false,"doctest":false,"test":false}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_aarch64_msvc-0.48.5/Cargo.toml","metadata":{"docs":{"rs":{"default-target":"x86_64-pc-windows-msvc","targets":[]}}},"publish":null,"authors":["Microsoft"],"categories":[],"keywords":[],"readme":null,"repository":"https://github.com/microsoft/windows-rs","homepage":null,"documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":null},{"name":"windows_aarch64_msvc","version":"0.52.0","id":"windows_aarch64_msvc 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Import lib for Windows","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"windows_aarch64_msvc","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_aarch64_msvc-0.52.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_aarch64_msvc-0.52.0/build.rs","edition":"2021","doc":false,"doctest":false,"test":false}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_aarch64_msvc-0.52.0/Cargo.toml","metadata":{"docs":{"rs":{"default-target":"x86_64-pc-windows-msvc","targets":[]}}},"publish":null,"authors":["Microsoft"],"categories":[],"keywords":[],"readme":null,"repository":"https://github.com/microsoft/windows-rs","homepage":null,"documentation":null,"edition":"2021","links":null,"default_run":null,"rust_version":"1.56"},{"name":"windows_i686_gnu","version":"0.48.5","id":"windows_i686_gnu 0.48.5 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Import lib for Windows","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"windows_i686_gnu","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_i686_gnu-0.48.5/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_i686_gnu-0.48.5/build.rs","edition":"2018","doc":false,"doctest":false,"test":false}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_i686_gnu-0.48.5/Cargo.toml","metadata":{"docs":{"rs":{"default-target":"x86_64-pc-windows-msvc","targets":[]}}},"publish":null,"authors":["Microsoft"],"categories":[],"keywords":[],"readme":null,"repository":"https://github.com/microsoft/windows-rs","homepage":null,"documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":null},{"name":"windows_i686_gnu","version":"0.52.0","id":"windows_i686_gnu 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Import lib for Windows","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"windows_i686_gnu","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_i686_gnu-0.52.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_i686_gnu-0.52.0/build.rs","edition":"2021","doc":false,"doctest":false,"test":false}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_i686_gnu-0.52.0/Cargo.toml","metadata":{"docs":{"rs":{"default-target":"x86_64-pc-windows-msvc","targets":[]}}},"publish":null,"authors":["Microsoft"],"categories":[],"keywords":[],"readme":null,"repository":"https://github.com/microsoft/windows-rs","homepage":null,"documentation":null,"edition":"2021","links":null,"default_run":null,"rust_version":"1.56"},{"name":"windows_i686_msvc","version":"0.48.5","id":"windows_i686_msvc 0.48.5 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Import lib for Windows","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"windows_i686_msvc","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_i686_msvc-0.48.5/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_i686_msvc-0.48.5/build.rs","edition":"2018","doc":false,"doctest":false,"test":false}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_i686_msvc-0.48.5/Cargo.toml","metadata":{"docs":{"rs":{"default-target":"x86_64-pc-windows-msvc","targets":[]}}},"publish":null,"authors":["Microsoft"],"categories":[],"keywords":[],"readme":null,"repository":"https://github.com/microsoft/windows-rs","homepage":null,"documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":null},{"name":"windows_i686_msvc","version":"0.52.0","id":"windows_i686_msvc 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Import lib for Windows","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"windows_i686_msvc","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_i686_msvc-0.52.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_i686_msvc-0.52.0/build.rs","edition":"2021","doc":false,"doctest":false,"test":false}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_i686_msvc-0.52.0/Cargo.toml","metadata":{"docs":{"rs":{"default-target":"x86_64-pc-windows-msvc","targets":[]}}},"publish":null,"authors":["Microsoft"],"categories":[],"keywords":[],"readme":null,"repository":"https://github.com/microsoft/windows-rs","homepage":null,"documentation":null,"edition":"2021","links":null,"default_run":null,"rust_version":"1.56"},{"name":"windows_x86_64_gnu","version":"0.48.5","id":"windows_x86_64_gnu 0.48.5 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Import lib for Windows","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"windows_x86_64_gnu","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_x86_64_gnu-0.48.5/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_x86_64_gnu-0.48.5/build.rs","edition":"2018","doc":false,"doctest":false,"test":false}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_x86_64_gnu-0.48.5/Cargo.toml","metadata":{"docs":{"rs":{"default-target":"x86_64-pc-windows-msvc","targets":[]}}},"publish":null,"authors":["Microsoft"],"categories":[],"keywords":[],"readme":null,"repository":"https://github.com/microsoft/windows-rs","homepage":null,"documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":null},{"name":"windows_x86_64_gnu","version":"0.52.0","id":"windows_x86_64_gnu 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Import lib for Windows","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"windows_x86_64_gnu","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_x86_64_gnu-0.52.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_x86_64_gnu-0.52.0/build.rs","edition":"2021","doc":false,"doctest":false,"test":false}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_x86_64_gnu-0.52.0/Cargo.toml","metadata":{"docs":{"rs":{"default-target":"x86_64-pc-windows-msvc","targets":[]}}},"publish":null,"authors":["Microsoft"],"categories":[],"keywords":[],"readme":null,"repository":"https://github.com/microsoft/windows-rs","homepage":null,"documentation":null,"edition":"2021","links":null,"default_run":null,"rust_version":"1.56"},{"name":"windows_x86_64_gnullvm","version":"0.48.5","id":"windows_x86_64_gnullvm 0.48.5 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Import lib for Windows","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"windows_x86_64_gnullvm","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_x86_64_gnullvm-0.48.5/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_x86_64_gnullvm-0.48.5/build.rs","edition":"2018","doc":false,"doctest":false,"test":false}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_x86_64_gnullvm-0.48.5/Cargo.toml","metadata":{"docs":{"rs":{"default-target":"x86_64-pc-windows-msvc","targets":[]}}},"publish":null,"authors":["Microsoft"],"categories":[],"keywords":[],"readme":null,"repository":"https://github.com/microsoft/windows-rs","homepage":null,"documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":null},{"name":"windows_x86_64_gnullvm","version":"0.52.0","id":"windows_x86_64_gnullvm 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Import lib for Windows","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"windows_x86_64_gnullvm","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_x86_64_gnullvm-0.52.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_x86_64_gnullvm-0.52.0/build.rs","edition":"2021","doc":false,"doctest":false,"test":false}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_x86_64_gnullvm-0.52.0/Cargo.toml","metadata":{"docs":{"rs":{"default-target":"x86_64-pc-windows-msvc","targets":[]}}},"publish":null,"authors":["Microsoft"],"categories":[],"keywords":[],"readme":null,"repository":"https://github.com/microsoft/windows-rs","homepage":null,"documentation":null,"edition":"2021","links":null,"default_run":null,"rust_version":"1.56"},{"name":"windows_x86_64_msvc","version":"0.48.5","id":"windows_x86_64_msvc 0.48.5 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Import lib for Windows","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"windows_x86_64_msvc","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_x86_64_msvc-0.48.5/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_x86_64_msvc-0.48.5/build.rs","edition":"2018","doc":false,"doctest":false,"test":false}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_x86_64_msvc-0.48.5/Cargo.toml","metadata":{"docs":{"rs":{"default-target":"x86_64-pc-windows-msvc","targets":[]}}},"publish":null,"authors":["Microsoft"],"categories":[],"keywords":[],"readme":null,"repository":"https://github.com/microsoft/windows-rs","homepage":null,"documentation":null,"edition":"2018","links":null,"default_run":null,"rust_version":null},{"name":"windows_x86_64_msvc","version":"0.52.0","id":"windows_x86_64_msvc 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","license":"MIT OR Apache-2.0","license_file":null,"description":"Import lib for Windows","source":"registry+https://github.com/rust-lang/crates.io-index","dependencies":[],"targets":[{"kind":["lib"],"crate_types":["lib"],"name":"windows_x86_64_msvc","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_x86_64_msvc-0.52.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_x86_64_msvc-0.52.0/build.rs","edition":"2021","doc":false,"doctest":false,"test":false}],"features":{},"manifest_path":"/usr/local/google/home/mgeisler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/windows_x86_64_msvc-0.52.0/Cargo.toml","metadata":{"docs":{"rs":{"default-target":"x86_64-pc-windows-msvc","targets":[]}}},"publish":null,"authors":["Microsoft"],"categories":[],"keywords":[],"readme":null,"repository":"https://github.com/microsoft/windows-rs","homepage":null,"documentation":null,"edition":"2021","links":null,"default_run":null,"rust_version":"1.56"}],"workspace_members":["maybe-async 0.2.10 (path+file:///usr/local/google/home/mgeisler/src/aosp/external/rust/crates/maybe-async-0.2.10)"],"workspace_default_members":["maybe-async 0.2.10 (path+file:///usr/local/google/home/mgeisler/src/aosp/external/rust/crates/maybe-async-0.2.10)"],"resolve":{"nodes":[{"id":"addr2line 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["gimli 0.28.1 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"gimli","pkg":"gimli 0.28.1 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":[]},{"id":"adler 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"async-attributes 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["quote 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)","syn 1.0.109 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"quote","pkg":"quote 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"syn","pkg":"syn 1.0.109 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":[]},{"id":"async-channel 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["concurrent-queue 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)","event-listener 2.5.3 (registry+https://github.com/rust-lang/crates.io-index)","futures-core 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"concurrent_queue","pkg":"concurrent-queue 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"event_listener","pkg":"event-listener 2.5.3 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"futures_core","pkg":"futures-core 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":[]},{"id":"async-channel 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["concurrent-queue 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)","event-listener 5.1.0 (registry+https://github.com/rust-lang/crates.io-index)","event-listener-strategy 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)","futures-core 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)","pin-project-lite 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"concurrent_queue","pkg":"concurrent-queue 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"event_listener","pkg":"event-listener 5.1.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"event_listener_strategy","pkg":"event-listener-strategy 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"futures_core","pkg":"futures-core 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"pin_project_lite","pkg":"pin-project-lite 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":["default","std"]},{"id":"async-executor 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["async-lock 3.3.0 (registry+https://github.com/rust-lang/crates.io-index)","async-task 4.7.0 (registry+https://github.com/rust-lang/crates.io-index)","concurrent-queue 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)","fastrand 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)","futures-lite 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","slab 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"async_lock","pkg":"async-lock 3.3.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"async_task","pkg":"async-task 4.7.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"concurrent_queue","pkg":"concurrent-queue 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"fastrand","pkg":"fastrand 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"futures_lite","pkg":"futures-lite 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null},{"kind":null,"target":"cfg(target_family = \"wasm\")"}]},{"name":"slab","pkg":"slab 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":[]},{"id":"async-global-executor 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["async-channel 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","async-executor 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)","async-io 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)","async-lock 3.3.0 (registry+https://github.com/rust-lang/crates.io-index)","blocking 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)","futures-lite 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","once_cell 1.19.0 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"async_channel","pkg":"async-channel 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"async_executor","pkg":"async-executor 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"async_io","pkg":"async-io 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"async_lock","pkg":"async-lock 3.3.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"blocking","pkg":"blocking 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"futures_lite","pkg":"futures-lite 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"once_cell","pkg":"once_cell 1.19.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":["async-io","default"]},{"id":"async-io 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["async-lock 2.8.0 (registry+https://github.com/rust-lang/crates.io-index)","autocfg 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)","cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)","concurrent-queue 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)","futures-lite 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)","log 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)","parking 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","polling 2.8.0 (registry+https://github.com/rust-lang/crates.io-index)","rustix 0.37.27 (registry+https://github.com/rust-lang/crates.io-index)","slab 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)","socket2 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)","waker-fn 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"async_lock","pkg":"async-lock 2.8.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"autocfg","pkg":"autocfg 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":"build","target":null}]},{"name":"cfg_if","pkg":"cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"concurrent_queue","pkg":"concurrent-queue 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"futures_lite","pkg":"futures-lite 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"log","pkg":"log 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"parking","pkg":"parking 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"polling","pkg":"polling 2.8.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"rustix","pkg":"rustix 0.37.27 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"slab","pkg":"slab 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"socket2","pkg":"socket2 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"waker_fn","pkg":"waker-fn 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":[]},{"id":"async-io 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["async-lock 3.3.0 (registry+https://github.com/rust-lang/crates.io-index)","cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)","concurrent-queue 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)","futures-io 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)","futures-lite 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","parking 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","polling 3.5.0 (registry+https://github.com/rust-lang/crates.io-index)","rustix 0.38.31 (registry+https://github.com/rust-lang/crates.io-index)","slab 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)","tracing 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)","windows-sys 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"async_lock","pkg":"async-lock 3.3.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"cfg_if","pkg":"cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"concurrent_queue","pkg":"concurrent-queue 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"futures_io","pkg":"futures-io 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"futures_lite","pkg":"futures-lite 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"parking","pkg":"parking 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"polling","pkg":"polling 3.5.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"rustix","pkg":"rustix 0.38.31 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"slab","pkg":"slab 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"tracing","pkg":"tracing 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"windows_sys","pkg":"windows-sys 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(windows)"}]}],"features":[]},{"id":"async-lock 2.8.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["event-listener 2.5.3 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"event_listener","pkg":"event-listener 2.5.3 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":[]},{"id":"async-lock 3.3.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["event-listener 4.0.3 (registry+https://github.com/rust-lang/crates.io-index)","event-listener-strategy 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)","pin-project-lite 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"event_listener","pkg":"event-listener 4.0.3 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"event_listener_strategy","pkg":"event-listener-strategy 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"pin_project_lite","pkg":"pin-project-lite 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":["default","std"]},{"id":"async-std 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["async-attributes 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)","async-channel 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)","async-global-executor 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)","async-io 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)","async-lock 2.8.0 (registry+https://github.com/rust-lang/crates.io-index)","crossbeam-utils 0.8.19 (registry+https://github.com/rust-lang/crates.io-index)","futures-channel 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)","futures-core 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)","futures-io 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)","futures-lite 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)","gloo-timers 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)","kv-log-macro 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)","log 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)","memchr 2.7.1 (registry+https://github.com/rust-lang/crates.io-index)","once_cell 1.19.0 (registry+https://github.com/rust-lang/crates.io-index)","pin-project-lite 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)","pin-utils 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)","slab 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)","wasm-bindgen-futures 0.4.41 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"async_attributes","pkg":"async-attributes 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"async_channel","pkg":"async-channel 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"async_global_executor","pkg":"async-global-executor 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(not(target_os = \"unknown\"))"}]},{"name":"async_io","pkg":"async-io 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(not(target_os = \"unknown\"))"}]},{"name":"async_lock","pkg":"async-lock 2.8.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"crossbeam_utils","pkg":"crossbeam-utils 0.8.19 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"futures_channel","pkg":"futures-channel 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(target_arch = \"wasm32\")"}]},{"name":"futures_core","pkg":"futures-core 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"futures_io","pkg":"futures-io 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"futures_lite","pkg":"futures-lite 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(not(target_os = \"unknown\"))"}]},{"name":"gloo_timers","pkg":"gloo-timers 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(target_arch = \"wasm32\")"}]},{"name":"kv_log_macro","pkg":"kv-log-macro 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"log","pkg":"log 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"memchr","pkg":"memchr 2.7.1 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"once_cell","pkg":"once_cell 1.19.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"pin_project_lite","pkg":"pin-project-lite 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"pin_utils","pkg":"pin-utils 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"slab","pkg":"slab 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"wasm_bindgen_futures","pkg":"wasm-bindgen-futures 0.4.41 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(target_arch = \"wasm32\")"}]}],"features":["alloc","async-attributes","async-channel","async-global-executor","async-io","async-lock","attributes","crossbeam-utils","default","futures-channel","futures-core","futures-io","futures-lite","gloo-timers","kv-log-macro","log","memchr","once_cell","pin-project-lite","pin-utils","slab","std","wasm-bindgen-futures"]},{"id":"async-task 4.7.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":["default","std"]},{"id":"async-trait 0.1.77 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["proc-macro2 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)","quote 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)","syn 2.0.50 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"proc_macro2","pkg":"proc-macro2 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"quote","pkg":"quote 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"syn","pkg":"syn 2.0.50 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":[]},{"id":"atomic-waker 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"autocfg 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"backtrace 0.3.69 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["addr2line 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)","cc 1.0.86 (registry+https://github.com/rust-lang/crates.io-index)","cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.153 (registry+https://github.com/rust-lang/crates.io-index)","miniz_oxide 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)","object 0.32.2 (registry+https://github.com/rust-lang/crates.io-index)","rustc-demangle 0.1.23 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"addr2line","pkg":"addr2line 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(not(all(windows, target_env = \"msvc\", not(target_vendor = \"uwp\"))))"}]},{"name":"cc","pkg":"cc 1.0.86 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":"build","target":null}]},{"name":"cfg_if","pkg":"cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"libc","pkg":"libc 0.2.153 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(not(all(windows, target_env = \"msvc\", not(target_vendor = \"uwp\"))))"}]},{"name":"miniz_oxide","pkg":"miniz_oxide 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(not(all(windows, target_env = \"msvc\", not(target_vendor = \"uwp\"))))"}]},{"name":"object","pkg":"object 0.32.2 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(not(all(windows, target_env = \"msvc\", not(target_vendor = \"uwp\"))))"}]},{"name":"rustc_demangle","pkg":"rustc-demangle 0.1.23 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":["default","std"]},{"id":"basic-toml 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["serde 1.0.197 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"serde","pkg":"serde 1.0.197 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":[]},{"id":"bitflags 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":["default"]},{"id":"bitflags 2.4.2 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":["std"]},{"id":"blocking 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["async-channel 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","async-lock 3.3.0 (registry+https://github.com/rust-lang/crates.io-index)","async-task 4.7.0 (registry+https://github.com/rust-lang/crates.io-index)","fastrand 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)","futures-io 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)","futures-lite 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","piper 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)","tracing 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"async_channel","pkg":"async-channel 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"async_lock","pkg":"async-lock 3.3.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(not(target_family = \"wasm\"))"}]},{"name":"async_task","pkg":"async-task 4.7.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"fastrand","pkg":"fastrand 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"futures_io","pkg":"futures-io 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"futures_lite","pkg":"futures-lite 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"piper","pkg":"piper 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"tracing","pkg":"tracing 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":[]},{"id":"bumpalo 3.15.2 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":["default"]},{"id":"cc 1.0.86 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"concurrent-queue 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["crossbeam-utils 0.8.19 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"crossbeam_utils","pkg":"crossbeam-utils 0.8.19 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":["default","std"]},{"id":"crossbeam-utils 0.8.19 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":["default","std"]},{"id":"dissimilar 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"errno 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["libc 0.2.153 (registry+https://github.com/rust-lang/crates.io-index)","windows-sys 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"libc","pkg":"libc 0.2.153 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(unix)"},{"kind":null,"target":"cfg(target_os = \"hermit\")"},{"kind":null,"target":"cfg(target_os = \"wasi\")"}]},{"name":"windows_sys","pkg":"windows-sys 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(windows)"}]}],"features":["std"]},{"id":"event-listener 2.5.3 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"event-listener 4.0.3 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["concurrent-queue 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)","parking 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","pin-project-lite 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"concurrent_queue","pkg":"concurrent-queue 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"parking","pkg":"parking 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(not(target_family = \"wasm\"))"}]},{"name":"pin_project_lite","pkg":"pin-project-lite 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":["parking","std"]},{"id":"event-listener 5.1.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["concurrent-queue 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)","parking 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","pin-project-lite 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"concurrent_queue","pkg":"concurrent-queue 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"parking","pkg":"parking 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(not(target_family = \"wasm\"))"}]},{"name":"pin_project_lite","pkg":"pin-project-lite 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":["parking","std"]},{"id":"event-listener-strategy 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["event-listener 4.0.3 (registry+https://github.com/rust-lang/crates.io-index)","pin-project-lite 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"event_listener","pkg":"event-listener 4.0.3 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"pin_project_lite","pkg":"pin-project-lite 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":["std"]},{"id":"event-listener-strategy 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["event-listener 5.1.0 (registry+https://github.com/rust-lang/crates.io-index)","pin-project-lite 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"event_listener","pkg":"event-listener 5.1.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"pin_project_lite","pkg":"pin-project-lite 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":["std"]},{"id":"fastrand 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["instant 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"instant","pkg":"instant 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(all(target_arch = \"wasm32\", not(target_os = \"wasi\")))"}]}],"features":[]},{"id":"fastrand 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":["alloc","default","std"]},{"id":"futures-channel 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["futures-core 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"futures_core","pkg":"futures-core 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":["alloc","default","std"]},{"id":"futures-core 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":["alloc","default","std"]},{"id":"futures-io 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":["default","std"]},{"id":"futures-lite 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["fastrand 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)","futures-core 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)","futures-io 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)","memchr 2.7.1 (registry+https://github.com/rust-lang/crates.io-index)","parking 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","pin-project-lite 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)","waker-fn 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"fastrand","pkg":"fastrand 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"futures_core","pkg":"futures-core 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"futures_io","pkg":"futures-io 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"memchr","pkg":"memchr 2.7.1 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"parking","pkg":"parking 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"pin_project_lite","pkg":"pin-project-lite 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"waker_fn","pkg":"waker-fn 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":["alloc","default","fastrand","futures-io","memchr","parking","std","waker-fn"]},{"id":"futures-lite 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["fastrand 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)","futures-core 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)","futures-io 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)","parking 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","pin-project-lite 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"fastrand","pkg":"fastrand 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"futures_core","pkg":"futures-core 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"futures_io","pkg":"futures-io 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"parking","pkg":"parking 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"pin_project_lite","pkg":"pin-project-lite 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":["alloc","default","fastrand","futures-io","parking","race","std"]},{"id":"gimli 0.28.1 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":["read","read-core"]},{"id":"glob 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"gloo-timers 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["futures-channel 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)","futures-core 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)","js-sys 0.3.68 (registry+https://github.com/rust-lang/crates.io-index)","wasm-bindgen 0.2.91 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"futures_channel","pkg":"futures-channel 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"futures_core","pkg":"futures-core 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"js_sys","pkg":"js-sys 0.3.68 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"wasm_bindgen","pkg":"wasm-bindgen 0.2.91 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":["default","futures","futures-channel","futures-core"]},{"id":"hermit-abi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":["default"]},{"id":"instant 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"cfg_if","pkg":"cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":[]},{"id":"io-lifetimes 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["hermit-abi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.153 (registry+https://github.com/rust-lang/crates.io-index)","windows-sys 0.48.0 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"hermit_abi","pkg":"hermit-abi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(target_os = \"hermit\")"}]},{"name":"libc","pkg":"libc 0.2.153 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(not(windows))"}]},{"name":"windows_sys","pkg":"windows-sys 0.48.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(windows)"}]}],"features":["close","hermit-abi","libc","windows-sys"]},{"id":"itoa 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"js-sys 0.3.68 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["wasm-bindgen 0.2.91 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"wasm_bindgen","pkg":"wasm-bindgen 0.2.91 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":[]},{"id":"kv-log-macro 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["log 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"log","pkg":"log 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":[]},{"id":"libc 0.2.153 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":["default","extra_traits","std"]},{"id":"linux-raw-sys 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":["errno","general","ioctl","no_std"]},{"id":"linux-raw-sys 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":["elf","errno","general","if_ether","ioctl","net","netlink","no_std","prctl","xdp"]},{"id":"log 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["value-bag 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"value_bag","pkg":"value-bag 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":["kv_unstable","value-bag"]},{"id":"maybe-async 0.2.10 (path+file:///usr/local/google/home/mgeisler/src/aosp/external/rust/crates/maybe-async-0.2.10)","dependencies":["async-std 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)","async-trait 0.1.77 (registry+https://github.com/rust-lang/crates.io-index)","proc-macro2 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)","quote 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)","syn 2.0.50 (registry+https://github.com/rust-lang/crates.io-index)","tokio 1.36.0 (registry+https://github.com/rust-lang/crates.io-index)","trybuild 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"async_std","pkg":"async-std 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":"dev","target":null}]},{"name":"async_trait","pkg":"async-trait 0.1.77 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":"dev","target":null}]},{"name":"proc_macro2","pkg":"proc-macro2 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"quote","pkg":"quote 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"syn","pkg":"syn 2.0.50 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"tokio","pkg":"tokio 1.36.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":"dev","target":null}]},{"name":"trybuild","pkg":"trybuild 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":"dev","target":null}]}],"features":["default"]},{"id":"memchr 2.7.1 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":["alloc","default","std"]},{"id":"miniz_oxide 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["adler 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"adler","pkg":"adler 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":[]},{"id":"num_cpus 1.16.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["hermit-abi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.153 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"hermit_abi","pkg":"hermit-abi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(target_os = \"hermit\")"}]},{"name":"libc","pkg":"libc 0.2.153 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(not(windows))"}]}],"features":[]},{"id":"object 0.32.2 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["memchr 2.7.1 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"memchr","pkg":"memchr 2.7.1 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":["archive","coff","elf","macho","pe","read_core","unaligned"]},{"id":"once_cell 1.19.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":["alloc","default","race","std"]},{"id":"parking 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"pin-project-lite 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"pin-utils 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"piper 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["atomic-waker 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)","fastrand 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)","futures-io 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"atomic_waker","pkg":"atomic-waker 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"fastrand","pkg":"fastrand 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"futures_io","pkg":"futures-io 0.3.30 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":["default","futures-io","std"]},{"id":"polling 2.8.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["autocfg 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)","bitflags 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)","cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)","concurrent-queue 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.153 (registry+https://github.com/rust-lang/crates.io-index)","log 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)","pin-project-lite 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)","windows-sys 0.48.0 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"autocfg","pkg":"autocfg 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":"build","target":null}]},{"name":"bitflags","pkg":"bitflags 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(windows)"}]},{"name":"cfg_if","pkg":"cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"concurrent_queue","pkg":"concurrent-queue 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(windows)"}]},{"name":"libc","pkg":"libc 0.2.153 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(any(unix, target_os = \"fuchsia\", target_os = \"vxworks\"))"}]},{"name":"log","pkg":"log 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"pin_project_lite","pkg":"pin-project-lite 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(windows)"}]},{"name":"windows_sys","pkg":"windows-sys 0.48.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(windows)"}]}],"features":["default","std"]},{"id":"polling 3.5.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)","concurrent-queue 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)","pin-project-lite 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)","rustix 0.38.31 (registry+https://github.com/rust-lang/crates.io-index)","tracing 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)","windows-sys 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"cfg_if","pkg":"cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"concurrent_queue","pkg":"concurrent-queue 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(windows)"}]},{"name":"pin_project_lite","pkg":"pin-project-lite 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(windows)"}]},{"name":"rustix","pkg":"rustix 0.38.31 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(any(unix, target_os = \"fuchsia\", target_os = \"vxworks\"))"}]},{"name":"tracing","pkg":"tracing 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"windows_sys","pkg":"windows-sys 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(windows)"}]}],"features":[]},{"id":"proc-macro2 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["unicode-ident 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"unicode_ident","pkg":"unicode-ident 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":["default","proc-macro"]},{"id":"quote 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["proc-macro2 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"proc_macro2","pkg":"proc-macro2 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":["default","proc-macro"]},{"id":"rustc-demangle 0.1.23 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"rustix 0.37.27 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["bitflags 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)","errno 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)","io-lifetimes 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.153 (registry+https://github.com/rust-lang/crates.io-index)","linux-raw-sys 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)","windows-sys 0.48.0 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"bitflags","pkg":"bitflags 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"libc_errno","pkg":"errno 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = \"linux\", any(target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\"), all(target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"powerpc64\", target_arch = \"riscv64\", target_arch = \"mips\", target_arch = \"mips64\"))))))))"},{"kind":null,"target":"cfg(windows)"}]},{"name":"io_lifetimes","pkg":"io-lifetimes 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"libc","pkg":"libc 0.2.153 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = \"linux\", any(target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\"), all(target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"powerpc64\", target_arch = \"riscv64\", target_arch = \"mips\", target_arch = \"mips64\"))))))))"}]},{"name":"linux_raw_sys","pkg":"linux-raw-sys 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(all(not(rustix_use_libc), not(miri), target_os = \"linux\", any(target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\"), all(target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"powerpc64\", target_arch = \"riscv64\", target_arch = \"mips\", target_arch = \"mips64\")))))"},{"kind":null,"target":"cfg(all(any(target_os = \"android\", target_os = \"linux\"), any(rustix_use_libc, miri, not(all(target_os = \"linux\", any(target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\"), all(target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"powerpc64\", target_arch = \"riscv64\", target_arch = \"mips\", target_arch = \"mips64\"))))))))"}]},{"name":"windows_sys","pkg":"windows-sys 0.48.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(windows)"}]}],"features":["fs","io-lifetimes","std"]},{"id":"rustix 0.38.31 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["bitflags 2.4.2 (registry+https://github.com/rust-lang/crates.io-index)","errno 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.153 (registry+https://github.com/rust-lang/crates.io-index)","linux-raw-sys 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)","windows-sys 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"bitflags","pkg":"bitflags 2.4.2 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"libc_errno","pkg":"errno 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(all(not(rustix_use_libc), not(miri), target_os = \"linux\", target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"riscv64\", all(rustix_use_experimental_asm, target_arch = \"powerpc64\"), all(rustix_use_experimental_asm, target_arch = \"mips\"), all(rustix_use_experimental_asm, target_arch = \"mips32r6\"), all(rustix_use_experimental_asm, target_arch = \"mips64\"), all(rustix_use_experimental_asm, target_arch = \"mips64r6\"), target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\"))))"},{"kind":null,"target":"cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = \"linux\", target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"riscv64\", all(rustix_use_experimental_asm, target_arch = \"powerpc64\"), all(rustix_use_experimental_asm, target_arch = \"mips\"), all(rustix_use_experimental_asm, target_arch = \"mips32r6\"), all(rustix_use_experimental_asm, target_arch = \"mips64\"), all(rustix_use_experimental_asm, target_arch = \"mips64r6\"), target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\")))))))"},{"kind":null,"target":"cfg(windows)"}]},{"name":"libc","pkg":"libc 0.2.153 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(all(not(rustix_use_libc), not(miri), target_os = \"linux\", target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"riscv64\", all(rustix_use_experimental_asm, target_arch = \"powerpc64\"), all(rustix_use_experimental_asm, target_arch = \"mips\"), all(rustix_use_experimental_asm, target_arch = \"mips32r6\"), all(rustix_use_experimental_asm, target_arch = \"mips64\"), all(rustix_use_experimental_asm, target_arch = \"mips64r6\"), target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\"))))"},{"kind":null,"target":"cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = \"linux\", target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"riscv64\", all(rustix_use_experimental_asm, target_arch = \"powerpc64\"), all(rustix_use_experimental_asm, target_arch = \"mips\"), all(rustix_use_experimental_asm, target_arch = \"mips32r6\"), all(rustix_use_experimental_asm, target_arch = \"mips64\"), all(rustix_use_experimental_asm, target_arch = \"mips64r6\"), target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\")))))))"}]},{"name":"linux_raw_sys","pkg":"linux-raw-sys 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(all(not(rustix_use_libc), not(miri), target_os = \"linux\", target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"riscv64\", all(rustix_use_experimental_asm, target_arch = \"powerpc64\"), all(rustix_use_experimental_asm, target_arch = \"mips\"), all(rustix_use_experimental_asm, target_arch = \"mips32r6\"), all(rustix_use_experimental_asm, target_arch = \"mips64\"), all(rustix_use_experimental_asm, target_arch = \"mips64r6\"), target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\"))))"},{"kind":null,"target":"cfg(all(any(target_os = \"android\", target_os = \"linux\"), any(rustix_use_libc, miri, not(all(target_os = \"linux\", target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"riscv64\", all(rustix_use_experimental_asm, target_arch = \"powerpc64\"), all(rustix_use_experimental_asm, target_arch = \"mips\"), all(rustix_use_experimental_asm, target_arch = \"mips32r6\"), all(rustix_use_experimental_asm, target_arch = \"mips64\"), all(rustix_use_experimental_asm, target_arch = \"mips64r6\"), target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\")))))))"}]},{"name":"windows_sys","pkg":"windows-sys 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(windows)"}]}],"features":["alloc","event","fs","net","pipe","process","std","time"]},{"id":"ryu 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"serde 1.0.197 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["serde_derive 1.0.197 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"serde_derive","pkg":"serde_derive 1.0.197 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(any())"}]}],"features":["default","std"]},{"id":"serde_derive 1.0.197 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["proc-macro2 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)","quote 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)","syn 2.0.50 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"proc_macro2","pkg":"proc-macro2 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"quote","pkg":"quote 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"syn","pkg":"syn 2.0.50 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":["default"]},{"id":"serde_json 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["itoa 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)","ryu 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)","serde 1.0.197 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"itoa","pkg":"itoa 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"ryu","pkg":"ryu 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"serde","pkg":"serde 1.0.197 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":["default","std"]},{"id":"slab 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["autocfg 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"autocfg","pkg":"autocfg 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":"build","target":null}]}],"features":["default","std"]},{"id":"socket2 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["libc 0.2.153 (registry+https://github.com/rust-lang/crates.io-index)","winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"libc","pkg":"libc 0.2.153 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(unix)"}]},{"name":"winapi","pkg":"winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(windows)"}]}],"features":["all"]},{"id":"syn 1.0.109 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["proc-macro2 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)","quote 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)","unicode-ident 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"proc_macro2","pkg":"proc-macro2 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"quote","pkg":"quote 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"unicode_ident","pkg":"unicode-ident 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":["clone-impls","default","derive","full","parsing","printing","proc-macro","quote"]},{"id":"syn 2.0.50 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["proc-macro2 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)","quote 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)","unicode-ident 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"proc_macro2","pkg":"proc-macro2 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"quote","pkg":"quote 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"unicode_ident","pkg":"unicode-ident 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":["clone-impls","default","derive","full","parsing","printing","proc-macro","quote","visit","visit-mut"]},{"id":"termcolor 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["winapi-util 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"winapi_util","pkg":"winapi-util 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(windows)"}]}],"features":[]},{"id":"tokio 1.36.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["backtrace 0.3.69 (registry+https://github.com/rust-lang/crates.io-index)","num_cpus 1.16.0 (registry+https://github.com/rust-lang/crates.io-index)","pin-project-lite 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)","tokio-macros 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"backtrace","pkg":"backtrace 0.3.69 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(tokio_taskdump)"}]},{"name":"num_cpus","pkg":"num_cpus 1.16.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"pin_project_lite","pkg":"pin-project-lite 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"tokio_macros","pkg":"tokio-macros 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":["default","macros","num_cpus","rt","rt-multi-thread","tokio-macros"]},{"id":"tokio-macros 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["proc-macro2 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)","quote 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)","syn 2.0.50 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"proc_macro2","pkg":"proc-macro2 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"quote","pkg":"quote 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"syn","pkg":"syn 2.0.50 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":[]},{"id":"tracing 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["pin-project-lite 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)","tracing-core 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"pin_project_lite","pkg":"pin-project-lite 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"tracing_core","pkg":"tracing-core 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":[]},{"id":"tracing-core 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"trybuild 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["basic-toml 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)","dissimilar 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)","glob 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)","once_cell 1.19.0 (registry+https://github.com/rust-lang/crates.io-index)","serde 1.0.197 (registry+https://github.com/rust-lang/crates.io-index)","serde_derive 1.0.197 (registry+https://github.com/rust-lang/crates.io-index)","serde_json 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)","termcolor 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"basic_toml","pkg":"basic-toml 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"dissimilar","pkg":"dissimilar 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"glob","pkg":"glob 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"once_cell","pkg":"once_cell 1.19.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"serde","pkg":"serde 1.0.197 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"serde_derive","pkg":"serde_derive 1.0.197 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"serde_json","pkg":"serde_json 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"termcolor","pkg":"termcolor 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":["diff","dissimilar"]},{"id":"unicode-ident 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"value-bag 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"waker-fn 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"wasm-bindgen 0.2.91 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)","wasm-bindgen-macro 0.2.91 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"cfg_if","pkg":"cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"wasm_bindgen_macro","pkg":"wasm-bindgen-macro 0.2.91 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":["default","spans","std"]},{"id":"wasm-bindgen-backend 0.2.91 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["bumpalo 3.15.2 (registry+https://github.com/rust-lang/crates.io-index)","log 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)","once_cell 1.19.0 (registry+https://github.com/rust-lang/crates.io-index)","proc-macro2 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)","quote 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)","syn 2.0.50 (registry+https://github.com/rust-lang/crates.io-index)","wasm-bindgen-shared 0.2.91 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"bumpalo","pkg":"bumpalo 3.15.2 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"log","pkg":"log 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"once_cell","pkg":"once_cell 1.19.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"proc_macro2","pkg":"proc-macro2 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"quote","pkg":"quote 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"syn","pkg":"syn 2.0.50 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"wasm_bindgen_shared","pkg":"wasm-bindgen-shared 0.2.91 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":["spans"]},{"id":"wasm-bindgen-futures 0.4.41 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)","js-sys 0.3.68 (registry+https://github.com/rust-lang/crates.io-index)","wasm-bindgen 0.2.91 (registry+https://github.com/rust-lang/crates.io-index)","web-sys 0.3.68 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"cfg_if","pkg":"cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"js_sys","pkg":"js-sys 0.3.68 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"wasm_bindgen","pkg":"wasm-bindgen 0.2.91 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"web_sys","pkg":"web-sys 0.3.68 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(target_feature = \"atomics\")"}]}],"features":[]},{"id":"wasm-bindgen-macro 0.2.91 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["quote 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)","wasm-bindgen-macro-support 0.2.91 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"quote","pkg":"quote 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"wasm_bindgen_macro_support","pkg":"wasm-bindgen-macro-support 0.2.91 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":["spans"]},{"id":"wasm-bindgen-macro-support 0.2.91 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["proc-macro2 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)","quote 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)","syn 2.0.50 (registry+https://github.com/rust-lang/crates.io-index)","wasm-bindgen-backend 0.2.91 (registry+https://github.com/rust-lang/crates.io-index)","wasm-bindgen-shared 0.2.91 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"proc_macro2","pkg":"proc-macro2 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"quote","pkg":"quote 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"syn","pkg":"syn 2.0.50 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"wasm_bindgen_backend","pkg":"wasm-bindgen-backend 0.2.91 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"wasm_bindgen_shared","pkg":"wasm-bindgen-shared 0.2.91 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":["spans"]},{"id":"wasm-bindgen-shared 0.2.91 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"web-sys 0.3.68 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["js-sys 0.3.68 (registry+https://github.com/rust-lang/crates.io-index)","wasm-bindgen 0.2.91 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"js_sys","pkg":"js-sys 0.3.68 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]},{"name":"wasm_bindgen","pkg":"wasm-bindgen 0.2.91 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":["Event","EventTarget","MessageEvent","Worker"]},{"id":"winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)","winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"winapi_i686_pc_windows_gnu","pkg":"winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"i686-pc-windows-gnu"}]},{"name":"winapi_x86_64_pc_windows_gnu","pkg":"winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"x86_64-pc-windows-gnu"}]}],"features":["consoleapi","errhandlingapi","fileapi","handleapi","minwindef","processenv","std","sysinfoapi","winbase","wincon","winerror","winnt","ws2ipdef","ws2tcpip"]},{"id":"winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"winapi-util 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"winapi","pkg":"winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(windows)"}]}],"features":[]},{"id":"winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"windows-sys 0.48.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["windows-targets 0.48.5 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"windows_targets","pkg":"windows-targets 0.48.5 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":["Win32","Win32_Foundation","Win32_NetworkManagement","Win32_NetworkManagement_IpHelper","Win32_Networking","Win32_Networking_WinSock","Win32_Security","Win32_Storage","Win32_Storage_FileSystem","Win32_System","Win32_System_IO","Win32_System_LibraryLoader","Win32_System_Threading","Win32_System_WindowsProgramming","default"]},{"id":"windows-sys 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["windows-targets 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"windows_targets","pkg":"windows-targets 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":null}]}],"features":["Wdk","Wdk_Foundation","Wdk_Storage","Wdk_Storage_FileSystem","Win32","Win32_Foundation","Win32_NetworkManagement","Win32_NetworkManagement_IpHelper","Win32_Networking","Win32_Networking_WinSock","Win32_Security","Win32_Storage","Win32_Storage_FileSystem","Win32_System","Win32_System_Diagnostics","Win32_System_Diagnostics_Debug","Win32_System_IO","Win32_System_LibraryLoader","Win32_System_Threading","Win32_System_WindowsProgramming","default"]},{"id":"windows-targets 0.48.5 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["windows_aarch64_gnullvm 0.48.5 (registry+https://github.com/rust-lang/crates.io-index)","windows_aarch64_msvc 0.48.5 (registry+https://github.com/rust-lang/crates.io-index)","windows_i686_gnu 0.48.5 (registry+https://github.com/rust-lang/crates.io-index)","windows_i686_msvc 0.48.5 (registry+https://github.com/rust-lang/crates.io-index)","windows_x86_64_gnu 0.48.5 (registry+https://github.com/rust-lang/crates.io-index)","windows_x86_64_gnullvm 0.48.5 (registry+https://github.com/rust-lang/crates.io-index)","windows_x86_64_msvc 0.48.5 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"windows_aarch64_gnullvm","pkg":"windows_aarch64_gnullvm 0.48.5 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"aarch64-pc-windows-gnullvm"}]},{"name":"windows_aarch64_msvc","pkg":"windows_aarch64_msvc 0.48.5 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(all(target_arch = \"aarch64\", target_env = \"msvc\", not(windows_raw_dylib)))"}]},{"name":"windows_i686_gnu","pkg":"windows_i686_gnu 0.48.5 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(all(target_arch = \"x86\", target_env = \"gnu\", not(windows_raw_dylib)))"}]},{"name":"windows_i686_msvc","pkg":"windows_i686_msvc 0.48.5 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(all(target_arch = \"x86\", target_env = \"msvc\", not(windows_raw_dylib)))"}]},{"name":"windows_x86_64_gnu","pkg":"windows_x86_64_gnu 0.48.5 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(all(target_arch = \"x86_64\", target_env = \"gnu\", not(target_abi = \"llvm\"), not(windows_raw_dylib)))"}]},{"name":"windows_x86_64_gnullvm","pkg":"windows_x86_64_gnullvm 0.48.5 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"x86_64-pc-windows-gnullvm"}]},{"name":"windows_x86_64_msvc","pkg":"windows_x86_64_msvc 0.48.5 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(all(target_arch = \"x86_64\", target_env = \"msvc\", not(windows_raw_dylib)))"}]}],"features":[]},{"id":"windows-targets 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":["windows_aarch64_gnullvm 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","windows_aarch64_msvc 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","windows_i686_gnu 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","windows_i686_msvc 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","windows_x86_64_gnu 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","windows_x86_64_gnullvm 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","windows_x86_64_msvc 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)"],"deps":[{"name":"windows_aarch64_gnullvm","pkg":"windows_aarch64_gnullvm 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"aarch64-pc-windows-gnullvm"}]},{"name":"windows_aarch64_msvc","pkg":"windows_aarch64_msvc 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(all(target_arch = \"aarch64\", target_env = \"msvc\", not(windows_raw_dylib)))"}]},{"name":"windows_i686_gnu","pkg":"windows_i686_gnu 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(all(target_arch = \"x86\", target_env = \"gnu\", not(windows_raw_dylib)))"}]},{"name":"windows_i686_msvc","pkg":"windows_i686_msvc 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(all(target_arch = \"x86\", target_env = \"msvc\", not(windows_raw_dylib)))"}]},{"name":"windows_x86_64_gnu","pkg":"windows_x86_64_gnu 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(all(target_arch = \"x86_64\", target_env = \"gnu\", not(target_abi = \"llvm\"), not(windows_raw_dylib)))"}]},{"name":"windows_x86_64_gnullvm","pkg":"windows_x86_64_gnullvm 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"x86_64-pc-windows-gnullvm"}]},{"name":"windows_x86_64_msvc","pkg":"windows_x86_64_msvc 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","dep_kinds":[{"kind":null,"target":"cfg(all(target_arch = \"x86_64\", target_env = \"msvc\", not(windows_raw_dylib)))"}]}],"features":[]},{"id":"windows_aarch64_gnullvm 0.48.5 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"windows_aarch64_gnullvm 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"windows_aarch64_msvc 0.48.5 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"windows_aarch64_msvc 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"windows_i686_gnu 0.48.5 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"windows_i686_gnu 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"windows_i686_msvc 0.48.5 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"windows_i686_msvc 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"windows_x86_64_gnu 0.48.5 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"windows_x86_64_gnu 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"windows_x86_64_gnullvm 0.48.5 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"windows_x86_64_gnullvm 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"windows_x86_64_msvc 0.48.5 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]},{"id":"windows_x86_64_msvc 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)","dependencies":[],"deps":[],"features":[]}],"root":"maybe-async 0.2.10 (path+file:///usr/local/google/home/mgeisler/src/aosp/external/rust/crates/maybe-async-0.2.10)"},"target_directory":"/usr/local/google/home/mgeisler/src/aosp/external/rust/crates/maybe-async-0.2.10/target","version":1,"workspace_root":"/usr/local/google/home/mgeisler/src/aosp/external/rust/crates/maybe-async-0.2.10","metadata":null}
diff --git a/cargo_embargo.json b/cargo_embargo.json
new file mode 100644
index 0000000..fca634f
--- /dev/null
+++ b/cargo_embargo.json
@@ -0,0 +1,3 @@
+{
+ "run_cargo": false
+}
diff --git a/examples/service_client.rs b/examples/service_client.rs
new file mode 100644
index 0000000..3db9d2b
--- /dev/null
+++ b/examples/service_client.rs
@@ -0,0 +1,77 @@
+#![allow(dead_code, unused_variables)]
+/// To use `maybe-async`, we must know which block of codes is only used on
+/// blocking implementation, and which on async. These two implementation should
+/// share the same API except for async/await keywords, and use `sync_impl` and
+/// `async_impl` to mark these implementation.
+type Response = String;
+type Url = &'static str;
+type Method = String;
+
+/// InnerClient are used to actually send request,
+/// which differ a lot between sync and async.
+///
+/// Use native async function in trait
+#[maybe_async::maybe_async(AFIT)]
+trait InnerClient {
+ async fn request(method: Method, url: Url, data: String) -> Response;
+ #[inline]
+ async fn post(url: Url, data: String) -> Response {
+ Self::request(String::from("post"), url, data).await
+ }
+ #[inline]
+ async fn delete(url: Url, data: String) -> Response {
+ Self::request(String::from("delete"), url, data).await
+ }
+}
+
+/// The higher level API for end user.
+pub struct ServiceClient;
+
+/// Synchronous implementation, only compiles when `is_sync` feature is off.
+/// Else the compiler will complain that *request is defined multiple times* and
+/// blabla.
+#[maybe_async::sync_impl]
+impl InnerClient for ServiceClient {
+ fn request(method: Method, url: Url, data: String) -> Response {
+ // your implementation for sync, like use
+ // `reqwest::blocking` to send request
+ String::from("pretend we have a response")
+ }
+}
+
+/// Asynchronous implementation, only compiles when `is_sync` feature is off.
+#[maybe_async::async_impl(AFIT)]
+impl InnerClient for ServiceClient {
+ async fn request(method: Method, url: Url, data: String) -> Response {
+ // your implementation for async, like use `reqwest::client`
+ // or `async_std` to send request
+ String::from("pretend we have a response")
+ }
+}
+
+/// Code of upstream API are almost the same for sync and async,
+/// except for async/await keyword.
+impl ServiceClient {
+ #[maybe_async::maybe_async]
+ async fn create_bucket(name: String) -> Response {
+ Self::post("http://correct_url4create", String::from("my_bucket")).await
+ // When `is_sync` is toggle on, this block will compiles to:
+ // Self::post("http://correct_url4create", String::from("my_bucket"))
+ }
+ #[maybe_async::maybe_async]
+ async fn delete_bucket(name: String) -> Response {
+ Self::delete("http://correct_url4delete", String::from("my_bucket")).await
+ }
+ // and another thousands of functions that interact with service side
+}
+
+#[maybe_async::sync_impl]
+fn main() {
+ let _ = ServiceClient::create_bucket("bucket".to_owned());
+}
+
+#[maybe_async::async_impl]
+#[tokio::main]
+async fn main() {
+ let _ = ServiceClient::create_bucket("bucket".to_owned()).await;
+}
diff --git a/src/lib.rs b/src/lib.rs
new file mode 100644
index 0000000..7df2b3f
--- /dev/null
+++ b/src/lib.rs
@@ -0,0 +1,626 @@
+//! **Why bother writing similar code twice for blocking and async code?**
+//!
+//! [![Build Status](https://github.com/fMeow/maybe-async-rs/workflows/CI%20%28Linux%29/badge.svg?branch=main)](https://github.com/fMeow/maybe-async-rs/actions)
+//! [![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)
+//! [![Latest Version](https://img.shields.io/crates/v/maybe-async.svg)](https://crates.io/crates/maybe-async)
+//! [![maybe-async](https://docs.rs/maybe-async/badge.svg)](https://docs.rs/maybe-async)
+//!
+//! When implementing both sync and async versions of API in a crate, most API
+//! of the two version are almost the same except for some async/await keyword.
+//!
+//! `maybe-async` help unifying async and sync implementation by **procedural
+//! macro**.
+//! - Write async code with normal `async`, `await`, and let `maybe_async`
+//! handles
+//! those `async` and `await` when you need a blocking code.
+//! - Switch between sync and async by toggling `is_sync` feature gate in
+//! `Cargo.toml`.
+//! - use `must_be_async` and `must_be_sync` to keep code in specified version
+//! - use `async_impl` and `sync_impl` to only compile code block on specified
+//! version
+//! - A handy macro to unify unit test code is also provided.
+//!
+//! These procedural macros can be applied to the following codes:
+//! - trait item declaration
+//! - trait implementation
+//! - function definition
+//! - struct definition
+//!
+//! **RECOMMENDATION**: Enable **resolver ver2** in your crate, which is
+//! introduced in Rust 1.51. If not, two crates in dependency with conflict
+//! version (one async and another blocking) can fail compilation.
+//!
+//!
+//! ## Motivation
+//!
+//! The async/await language feature alters the async world of rust.
+//! Comparing with the map/and_then style, now the async code really resembles
+//! sync version code.
+//!
+//! In many crates, the async and sync version of crates shares the same API,
+//! but the minor difference that all async code must be awaited prevent the
+//! unification of async and sync code. In other words, we are forced to write
+//! an async and a sync implementation respectively.
+//!
+//! ## Macros in Detail
+//!
+//! `maybe-async` offers 4 set of attribute macros: `maybe_async`,
+//! `sync_impl`/`async_impl`, `must_be_sync`/`must_be_async`, and `test`.
+//!
+//! To use `maybe-async`, we must know which block of codes is only used on
+//! blocking implementation, and which on async. These two implementation should
+//! share the same function signatures except for async/await keywords, and use
+//! `sync_impl` and `async_impl` to mark these implementation.
+//!
+//! Use `maybe_async` macro on codes that share the same API on both async and
+//! blocking code except for async/await keywords. And use feature gate
+//! `is_sync` in `Cargo.toml` to toggle between async and blocking code.
+//!
+//! - `maybe_async`
+//!
+//! Offers a unified feature gate to provide sync and async conversion on
+//! demand by feature gate `is_sync`, with **async first** policy.
+//!
+//! Want to keep async code? add `maybe_async` in dependencies with default
+//! features, which means `maybe_async` is the same as `must_be_async`:
+//!
+//! ```toml
+//! [dependencies]
+//! maybe_async = "0.2"
+//! ```
+//!
+//! Want to convert async code to sync? Add `maybe_async` to dependencies with
+//! an `is_sync` feature gate. In this way, `maybe_async` is the same as
+//! `must_be_sync`:
+//!
+//! ```toml
+//! [dependencies]
+//! maybe_async = { version = "0.2", features = ["is_sync"] }
+//! ```
+//!
+//! There are three usage variants for `maybe_async` attribute usage:
+//! - `#[maybe_async]` or `#[maybe_async(Send)]`
+//!
+//! In this mode, `#[async_trait::async_trait]` is added to trait declarations and trait implementations
+//! to support async fn in traits.
+//!
+//! - `#[maybe_async(?Send)]`
+//!
+//! Not all async traits need futures that are `dyn Future + Send`.
+//! In this mode, `#[async_trait::async_trait(?Send)]` is added to trait declarations and trait implementations,
+//! to avoid having "Send" and "Sync" bounds placed on the async trait
+//! methods.
+//!
+//! - `#[maybe_async(AFIT)]`
+//!
+//! AFIT is acronym for **a**sync **f**unction **i**n **t**rait, stabilized from rust 1.74
+//!
+//! For compatibility reasons, the `async fn` in traits is supported via a verbose `AFIT` flag. This will become
+//! the default mode for the next major release.
+//!
+//! - `must_be_async`
+//!
+//! **Keep async**.
+//!
+//! There are three usage variants for `must_be_async` attribute usage:
+//! - `#[must_be_async]` or `#[must_be_async(Send)]`
+//! - `#[must_be_async(?Send)]`
+//! - `#[must_be_async(AFIT)]`
+//!
+//! - `must_be_sync`
+//!
+//! **Convert to sync code**. Convert the async code into sync code by
+//! removing all `async move`, `async` and `await` keyword
+//!
+//!
+//! - `sync_impl`
+//!
+//! A sync implementation should compile on blocking implementation and
+//! must simply disappear when we want async version.
+//!
+//! Although most of the API are almost the same, there definitely come to a
+//! point when the async and sync version should differ greatly. For
+//! example, a MongoDB client may use the same API for async and sync
+//! version, but the code to actually send reqeust are quite different.
+//!
+//! Here, we can use `sync_impl` to mark a synchronous implementation, and a
+//! sync implementation should disappear when we want async version.
+//!
+//! - `async_impl`
+//!
+//! An async implementation should on compile on async implementation and
+//! must simply disappear when we want sync version.
+//!
+//! There are three usage variants for `async_impl` attribute usage:
+//! - `#[async_impl]` or `#[async_impl(Send)]`
+//! - `#[async_impl(?Send)]`
+//! - `#[async_impl(AFIT)]`
+//!
+//! - `test`
+//!
+//! Handy macro to unify async and sync **unit and e2e test** code.
+//!
+//! You can specify the condition to compile to sync test code
+//! and also the conditions to compile to async test code with given test
+//! macro, e.x. `tokio::test`, `async_std::test`, etc. When only sync
+//! condition is specified,the test code only compiles when sync condition
+//! is met.
+//!
+//! ```rust
+//! # #[maybe_async::maybe_async]
+//! # async fn async_fn() -> bool {
+//! # true
+//! # }
+//!
+//! ##[maybe_async::test(
+//! feature="is_sync",
+//! async(
+//! all(not(feature="is_sync"), feature="async_std"),
+//! async_std::test
+//! ),
+//! async(
+//! all(not(feature="is_sync"), feature="tokio"),
+//! tokio::test
+//! )
+//! )]
+//! async fn test_async_fn() {
+//! let res = async_fn().await;
+//! assert_eq!(res, true);
+//! }
+//! ```
+//!
+//! ## What's Under the Hook
+//!
+//! `maybe-async` compiles your code in different way with the `is_sync` feature
+//! gate. It removes all `await` and `async` keywords in your code under
+//! `maybe_async` macro and conditionally compiles codes under `async_impl` and
+//! `sync_impl`.
+//!
+//! Here is a detailed example on what's going on whe the `is_sync` feature
+//! gate set or not.
+//!
+//! ```rust
+//! #[maybe_async::maybe_async(AFIT)]
+//! trait A {
+//! async fn async_fn_name() -> Result<(), ()> {
+//! Ok(())
+//! }
+//! fn sync_fn_name() -> Result<(), ()> {
+//! Ok(())
+//! }
+//! }
+//!
+//! struct Foo;
+//!
+//! #[maybe_async::maybe_async(AFIT)]
+//! impl A for Foo {
+//! async fn async_fn_name() -> Result<(), ()> {
+//! Ok(())
+//! }
+//! fn sync_fn_name() -> Result<(), ()> {
+//! Ok(())
+//! }
+//! }
+//!
+//! #[maybe_async::maybe_async]
+//! async fn maybe_async_fn() -> Result<(), ()> {
+//! let a = Foo::async_fn_name().await?;
+//!
+//! let b = Foo::sync_fn_name()?;
+//! Ok(())
+//! }
+//! ```
+//!
+//! When `maybe-async` feature gate `is_sync` is **NOT** set, the generated code
+//! is async code:
+//!
+//! ```rust
+//! // Compiled code when `is_sync` is toggled off.
+//! trait A {
+//! async fn maybe_async_fn_name() -> Result<(), ()> {
+//! Ok(())
+//! }
+//! fn sync_fn_name() -> Result<(), ()> {
+//! Ok(())
+//! }
+//! }
+//!
+//! struct Foo;
+//!
+//! impl A for Foo {
+//! async fn maybe_async_fn_name() -> Result<(), ()> {
+//! Ok(())
+//! }
+//! fn sync_fn_name() -> Result<(), ()> {
+//! Ok(())
+//! }
+//! }
+//!
+//! async fn maybe_async_fn() -> Result<(), ()> {
+//! let a = Foo::maybe_async_fn_name().await?;
+//! let b = Foo::sync_fn_name()?;
+//! Ok(())
+//! }
+//! ```
+//!
+//! When `maybe-async` feature gate `is_sync` is set, all async keyword is
+//! ignored and yields a sync version code:
+//!
+//! ```rust
+//! // Compiled code when `is_sync` is toggled on.
+//! trait A {
+//! fn maybe_async_fn_name() -> Result<(), ()> {
+//! Ok(())
+//! }
+//! fn sync_fn_name() -> Result<(), ()> {
+//! Ok(())
+//! }
+//! }
+//!
+//! struct Foo;
+//!
+//! impl A for Foo {
+//! fn maybe_async_fn_name() -> Result<(), ()> {
+//! Ok(())
+//! }
+//! fn sync_fn_name() -> Result<(), ()> {
+//! Ok(())
+//! }
+//! }
+//!
+//! fn maybe_async_fn() -> Result<(), ()> {
+//! let a = Foo::maybe_async_fn_name()?;
+//! let b = Foo::sync_fn_name()?;
+//! Ok(())
+//! }
+//! ```
+//!
+//! ## Examples
+//!
+//! ### rust client for services
+//!
+//! When implementing rust client for any services, like awz3. The higher level
+//! API of async and sync version is almost the same, such as creating or
+//! deleting a bucket, retrieving an object, etc.
+//!
+//! The example `service_client` is a proof of concept that `maybe_async` can
+//! actually free us from writing almost the same code for sync and async. We
+//! can toggle between a sync AWZ3 client and async one by `is_sync` feature
+//! gate when we add `maybe-async` to dependency.
+//!
+//!
+//! # License
+//! MIT
+
+extern crate proc_macro;
+
+use proc_macro::TokenStream;
+
+use proc_macro2::{Span, TokenStream as TokenStream2};
+use syn::{
+ ext::IdentExt,
+ parenthesized,
+ parse::{ParseStream, Parser},
+ parse_macro_input, token, Ident, ImplItem, LitStr, Meta, Result, Token, TraitItem,
+};
+
+use quote::quote;
+
+use crate::{parse::Item, visit::AsyncAwaitRemoval};
+
+mod parse;
+mod visit;
+enum AsyncTraitMode {
+ Send,
+ NotSend,
+ Off,
+}
+
+fn convert_async(input: &mut Item, async_trait_mode: AsyncTraitMode) -> TokenStream2 {
+ match input {
+ Item::Trait(item) => match async_trait_mode {
+ AsyncTraitMode::Send => quote!(#[async_trait::async_trait]#item),
+ AsyncTraitMode::NotSend => quote!(#[async_trait::async_trait(?Send)]#item),
+ AsyncTraitMode::Off => quote!(#item),
+ },
+ Item::Impl(item) => {
+ let async_trait_mode = item
+ .trait_
+ .as_ref()
+ .map_or(AsyncTraitMode::Off, |_| async_trait_mode);
+ match async_trait_mode {
+ AsyncTraitMode::Send => quote!(#[async_trait::async_trait]#item),
+ AsyncTraitMode::NotSend => quote!(#[async_trait::async_trait(?Send)]#item),
+ AsyncTraitMode::Off => quote!(#item),
+ }
+ }
+ Item::Fn(item) => quote!(#item),
+ Item::Static(item) => quote!(#item),
+ }
+}
+
+fn convert_sync(input: &mut Item) -> TokenStream2 {
+ match input {
+ Item::Impl(item) => {
+ for inner in &mut item.items {
+ if let ImplItem::Fn(ref mut method) = inner {
+ if method.sig.asyncness.is_some() {
+ method.sig.asyncness = None;
+ }
+ }
+ }
+ AsyncAwaitRemoval.remove_async_await(quote!(#item))
+ }
+ Item::Trait(item) => {
+ for inner in &mut item.items {
+ if let TraitItem::Fn(ref mut method) = inner {
+ if method.sig.asyncness.is_some() {
+ method.sig.asyncness = None;
+ }
+ }
+ }
+ AsyncAwaitRemoval.remove_async_await(quote!(#item))
+ }
+ Item::Fn(item) => {
+ if item.sig.asyncness.is_some() {
+ item.sig.asyncness = None;
+ }
+ AsyncAwaitRemoval.remove_async_await(quote!(#item))
+ }
+ Item::Static(item) => AsyncAwaitRemoval.remove_async_await(quote!(#item)),
+ }
+}
+
+fn async_mode(arg: &str) -> Result<AsyncTraitMode> {
+ match arg {
+ "" | "Send" => Ok(AsyncTraitMode::Send),
+ "?Send" => Ok(AsyncTraitMode::NotSend),
+ // acronym for Async Function in Trait,
+ // TODO make AFIT as default in future release
+ "AFIT" => Ok(AsyncTraitMode::Off),
+ _ => Err(syn::Error::new(
+ Span::call_site(),
+ "Only accepts `Send`, `?Send` or `AFIT` (native async function in trait)",
+ )),
+ }
+}
+
+/// maybe_async attribute macro
+///
+/// Can be applied to trait item, trait impl, functions and struct impls.
+#[proc_macro_attribute]
+pub fn maybe_async(args: TokenStream, input: TokenStream) -> TokenStream {
+ let mode = match async_mode(args.to_string().replace(" ", "").as_str()) {
+ Ok(m) => m,
+ Err(e) => return e.to_compile_error().into(),
+ };
+ let mut item = parse_macro_input!(input as Item);
+
+ let token = if cfg!(feature = "is_sync") {
+ convert_sync(&mut item)
+ } else {
+ convert_async(&mut item, mode)
+ };
+ token.into()
+}
+
+/// convert marked async code to async code with `async-trait`
+#[proc_macro_attribute]
+pub fn must_be_async(args: TokenStream, input: TokenStream) -> TokenStream {
+ let mode = match async_mode(args.to_string().replace(" ", "").as_str()) {
+ Ok(m) => m,
+ Err(e) => return e.to_compile_error().into(),
+ };
+ let mut item = parse_macro_input!(input as Item);
+ convert_async(&mut item, mode).into()
+}
+
+/// convert marked async code to sync code
+#[proc_macro_attribute]
+pub fn must_be_sync(_args: TokenStream, input: TokenStream) -> TokenStream {
+ let mut item = parse_macro_input!(input as Item);
+ convert_sync(&mut item).into()
+}
+
+/// mark sync implementation
+///
+/// only compiled when `is_sync` feature gate is set.
+/// When `is_sync` is not set, marked code is removed.
+#[proc_macro_attribute]
+pub fn sync_impl(_args: TokenStream, input: TokenStream) -> TokenStream {
+ let input = TokenStream2::from(input);
+ let token = if cfg!(feature = "is_sync") {
+ quote!(#input)
+ } else {
+ quote!()
+ };
+ token.into()
+}
+
+/// mark async implementation
+///
+/// only compiled when `is_sync` feature gate is not set.
+/// When `is_sync` is set, marked code is removed.
+#[proc_macro_attribute]
+pub fn async_impl(args: TokenStream, _input: TokenStream) -> TokenStream {
+ let mode = match async_mode(args.to_string().replace(" ", "").as_str()) {
+ Ok(m) => m,
+ Err(e) => return e.to_compile_error().into(),
+ };
+ let token = if cfg!(feature = "is_sync") {
+ quote!()
+ } else {
+ let mut item = parse_macro_input!(_input as Item);
+ convert_async(&mut item, mode)
+ };
+ token.into()
+}
+
+fn parse_nested_meta_or_str(input: ParseStream) -> Result<TokenStream2> {
+ if let Some(s) = input.parse::<Option<LitStr>>()? {
+ let tokens = s.value().parse()?;
+ Ok(tokens)
+ } else {
+ let meta: Meta = input.parse()?;
+ Ok(quote!(#meta))
+ }
+}
+
+/// Handy macro to unify test code of sync and async code
+///
+/// Since the API of both sync and async code are the same,
+/// with only difference that async functions must be awaited.
+/// So it's tedious to write unit sync and async respectively.
+///
+/// This macro helps unify the sync and async unit test code.
+/// Pass the condition to treat test code as sync as the first
+/// argument. And specify the condition when to treat test code
+/// as async and the lib to run async test, e.x. `async-std::test`,
+/// `tokio::test`, or any valid attribute macro.
+///
+/// **ATTENTION**: do not write await inside a assert macro
+///
+/// - Examples
+///
+/// ```rust
+/// #[maybe_async::maybe_async]
+/// async fn async_fn() -> bool {
+/// true
+/// }
+///
+/// #[maybe_async::test(
+/// // when to treat the test code as sync version
+/// feature="is_sync",
+/// // when to run async test
+/// async(all(not(feature="is_sync"), feature="async_std"), async_std::test),
+/// // you can specify multiple conditions for different async runtime
+/// async(all(not(feature="is_sync"), feature="tokio"), tokio::test)
+/// )]
+/// async fn test_async_fn() {
+/// let res = async_fn().await;
+/// assert_eq!(res, true);
+/// }
+///
+/// // Only run test in sync version
+/// #[maybe_async::test(feature = "is_sync")]
+/// async fn test_sync_fn() {
+/// let res = async_fn().await;
+/// assert_eq!(res, true);
+/// }
+/// ```
+///
+/// The above code is transcripted to the following code:
+///
+/// ```rust
+/// # use maybe_async::{must_be_async, must_be_sync, sync_impl};
+/// # #[maybe_async::maybe_async]
+/// # async fn async_fn() -> bool { true }
+///
+/// // convert to sync version when sync condition is met, keep in async version when corresponding
+/// // condition is met
+/// #[cfg_attr(feature = "is_sync", must_be_sync, test)]
+/// #[cfg_attr(
+/// all(not(feature = "is_sync"), feature = "async_std"),
+/// must_be_async,
+/// async_std::test
+/// )]
+/// #[cfg_attr(
+/// all(not(feature = "is_sync"), feature = "tokio"),
+/// must_be_async,
+/// tokio::test
+/// )]
+/// async fn test_async_fn() {
+/// let res = async_fn().await;
+/// assert_eq!(res, true);
+/// }
+///
+/// // force converted to sync function, and only compile on sync condition
+/// #[cfg(feature = "is_sync")]
+/// #[test]
+/// fn test_sync_fn() {
+/// let res = async_fn();
+/// assert_eq!(res, true);
+/// }
+/// ```
+#[proc_macro_attribute]
+pub fn test(args: TokenStream, input: TokenStream) -> TokenStream {
+ match parse_test_cfg.parse(args) {
+ Ok(test_cfg) => [test_cfg.into(), input].into_iter().collect(),
+ Err(err) => err.to_compile_error().into(),
+ }
+}
+
+fn parse_test_cfg(input: ParseStream) -> Result<TokenStream2> {
+ if input.is_empty() {
+ return Err(syn::Error::new(
+ Span::call_site(),
+ "Arguments cannot be empty, at least specify the condition for sync code",
+ ));
+ }
+
+ // The first attributes indicates sync condition
+ let sync_cond = input.call(parse_nested_meta_or_str)?;
+ let mut ts = quote!(#[cfg_attr(#sync_cond, maybe_async::must_be_sync, test)]);
+
+ // The rest attributes indicates async condition and async test macro
+ // only accepts in the forms of `async(cond, test_macro)`, but `cond` and
+ // `test_macro` can be either meta attributes or string literal
+ let mut async_conditions = Vec::new();
+ while !input.is_empty() {
+ input.parse::<Token![,]>()?;
+ if input.is_empty() {
+ break;
+ }
+
+ if !input.peek(Ident::peek_any) {
+ return Err(
+ input.error("Must be list of metas like: `async(condition, async_test_macro)`")
+ );
+ }
+ let name = input.call(Ident::parse_any)?;
+ if name != "async" {
+ return Err(syn::Error::new(
+ name.span(),
+ format!("Unknown path: `{}`, must be `async`", name),
+ ));
+ }
+
+ if !input.peek(token::Paren) {
+ return Err(
+ input.error("Must be list of metas like: `async(condition, async_test_macro)`")
+ );
+ }
+
+ let nested;
+ parenthesized!(nested in input);
+ let list = nested.parse_terminated(parse_nested_meta_or_str, Token![,])?;
+ let len = list.len();
+ let mut iter = list.into_iter();
+ let (Some(async_cond), Some(async_test), None) = (iter.next(), iter.next(), iter.next())
+ else {
+ let msg = format!(
+ "Must pass two metas or string literals like `async(condition, \
+ async_test_macro)`, you passed {len} metas.",
+ );
+ return Err(syn::Error::new(name.span(), msg));
+ };
+
+ let attr = quote!(
+ #[cfg_attr(#async_cond, maybe_async::must_be_async, #async_test)]
+ );
+ async_conditions.push(async_cond);
+ ts.extend(attr);
+ }
+
+ Ok(if !async_conditions.is_empty() {
+ quote! {
+ #[cfg(any(#sync_cond, #(#async_conditions),*))]
+ #ts
+ }
+ } else {
+ quote! {
+ #[cfg(#sync_cond)]
+ #ts
+ }
+ })
+}
diff --git a/src/parse.rs b/src/parse.rs
new file mode 100644
index 0000000..3824ce7
--- /dev/null
+++ b/src/parse.rs
@@ -0,0 +1,43 @@
+use proc_macro2::Span;
+use syn::{
+ parse::{discouraged::Speculative, Parse, ParseStream, Result},
+ Attribute, Error, ItemFn, ItemImpl, ItemStatic, ItemTrait,
+};
+
+pub enum Item {
+ Trait(ItemTrait),
+ Impl(ItemImpl),
+ Fn(ItemFn),
+ Static(ItemStatic),
+}
+
+macro_rules! fork {
+ ($fork:ident = $input:ident) => {{
+ $fork = $input.fork();
+ &$fork
+ }};
+}
+
+impl Parse for Item {
+ fn parse(input: ParseStream) -> Result<Self> {
+ let attrs = input.call(Attribute::parse_outer)?;
+ let mut fork;
+ let item = if let Ok(mut item) = fork!(fork = input).parse::<ItemImpl>() {
+ item.attrs = attrs;
+ Item::Impl(item)
+ } else if let Ok(mut item) = fork!(fork = input).parse::<ItemTrait>() {
+ item.attrs = attrs;
+ Item::Trait(item)
+ } else if let Ok(mut item) = fork!(fork = input).parse::<ItemFn>() {
+ item.attrs = attrs;
+ Item::Fn(item)
+ } else if let Ok(mut item) = fork!(fork = input).parse::<ItemStatic>() {
+ item.attrs = attrs;
+ Item::Static(item)
+ } else {
+ return Err(Error::new(Span::call_site(), "expected impl, trait or fn"));
+ };
+ input.advance_to(&fork);
+ Ok(item)
+ }
+}
diff --git a/src/visit.rs b/src/visit.rs
new file mode 100644
index 0000000..d63063a
--- /dev/null
+++ b/src/visit.rs
@@ -0,0 +1,187 @@
+use proc_macro2::TokenStream;
+use quote::quote;
+use syn::{
+ visit_mut::{self, visit_item_mut, visit_path_segment_mut, VisitMut},
+ Expr, ExprBlock, File, GenericArgument, GenericParam, Item, PathArguments, PathSegment, Stmt,
+ Type, TypeParamBound, WherePredicate,
+};
+
+pub struct ReplaceGenericType<'a> {
+ generic_type: &'a str,
+ arg_type: &'a PathSegment,
+}
+
+impl<'a> ReplaceGenericType<'a> {
+ pub fn new(generic_type: &'a str, arg_type: &'a PathSegment) -> Self {
+ Self {
+ generic_type,
+ arg_type,
+ }
+ }
+
+ pub fn replace_generic_type(item: &mut Item, generic_type: &'a str, arg_type: &'a PathSegment) {
+ let mut s = Self::new(generic_type, arg_type);
+ s.visit_item_mut(item);
+ }
+}
+
+impl<'a> VisitMut for ReplaceGenericType<'a> {
+ fn visit_item_mut(&mut self, i: &mut Item) {
+ if let Item::Fn(item_fn) = i {
+ // remove generic type from generics <T, F>
+ let args = item_fn
+ .sig
+ .generics
+ .params
+ .iter()
+ .filter_map(|param| {
+ if let GenericParam::Type(type_param) = &param {
+ if type_param.ident.to_string().eq(self.generic_type) {
+ None
+ } else {
+ Some(param)
+ }
+ } else {
+ Some(param)
+ }
+ })
+ .collect::<Vec<_>>();
+ item_fn.sig.generics.params = args.into_iter().cloned().collect();
+
+ // remove generic type from where clause
+ if let Some(where_clause) = &mut item_fn.sig.generics.where_clause {
+ let new_where_clause = where_clause
+ .predicates
+ .iter()
+ .filter_map(|predicate| {
+ if let WherePredicate::Type(predicate_type) = predicate {
+ if let Type::Path(p) = &predicate_type.bounded_ty {
+ if p.path.segments[0].ident.to_string().eq(self.generic_type) {
+ None
+ } else {
+ Some(predicate)
+ }
+ } else {
+ Some(predicate)
+ }
+ } else {
+ Some(predicate)
+ }
+ })
+ .collect::<Vec<_>>();
+
+ where_clause.predicates = new_where_clause.into_iter().cloned().collect();
+ };
+ }
+ visit_item_mut(self, i)
+ }
+ fn visit_path_segment_mut(&mut self, i: &mut PathSegment) {
+ // replace generic type with target type
+ if i.ident.to_string().eq(&self.generic_type) {
+ *i = self.arg_type.clone();
+ }
+ visit_path_segment_mut(self, i);
+ }
+}
+
+pub struct AsyncAwaitRemoval;
+
+impl AsyncAwaitRemoval {
+ pub fn remove_async_await(&mut self, item: TokenStream) -> TokenStream {
+ let mut syntax_tree: File = syn::parse(item.into()).unwrap();
+ self.visit_file_mut(&mut syntax_tree);
+ quote!(#syntax_tree)
+ }
+}
+
+impl VisitMut for AsyncAwaitRemoval {
+ fn visit_expr_mut(&mut self, node: &mut Expr) {
+ // Delegate to the default impl to visit nested expressions.
+ visit_mut::visit_expr_mut(self, node);
+
+ match node {
+ Expr::Await(expr) => *node = (*expr.base).clone(),
+
+ Expr::Async(expr) => {
+ let inner = &expr.block;
+ let sync_expr = if let [Stmt::Expr(expr, None)] = inner.stmts.as_slice() {
+ // remove useless braces when there is only one statement
+ expr.clone()
+ } else {
+ Expr::Block(ExprBlock {
+ attrs: expr.attrs.clone(),
+ block: inner.clone(),
+ label: None,
+ })
+ };
+ *node = sync_expr;
+ }
+ _ => {}
+ }
+ }
+
+ fn visit_item_mut(&mut self, i: &mut Item) {
+ // find generic parameter of Future and replace it with its Output type
+ if let Item::Fn(item_fn) = i {
+ let mut inputs: Vec<(String, PathSegment)> = vec![];
+
+ // generic params: <T:Future<Output=()>, F>
+ for param in &item_fn.sig.generics.params {
+ // generic param: T:Future<Output=()>
+ if let GenericParam::Type(type_param) = param {
+ let generic_type_name = type_param.ident.to_string();
+
+ // bound: Future<Output=()>
+ for bound in &type_param.bounds {
+ inputs.extend(search_trait_bound(&generic_type_name, bound));
+ }
+ }
+ }
+
+ if let Some(where_clause) = &item_fn.sig.generics.where_clause {
+ for predicate in &where_clause.predicates {
+ if let WherePredicate::Type(predicate_type) = predicate {
+ let generic_type_name = if let Type::Path(p) = &predicate_type.bounded_ty {
+ p.path.segments[0].ident.to_string()
+ } else {
+ panic!("Please submit an issue");
+ };
+
+ for bound in &predicate_type.bounds {
+ inputs.extend(search_trait_bound(&generic_type_name, bound));
+ }
+ }
+ }
+ }
+
+ for (generic_type_name, path_seg) in &inputs {
+ ReplaceGenericType::replace_generic_type(i, generic_type_name, path_seg);
+ }
+ }
+ visit_item_mut(self, i);
+ }
+}
+
+fn search_trait_bound(
+ generic_type_name: &str,
+ bound: &TypeParamBound,
+) -> Vec<(String, PathSegment)> {
+ let mut inputs = vec![];
+
+ if let TypeParamBound::Trait(trait_bound) = bound {
+ let segment = &trait_bound.path.segments[trait_bound.path.segments.len() - 1];
+ let name = segment.ident.to_string();
+ if name.eq("Future") {
+ // match Future<Output=Type>
+ if let PathArguments::AngleBracketed(args) = &segment.arguments {
+ // binding: Output=Type
+ if let GenericArgument::AssocType(binding) = &args.args[0] {
+ if let Type::Path(p) = &binding.ty {
+ inputs.push((generic_type_name.to_owned(), p.path.segments[0].clone()));
+ }
+ }
+ }
+ }
+ }
+ inputs
+}
diff --git a/tests/test.rs b/tests/test.rs
new file mode 100644
index 0000000..4062e39
--- /dev/null
+++ b/tests/test.rs
@@ -0,0 +1,15 @@
+#[test]
+fn ui() {
+ let t = trybuild::TestCases::new();
+ t.pass("tests/ui/01-maybe-async.rs");
+ t.pass("tests/ui/02-must-be-async.rs");
+ t.pass("tests/ui/03-must-be-sync.rs");
+ t.pass("tests/ui/04-unit-test-util.rs");
+ t.pass("tests/ui/05-replace-future-generic-type-with-output.rs");
+ t.pass("tests/ui/06-sync_impl_async_impl.rs");
+
+ t.compile_fail("tests/ui/test_fail/01-empty-test.rs");
+ t.compile_fail("tests/ui/test_fail/02-unknown-path.rs");
+ t.compile_fail("tests/ui/test_fail/03-async-gt2.rs");
+ t.compile_fail("tests/ui/test_fail/04-bad-sync-cond.rs");
+}
diff --git a/tests/ui/01-maybe-async.rs b/tests/ui/01-maybe-async.rs
new file mode 100644
index 0000000..2222ff6
--- /dev/null
+++ b/tests/ui/01-maybe-async.rs
@@ -0,0 +1,122 @@
+#![allow(dead_code)]
+
+use maybe_async::maybe_async;
+
+#[maybe_async(Send)]
+trait Trait {
+ fn sync_fn() {}
+
+ async fn declare_async(&self);
+
+ async fn async_fn(&self) {
+ self.declare_async().await
+ }
+}
+
+#[maybe_async(?Send)]
+pub trait PubTrait {
+ fn sync_fn() {}
+
+ async fn declare_async(&self);
+
+ async fn async_fn(&self) {
+ self.declare_async().await
+ }
+}
+
+#[maybe_async]
+pub(crate) trait PubCrateTrait {
+ fn sync_fn() {}
+
+ async fn declare_async(&self);
+
+ async fn async_fn(&self) {
+ self.declare_async().await
+ }
+}
+
+#[maybe_async(AFIT)]
+trait AfitTrait {
+ fn sync_fn_afit() {}
+
+ async fn declare_async_afit(&self);
+
+ async fn async_fn_afit(&self) {
+ self.declare_async_afit().await
+ }
+}
+
+#[maybe_async]
+async fn async_fn() {}
+
+#[maybe_async]
+pub async fn pub_async_fn() {}
+
+#[maybe_async]
+pub(crate) async fn pub_crate_async_fn() {}
+
+#[maybe_async]
+unsafe fn unsafe_fn() {}
+
+struct Struct;
+
+#[maybe_async]
+impl Struct {
+ fn sync_fn_inherent() {}
+
+ async fn declare_async_inherent(&self) {}
+
+ async fn async_fn_inherent(&self) {
+ async { self.declare_async_inherent().await }.await
+ }
+}
+
+#[maybe_async]
+impl Trait for Struct {
+ fn sync_fn() {}
+
+ async fn declare_async(&self) {}
+
+ async fn async_fn(&self) {
+ async { self.declare_async().await }.await
+ }
+}
+
+#[maybe_async(AFIT)]
+impl AfitTrait for Struct {
+ fn sync_fn_afit() {}
+
+ async fn declare_async_afit(&self) {}
+
+ async fn async_fn_afit(&self) {
+ async { self.declare_async_afit().await }.await
+ }
+}
+
+#[cfg(feature = "is_sync")]
+fn main() -> std::result::Result<(), ()> {
+ let s = Struct;
+ s.declare_async_inherent();
+ s.async_fn_inherent();
+ s.declare_async();
+ s.async_fn();
+ s.declare_async_afit();
+ s.async_fn_afit();
+ async_fn();
+ pub_async_fn();
+ Ok(())
+}
+
+#[cfg(not(feature = "is_sync"))]
+#[async_std::main]
+async fn main() {
+ let s = Struct;
+ s.declare_async_inherent().await;
+ s.async_fn_inherent().await;
+ s.declare_async().await;
+ s.async_fn().await;
+ s.declare_async_afit().await;
+ s.async_fn_afit().await;
+ async_fn().await;
+ pub_async_fn().await;
+}
diff --git a/tests/ui/02-must-be-async.rs b/tests/ui/02-must-be-async.rs
new file mode 100644
index 0000000..c44e288
--- /dev/null
+++ b/tests/ui/02-must-be-async.rs
@@ -0,0 +1,134 @@
+#![allow(dead_code)]
+
+#[maybe_async::maybe_async]
+trait Trait {
+ fn sync_fn() {}
+
+ async fn declare_async(&self);
+
+ async fn async_fn(&self) {
+ self.declare_async().await
+ }
+}
+
+#[maybe_async::maybe_async(?Send)]
+trait NotSendTrait {
+ async fn declare_async_not_send(&self);
+
+ async fn async_fn_not_send(&self) {
+ self.declare_async_not_send().await
+ }
+}
+
+#[maybe_async::maybe_async]
+pub trait PubTrait {
+ fn sync_fn() {}
+
+ async fn declare_async(&self);
+
+ async fn async_fn(&self) {
+ self.declare_async().await
+ }
+}
+
+#[maybe_async::maybe_async]
+pub(crate) trait PubCrateTrait {
+ fn sync_fn() {}
+
+ async fn declare_async(&self);
+
+ async fn async_fn(&self) {
+ self.declare_async().await
+ }
+}
+
+#[maybe_async::maybe_async(AFIT)]
+trait AfitTrait {
+ fn sync_fn_afit() {}
+
+ async fn declare_async_afit(&self);
+
+ async fn async_fn_afit(&self) {
+ self.declare_async_afit().await
+ }
+}
+
+#[cfg(not(feature = "is_sync"))]
+#[maybe_async::must_be_async]
+async fn async_fn() {}
+
+#[cfg(not(feature = "is_sync"))]
+#[maybe_async::must_be_async]
+pub async fn pub_async_fn() {}
+
+#[cfg(not(feature = "is_sync"))]
+#[maybe_async::maybe_async]
+pub(crate) async fn pub_crate_async_fn() {}
+
+#[cfg(not(feature = "is_sync"))]
+#[maybe_async::maybe_async]
+unsafe fn unsafe_fn() {}
+
+struct Struct;
+
+#[cfg(not(feature = "is_sync"))]
+#[maybe_async::must_be_async]
+impl Struct {
+ fn sync_fn_inherent() {}
+
+ async fn declare_async_inherent(&self) {}
+
+ async fn async_fn_inherent(&self) {
+ async { self.declare_async_inherent().await }.await
+ }
+}
+
+#[cfg(not(feature = "is_sync"))]
+#[maybe_async::must_be_async]
+impl Trait for Struct {
+ fn sync_fn() {}
+
+ async fn declare_async(&self) {}
+
+ async fn async_fn(&self) {
+ async { self.declare_async().await }.await
+ }
+}
+
+#[cfg(not(feature = "is_sync"))]
+#[maybe_async::must_be_async(?Send)]
+impl NotSendTrait for Struct {
+ async fn declare_async_not_send(&self) {}
+
+ async fn async_fn_not_send(&self) {
+ async { self.declare_async_not_send().await }.await
+ }
+}
+#[cfg(not(feature = "is_sync"))]
+#[maybe_async::must_be_async(AFIT)]
+impl AfitTrait for Struct {
+ fn sync_fn_afit() {}
+
+ async fn declare_async_afit(&self) {}
+
+ async fn async_fn_afit(&self) {
+ async { self.declare_async_afit().await }.await
+ }
+}
+
+#[cfg(feature = "is_sync")]
+fn main() {}
+
+#[cfg(not(feature = "is_sync"))]
+#[async_std::main]
+async fn main() {
+ let s = Struct;
+ s.declare_async_inherent().await;
+ s.async_fn_inherent().await;
+ s.declare_async().await;
+ s.async_fn().await;
+ s.declare_async_afit().await;
+ s.async_fn_afit().await;
+ async_fn().await;
+ pub_async_fn().await;
+}
diff --git a/tests/ui/03-must-be-sync.rs b/tests/ui/03-must-be-sync.rs
new file mode 100644
index 0000000..da1cfa8
--- /dev/null
+++ b/tests/ui/03-must-be-sync.rs
@@ -0,0 +1,88 @@
+#![allow(dead_code)]
+
+#[maybe_async::maybe_async]
+trait Trait {
+ fn sync_fn() {}
+
+ async fn declare_async(&self);
+
+ async fn async_fn(&self) {
+ self.declare_async().await
+ }
+}
+
+#[maybe_async::maybe_async]
+pub trait PubTrait {
+ fn sync_fn() {}
+
+ async fn declare_async(&self);
+
+ async fn async_fn(&self) {
+ self.declare_async().await
+ }
+}
+
+#[maybe_async::maybe_async]
+pub(crate) trait PubCrateTrait {
+ fn sync_fn() {}
+
+ async fn declare_async(&self);
+
+ async fn async_fn(&self) {
+ self.declare_async().await
+ }
+}
+
+#[maybe_async::maybe_async]
+async fn async_fn() {}
+
+#[maybe_async::maybe_async]
+pub async fn pub_async_fn() {}
+
+#[maybe_async::maybe_async]
+pub(crate) async fn pub_crate_async_fn() {}
+
+#[maybe_async::maybe_async]
+unsafe fn unsafe_fn() {}
+
+struct Struct;
+
+#[cfg(feature = "is_sync")]
+#[maybe_async::must_be_sync]
+impl Struct {
+ fn sync_fn_inherent() {}
+
+ async fn declare_async_inherent(&self) {}
+
+ async fn async_fn_inherent(&self) {
+ async { self.declare_async_inherent().await }.await
+ }
+}
+
+#[cfg(feature = "is_sync")]
+#[maybe_async::must_be_sync]
+impl Trait for Struct {
+ fn sync_fn() {}
+
+ async fn declare_async(&self) {}
+
+ async fn async_fn(&self) {
+ async { self.declare_async().await }.await
+ }
+}
+
+#[cfg(feature = "is_sync")]
+fn main() -> std::result::Result<(), ()> {
+ let s = Struct;
+ s.declare_async_inherent();
+ s.async_fn_inherent();
+ s.declare_async();
+ s.async_fn();
+ async_fn();
+ pub_async_fn();
+ Ok(())
+}
+
+#[cfg(not(feature = "is_sync"))]
+#[async_std::main]
+async fn main() {}
diff --git a/tests/ui/04-unit-test-util.rs b/tests/ui/04-unit-test-util.rs
new file mode 100644
index 0000000..4642e1f
--- /dev/null
+++ b/tests/ui/04-unit-test-util.rs
@@ -0,0 +1,38 @@
+use maybe_async::maybe_async;
+
+#[maybe_async]
+async fn async_fn() -> bool {
+ true
+}
+
+#[maybe_async::test(
+feature = "is_sync",
+async(all(not(feature="is_sync"), feature = "async_std"), async_std::test),
+async(all(not(feature="is_sync"), feature = "tokio"), tokio::test)
+)]
+async fn test_async_fn() {
+ let res = async_fn().await;
+ assert_eq!(res, true);
+}
+
+#[maybe_async::test(feature = "is_sync", async(not(feature = "is_sync"), async_std::test))]
+async fn test_async_fn2() {
+ let res = async_fn().await;
+ assert_eq!(res, true);
+}
+
+#[maybe_async::test("feature=\"is_sync\"", async(not(feature = "is_sync"), async_std::test))]
+async fn test_async_fn3() {
+ let res = async_fn().await;
+ assert_eq!(res, true);
+}
+
+#[maybe_async::test(feature = "is_sync", async("not(feature = \"is_sync\")", "async_std::test"))]
+async fn test_async_fn4() {
+ let res = async_fn().await;
+ assert_eq!(res, true);
+}
+
+fn main() {
+
+}
diff --git a/tests/ui/05-replace-future-generic-type-with-output.rs b/tests/ui/05-replace-future-generic-type-with-output.rs
new file mode 100644
index 0000000..2410580
--- /dev/null
+++ b/tests/ui/05-replace-future-generic-type-with-output.rs
@@ -0,0 +1,34 @@
+#![allow(unused_imports)]
+use std::future::Future;
+
+#[maybe_async::maybe_async]
+pub async fn with_fn<T, F: Sync + std::future::Future<Output = Result<(), ()>>>(
+ test: T,
+) -> Result<(), ()>
+ where
+ T: FnOnce() -> F,
+{
+ test().await
+}
+
+#[maybe_async::maybe_async]
+pub async fn with_fn_where<T, F>(test: T) -> Result<(), ()>
+ where
+ T: FnOnce() -> F,
+ F: Sync + Future<Output = Result<(), ()>>,
+{
+ test().await
+}
+
+#[maybe_async::sync_impl]
+fn main() {
+ with_fn(|| Ok(())).unwrap();
+ with_fn_where(|| Ok(())).unwrap();
+}
+
+#[maybe_async::async_impl]
+#[tokio::main]
+async fn main() {
+ with_fn(|| async { Ok(()) }).await.unwrap();
+ with_fn_where(|| async { Ok(()) }).await.unwrap();
+}
diff --git a/tests/ui/06-sync_impl_async_impl.rs b/tests/ui/06-sync_impl_async_impl.rs
new file mode 100644
index 0000000..68605fa
--- /dev/null
+++ b/tests/ui/06-sync_impl_async_impl.rs
@@ -0,0 +1,44 @@
+#![allow(dead_code, unused_variables)]
+
+/// InnerClient differ a lot between sync and async.
+#[maybe_async::maybe_async]
+trait Trait {
+ async fn maybe_async_fn();
+}
+
+/// The higher level API for end user.
+pub struct Struct;
+
+/// Synchronous implementation, only compiles when `is_sync` feature is off.
+/// Else the compiler will complain that *request is defined multiple times* and
+/// blabla.
+#[maybe_async::sync_impl]
+impl Trait for Struct {
+ fn maybe_async_fn() { }
+}
+
+/// Asynchronous implementation, only compiles when `is_sync` feature is off.
+#[maybe_async::async_impl]
+impl Trait for Struct {
+ async fn maybe_async_fn() { }
+}
+
+impl Struct {
+ #[maybe_async::maybe_async]
+ async fn another_maybe_async_fn() {
+ Self::maybe_async_fn().await
+ // When `is_sync` is toggle on, this block will compiles to:
+ // Self::maybe_async_fn()
+ }
+}
+
+#[maybe_async::sync_impl]
+fn main() {
+ let _ = Struct::another_maybe_async_fn();
+}
+
+#[maybe_async::async_impl]
+#[tokio::main]
+async fn main() {
+ let _ = Struct::another_maybe_async_fn().await;
+}
diff --git a/tests/ui/test_fail/01-empty-test.rs b/tests/ui/test_fail/01-empty-test.rs
new file mode 100644
index 0000000..f409e73
--- /dev/null
+++ b/tests/ui/test_fail/01-empty-test.rs
@@ -0,0 +1,17 @@
+use maybe_async::maybe_async;
+
+#[maybe_async]
+async fn async_fn() -> bool {
+ true
+}
+
+// at least one sync condition should be specified
+#[maybe_async::test()]
+async fn test_async_fn() {
+ let res = async_fn().await;
+ assert_eq!(res, true);
+}
+
+fn main() {
+
+}
diff --git a/tests/ui/test_fail/01-empty-test.stderr b/tests/ui/test_fail/01-empty-test.stderr
new file mode 100644
index 0000000..b90d9ee
--- /dev/null
+++ b/tests/ui/test_fail/01-empty-test.stderr
@@ -0,0 +1,7 @@
+error: Arguments cannot be empty, at least specify the condition for sync code
+ --> tests/ui/test_fail/01-empty-test.rs:9:1
+ |
+9 | #[maybe_async::test()]
+ | ^^^^^^^^^^^^^^^^^^^^^^
+ |
+ = note: this error originates in the attribute macro `maybe_async::test` (in Nightly builds, run with -Z macro-backtrace for more info)
diff --git a/tests/ui/test_fail/02-unknown-path.rs b/tests/ui/test_fail/02-unknown-path.rs
new file mode 100644
index 0000000..7b79bd1
--- /dev/null
+++ b/tests/ui/test_fail/02-unknown-path.rs
@@ -0,0 +1,17 @@
+use maybe_async::maybe_async;
+
+#[maybe_async]
+async fn async_fn() -> bool {
+ true
+}
+
+// should only accept `async`
+#[maybe_async::test(feature="is_sync", unknown(not(feature="is_sync"), async_std::test))]
+async fn test_async_fn() {
+ let res = async_fn().await;
+ assert_eq!(res, true);
+}
+
+fn main() {
+
+}
diff --git a/tests/ui/test_fail/02-unknown-path.stderr b/tests/ui/test_fail/02-unknown-path.stderr
new file mode 100644
index 0000000..6a603c0
--- /dev/null
+++ b/tests/ui/test_fail/02-unknown-path.stderr
@@ -0,0 +1,5 @@
+error: Unknown path: `unknown`, must be `async`
+ --> tests/ui/test_fail/02-unknown-path.rs:9:40
+ |
+9 | #[maybe_async::test(feature="is_sync", unknown(not(feature="is_sync"), async_std::test))]
+ | ^^^^^^^
diff --git a/tests/ui/test_fail/03-async-gt2.rs b/tests/ui/test_fail/03-async-gt2.rs
new file mode 100644
index 0000000..f7313bd
--- /dev/null
+++ b/tests/ui/test_fail/03-async-gt2.rs
@@ -0,0 +1,16 @@
+use maybe_async::maybe_async;
+
+#[maybe_async]
+async fn async_fn() -> bool {
+ true
+}
+
+#[maybe_async::test(feature="is_sync", async(feature="async", async_std::test, added))]
+async fn test_async_fn() {
+ let res = async_fn().await;
+ assert_eq!(res, true);
+}
+
+fn main() {
+
+}
diff --git a/tests/ui/test_fail/03-async-gt2.stderr b/tests/ui/test_fail/03-async-gt2.stderr
new file mode 100644
index 0000000..8c051da
--- /dev/null
+++ b/tests/ui/test_fail/03-async-gt2.stderr
@@ -0,0 +1,5 @@
+error: Must pass two metas or string literals like `async(condition, async_test_macro)`, you passed 3 metas.
+ --> tests/ui/test_fail/03-async-gt2.rs:8:40
+ |
+8 | #[maybe_async::test(feature="is_sync", async(feature="async", async_std::test, added))]
+ | ^^^^^
diff --git a/tests/ui/test_fail/04-bad-sync-cond.rs b/tests/ui/test_fail/04-bad-sync-cond.rs
new file mode 100644
index 0000000..f5ad658
--- /dev/null
+++ b/tests/ui/test_fail/04-bad-sync-cond.rs
@@ -0,0 +1,17 @@
+use maybe_async::maybe_async;
+
+#[maybe_async]
+async fn async_fn() -> bool {
+ true
+}
+
+// bad sync condition
+#[maybe_async::test(unknown(feature="async", async_std::test))]
+async fn test_async_fn() {
+ let res = async_fn().await;
+ assert_eq!(res, true);
+}
+
+fn main() {
+
+} \ No newline at end of file
diff --git a/tests/ui/test_fail/04-bad-sync-cond.stderr b/tests/ui/test_fail/04-bad-sync-cond.stderr
new file mode 100644
index 0000000..97294ff
--- /dev/null
+++ b/tests/ui/test_fail/04-bad-sync-cond.stderr
@@ -0,0 +1,5 @@
+error[E0537]: invalid predicate `unknown`
+ --> tests/ui/test_fail/04-bad-sync-cond.rs:9:21
+ |
+9 | #[maybe_async::test(unknown(feature="async", async_std::test))]
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/tests/unit-test-util.rs b/tests/unit-test-util.rs
new file mode 100644
index 0000000..486fa6e
--- /dev/null
+++ b/tests/unit-test-util.rs
@@ -0,0 +1,30 @@
+use maybe_async::maybe_async;
+
+#[maybe_async]
+async fn async_fn() -> bool {
+ true
+}
+
+#[maybe_async::test(feature = "is_sync", async(not(feature = "is_sync"), async_std::test))]
+async fn test_async_fn() {
+ let res = async_fn().await;
+ assert_eq!(res, true);
+}
+
+#[maybe_async::test(feature = "is_sync", async(not(feature = "is_sync"), tokio::test))]
+async fn test_async_fn2() {
+ let res = async_fn().await;
+ assert_eq!(res, true);
+}
+
+#[maybe_async::test(feature = "is_sync")]
+async fn test_async_fn3() {
+ let res = async_fn().await;
+ assert_eq!(res, true);
+}
+
+#[maybe_async::test(feature = "is_sync")]
+async fn test_sync_fn() {
+ let res = async_fn();
+ assert_eq!(res, true);
+}