diff --git a/README.md b/README.md index eaa0799..951faf9 100644 --- a/README.md +++ b/README.md @@ -130,6 +130,13 @@ bazel run @rules_rs//tools/rust_analyzer:gen_rust_project -- --help See the upstream `rules_rust` rust-analyzer docs for editor setup details: https://bazelbuild.github.io/rules_rust/rust_analyzer.html#vscode +## Dylint + +`rules_rs` supports Bazel-native Dylint checks with target-local custom lint bundles, +so different Rust targets can opt into different project policies without sharing one +workspace-global Dylint config. See [`docs/dylint.md`](docs/dylint.md) for the design, +toolchain requirements, and a worked example. + ## Advanced Options
diff --git a/docs/dylint.md b/docs/dylint.md new file mode 100644 index 0000000..c9e2bd3 --- /dev/null +++ b/docs/dylint.md @@ -0,0 +1,221 @@ +# Dylint support design + +`rules_rs` supports [Dylint](https://github.com/trailofbits/dylint) by treating a Dylint +configuration as an explicit Bazel dependency instead of as ambient workspace state. +That choice is deliberate: Dylint itself can discover libraries from workspace metadata, +but a single repository-wide metadata block would make every Rust target inherit the +same lint set. In Bazel, the more precise abstraction is: + +```text +custom Rust lint library -> dylint_library +one reusable lint bundle -> dylint_config +one Rust target config -> lint_config = ":my_dylint_config" +one explicit check target -> rust_dylint +``` + +The resulting graph keeps custom lints local to the checks that ask for them. Two +targets in the same repository can use entirely different Dylint libraries, flags, and +`dylint.toml` content without consulting or mutating a global repository configuration. + +## Why the implementation is shaped this way + +Dylint's native execution model has three details that matter for a Bazel integration: + +1. Dylint libraries are dynamic libraries loaded into a compiler driver. +2. The driver accepts the selected libraries through `DYLINT_LIBS`. +3. Configurable libraries can consume inline `dylint.toml` content through + `DYLINT_TOML`. + +`rules_rs` uses those lower-level interfaces directly instead of shelling out to +`cargo dylint`. Doing so keeps dependency resolution, compilation, and target +selection inside Bazel while still preserving Dylint's library semantics. + +The implementation therefore has four moving pieces: + +```text +rust_shared_library --exec--> dylint_library ----+ + | + v + dylint_config + | +rust_library / rust_binary / rust_test ----------+----> rust_dylint + lint_config = ":..." | +dylint_driver toolchain -------------------------+ +``` + +- `dylint_library` wraps a host-built shared library and gives it a stable logical + library name. +- `dylint_config` collects one or more wrapped libraries plus optional extra rustc + flags and optional `dylint.toml` input. It also forwards an ordinary `LintsInfo` + provider, so it can be assigned directly to a Rust target's existing + `lint_config` attribute. +- `rust_dylint` runs a Dylint driver against explicitly listed Rust targets. The + aspect reads each target's own `lint_config`, so custom lint selection is local by + construction. +- `rust_dylint` uses a small runner binary to pass `DYLINT_LIBS`, read a TOML file into + `DYLINT_TOML`, and expose the Rust compiler dynamic libraries to the driver at + runtime on Linux, macOS, and Windows. +- If no TOML file is supplied, the runner sets `DYLINT_TOML` to an empty string. + That keeps checks hermetic: Dylint does not fall back to `cargo metadata` or + discover a workspace-global config behind Bazel's back. + +## Implementation plan + +1. Extend `rules_rs` toolchains with an opt-in `include_rustc_dev` switch that is + accepted only for nightly Rust releases. Download `rustc-dev` beside `rustc`, + expose the compiler-private `rlib`s through the Rust toolchain, and keep the + stable/default toolchain path unchanged. +2. Model Dylint data explicitly: + - `dylint_library` identifies one host-built dynamic library and its logical + Dylint name. + - `dylint_config` bundles libraries, optional TOML, optional extra rustc flags, + and any ordinary Rust lint configuration it should forward. + - `dylint_toolchain` supplies the driver executable independently of the lint + libraries selected by any one target. +3. Reuse the existing Rust target `lint_config` edge instead of inventing a second + per-target attribute. A `dylint_config` also forwards `LintsInfo`, so a target + can keep one lint configuration reference while the Dylint aspect reads the + richer provider from that same dependency. +4. Implement `rust_dylint` as an aspect-backed explicit check rule. The aspect is + responsible for reconstructing the checked Rust action from the original target, + preserving the target's ordinary deps, aliases, flags, and source shape while + loading only that target's selected Dylint libraries. +5. Add a tiny runner binary between the Bazel action and the Dylint driver. It + converts structured Bazel inputs into Dylint's environment-based protocol, + supplies an empty TOML config when none is requested, and makes the Rust + compiler dynamic libraries visible to the driver at runtime. +6. Verify the model with an integration example containing two Rust targets built + from the same source file but assigned different `dylint_config` targets. The + test must prove positive and negative selection: alpha sees only the alpha lint, + beta sees only the beta lint. + +## Alternatives considered + +- **Repository-global Dylint metadata:** rejected because it collapses every target + into one lint universe and directly conflicts with per-project custom policies. +- **Shelling out to `cargo dylint`:** rejected because it would hand source + discovery, dependency resolution, and configuration lookup back to Cargo instead + of the Bazel graph. +- **A direct lint rule that takes a target label and a config label:** rejected + because it cannot faithfully reconstruct all of a Rust target's compile inputs + from outside that target. An aspect can observe the original rule attributes and + files, which is the same reason `rules_rust` uses aspects for comparable checks. + +## Toolchain requirements + +Custom Dylint libraries use `#![feature(rustc_private)]`, so they require a nightly +Rust toolchain with the `rustc-dev` component available. `rules_rs` toolchains expose +that opt-in as `include_rustc_dev = True`: + +```bzl +toolchains.toolchain( + name = "nightly_rust_toolchains", + edition = "2024", + include_rustc_dev = True, + version = "nightly/2026-03-05", +) +``` + +`rust_dylint` transitions only the checked lint subtree onto one exact nightly +toolchain family automatically. Callers do not need to pass a nightly flag when +invoking the check target, and ordinary Rust targets can keep using the +repository's default toolchain selection. + +Projects must also register a Dylint driver toolchain. Bind it to the same named +nightly Rust toolchain family as the custom lint libraries it loads: + +```bzl +load("@rules_rs//rs:dylint.bzl", "dylint_toolchain") + +dylint_toolchain( + name = "dylint_toolchain", + driver = ":dylint_driver", + toolchain_family = "nightly_rust_toolchains", +) +``` + +Then register that toolchain from `MODULE.bazel`: + +```bzl +register_toolchains( + "@nightly_rust_toolchains//:all", + "//path/to:dylint_toolchain", +) +``` + +If the repository already has a stable rustfmt / rust-analyzer toolchain, the +nightly Dylint toolchain can reuse those versions; Dylint needs nightly `rustc` +plus `rustc-dev`, not a second copy of unrelated editor tools. + +## Example + +```bzl +load("@rules_rs//rs:dylint.bzl", "dylint_config", "dylint_library", "rust_dylint") +load("@rules_rs//rs:rust_library.bzl", "rust_library") +load("@rules_rs//rs:rust_shared_library.bzl", "rust_shared_library") + +rust_shared_library( + name = "project_policy_impl", + srcs = ["project_policy.rs"], + crate_name = "project_policy", + edition = "2024", + deps = ["@crates//:dylint_linting"], +) + +dylint_library( + name = "project_policy", + library = ":project_policy_impl", +) + +dylint_config( + name = "project_lints", + libraries = [":project_policy"], +) + +rust_library( + name = "api", + srcs = ["api.rs"], + lint_config = ":project_lints", +) + +rust_dylint( + name = "api_dylint", + deps = [":api"], + toolchain_family = "nightly_rust_toolchains", +) +``` + +If another target should use a different lint bundle, define another `dylint_config` +and assign that config to the other target's `lint_config` attribute. No +workspace-global Dylint metadata is required. Add `config = "dylint.toml"` to a +`dylint_config` when a library needs target-local settings; if it is omitted, the +runner supplies an empty config rather than discovering one from Cargo metadata. + +## Design decisions and future extension points + +- The API uses an aspect, but the aspect reads each target's own + `lint_config`; there is no repository-global Dylint selection. +- Lint libraries are compiled in the exec configuration because the driver loads them + on the host where the action runs, even when the checked crate itself targets another + platform. +- The driver is supplied by a dedicated Dylint toolchain and bound to a named + Rust toolchain family. That keeps the Dylint version an intentional project + choice while also guaranteeing that the checked crate graph, custom lint + libraries, and driver resolve against the same nightly family. + +## Verification strategy + +- Unit-level confidence comes from preserving the existing `LintsInfo` pathway and + exercising the normal `rs/private` test suite. +- Integration-level confidence comes from `test/dylint`, where: + - `:alpha_component` and `:beta_component` compile the same source, + - each target selects a different Dylint library through `lint_config`, + - the shell test asserts that each captured output contains its own warning and + omits the other target's warning, + - one config uses an explicit TOML file and the other relies on the empty-config + fallback, covering both configuration paths without global workspace state. + +## References + +- Dylint README: +- Dylint execution model: diff --git a/rs/BUILD.bazel b/rs/BUILD.bazel index ac1495f..ee56d8c 100644 --- a/rs/BUILD.bazel +++ b/rs/BUILD.bazel @@ -23,6 +23,13 @@ bzl_library( visibility = ["//visibility:public"], ) +bzl_library( + name = "dylint", + srcs = ["dylint.bzl"], + visibility = ["//visibility:public"], + deps = ["//rs/private:dylint"], +) + bzl_library( name = "rules_rust_reexported_extensions", srcs = ["rules_rust_reexported_extensions.bzl"], diff --git a/rs/dylint.bzl b/rs/dylint.bzl new file mode 100644 index 0000000..c7090e8 --- /dev/null +++ b/rs/dylint.bzl @@ -0,0 +1,14 @@ +"""Public Dylint rules for rules_rs.""" + +load( + "//rs/private:dylint.bzl", + _dylint_config = "dylint_config", + _dylint_library = "dylint_library", + _dylint_toolchain = "dylint_toolchain", + _rust_dylint = "rust_dylint", +) + +dylint_config = _dylint_config +dylint_library = _dylint_library +dylint_toolchain = _dylint_toolchain +rust_dylint = _rust_dylint diff --git a/rs/dylint/BUILD.bazel b/rs/dylint/BUILD.bazel new file mode 100644 index 0000000..04e6c60 --- /dev/null +++ b/rs/dylint/BUILD.bazel @@ -0,0 +1,5 @@ +package(default_visibility = ["//visibility:public"]) + +toolchain_type( + name = "toolchain_type", +) diff --git a/rs/private/BUILD.bazel b/rs/private/BUILD.bazel index 961b672..86b5bb7 100644 --- a/rs/private/BUILD.bazel +++ b/rs/private/BUILD.bazel @@ -1,4 +1,5 @@ load("@bazel_lib//:bzl_library.bzl", "bzl_library") +load("@rules_rust//rust:defs.bzl", "rust_binary") load(":all_crate_deps_test.bzl", "all_crate_deps_tests") load(":cfg_parser_test.bzl", "cfg_parser_tests") load(":lint_flags_test.bzl", "lint_flags_tests") @@ -233,6 +234,22 @@ bzl_library( deps = ["@rules_rust//rust/private:bzl_lib"], ) +bzl_library( + name = "dylint", + srcs = ["dylint.bzl"], + visibility = ["//rs:__subpackages__"], + deps = [ + "@rules_rust//rust/private:bzl_lib", + ], +) + +rust_binary( + name = "dylint_runner", + srcs = ["dylint_runner.rs"], + edition = "2024", + tags = ["manual"], +) + bzl_library( name = "resolver", srcs = ["resolver.bzl"], diff --git a/rs/private/dylint.bzl b/rs/private/dylint.bzl new file mode 100644 index 0000000..cd503cb --- /dev/null +++ b/rs/private/dylint.bzl @@ -0,0 +1,445 @@ +"""Rules for running Bazel-native Dylint checks with target-local configs.""" + +load("@rules_rust//rust/private:common.bzl", "rust_common") +load("@rules_rust//rust/private:providers.bzl", "LintsInfo") +load( + "@rules_rust//rust/private:rustc.bzl", + "collect_deps", + "collect_inputs", + "construct_arguments", + "get_error_format", +) +load( + "@rules_rust//rust/private:utils.bzl", + "determine_output_hash", + "find_cc_toolchain", + "find_toolchain", +) + +DylintLibraryInfo = provider( + doc = "A host-built dynamic library that can be loaded by dylint-driver.", + fields = { + "file": "File: The underlying host-built dynamic library.", + "name": "String: Logical Dylint library name.", + }, +) + +DylintConfigInfo = provider( + doc = "Target-local Dylint selection and configuration.", + fields = { + "config_file": "Optional[File]: TOML file exposed to libraries as DYLINT_TOML.", + "libraries": "List[DylintLibraryInfo]: Libraries to load for this config.", + "rustc_flags": "List[String]: Extra rustc flags appended to the Dylint invocation.", + }, +) + +DylintInfo = provider( + doc = "Provides information on a Dylint run.", + fields = { + "output": "Depset[File]: Captured Dylint stderr output files.", + }, +) + +def _dylint_transition_impl(_settings, _attr): + # Dylint libraries and dylint-driver depend on `rustc_private`, and the + # checked target graph must be compiled by the same nightly toolchain so + # its dependency metadata stays compatible with the compiler that runs the + # lints. Transition only the explicit Dylint subtree; ordinary Rust builds + # keep using the caller's regular toolchain selection. + return { + "@rules_rust//rust/toolchain/channel:channel": "nightly", + "@rules_rs//rs/toolchains/family:family": _attr.toolchain_family, + } + +_dylint_transition = transition( + implementation = _dylint_transition_impl, + inputs = [], + outputs = [ + "@rules_rust//rust/toolchain/channel:channel", + "@rules_rs//rs/toolchains/family:family", + ], +) + +def _empty_lints_info(): + return LintsInfo( + rustc_lint_flags = [], + rustc_lint_files = [], + clippy_lint_flags = [], + clippy_lint_files = [], + rustdoc_lint_flags = [], + rustdoc_lint_files = [], + ) + +def _single_dynamic_library(files, label): + files = files.to_list() + if len(files) != 1: + fail("Expected {} to provide exactly one dynamic library file, got {}".format(label, files)) + return files[0] + +def _dylint_library_impl(ctx): + return [ + DylintLibraryInfo( + file = _single_dynamic_library(ctx.attr.library[DefaultInfo].files, ctx.attr.library.label), + name = ctx.attr.library_name or ctx.label.name, + ), + ] + +dylint_library = rule( + implementation = _dylint_library_impl, + attrs = { + "library": attr.label( + doc = "Shared library target containing the custom Dylint lints.", + cfg = "exec", + mandatory = True, + ), + "library_name": attr.string( + doc = "Logical Dylint library name. Defaults to this rule's name.", + ), + }, + doc = """\ +Wraps a host-built shared library so it can be loaded by `rust_dylint`. + +The wrapped `library` is built in the exec configuration because Dylint loads it into +the host-side compiler driver while the lint action runs. +""", +) + +def _dylint_config_impl(ctx): + libraries = [] + seen = {} + for library in ctx.attr.libraries: + info = library[DylintLibraryInfo] + if info.name in seen: + fail("Duplicate Dylint library name `{}` in {}".format(info.name, ctx.label)) + seen[info.name] = True + libraries.append(info) + + base_lints = ctx.attr.lint_config[LintsInfo] if ctx.attr.lint_config else _empty_lints_info() + + return [ + base_lints, + DylintConfigInfo( + config_file = ctx.file.config, + libraries = libraries, + rustc_flags = ctx.attr.rustc_flags, + ), + ] + +dylint_config = rule( + implementation = _dylint_config_impl, + attrs = { + "config": attr.label( + allow_single_file = True, + doc = "Optional TOML file made available to configurable libraries via DYLINT_TOML.", + ), + "libraries": attr.label_list( + doc = "Custom Dylint libraries loaded by checks using this config.", + providers = [DylintLibraryInfo], + ), + "lint_config": attr.label( + doc = "Optional ordinary Rust lint config to forward alongside the Dylint config.", + providers = [LintsInfo], + ), + "rustc_flags": attr.string_list( + doc = "Extra rustc flags appended after the target's ordinary lint configuration.", + ), + }, + doc = """\ +Defines one reusable, target-local Dylint configuration bundle. + +This rule also forwards an ordinary `LintsInfo` provider, so it can be assigned +directly to a Rust target's existing `lint_config` attribute. +""", +) + +def _dylint_toolchain_impl(ctx): + return [ + platform_common.ToolchainInfo( + driver = ctx.executable.driver, + driver_files_to_run = ctx.attr.driver[DefaultInfo].files_to_run, + ), + ] + +_dylint_toolchain = rule( + implementation = _dylint_toolchain_impl, + attrs = { + "driver": attr.label( + cfg = "exec", + doc = "Host-built dylint-driver executable matching the selected nightly Rust toolchain.", + executable = True, + mandatory = True, + ), + }, + doc = "Defines the host-side dylint-driver executable used by `rust_dylint`.", +) + +def dylint_toolchain( + name, + *, + driver, + toolchain_family, + exec_compatible_with = [], + target_compatible_with = [], + visibility = None, + tags = []): + """Declares one Dylint driver toolchain bound to a Rust toolchain family. + + `toolchain_family` must match the `name` of the `toolchains.toolchain(...)` + tag that provisions the nightly Rust toolchains this driver was built with. + """ + + if not toolchain_family: + fail("`toolchain_family` must name the nightly rules_rs toolchain family used by this Dylint driver") + + impl_name = name + "_impl" + family_setting_name = name + "_family" + + _dylint_toolchain( + name = impl_name, + driver = driver, + tags = tags, + visibility = ["//visibility:private"], + ) + + native.config_setting( + name = family_setting_name, + flag_values = { + "@rules_rs//rs/toolchains/family:family": toolchain_family, + }, + visibility = ["//visibility:private"], + ) + + toolchain_kwargs = dict( + name = name, + exec_compatible_with = exec_compatible_with, + target_compatible_with = target_compatible_with, + target_settings = [":" + family_setting_name], + toolchain = ":" + impl_name, + toolchain_type = "@rules_rs//rs/dylint:toolchain_type", + tags = tags, + ) + if visibility != None: + toolchain_kwargs["visibility"] = visibility + + native.toolchain(**toolchain_kwargs) + +def _crate_info(target): + if rust_common.crate_info in target: + return target[rust_common.crate_info] + if rust_common.test_crate_info in target: + return target[rust_common.test_crate_info].crate + return None + +def _dylint_config_from_target(ctx): + if not hasattr(ctx.rule.attr, "lint_config") or not ctx.rule.attr.lint_config: + return None + lint_config = ctx.rule.attr.lint_config + return lint_config[DylintConfigInfo] if DylintConfigInfo in lint_config else None + +def _toolchain_id(toolchain): + return "{}-{}".format(toolchain.version.replace("/", "-"), toolchain.exec_triple.str) + +def _library_filename(library_name, toolchain_id, original_file): + # Rust shared libraries use a `lib` prefix on Unix and no prefix on Windows. + prefix = "lib" if original_file.basename.startswith("lib") else "" + extension = "." + original_file.extension if original_file.extension else "" + return "{}{}@{}{}".format( + prefix, + library_name.replace("-", "_"), + toolchain_id, + extension, + ) + +def _renamed_libraries(ctx, config, toolchain): + renamed = [] + toolchain_id = _toolchain_id(toolchain) + for library in sorted(config.libraries, key = lambda lib: lib.name): + output = ctx.actions.declare_file( + "{}/{}".format( + ctx.label.name + "_dylint_libs", + _library_filename(library.name, toolchain_id, library.file), + ), + ) + ctx.actions.symlink( + output = output, + target_file = library.file, + ) + renamed.append(output) + return renamed + +def _rustc_lib_dirs(toolchain): + dirs = {} + for file in toolchain.rustc_lib.to_list(): + dirs[file.dirname] = True + return sorted(dirs.keys()) + +def _rust_dylint_action(ctx, crate_info, config, renamed_libraries): + toolchain = find_toolchain(ctx) + dylint_toolchain = ctx.toolchains[str(Label("//rs/dylint:toolchain_type"))] + cc_toolchain, feature_configuration = find_cc_toolchain(ctx) + + dep_info, build_info, _ = collect_deps( + deps = crate_info.deps.to_list(), + proc_macro_deps = crate_info.proc_macro_deps.to_list(), + aliases = crate_info.aliases, + ) + + lint_files = [] + rustc_lint_flags = [] + if hasattr(ctx.rule.attr, "lint_config") and ctx.rule.attr.lint_config: + lint_config = ctx.rule.attr.lint_config[LintsInfo] + rustc_lint_flags = lint_config.rustc_lint_flags + lint_files = lint_config.rustc_lint_files + + compile_inputs, out_dir, build_env_files, build_flags_files, linkstamp_outs, ambiguous_libs = collect_inputs( + ctx, + ctx.rule.file, + ctx.rule.files, + depset([]), + toolchain, + cc_toolchain, + feature_configuration, + crate_info, + dep_info, + build_info, + lint_files, + ) + + args, env = construct_arguments( + ctx = ctx, + attr = ctx.rule.attr, + file = ctx.rule.file, + toolchain = toolchain, + tool_path = ctx.executable._runner.path, + cc_toolchain = cc_toolchain, + feature_configuration = feature_configuration, + crate_info = crate_info, + dep_info = dep_info, + linkstamp_outs = linkstamp_outs, + ambiguous_libs = ambiguous_libs, + output_hash = determine_output_hash(crate_info.root, ctx.label), + rust_flags = [], + out_dir = out_dir, + build_env_files = build_env_files, + build_flags_files = build_flags_files, + emit = ["metadata"], + skip_expanding_rustc_env = True, + error_format = get_error_format(ctx.rule.attr, "_error_format"), + ) + + if crate_info.is_test: + args.rustc_flags.add("--test") + + args.rustc_flags.add_all(rustc_lint_flags) + args.rustc_flags.add_all(config.rustc_flags) + + output = ctx.actions.declare_file(ctx.label.name + ".dylint.out", sibling = crate_info.output) + args.process_wrapper_flags.add("--stderr-file", output) + + env["RULES_RS_DYLINT_DRIVER"] = dylint_toolchain.driver.path + env["RULES_RS_DYLINT_LIBS"] = json.encode([library.path for library in renamed_libraries]) + env["RULES_RS_DYLINT_RUSTC_LIB_DIRS"] = "\n".join(_rustc_lib_dirs(toolchain)) + if config.config_file: + env["RULES_RS_DYLINT_TOML_PATH"] = config.config_file.path + + direct_inputs = renamed_libraries + if config.config_file: + direct_inputs.append(config.config_file) + + ctx.actions.run( + executable = toolchain.process_wrapper, + inputs = depset(direct_inputs, transitive = [compile_inputs, toolchain.rustc_lib]), + outputs = [output], + env = env, + tools = [ + dylint_toolchain.driver_files_to_run, + ctx.attr._runner[DefaultInfo].files_to_run, + ], + arguments = args.all, + mnemonic = "Dylint", + progress_message = "Dylint %{label}", + toolchain = "@rules_rust//rust:toolchain_type", + ) + + return output + +def _rust_dylint_aspect_impl(target, ctx): + if OutputGroupInfo in target and hasattr(target[OutputGroupInfo], "dylint_checks"): + return [] + + crate_info = _crate_info(target) + config = _dylint_config_from_target(ctx) + if not crate_info or not config: + return [DylintInfo(output = depset([]))] + + toolchain = find_toolchain(ctx) + renamed_libraries = _renamed_libraries(ctx, config, toolchain) + output = _rust_dylint_action(ctx, crate_info, config, renamed_libraries) + + return [ + OutputGroupInfo(dylint_checks = depset([output])), + DylintInfo(output = depset([output])), + ] + +rust_dylint_aspect = aspect( + attrs = { + "_error_format": attr.label( + doc = "The desired `--error-format` flags for rustc", + default = Label("@rules_rust//rust/settings:error_format"), + ), + "_runner": attr.label( + cfg = "exec", + default = Label("//rs/private:dylint_runner"), + executable = True, + ), + }, + fragments = ["cpp"], + implementation = _rust_dylint_aspect_impl, + provides = [DylintInfo], + required_providers = [ + [rust_common.crate_info], + [rust_common.test_crate_info], + ], + toolchains = [ + str(Label("@rules_rust//rust:toolchain_type")), + str(Label("//rs/dylint:toolchain_type")), + config_common.toolchain_type("@bazel_tools//tools/cpp:toolchain_type", mandatory = False), + ], +) + +def _rust_dylint_impl(ctx): + dylint_ready_targets = [ + dep + for dep in ctx.attr.deps + if OutputGroupInfo in dep and hasattr(dep[OutputGroupInfo], "dylint_checks") + ] + files = depset([], transitive = [dep[OutputGroupInfo].dylint_checks for dep in dylint_ready_targets]) + return [DefaultInfo(files = files)] + +rust_dylint = rule( + implementation = _rust_dylint_impl, + attrs = { + "deps": attr.label_list( + cfg = _dylint_transition, + doc = "Rust targets to lint.", + providers = [ + [rust_common.crate_info], + [rust_common.test_crate_info], + ], + aspects = [rust_dylint_aspect], + ), + "toolchain_family": attr.string( + doc = "Name of the nightly rules_rs toolchain family used for this Dylint check.", + mandatory = True, + ), + "_allowlist_function_transition": attr.label( + default = "@bazel_tools//tools/allowlists/function_transition_allowlist", + ), + }, + doc = """\ +Runs Dylint against explicitly listed Rust targets. + +Each target selects its own Dylint libraries through its ordinary `lint_config` +attribute by pointing at a `dylint_config` target. +""", +) diff --git a/rs/private/dylint_runner.rs b/rs/private/dylint_runner.rs new file mode 100644 index 0000000..f93bd1e --- /dev/null +++ b/rs/private/dylint_runner.rs @@ -0,0 +1,101 @@ +//! Small execution wrapper for Bazel-native Dylint actions. +//! +//! `dylint-driver` expects library selection and optional configuration through +//! environment variables. Keeping that translation in a tiny compiled helper lets the +//! Starlark rule stay hermetic while still supporting configuration files on Linux, +//! macOS, and Windows. + +use std::{ + env, + ffi::OsString, + fs, + path::PathBuf, + process::{self, Command}, +}; + +const DRIVER_ENV: &str = "RULES_RS_DYLINT_DRIVER"; +const LIBS_ENV: &str = "RULES_RS_DYLINT_LIBS"; +const TOML_PATH_ENV: &str = "RULES_RS_DYLINT_TOML_PATH"; +const RUSTC_LIB_DIRS_ENV: &str = "RULES_RS_DYLINT_RUSTC_LIB_DIRS"; + +fn main() { + if let Err(error) = run() { + eprintln!("rules_rs dylint runner: {error}"); + process::exit(1); + } +} + +fn run() -> Result<(), String> { + let driver = required_os_var(DRIVER_ENV)?; + let libs = required_os_var(LIBS_ENV)?; + + let mut command = Command::new(driver); + command.args(env::args_os().skip(1)); + command.env("DYLINT_LIBS", libs); + + let dylint_toml = if let Some(path) = env::var_os(TOML_PATH_ENV) { + fs::read_to_string(&path).map_err(|error| { + format!( + "failed to read `{}`: {error}", + PathBuf::from(path).display() + ) + })? + } else { + // Dylint falls back to `cargo metadata` when `DYLINT_TOML` is absent. + // Bazel actions should not consult ambient workspace state, so an omitted + // config means "use an empty target-local config", not "discover one + // globally". + String::new() + }; + command.env("DYLINT_TOML", dylint_toml); + + let rustc_lib_dirs = newline_separated_paths(RUSTC_LIB_DIRS_ENV); + if !rustc_lib_dirs.is_empty() { + expose_dynamic_libraries(&mut command, rustc_lib_dirs)?; + } + + let status = command + .status() + .map_err(|error| format!("failed to start dylint driver: {error}"))?; + + process::exit(status.code().unwrap_or(1)); +} + +fn required_os_var(name: &str) -> Result { + env::var_os(name).ok_or_else(|| format!("missing required environment variable `{name}`")) +} + +fn newline_separated_paths(name: &str) -> Vec { + env::var_os(name) + .map(|value| { + value + .to_string_lossy() + .lines() + .filter(|line| !line.is_empty()) + .map(PathBuf::from) + .collect() + }) + .unwrap_or_default() +} + +fn expose_dynamic_libraries( + command: &mut Command, + mut extra_dirs: Vec, +) -> Result<(), String> { + let loader_var = if cfg!(target_os = "windows") { + "PATH" + } else if cfg!(target_os = "macos") { + "DYLD_LIBRARY_PATH" + } else { + "LD_LIBRARY_PATH" + }; + + if let Some(existing) = env::var_os(loader_var) { + extra_dirs.extend(env::split_paths(&existing)); + } + + let joined = env::join_paths(extra_dirs) + .map_err(|error| format!("failed to build `{loader_var}`: {error}"))?; + command.env(loader_var, joined); + Ok(()) +} diff --git a/rs/private/rust_repository_utils.bzl b/rs/private/rust_repository_utils.bzl index 447fe57..0fbf0a7 100644 --- a/rs/private/rust_repository_utils.bzl +++ b/rs/private/rust_repository_utils.bzl @@ -2,11 +2,11 @@ load("@bazel_tools//tools/build_defs/repo:utils.bzl", "get_auth") load( "@rules_rust//rust/private:repository_utils.bzl", "DEFAULT_STATIC_RUST_URL_TEMPLATES", - "produce_tool_suburl", "produce_tool_path", + "produce_tool_suburl", ) -def download_and_extract(rctx, tool, dir, triple): +def download_and_extract(rctx, tool, dir, triple, sha256 = None): tool_suburl = produce_tool_suburl(tool, triple, rctx.attr.version, rctx.attr.iso_date) urls = [url.format(tool_suburl) for url in rctx.attr.urls] @@ -14,7 +14,7 @@ def download_and_extract(rctx, tool, dir, triple): rctx.download_and_extract( urls, - sha256 = rctx.attr.sha256, + sha256 = sha256 or rctx.attr.sha256, auth = get_auth(rctx, urls), strip_prefix = "{}/{}".format(tool_path, dir), ) diff --git a/rs/private/rustc_repository.bzl b/rs/private/rustc_repository.bzl index 5992974..5c2fe21 100644 --- a/rs/private/rustc_repository.bzl +++ b/rs/private/rustc_repository.bzl @@ -27,8 +27,39 @@ def _symlink_rust_objcopy_shared_libraries(rctx, exec_triple): def _rustc_repository_impl(rctx): exec_triple = triple(rctx.attr.triple) download_and_extract(rctx, "rustc", "rustc", exec_triple) + if rctx.attr.rustc_dev_sha256: + # `rustc-dev` supplies the compiler-internal crates that custom lint + # libraries need when they use `#![feature(rustc_private)]`. + download_and_extract( + rctx, + "rustc-dev", + "rustc-dev", + exec_triple, + sha256 = rctx.attr.rustc_dev_sha256, + ) _symlink_rust_objcopy_shared_libraries(rctx, exec_triple) build_content = [BUILD_for_compiler(exec_triple, include_objcopy = True)] + if rctx.attr.rustc_dev_sha256: + build_content.append("""\ +filegroup( + name = "rustc_dev_libs", + srcs = glob( + [ + "lib/rustlib/{triple}/lib/*.rlib", + ], + allow_empty = True, + ), + visibility = ["//visibility:public"], +) + +filegroup( + name = "rustc_lib_with_dev", + srcs = [ + ":rustc_lib", + ":rustc_dev_libs", + ], + visibility = ["//visibility:public"], +)""".format(triple = exec_triple.str)) if includes_rust_analyzer_proc_macro_srv(rctx.attr.version, rctx.attr.iso_date): build_content.append(BUILD_for_rust_analyzer_proc_macro_srv(exec_triple)) rctx.file("BUILD.bazel", "\n".join(build_content)) @@ -37,5 +68,7 @@ def _rustc_repository_impl(rctx): rustc_repository = repository_rule( implementation = _rustc_repository_impl, - attrs = RUST_REPOSITORY_COMMON_ATTR, + attrs = { + "rustc_dev_sha256": attr.string(), + } | RUST_REPOSITORY_COMMON_ATTR, ) diff --git a/rs/private/toolchains_repository.bzl b/rs/private/toolchains_repository.bzl index 253de52..83e3bb9 100644 --- a/rs/private/toolchains_repository.bzl +++ b/rs/private/toolchains_repository.bzl @@ -6,30 +6,43 @@ load("@rules_rs//rs/toolchains:declare_rust_analyzer_toolchains.bzl", "declare_r load("@rules_rs//rs/toolchains:declare_rustc_toolchains.bzl", "declare_rustc_toolchains") load("@rules_rs//rs/toolchains:declare_rustfmt_toolchains.bzl", "declare_rustfmt_toolchains") +config_setting( + name = "selected_family", + flag_values = {{ + "@rules_rs//rs/toolchains/family:family": {toolchain_family}, + }}, +) + declare_rustc_toolchains( version = {version}, edition = {edition}, + include_rustc_dev = {include_rustc_dev}, extra_rustc_flags = {extra_rustc_flags}, extra_exec_rustc_flags = {extra_exec_rustc_flags}, + toolchain_family_setting = ":selected_family", ) declare_rustfmt_toolchains( version = {version}, rustfmt_version = {rustfmt_version}, edition = {edition}, + toolchain_family_setting = ":selected_family", ) declare_rust_analyzer_toolchains( version = {version}, rust_analyzer_version = {rust_analyzer_version}, + toolchain_family_setting = ":selected_family", ) """.format( version = repr(rctx.attr.version), rustfmt_version = repr(rctx.attr.rustfmt_version), rust_analyzer_version = repr(rctx.attr.rust_analyzer_version), edition = repr(rctx.attr.edition), + include_rustc_dev = repr(rctx.attr.include_rustc_dev), extra_rustc_flags = repr(rctx.attr.extra_rustc_flags), extra_exec_rustc_flags = repr(rctx.attr.extra_exec_rustc_flags), + toolchain_family = repr(rctx.attr.toolchain_family), ), ) @@ -42,7 +55,9 @@ toolchains_repository = repository_rule( "rustfmt_version": attr.string(mandatory = True), "rust_analyzer_version": attr.string(mandatory = True), "edition": attr.string(mandatory = True), + "include_rustc_dev": attr.bool(), "extra_rustc_flags": attr.string_list_dict(), "extra_exec_rustc_flags": attr.string_list_dict(), + "toolchain_family": attr.string(mandatory = True), }, ) diff --git a/rs/toolchains/declare_rust_analyzer_toolchains.bzl b/rs/toolchains/declare_rust_analyzer_toolchains.bzl index e8a729a..73a8337 100644 --- a/rs/toolchains/declare_rust_analyzer_toolchains.bzl +++ b/rs/toolchains/declare_rust_analyzer_toolchains.bzl @@ -23,6 +23,7 @@ def declare_rust_analyzer_toolchains( *, version, rust_analyzer_version, + toolchain_family_setting = None, execs = SUPPORTED_EXEC_TRIPLES): version_key = sanitize_version(version) rust_analyzer_version_key = sanitize_version(rust_analyzer_version) @@ -56,6 +57,12 @@ def declare_rust_analyzer_toolchains( rust_analyzer_toolchain(**rust_analyzer_toolchain_kwargs) + target_settings = [ + "@rules_rust//rust/toolchain/channel:" + channel, + ] + if toolchain_family_setting != None: + target_settings.append("@rules_rs//rs/toolchains/family:unspecified") + native.toolchain( name = "{}_{}_rust_analyzer_{}".format(exec_triple.system, exec_triple.arch, version_key), exec_compatible_with = [ @@ -63,10 +70,25 @@ def declare_rust_analyzer_toolchains( "@platforms//cpu:" + exec_triple.arch, ], target_compatible_with = [], - target_settings = [ - "@rules_rust//rust/toolchain/channel:" + channel, - ], + target_settings = target_settings, toolchain = rust_analyzer_toolchain_name, toolchain_type = "@rules_rust//rust/rust_analyzer:toolchain_type", visibility = ["//visibility:public"], ) + + if toolchain_family_setting != None: + native.toolchain( + name = "{}_{}_rust_analyzer_{}_selected_family".format(exec_triple.system, exec_triple.arch, version_key), + exec_compatible_with = [ + "@platforms//os:" + exec_triple.system, + "@platforms//cpu:" + exec_triple.arch, + ], + target_compatible_with = [], + target_settings = [ + "@rules_rust//rust/toolchain/channel:" + channel, + toolchain_family_setting, + ], + toolchain = rust_analyzer_toolchain_name, + toolchain_type = "@rules_rust//rust/rust_analyzer:toolchain_type", + visibility = ["//visibility:public"], + ) diff --git a/rs/toolchains/declare_rustc_toolchains.bzl b/rs/toolchains/declare_rustc_toolchains.bzl index 6c26200..ba8e4a5 100644 --- a/rs/toolchains/declare_rustc_toolchains.bzl +++ b/rs/toolchains/declare_rustc_toolchains.bzl @@ -20,8 +20,10 @@ def declare_rustc_toolchains( *, version, edition, + include_rustc_dev = False, extra_rustc_flags = {}, extra_exec_rustc_flags = {}, + toolchain_family_setting = None, execs = SUPPORTED_EXEC_TRIPLES, targets = SUPPORTED_TARGET_TRIPLES): """Declare toolchains for all supported target platforms.""" @@ -61,7 +63,10 @@ def declare_rustc_toolchains( llvm_cov = "@llvm//tools:llvm-cov", llvm_profdata = "@llvm//tools:llvm-profdata", rust_objcopy = "{}rust-objcopy".format(rustc_repo_label), - rustc_lib = "{}rustc_lib".format(rustc_repo_label), + rustc_lib = "{}{}".format( + rustc_repo_label, + "rustc_lib_with_dev" if include_rustc_dev else "rustc_lib", + ), allocator_library = None, global_allocator_library = None, binary_ext = select({ @@ -119,6 +124,7 @@ def declare_rustc_toolchains( target_triple = select(target_triple_select), visibility = ["//visibility:public"], tags = ["rust_version={}".format(version)], + version = version, ) rust_toolchain( @@ -136,6 +142,17 @@ def declare_rustc_toolchains( for target_triple in targets: target_key = sanitize_triple(target_triple) + bootstrapped_target_settings = [ + "@rules_rust//rust/private:bootstrapped", + "@rules_rust//rust/toolchain/channel:" + channel, + ] + bootstrapping_target_settings = [ + "@rules_rust//rust/private:bootstrapping", + "@rules_rust//rust/toolchain/channel:" + channel, + ] + if toolchain_family_setting != None: + bootstrapped_target_settings.append("@rules_rs//rs/toolchains/family:unspecified") + bootstrapping_target_settings.append("@rules_rs//rs/toolchains/family:unspecified") native.toolchain( name = "{}_{}_to_{}_{}".format(exec_triple.system, exec_triple.arch, target_key, version_key), @@ -144,10 +161,7 @@ def declare_rustc_toolchains( "@platforms//cpu:" + exec_triple.arch, ], target_compatible_with = triple_to_constraint_set(target_triple), - target_settings = [ - "@rules_rust//rust/private:bootstrapped", - "@rules_rust//rust/toolchain/channel:" + channel, - ], + target_settings = bootstrapped_target_settings, toolchain = rust_toolchain_name, toolchain_type = "@rules_rust//rust:toolchain_type", visibility = ["//visibility:public"], @@ -160,11 +174,43 @@ def declare_rustc_toolchains( "@platforms//cpu:" + exec_triple.arch, ], target_compatible_with = triple_to_constraint_set(target_triple), - target_settings = [ - "@rules_rust//rust/private:bootstrapping", - "@rules_rust//rust/toolchain/channel:" + channel, - ], + target_settings = bootstrapping_target_settings, toolchain = rust_toolchain_name + "_bootstrap", toolchain_type = "@rules_rust//rust:toolchain_type", visibility = ["//visibility:public"], ) + + if toolchain_family_setting != None: + native.toolchain( + name = "{}_{}_to_{}_{}_selected_family".format(exec_triple.system, exec_triple.arch, target_key, version_key), + exec_compatible_with = [ + "@platforms//os:" + exec_triple.system, + "@platforms//cpu:" + exec_triple.arch, + ], + target_compatible_with = triple_to_constraint_set(target_triple), + target_settings = [ + "@rules_rust//rust/private:bootstrapped", + "@rules_rust//rust/toolchain/channel:" + channel, + toolchain_family_setting, + ], + toolchain = rust_toolchain_name, + toolchain_type = "@rules_rust//rust:toolchain_type", + visibility = ["//visibility:public"], + ) + + native.toolchain( + name = "{}_{}_to_{}_{}_bootstrap_selected_family".format(exec_triple.system, exec_triple.arch, target_key, version_key), + exec_compatible_with = [ + "@platforms//os:" + exec_triple.system, + "@platforms//cpu:" + exec_triple.arch, + ], + target_compatible_with = triple_to_constraint_set(target_triple), + target_settings = [ + "@rules_rust//rust/private:bootstrapping", + "@rules_rust//rust/toolchain/channel:" + channel, + toolchain_family_setting, + ], + toolchain = rust_toolchain_name + "_bootstrap", + toolchain_type = "@rules_rust//rust:toolchain_type", + visibility = ["//visibility:public"], + ) diff --git a/rs/toolchains/declare_rustfmt_toolchains.bzl b/rs/toolchains/declare_rustfmt_toolchains.bzl index 6c28641..49f0ab2 100644 --- a/rs/toolchains/declare_rustfmt_toolchains.bzl +++ b/rs/toolchains/declare_rustfmt_toolchains.bzl @@ -15,6 +15,7 @@ def declare_rustfmt_toolchains( version, rustfmt_version, edition, + toolchain_family_setting = None, execs = SUPPORTED_EXEC_TRIPLES): version_key = sanitize_version(version) rustfmt_version_key = sanitize_version(rustfmt_version) @@ -42,6 +43,12 @@ def declare_rustfmt_toolchains( tags = ["rust_version={}".format(version)], ) + target_settings = [ + "@rules_rust//rust/toolchain/channel:" + channel, + ] + if toolchain_family_setting != None: + target_settings.append("@rules_rs//rs/toolchains/family:unspecified") + native.toolchain( name = "{}_{}_rustfmt_{}".format(exec_triple.system, exec_triple.arch, version_key), exec_compatible_with = [ @@ -49,10 +56,25 @@ def declare_rustfmt_toolchains( "@platforms//cpu:" + exec_triple.arch, ], target_compatible_with = [], - target_settings = [ - "@rules_rust//rust/toolchain/channel:" + channel, - ], + target_settings = target_settings, toolchain = rustfmt_toolchain_name, toolchain_type = "@rules_rust//rust/rustfmt:toolchain_type", visibility = ["//visibility:public"], ) + + if toolchain_family_setting != None: + native.toolchain( + name = "{}_{}_rustfmt_{}_selected_family".format(exec_triple.system, exec_triple.arch, version_key), + exec_compatible_with = [ + "@platforms//os:" + exec_triple.system, + "@platforms//cpu:" + exec_triple.arch, + ], + target_compatible_with = [], + target_settings = [ + "@rules_rust//rust/toolchain/channel:" + channel, + toolchain_family_setting, + ], + toolchain = rustfmt_toolchain_name, + toolchain_type = "@rules_rust//rust/rustfmt:toolchain_type", + visibility = ["//visibility:public"], + ) diff --git a/rs/toolchains/family/BUILD.bazel b/rs/toolchains/family/BUILD.bazel new file mode 100644 index 0000000..76822dd --- /dev/null +++ b/rs/toolchains/family/BUILD.bazel @@ -0,0 +1,17 @@ +load("@bazel_skylib//rules:common_settings.bzl", "string_flag") + +package(default_visibility = ["//visibility:public"]) + +# The empty value intentionally preserves ordinary rules_rs toolchain resolution: +# when no family is requested, every generated toolchain repo remains eligible. +string_flag( + name = "family", + build_setting_default = "", +) + +config_setting( + name = "unspecified", + flag_values = { + ":family": "", + }, +) diff --git a/rs/toolchains/module_extension.bzl b/rs/toolchains/module_extension.bzl index bcd9c4f..a54fbfb 100644 --- a/rs/toolchains/module_extension.bzl +++ b/rs/toolchains/module_extension.bzl @@ -75,6 +75,9 @@ _TOOLCHAIN_TAG = tag_class( doc = "Default edition to apply to toolchains.", default = _DEFAULT_EDITION, ), + "include_rustc_dev": attr.bool( + doc = "Whether to include nightly rustc-dev compiler internals, needed by rustc_private crates such as Dylint libraries.", + ), "extra_rustc_flags": attr.string_list_dict( doc = "Additional rustc flags by target triple.", ), @@ -114,6 +117,7 @@ def _toolchains_impl(mctx): rustfmt_version = "", rust_analyzer_version = "", edition = _DEFAULT_EDITION, + include_rustc_dev = False, extra_rustc_flags = {}, extra_exec_rustc_flags = {}, )) @@ -121,11 +125,16 @@ def _toolchains_impl(mctx): versions = set([]) rustfmt_versions = set([]) rust_analyzer_versions = set([]) + rustc_dev_versions = set([]) for tag in version_tags: versions.add(tag.version) rustfmt_versions.add(tag.rustfmt_version or tag.version) rust_analyzer_versions.add(tag.rust_analyzer_version or tag.version) + if tag.include_rustc_dev: + if not tag.version.startswith("nightly"): + fail("`include_rustc_dev = True` requires a nightly Rust toolchain version; got {}".format(tag.version)) + rustc_dev_versions.add(tag.version) existing_facts = getattr(mctx, "facts", {}) or {} pending_downloads = {} @@ -160,6 +169,8 @@ def _toolchains_impl(mctx): exec_triple = _parse_triple(triple) for tool_name in ["rustc", "clippy", "cargo"]: _request_sha(tool_name, base_version, iso_date, exec_triple) + if version in rustc_dev_versions: + _request_sha("rustc-dev", base_version, iso_date, exec_triple) for target_triple in SUPPORTED_TARGET_TRIPLES: _request_sha("rust-std", base_version, iso_date, _parse_triple(target_triple)) @@ -218,6 +229,7 @@ def _toolchains_impl(mctx): version = base_version, iso_date = iso_date, sha256 = _sha_for("rustc", base_version, iso_date, exec_triple), + rustc_dev_sha256 = _sha_for("rustc-dev", base_version, iso_date, exec_triple) if version in rustc_dev_versions else "", ) if version in versions: @@ -314,6 +326,7 @@ def _toolchains_impl(mctx): (existing.rustfmt_version or existing.version) != rustfmt_version or (existing.rust_analyzer_version or existing.version) != rust_analyzer_version or existing.edition != tag.edition or + existing.include_rustc_dev != tag.include_rustc_dev or existing.extra_rustc_flags != tag.extra_rustc_flags or existing.extra_exec_rustc_flags != tag.extra_exec_rustc_flags ): @@ -327,8 +340,10 @@ def _toolchains_impl(mctx): rustfmt_version = rustfmt_version, rust_analyzer_version = rust_analyzer_version, edition = tag.edition, + include_rustc_dev = tag.include_rustc_dev, extra_rustc_flags = tag.extra_rustc_flags, extra_exec_rustc_flags = tag.extra_exec_rustc_flags, + toolchain_family = repo_name, ) is_dev_dependency = had_tags and mctx.is_dev_dependency(tag) if is_dev_dependency: diff --git a/test/MODULE.bazel b/test/MODULE.bazel index 12c83eb..7cc4f30 100644 --- a/test/MODULE.bazel +++ b/test/MODULE.bazel @@ -112,11 +112,27 @@ toolchains.toolchain( edition = "2024", version = "1.92.0", ) -use_repo(toolchains, "default_rust_toolchains") +toolchains.toolchain( + name = "nightly_rust_toolchains", + edition = "2024", + include_rustc_dev = True, + # The Dylint integration test needs nightly rustc + rustc-dev, not separate + # nightly rustfmt / rust-analyzer toolchains. + rust_analyzer_version = "1.92.0", + rustfmt_version = "1.92.0", + version = "nightly/2026-03-05", +) +use_repo( + toolchains, + "default_rust_toolchains", + "nightly_rust_toolchains", +) register_toolchains("@default_rust_toolchains//:all") register_toolchains( + "@nightly_rust_toolchains//:all", + "//dylint:dylint_toolchain", "@rules_rust//extensions/prost:default_prost_toolchain", "@rules_rust//extensions/pyo3/toolchains:rust_toolchain", "@rules_rust//extensions/pyo3/toolchains:toolchain", @@ -132,6 +148,7 @@ TESTS = [ "build_script_runtime_env", "build_dep_features", "cfg_feature_target_dep", + "dylint", "empty_workspace", "feature_name_overrides_implicit_dep", "first_party_feature_propagation", @@ -209,6 +226,25 @@ crate.annotation( crate_features = ["json"], repositories = ["workspace_member_annotation_features"], ) +crate.annotation( + crate = "dylint_driver", + patch_args = ["-p1"], + patches = ["//:dylint-driver-bazel-env.patch"], + repositories = ["dylint"], + strip_prefix = "driver", +) +crate.annotation( + crate = "dylint_internal", + patch_args = ["-p1"], + patches = ["//:dylint-internal-rustc-env.patch"], + repositories = ["dylint"], + strip_prefix = "internal", +) +crate.annotation( + crate = "dylint_linting", + repositories = ["dylint"], + strip_prefix = "utils/linting", +) # Test gen_binaries crate.annotation( diff --git a/test/MODULE.bazel.lock b/test/MODULE.bazel.lock index 3d739b3..9a9806d 100644 --- a/test/MODULE.bazel.lock +++ b/test/MODULE.bazel.lock @@ -1007,6 +1007,7 @@ "bitflags_1.3.2": "{\"dependencies\":[{\"name\":\"compiler_builtins\",\"optional\":true,\"req\":\"^0.1.2\"},{\"name\":\"core\",\"optional\":true,\"package\":\"rustc-std-workspace-core\",\"req\":\"^1.0.0\"},{\"kind\":\"dev\",\"name\":\"rustversion\",\"req\":\"^1.0\"},{\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0\"},{\"kind\":\"dev\",\"name\":\"serde_derive\",\"req\":\"^1.0\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0\"},{\"kind\":\"dev\",\"name\":\"trybuild\",\"req\":\"^1.0\"},{\"kind\":\"dev\",\"name\":\"walkdir\",\"req\":\"^2.3\"}],\"features\":{\"default\":[],\"example_generated\":[],\"rustc-dep-of-std\":[\"core\",\"compiler_builtins\"]}}", "bitflags_2.10.0": "{\"dependencies\":[{\"name\":\"arbitrary\",\"optional\":true,\"req\":\"^1.0\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"arbitrary\",\"req\":\"^1.0\"},{\"name\":\"bytemuck\",\"optional\":true,\"req\":\"^1.12\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"bytemuck\",\"req\":\"^1.12.2\"},{\"kind\":\"dev\",\"name\":\"rustversion\",\"req\":\"^1.0\"},{\"default_features\":false,\"name\":\"serde_core\",\"optional\":true,\"req\":\"^1.0.228\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde_lib\",\"package\":\"serde\",\"req\":\"^1.0.103\"},{\"kind\":\"dev\",\"name\":\"serde_test\",\"req\":\"^1.0.19\"},{\"kind\":\"dev\",\"name\":\"trybuild\",\"req\":\"^1.0.18\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"zerocopy\",\"req\":\"^0.8\"}],\"features\":{\"example_generated\":[],\"serde\":[\"serde_core\"],\"std\":[]}}", "bitflags_2.11.0": "{\"dependencies\":[{\"name\":\"arbitrary\",\"optional\":true,\"req\":\"^1.0\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"arbitrary\",\"req\":\"^1.0\"},{\"name\":\"bytemuck\",\"optional\":true,\"req\":\"^1.12\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"bytemuck\",\"req\":\"^1.12.2\"},{\"kind\":\"dev\",\"name\":\"rustversion\",\"req\":\"^1.0\"},{\"default_features\":false,\"name\":\"serde_core\",\"optional\":true,\"req\":\"^1.0.228\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde_lib\",\"package\":\"serde\",\"req\":\"^1.0.103\"},{\"kind\":\"dev\",\"name\":\"serde_test\",\"req\":\"^1.0.19\"},{\"kind\":\"dev\",\"name\":\"trybuild\",\"req\":\"^1.0.18\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"zerocopy\",\"req\":\"^0.8\"}],\"features\":{\"example_generated\":[],\"serde\":[\"serde_core\"],\"std\":[]}}", + "bitflags_2.11.1": "{\"dependencies\":[{\"name\":\"arbitrary\",\"optional\":true,\"req\":\"^1.0\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"arbitrary\",\"req\":\"^1.0\"},{\"name\":\"bytemuck\",\"optional\":true,\"req\":\"^1.12\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"bytemuck\",\"req\":\"^1.12.2\"},{\"kind\":\"dev\",\"name\":\"rustversion\",\"req\":\"^1.0\"},{\"default_features\":false,\"name\":\"serde_core\",\"optional\":true,\"req\":\"^1.0.228\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde_lib\",\"package\":\"serde\",\"req\":\"^1.0.103\"},{\"kind\":\"dev\",\"name\":\"serde_test\",\"req\":\"^1.0.19\"},{\"kind\":\"dev\",\"name\":\"trybuild\",\"req\":\"^1.0.18\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"zerocopy\",\"req\":\"^0.8\"}],\"features\":{\"example_generated\":[],\"serde\":[\"serde_core\"],\"std\":[]}}", "bitflags_2.9.4": "{\"dependencies\":[{\"name\":\"arbitrary\",\"optional\":true,\"req\":\"^1.0\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"arbitrary\",\"req\":\"^1.0\"},{\"name\":\"bytemuck\",\"optional\":true,\"req\":\"^1.12\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"bytemuck\",\"req\":\"^1.12.2\"},{\"kind\":\"dev\",\"name\":\"rustversion\",\"req\":\"^1.0\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.103\"},{\"kind\":\"dev\",\"name\":\"serde_derive\",\"req\":\"^1.0.103\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0\"},{\"kind\":\"dev\",\"name\":\"serde_test\",\"req\":\"^1.0.19\"},{\"kind\":\"dev\",\"name\":\"trybuild\",\"req\":\"^1.0.18\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"zerocopy\",\"req\":\"^0.8\"}],\"features\":{\"example_generated\":[],\"std\":[]}}", "bitpacking_0.9.3": "{\"dependencies\":[{\"features\":[\"html_reports\"],\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.3\"},{\"name\":\"crunchy\",\"req\":\"^0.2\"},{\"kind\":\"dev\",\"name\":\"proptest\",\"req\":\"^1.4\"},{\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.8\"}],\"features\":{\"bitpacker1x\":[],\"bitpacker4x\":[],\"bitpacker8x\":[],\"default\":[\"bitpacker1x\",\"bitpacker4x\",\"bitpacker8x\"]}}", "bitstream-io_4.9.0": "{\"dependencies\":[{\"default_features\":false,\"name\":\"core2\",\"req\":\"^0.4\"}],\"features\":{\"alloc\":[\"core2/alloc\"],\"default\":[\"std\"],\"std\":[\"core2/std\",\"alloc\"]}}", @@ -1070,13 +1071,16 @@ "candle-core_0.9.2": "{\"dependencies\":[{\"name\":\"accelerate-src\",\"optional\":true,\"req\":\"^0.3.2\"},{\"features\":[\"backtrace\"],\"kind\":\"dev\",\"name\":\"anyhow\",\"req\":\"^1\"},{\"name\":\"byteorder\",\"req\":\"^1.4.3\"},{\"name\":\"candle-kernels\",\"optional\":true,\"req\":\"^0.9.2\"},{\"name\":\"candle-metal-kernels\",\"optional\":true,\"req\":\"^0.9.2\"},{\"name\":\"candle-ug\",\"optional\":true,\"req\":\"^0.9.2\",\"target\":\"cfg(all(not(target_arch = \\\"wasm32\\\"), not(target_os = \\\"ios\\\")))\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"clap\",\"req\":\"^4.2.4\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.8\"},{\"default_features\":false,\"features\":[\"std\",\"cublas\",\"cublaslt\",\"curand\",\"driver\",\"nvrtc\",\"f16\",\"f8\",\"cuda-version-from-build-system\",\"dynamic-linking\"],\"name\":\"cudarc\",\"optional\":true,\"req\":\"^0.19.0\"},{\"features\":[\"num-traits\",\"rand_distr\"],\"name\":\"float8\",\"req\":\"^0.6.0\"},{\"features\":[\"wasm-simd128-enable\"],\"name\":\"gemm\",\"req\":\"^0.19.0\"},{\"features\":[\"num-traits\",\"use-intrinsics\",\"rand_distr\"],\"name\":\"half\",\"req\":\"^2.5.0\"},{\"features\":[\"mkl-static-lp64-iomp\"],\"name\":\"intel-mkl-src\",\"optional\":true,\"req\":\"^0.8.1\"},{\"name\":\"libc\",\"optional\":true,\"req\":\"^0.2.147\"},{\"name\":\"libm\",\"req\":\"^0.2.15\"},{\"features\":[\"stable_deref_trait\"],\"name\":\"memmap2\",\"req\":\"^0.9.3\"},{\"name\":\"num-traits\",\"req\":\"^0.2.15\"},{\"name\":\"num_cpus\",\"req\":\"^1.15.0\"},{\"name\":\"objc2-foundation\",\"optional\":true,\"req\":\"^0.3.1\"},{\"name\":\"objc2-metal\",\"optional\":true,\"req\":\"^0.3.1\"},{\"name\":\"rand\",\"req\":\"^0.9.0\"},{\"name\":\"rand_distr\",\"req\":\"^0.5.1\"},{\"name\":\"rayon\",\"req\":\"^1.7.0\"},{\"name\":\"safetensors\",\"req\":\"^0.7.0\"},{\"name\":\"thiserror\",\"req\":\"^2\"},{\"features\":[\"derive\"],\"name\":\"yoke\",\"req\":\"^0.8.1\"},{\"default_features\":false,\"name\":\"zip\",\"req\":\"^7.2.0\"}],\"features\":{\"accelerate\":[\"dep:libc\",\"dep:accelerate-src\"],\"cuda\":[\"cudarc\",\"dep:candle-kernels\",\"candle-ug?/cuda\",\"float8/cuda\"],\"cudnn\":[\"cuda\",\"cudarc/cudnn\"],\"default\":[],\"metal\":[\"dep:objc2-metal\",\"dep:objc2-foundation\",\"dep:candle-metal-kernels\",\"candle-ug?/metal\"],\"mkl\":[\"dep:libc\",\"dep:intel-mkl-src\"],\"nccl\":[\"cuda\",\"cudarc/nccl\"],\"ug\":[\"dep:candle-ug\"]}}", "caps_0.5.6": "{\"dependencies\":[{\"name\":\"libc\",\"req\":\"^0.2\"},{\"features\":[\"derive\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0\"}],\"features\":{\"serde_support\":[\"serde\"]}}", "cargo-platform_0.1.9": "{\"dependencies\":[{\"name\":\"serde\",\"req\":\"^1.0.204\"}],\"features\":{}}", + "cargo-platform_0.3.2": "{\"dependencies\":[{\"name\":\"serde\",\"req\":\"^1.0.228\",\"target\":\"cfg(any())\"},{\"name\":\"serde_core\",\"req\":\"^1.0.228\"}],\"features\":{}}", "cargo-util_0.2.23": "{\"dependencies\":[{\"name\":\"anyhow\",\"req\":\"^1.0.98\"},{\"features\":[\"mac_os_10_7_support\"],\"name\":\"core-foundation\",\"req\":\"^0.10.1\",\"target\":\"cfg(target_os = \\\"macos\\\")\"},{\"name\":\"filetime\",\"req\":\"^0.2.25\"},{\"name\":\"hex\",\"req\":\"^0.4.3\"},{\"name\":\"ignore\",\"req\":\"^0.4.23\"},{\"name\":\"jobserver\",\"req\":\"^0.1.33\"},{\"name\":\"libc\",\"req\":\"^0.2.174\",\"target\":\"cfg(unix)\"},{\"name\":\"miow\",\"req\":\"^0.6.0\",\"target\":\"cfg(windows)\"},{\"name\":\"same-file\",\"req\":\"^1.0.6\"},{\"name\":\"sha2\",\"req\":\"^0.10.9\"},{\"name\":\"shell-escape\",\"req\":\"^0.1.5\"},{\"name\":\"tempfile\",\"req\":\"^3.20.0\"},{\"default_features\":false,\"features\":[\"std\"],\"name\":\"tracing\",\"req\":\"^0.1.41\"},{\"name\":\"walkdir\",\"req\":\"^2.5.0\"},{\"features\":[\"Win32_Storage_FileSystem\",\"Win32_Foundation\",\"Win32_System_Console\"],\"name\":\"windows-sys\",\"req\":\"^0.60\",\"target\":\"cfg(windows)\"}],\"features\":{}}", "cargo_metadata_0.18.1": "{\"dependencies\":[{\"features\":[\"serde1\"],\"name\":\"camino\",\"req\":\"^1.0.7\"},{\"name\":\"cargo-platform\",\"req\":\"^0.1.2\"},{\"name\":\"derive_builder\",\"optional\":true,\"req\":\"^0.12\"},{\"features\":[\"serde\"],\"name\":\"semver\",\"req\":\"^1.0.7\"},{\"features\":[\"derive\"],\"name\":\"serde\",\"req\":\"^1.0.136\"},{\"features\":[\"unbounded_depth\"],\"name\":\"serde_json\",\"req\":\"^1.0.79\"},{\"name\":\"thiserror\",\"req\":\"^1.0.31\"}],\"features\":{\"builder\":[\"derive_builder\"],\"default\":[],\"unstable\":[]}}", + "cargo_metadata_0.23.1": "{\"dependencies\":[{\"features\":[\"serde1\"],\"name\":\"camino\",\"req\":\"^1.1.10\"},{\"name\":\"cargo-platform\",\"req\":\"^0.3.0\"},{\"name\":\"derive_builder\",\"optional\":true,\"req\":\"^0.20\"},{\"features\":[\"serde\"],\"name\":\"semver\",\"req\":\"^1.0.26\"},{\"features\":[\"derive\"],\"name\":\"serde\",\"req\":\"^1.0.219\"},{\"features\":[\"unbounded_depth\"],\"name\":\"serde_json\",\"req\":\"^1.0.142\"},{\"name\":\"thiserror\",\"req\":\"^2.0.12\"}],\"features\":{\"builder\":[\"derive_builder\"],\"default\":[],\"unstable\":[]}}", "castaway_0.2.4": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"paste\",\"req\":\"^1\"},{\"name\":\"rustversion\",\"req\":\"^1\"}],\"features\":{\"alloc\":[],\"default\":[\"std\"],\"std\":[\"alloc\"]}}", "cbc_0.1.2": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"aes\",\"req\":\"^0.8\"},{\"name\":\"cipher\",\"req\":\"^0.4.2\"},{\"features\":[\"dev\"],\"kind\":\"dev\",\"name\":\"cipher\",\"req\":\"^0.4.2\"},{\"kind\":\"dev\",\"name\":\"hex-literal\",\"req\":\"^0.3.3\"}],\"features\":{\"alloc\":[\"cipher/alloc\"],\"block-padding\":[\"cipher/block-padding\"],\"default\":[\"block-padding\"],\"std\":[\"cipher/std\",\"alloc\"],\"zeroize\":[\"cipher/zeroize\"]}}", "cc_1.2.38": "{\"dependencies\":[{\"name\":\"find-msvc-tools\",\"req\":\"^0.1.2\"},{\"default_features\":false,\"name\":\"jobserver\",\"optional\":true,\"req\":\"^0.1.30\"},{\"default_features\":false,\"name\":\"libc\",\"optional\":true,\"req\":\"^0.2.62\",\"target\":\"cfg(unix)\"},{\"name\":\"shlex\",\"req\":\"^1.3.0\"},{\"kind\":\"dev\",\"name\":\"tempfile\",\"req\":\"^3\"}],\"features\":{\"jobserver\":[],\"parallel\":[\"dep:libc\",\"dep:jobserver\"]}}", "cc_1.2.41": "{\"dependencies\":[{\"name\":\"find-msvc-tools\",\"req\":\"^0.1.4\"},{\"default_features\":false,\"name\":\"jobserver\",\"optional\":true,\"req\":\"^0.1.30\"},{\"default_features\":false,\"name\":\"libc\",\"optional\":true,\"req\":\"^0.2.62\",\"target\":\"cfg(unix)\"},{\"name\":\"shlex\",\"req\":\"^1.3.0\"},{\"kind\":\"dev\",\"name\":\"tempfile\",\"req\":\"^3\"}],\"features\":{\"jobserver\":[],\"parallel\":[\"dep:libc\",\"dep:jobserver\"]}}", "cc_1.2.55": "{\"dependencies\":[{\"name\":\"find-msvc-tools\",\"req\":\"^0.1.9\"},{\"default_features\":false,\"name\":\"jobserver\",\"optional\":true,\"req\":\"^0.1.30\"},{\"default_features\":false,\"name\":\"libc\",\"optional\":true,\"req\":\"^0.2.62\",\"target\":\"cfg(unix)\"},{\"name\":\"shlex\",\"req\":\"^1.3.0\"},{\"kind\":\"dev\",\"name\":\"tempfile\",\"req\":\"^3\"}],\"features\":{\"jobserver\":[],\"parallel\":[\"dep:libc\",\"dep:jobserver\"]}}", + "cc_1.2.61": "{\"dependencies\":[{\"name\":\"find-msvc-tools\",\"req\":\"^0.1.9\"},{\"default_features\":false,\"name\":\"jobserver\",\"optional\":true,\"req\":\"^0.1.30\"},{\"default_features\":false,\"name\":\"libc\",\"optional\":true,\"req\":\"^0.2.62\",\"target\":\"cfg(unix)\"},{\"name\":\"shlex\",\"req\":\"^1.3.0\"},{\"kind\":\"dev\",\"name\":\"tempfile\",\"req\":\"^3\"}],\"features\":{\"jobserver\":[],\"parallel\":[\"dep:libc\",\"dep:jobserver\"]}}", "census_0.4.2": "{\"dependencies\":[],\"features\":{}}", "cesu8_1.1.0": "{\"dependencies\":[],\"features\":{\"unstable\":[]}}", "cexpr_0.6.0": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"clang-sys\",\"req\":\">=0.13.0, <0.29.0\"},{\"default_features\":false,\"features\":[\"std\"],\"name\":\"nom\",\"req\":\"^7\"}],\"features\":{}}", @@ -1224,6 +1228,8 @@ "ctor-lite_0.1.1": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"macro_rules_attribute\",\"req\":\"^0.2.0\"},{\"default_features\":false,\"features\":[\"stdio\"],\"kind\":\"dev\",\"name\":\"rustix\",\"req\":\"^0.38.34\"}],\"features\":{\"alloc\":[],\"default\":[\"std\"],\"std\":[\"alloc\"]}}", "ctr_0.9.2": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"aes\",\"req\":\"^0.8\"},{\"name\":\"cipher\",\"req\":\"^0.4.2\"},{\"features\":[\"dev\"],\"kind\":\"dev\",\"name\":\"cipher\",\"req\":\"^0.4.2\"},{\"kind\":\"dev\",\"name\":\"hex-literal\",\"req\":\"^0.3.3\"},{\"kind\":\"dev\",\"name\":\"kuznyechik\",\"req\":\"^0.8\"},{\"kind\":\"dev\",\"name\":\"magma\",\"req\":\"^0.8\"}],\"features\":{\"alloc\":[\"cipher/alloc\"],\"block-padding\":[\"cipher/block-padding\"],\"std\":[\"cipher/std\",\"alloc\"],\"zeroize\":[\"cipher/zeroize\"]}}", "ctrlc_3.4.6": "{\"dependencies\":[{\"default_features\":false,\"features\":[\"fs\",\"signal\"],\"name\":\"nix\",\"req\":\"^0.29\",\"target\":\"cfg(unix)\"},{\"kind\":\"dev\",\"name\":\"signal-hook\",\"req\":\"^0.3\"},{\"features\":[\"Win32_Foundation\",\"Win32_System_Threading\",\"Win32_Security\",\"Win32_System_Console\"],\"name\":\"windows-sys\",\"req\":\"^0.59\",\"target\":\"cfg(windows)\"},{\"features\":[\"Win32_Storage_FileSystem\",\"Win32_Foundation\",\"Win32_System_IO\",\"Win32_System_Console\"],\"kind\":\"dev\",\"name\":\"windows-sys\",\"req\":\"^0.59\",\"target\":\"cfg(windows)\"}],\"features\":{\"termination\":[]}}", + "curl-sys_0.4.88+curl-8.20.0": "{\"dependencies\":[{\"kind\":\"build\",\"name\":\"cc\",\"req\":\"^1.0\"},{\"name\":\"libc\",\"req\":\"^0.2.2\"},{\"name\":\"libnghttp2-sys\",\"optional\":true,\"req\":\"^0.1.3\"},{\"default_features\":false,\"features\":[\"libc\"],\"name\":\"libz-sys\",\"req\":\"^1.0.18\"},{\"name\":\"openssl-sys\",\"optional\":true,\"req\":\"^0.9.64\",\"target\":\"cfg(all(unix))\"},{\"kind\":\"build\",\"name\":\"pkg-config\",\"req\":\"^0.3.3\"},{\"features\":[\"no_log_capture\"],\"name\":\"rustls-ffi\",\"optional\":true,\"req\":\"^0.15\"},{\"kind\":\"build\",\"name\":\"vcpkg\",\"req\":\"^0.2\",\"target\":\"cfg(target_env = \\\"msvc\\\")\"},{\"features\":[\"Win32_Networking_WinSock\"],\"name\":\"windows-sys\",\"req\":\">=0.59.0, <0.62.0\",\"target\":\"cfg(windows)\"}],\"features\":{\"default\":[\"ssl\"],\"force-system-lib-on-osx\":[],\"http2\":[\"libnghttp2-sys\"],\"mesalink\":[],\"ntlm\":[],\"poll_7_68_0\":[],\"protocol-ftp\":[],\"rustls\":[\"rustls-ffi\"],\"spnego\":[],\"ssl\":[\"openssl-sys\"],\"static-curl\":[],\"static-ssl\":[\"openssl-sys/vendored\"],\"upkeep_7_62_0\":[],\"windows-static-ssl\":[],\"zlib-ng-compat\":[\"libz-sys/zlib-ng\",\"static-curl\"]}}", + "curl_0.4.49": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"anyhow\",\"req\":\"^1.0.31\"},{\"default_features\":false,\"name\":\"curl-sys\",\"req\":\"^0.4.83\"},{\"name\":\"libc\",\"req\":\"^0.2.42\"},{\"kind\":\"dev\",\"name\":\"mio\",\"req\":\"^0.6\"},{\"kind\":\"dev\",\"name\":\"mio-extras\",\"req\":\"^2.0.3\"},{\"name\":\"openssl-probe\",\"optional\":true,\"req\":\"^0.1.2\",\"target\":\"cfg(all(unix))\"},{\"name\":\"openssl-sys\",\"optional\":true,\"req\":\"^0.9.64\",\"target\":\"cfg(all(unix))\"},{\"name\":\"schannel\",\"req\":\"^0.1.13\",\"target\":\"cfg(target_env = \\\"msvc\\\")\"},{\"name\":\"socket2\",\"req\":\"^0.6.0\"},{\"features\":[\"Win32_Foundation\",\"Win32_System_LibraryLoader\",\"Win32_Security_Cryptography\"],\"name\":\"windows-sys\",\"req\":\"^0.59\",\"target\":\"cfg(target_env = \\\"msvc\\\")\"}],\"features\":{\"default\":[\"ssl\"],\"force-system-lib-on-osx\":[\"curl-sys/force-system-lib-on-osx\"],\"http2\":[\"curl-sys/http2\"],\"mesalink\":[\"curl-sys/mesalink\"],\"ntlm\":[\"curl-sys/ntlm\"],\"poll_7_68_0\":[\"curl-sys/poll_7_68_0\"],\"protocol-ftp\":[\"curl-sys/protocol-ftp\"],\"rustls\":[\"curl-sys/rustls\"],\"spnego\":[\"curl-sys/spnego\"],\"ssl\":[\"openssl-sys\",\"openssl-probe\",\"curl-sys/ssl\"],\"static-curl\":[\"curl-sys/static-curl\"],\"static-ssl\":[\"curl-sys/static-ssl\"],\"upkeep_7_62_0\":[\"curl-sys/upkeep_7_62_0\"],\"windows-static-ssl\":[\"static-curl\",\"curl-sys/windows-static-ssl\"],\"zlib-ng-compat\":[\"curl-sys/zlib-ng-compat\",\"static-curl\"]}}", "cursor-icon_1.2.0": "{\"dependencies\":[{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.162\"},{\"kind\":\"dev\",\"name\":\"wayland-client\",\"req\":\"^0.31.1\"},{\"kind\":\"dev\",\"name\":\"wayland-cursor\",\"req\":\"^0.31.0\"}],\"features\":{\"alloc\":[],\"default\":[\"std\"],\"std\":[\"alloc\"]}}", "curve25519-dalek-derive_0.1.1": "{\"dependencies\":[{\"name\":\"proc-macro2\",\"req\":\"^1.0.66\"},{\"name\":\"quote\",\"req\":\"^1.0.31\"},{\"features\":[\"full\"],\"name\":\"syn\",\"req\":\"^2.0.27\"}],\"features\":{}}", "curve25519-dalek_4.1.3": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"bincode\",\"req\":\"^1\"},{\"name\":\"cfg-if\",\"req\":\"^1\"},{\"name\":\"cpufeatures\",\"req\":\"^0.2.6\",\"target\":\"cfg(target_arch = \\\"x86_64\\\")\"},{\"features\":[\"html_reports\"],\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5\"},{\"name\":\"curve25519-dalek-derive\",\"req\":\"^0.1\",\"target\":\"cfg(all(not(curve25519_dalek_backend = \\\"fiat\\\"), not(curve25519_dalek_backend = \\\"serial\\\"), target_arch = \\\"x86_64\\\"))\"},{\"default_features\":false,\"name\":\"digest\",\"optional\":true,\"req\":\"^0.10\"},{\"default_features\":false,\"name\":\"ff\",\"optional\":true,\"req\":\"^0.13\"},{\"default_features\":false,\"name\":\"fiat-crypto\",\"req\":\"^0.2.1\",\"target\":\"cfg(curve25519_dalek_backend = \\\"fiat\\\")\"},{\"default_features\":false,\"name\":\"group\",\"optional\":true,\"req\":\"^0.13\"},{\"kind\":\"dev\",\"name\":\"hex\",\"req\":\"^0.4.2\"},{\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.8\"},{\"default_features\":false,\"name\":\"rand_core\",\"optional\":true,\"req\":\"^0.6.4\"},{\"default_features\":false,\"features\":[\"getrandom\"],\"kind\":\"dev\",\"name\":\"rand_core\",\"req\":\"^0.6\"},{\"kind\":\"build\",\"name\":\"rustc_version\",\"req\":\"^0.4.0\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"sha2\",\"req\":\"^0.10\"},{\"default_features\":false,\"name\":\"subtle\",\"req\":\"^2.3.0\"},{\"default_features\":false,\"name\":\"zeroize\",\"optional\":true,\"req\":\"^1\"}],\"features\":{\"alloc\":[\"zeroize?/alloc\"],\"default\":[\"alloc\",\"precomputed-tables\",\"zeroize\"],\"group\":[\"dep:group\",\"rand_core\"],\"group-bits\":[\"group\",\"ff/bits\"],\"legacy_compatibility\":[],\"precomputed-tables\":[]}}", @@ -1455,6 +1461,7 @@ "fastbloom_0.14.1": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"ahash\",\"req\":\"^0.8.12\"},{\"name\":\"getrandom\",\"req\":\"^0.3\"},{\"name\":\"libm\",\"req\":\"^0.2\"},{\"name\":\"loom\",\"optional\":true,\"req\":\"^0.7.2\"},{\"name\":\"rand\",\"optional\":true,\"req\":\"^0.9.0\"},{\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.9\"},{\"features\":[\"derive\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.203\"},{\"kind\":\"dev\",\"name\":\"serde_cbor\",\"req\":\"^0.11.2\"},{\"name\":\"siphasher\",\"req\":\"^1.0.0\"}],\"features\":{\"default\":[\"std\",\"rand\"],\"loom\":[\"dep:loom\"],\"rand\":[\"dep:rand\"],\"serde\":[\"dep:serde\",\"siphasher/serde_std\"],\"std\":[]}}", "fastdivide_0.4.2": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"proptest\",\"req\":\"^1\"}],\"features\":{\"std\":[]}}", "fastrand_2.3.0": "{\"dependencies\":[{\"features\":[\"js\"],\"name\":\"getrandom\",\"optional\":true,\"req\":\"^0.2\",\"target\":\"cfg(all(any(target_arch = \\\"wasm32\\\", target_arch = \\\"wasm64\\\"), target_os = \\\"unknown\\\"))\"},{\"kind\":\"dev\",\"name\":\"getrandom\",\"req\":\"^0.2\"},{\"features\":[\"js\"],\"kind\":\"dev\",\"name\":\"getrandom\",\"req\":\"^0.2\",\"target\":\"cfg(all(any(target_arch = \\\"wasm32\\\", target_arch = \\\"wasm64\\\"), target_os = \\\"unknown\\\"))\"},{\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.8\"},{\"kind\":\"dev\",\"name\":\"wasm-bindgen-test\",\"req\":\"^0.3\",\"target\":\"cfg(all(any(target_arch = \\\"wasm32\\\", target_arch = \\\"wasm64\\\"), target_os = \\\"unknown\\\"))\"},{\"kind\":\"dev\",\"name\":\"wyhash\",\"req\":\"^0.5\"}],\"features\":{\"alloc\":[],\"default\":[\"std\"],\"js\":[\"std\",\"getrandom\"],\"std\":[\"alloc\"]}}", + "fastrand_2.4.1": "{\"dependencies\":[{\"features\":[\"wasm_js\"],\"name\":\"getrandom\",\"optional\":true,\"req\":\"^0.3.4\",\"target\":\"cfg(all(any(target_arch = \\\"wasm32\\\", target_arch = \\\"wasm64\\\"), target_os = \\\"unknown\\\"))\"},{\"kind\":\"dev\",\"name\":\"getrandom\",\"req\":\"^0.3.4\"},{\"features\":[\"wasm_js\"],\"kind\":\"dev\",\"name\":\"getrandom\",\"req\":\"^0.3.4\",\"target\":\"cfg(all(any(target_arch = \\\"wasm32\\\", target_arch = \\\"wasm64\\\"), target_os = \\\"unknown\\\"))\"},{\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.9\"},{\"kind\":\"dev\",\"name\":\"wasm-bindgen-test\",\"req\":\"^0.3\",\"target\":\"cfg(all(any(target_arch = \\\"wasm32\\\", target_arch = \\\"wasm64\\\"), target_os = \\\"unknown\\\"))\"},{\"kind\":\"dev\",\"name\":\"wyhash\",\"req\":\"^0.6\"}],\"features\":{\"alloc\":[],\"default\":[\"std\"],\"js\":[\"std\",\"getrandom\"],\"std\":[\"alloc\"]}}", "fax_0.2.6": "{\"dependencies\":[{\"name\":\"fax_derive\",\"req\":\"^0.2.0\"},{\"kind\":\"dev\",\"name\":\"tiff\",\"req\":\"^0.9\"}],\"features\":{\"debug\":[]}}", "fax_derive_0.2.0": "{\"dependencies\":[{\"name\":\"proc-macro2\",\"req\":\"^1.0\"},{\"name\":\"quote\",\"req\":\"^1.0\"},{\"name\":\"syn\",\"req\":\"^2.0\"}],\"features\":{}}", "fdeflate_0.3.7": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"miniz_oxide\",\"req\":\"^0.7.1\"},{\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.8.5\"},{\"name\":\"simd-adler32\",\"req\":\"^0.3.4\"}],\"features\":{}}", @@ -1628,6 +1635,9 @@ "git+https://github.com/salsa-rs/salsa.git?rev=53421c2fff87426fa0bb51cab06632b87646de13#53421c2fff87426fa0bb51cab06632b87646de13_salsa-macro-rules": "{\"dependencies\":[],\"features\":{\"accumulator\":[]},\"strip_prefix\":\"components/salsa-macro-rules\"}", "git+https://github.com/salsa-rs/salsa.git?rev=53421c2fff87426fa0bb51cab06632b87646de13#53421c2fff87426fa0bb51cab06632b87646de13_salsa-macros": "{\"dependencies\":[{\"name\":\"proc-macro2\"},{\"name\":\"quote\"},{\"default_features\":true,\"features\":[\"full\",\"visit-mut\"],\"name\":\"syn\",\"optional\":false},{\"name\":\"synstructure\"}],\"features\":{\"default\":[],\"persistence\":[]},\"strip_prefix\":\"components/salsa-macros\"}", "git+https://github.com/tikv/jemallocator?rev=baae33dd29ccd82c8330021418b293fa6eab5bbc#baae33dd29ccd82c8330021418b293fa6eab5bbc_tikv-jemalloc-sys": "{\"dependencies\":[{\"default_features\":false,\"features\":[],\"name\":\"libc\",\"optional\":false},{\"kind\":\"build\",\"name\":\"cc\"}],\"features\":{\"background_threads\":[\"background_threads_runtime_support\"],\"background_threads_runtime_support\":[],\"debug\":[],\"default\":[\"background_threads_runtime_support\"],\"disable_cache_oblivious\":[],\"disable_initial_exec_tls\":[],\"override_allocator_on_supported_platforms\":[\"unprefixed_malloc_on_supported_platforms\"],\"profiling\":[],\"stats\":[],\"unprefixed_malloc_on_supported_platforms\":[]},\"strip_prefix\":\"jemalloc-sys\"}", + "git+https://github.com/trailofbits/dylint?rev=1d7211228764dc18f73e41de5fc6d30c9e0de7b6#1d7211228764dc18f73e41de5fc6d30c9e0de7b6_dylint_driver": "{\"dependencies\":[{\"name\":\"anyhow\"},{\"default_features\":true,\"features\":[\"rustup\"],\"name\":\"dylint_internal\",\"optional\":false},{\"name\":\"libc\"},{\"name\":\"libloading\"},{\"name\":\"log\"},{\"name\":\"rustversion\"},{\"name\":\"serde_json\"},{\"kind\":\"build\",\"name\":\"anyhow\"},{\"kind\":\"build\",\"name\":\"curl\"},{\"default_features\":true,\"features\":[\"clippy_utils\",\"rustup\"],\"kind\":\"build\",\"name\":\"dylint_internal\",\"optional\":false},{\"kind\":\"build\",\"name\":\"git2\"},{\"kind\":\"build\",\"name\":\"proc-macro2\"},{\"kind\":\"build\",\"name\":\"rustversion\"},{\"default_features\":true,\"features\":[\"full\"],\"kind\":\"build\",\"name\":\"syn\",\"optional\":false}],\"features\":{},\"strip_prefix\":\"driver\"}", + "git+https://github.com/trailofbits/dylint?rev=1d7211228764dc18f73e41de5fc6d30c9e0de7b6#1d7211228764dc18f73e41de5fc6d30c9e0de7b6_dylint_internal": "{\"dependencies\":[{\"name\":\"anstyle\",\"optional\":true},{\"name\":\"anyhow\"},{\"name\":\"bitflags\",\"optional\":true},{\"name\":\"cargo-util\",\"optional\":true},{\"name\":\"cargo_metadata\",\"optional\":true},{\"name\":\"ctor\",\"optional\":true},{\"name\":\"env_logger\",\"optional\":true},{\"name\":\"git2\",\"optional\":true},{\"name\":\"home\",\"optional\":true},{\"name\":\"log\"},{\"name\":\"regex\"},{\"name\":\"semver\",\"optional\":true},{\"name\":\"serde\",\"optional\":true},{\"name\":\"tar\",\"optional\":true},{\"name\":\"tempfile\",\"optional\":true},{\"name\":\"thiserror\",\"optional\":true},{\"name\":\"toml\",\"optional\":true},{\"name\":\"toml_edit\",\"optional\":true},{\"name\":\"walkdir\",\"optional\":true}],\"features\":{\"cargo\":[\"anstyle\",\"bitflags\",\"cargo_metadata\",\"home\"],\"clippy_utils\":[\"git\",\"semver\",\"tempfile\",\"toml\",\"toml_edit\"],\"config\":[\"cargo_metadata\",\"serde\",\"thiserror\",\"toml\"],\"examples\":[\"cargo\",\"cargo-util\",\"rustup\",\"walkdir\"],\"git\":[\"git2\"],\"home\":[\"dep:home\"],\"match_def_path\":[],\"packaging\":[\"cargo\",\"tar\"],\"rustup\":[\"cargo_metadata\"],\"testing\":[\"ctor\",\"env_logger\",\"packaging\"]},\"strip_prefix\":\"internal\"}", + "git+https://github.com/trailofbits/dylint?rev=1d7211228764dc18f73e41de5fc6d30c9e0de7b6#1d7211228764dc18f73e41de5fc6d30c9e0de7b6_dylint_linting": "{\"dependencies\":[{\"name\":\"cargo_metadata\"},{\"default_features\":true,\"features\":[\"config\"],\"name\":\"dylint_internal\",\"optional\":false},{\"name\":\"paste\"},{\"name\":\"rustversion\"},{\"name\":\"serde\"},{\"name\":\"thiserror\"},{\"name\":\"toml\"},{\"kind\":\"build\",\"name\":\"toml\"}],\"features\":{\"constituent\":[]},\"strip_prefix\":\"utils/linting\"}", "git+https://github.com/vectordotdev/vrl.git?rev=195f1ed6a334978a8b5d318030b606a902973351#195f1ed6a334978a8b5d318030b606a902973351_vrl": "{\"dependencies\":[{\"default_features\":true,\"features\":[],\"name\":\"aes\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"aes-siv\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"ansi_term\",\"optional\":true},{\"default_features\":true,\"features\":[\"derive\"],\"name\":\"arbitrary\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"base16\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"base62\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"base64-simd\",\"optional\":true},{\"default_features\":false,\"features\":[],\"name\":\"bytes\",\"optional\":true},{\"default_features\":true,\"features\":[\"alloc\"],\"name\":\"cbc\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"cfb-mode\",\"optional\":true},{\"name\":\"cfg-if\"},{\"default_features\":true,\"features\":[],\"name\":\"chacha20poly1305\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"charset\",\"optional\":true},{\"default_features\":false,\"features\":[\"clock\",\"serde\",\"wasmbind\"],\"name\":\"chrono\",\"optional\":true},{\"default_features\":false,\"features\":[],\"name\":\"chrono-tz\",\"optional\":true},{\"default_features\":false,\"features\":[],\"name\":\"ciborium\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"cidr\",\"optional\":true},{\"default_features\":true,\"features\":[\"derive\"],\"name\":\"clap\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"codespan-reporting\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"community-id\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"convert_case\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"crc\",\"optional\":true},{\"default_features\":true,\"features\":[\"salsa20\"],\"name\":\"crypto_secretbox\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"csv\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"ctr\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"digest\",\"optional\":true},{\"default_features\":false,\"features\":[],\"name\":\"dyn-clone\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"encoding_rs\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"exitcode\",\"optional\":true},{\"default_features\":false,\"features\":[],\"name\":\"fancy-regex\",\"optional\":true},{\"default_features\":false,\"features\":[\"zlib-rs\"],\"name\":\"flate2\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"hex\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"hmac\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"iana-time-zone\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"idna\",\"optional\":true},{\"default_features\":false,\"features\":[\"std\"],\"name\":\"indexmap\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"indoc\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"influxdb-line-protocol\",\"optional\":true},{\"default_features\":false,\"features\":[],\"name\":\"ipcrypt-rs\",\"optional\":true},{\"default_features\":false,\"features\":[\"use_std\"],\"name\":\"itertools\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"lalrpop-util\",\"optional\":true},{\"name\":\"lz4_flex\"},{\"default_features\":true,\"features\":[],\"name\":\"md-5\",\"optional\":true},{\"default_features\":false,\"features\":[\"lua54\",\"send\",\"vendored\"],\"name\":\"mlua\",\"optional\":true},{\"default_features\":false,\"features\":[\"std\"],\"name\":\"nom\",\"optional\":true},{\"default_features\":false,\"features\":[],\"name\":\"nom-language\",\"optional\":false},{\"default_features\":true,\"features\":[],\"name\":\"ofb\",\"optional\":true},{\"default_features\":false,\"features\":[],\"name\":\"ordered-float\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"parse-size\",\"optional\":true},{\"default_features\":false,\"features\":[],\"name\":\"peeking_take_while\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"percent-encoding\",\"optional\":true},{\"default_features\":false,\"features\":[\"std\"],\"name\":\"pest\",\"optional\":true},{\"default_features\":false,\"features\":[\"std\"],\"name\":\"pest_derive\",\"optional\":true},{\"default_features\":false,\"features\":[],\"name\":\"prettydiff\",\"optional\":true},{\"default_features\":false,\"features\":[],\"name\":\"prettytable-rs\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"proptest\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"proptest-derive\",\"optional\":true},{\"default_features\":false,\"features\":[\"std\"],\"name\":\"prost\",\"optional\":true},{\"default_features\":false,\"features\":[],\"name\":\"prost-reflect\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"psl\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"psl-types\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"publicsuffix\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"quickcheck\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"quoted_printable\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"rand\",\"optional\":true},{\"default_features\":false,\"features\":[\"std\",\"perf\",\"unicode\"],\"name\":\"regex\",\"optional\":true},{\"default_features\":false,\"features\":[\"http2\",\"rustls-tls-native-roots\"],\"name\":\"reqwest\",\"optional\":false},{\"default_features\":false,\"features\":[],\"name\":\"reqwest-middleware\",\"optional\":false},{\"default_features\":false,\"features\":[],\"name\":\"reqwest-retry\",\"optional\":false},{\"default_features\":true,\"features\":[],\"name\":\"roxmltree\",\"optional\":true},{\"default_features\":false,\"features\":[],\"name\":\"rust_decimal\",\"optional\":true},{\"default_features\":false,\"features\":[],\"name\":\"rustyline\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"seahash\",\"optional\":true},{\"default_features\":true,\"features\":[\"derive\"],\"name\":\"serde\",\"optional\":true},{\"default_features\":false,\"features\":[\"std\",\"raw_value\"],\"name\":\"serde_json\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"sha-1\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"sha-2\",\"optional\":true,\"package\":\"sha2\"},{\"default_features\":true,\"features\":[],\"name\":\"sha-3\",\"optional\":true,\"package\":\"sha3\"},{\"default_features\":true,\"features\":[],\"name\":\"simdutf8\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"snafu\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"snap\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"strip-ansi-escapes\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"syslog_loose\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"termcolor\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"thiserror\",\"optional\":true},{\"default_features\":false,\"features\":[],\"name\":\"tracing\",\"optional\":false},{\"default_features\":true,\"features\":[],\"name\":\"ua-parser\",\"optional\":true},{\"name\":\"unicode-segmentation\"},{\"default_features\":true,\"features\":[],\"name\":\"url\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"utf8-width\",\"optional\":true},{\"default_features\":false,\"features\":[],\"name\":\"webbrowser\",\"optional\":true},{\"default_features\":true,\"features\":[],\"name\":\"woothee\",\"optional\":true},{\"default_features\":true,\"features\":[\"xxh3\",\"xxh32\",\"xxh64\"],\"name\":\"xxhash-rust\",\"optional\":true},{\"default_features\":false,\"features\":[\"wasm\"],\"name\":\"zstd\",\"optional\":true},{\"default_features\":false,\"features\":[],\"kind\":\"build\",\"name\":\"lalrpop\",\"optional\":false},{\"kind\":\"build\",\"name\":\"serde_yaml\"},{\"default_features\":true,\"features\":[],\"kind\":\"build\",\"name\":\"ua-parser\",\"optional\":false},{\"default_features\":true,\"features\":[],\"name\":\"dns-lookup\",\"optional\":true,\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":true,\"features\":[\"resolv-sync\",\"serde\"],\"name\":\"domain\",\"optional\":true,\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":true,\"features\":[],\"name\":\"grok\",\"optional\":true,\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":true,\"features\":[],\"name\":\"hostname\",\"optional\":true,\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":false,\"features\":[],\"name\":\"jsonschema\",\"optional\":false,\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":false,\"features\":[],\"name\":\"onig\",\"optional\":true,\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":true,\"features\":[\"io-util\",\"macros\",\"net\",\"time\",\"sync\",\"rt\",\"rt-multi-thread\"],\"name\":\"tokio\",\"optional\":true,\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":true,\"features\":[\"v4\",\"v7\"],\"name\":\"uuid\",\"optional\":true,\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":true,\"features\":[\"v4\",\"v7\",\"js\"],\"name\":\"uuid\",\"optional\":true,\"target\":\"cfg(target_arch = \\\"wasm32\\\")\"}],\"features\":{\"__mock_return_values_for_tests\":[],\"arbitrary\":[\"dep:quickcheck\",\"dep:arbitrary\"],\"cli\":[\"stdlib\",\"dep:clap\",\"dep:serde_json\",\"dep:thiserror\",\"dep:exitcode\",\"dep:webbrowser\",\"dep:rustyline\",\"dep:prettytable-rs\"],\"compiler\":[\"diagnostic\",\"path\",\"parser\",\"value\",\"dep:chrono\",\"dep:serde\",\"dep:regex\",\"dep:bytes\",\"dep:ordered-float\",\"dep:chrono-tz\",\"dep:snafu\",\"dep:thiserror\",\"dep:dyn-clone\",\"dep:indoc\",\"dep:thiserror\",\"dep:lalrpop-util\"],\"core\":[\"value\",\"dep:snafu\",\"dep:nom\"],\"datadog\":[\"datadog_filter\",\"datadog_grok\",\"datadog_search\"],\"datadog_filter\":[\"path\",\"datadog_search\",\"dep:regex\",\"dep:dyn-clone\"],\"datadog_grok\":[\"value\",\"parsing\",\"dep:nom\",\"dep:peeking_take_while\",\"dep:serde_json\",\"dep:onig\",\"dep:lalrpop-util\",\"dep:thiserror\",\"dep:chrono\",\"dep:chrono-tz\",\"dep:percent-encoding\",\"dep:fancy-regex\"],\"datadog_search\":[\"dep:pest\",\"dep:pest_derive\",\"dep:itertools\",\"dep:regex\",\"dep:serde\"],\"default\":[\"compiler\",\"value\",\"diagnostic\",\"path\",\"parser\",\"stdlib\",\"datadog\",\"core\"],\"diagnostic\":[\"dep:codespan-reporting\",\"dep:termcolor\"],\"float_roundtrip\":[\"dep:serde_json\",\"serde_json/float_roundtrip\"],\"lua\":[\"dep:mlua\"],\"parser\":[\"path\",\"diagnostic\",\"value\",\"dep:thiserror\",\"dep:ordered-float\",\"dep:lalrpop-util\"],\"parsing\":[\"value\",\"compiler\",\"dep:url\",\"dep:nom\",\"dep:regex\",\"dep:roxmltree\",\"dep:rust_decimal\"],\"path\":[\"value\",\"dep:serde\",\"dep:snafu\",\"dep:regex\"],\"proptest\":[\"dep:proptest\",\"dep:proptest-derive\"],\"stdlib\":[\"compiler\",\"core\",\"datadog\",\"parsing\",\"dep:aes\",\"dep:aes-siv\",\"dep:base16\",\"dep:base62\",\"dep:base64-simd\",\"dep:cbc\",\"dep:cfb-mode\",\"dep:chacha20poly1305\",\"dep:charset\",\"dep:convert_case\",\"dep:ciborium\",\"dep:cidr\",\"dep:community-id\",\"dep:crc\",\"dep:crypto_secretbox\",\"dep:csv\",\"dep:ctr\",\"dep:digest\",\"dep:domain\",\"dep:dns-lookup\",\"dep:flate2\",\"dep:grok\",\"dep:hex\",\"dep:hmac\",\"dep:hostname\",\"dep:iana-time-zone\",\"dep:idna\",\"dep:indexmap\",\"dep:influxdb-line-protocol\",\"dep:ipcrypt-rs\",\"dep:md-5\",\"dep:nom\",\"dep:ofb\",\"dep:parse-size\",\"dep:percent-encoding\",\"dep:prost\",\"dep:prost-reflect\",\"dep:psl\",\"dep:psl-types\",\"dep:publicsuffix\",\"dep:quoted_printable\",\"dep:rand\",\"dep:roxmltree\",\"dep:rust_decimal\",\"dep:seahash\",\"dep:sha-1\",\"dep:sha-2\",\"dep:sha-3\",\"dep:snap\",\"dep:strip-ansi-escapes\",\"dep:syslog_loose\",\"dep:tokio\",\"dep:ua-parser\",\"dep:url\",\"dep:utf8-width\",\"dep:uuid\",\"dep:woothee\",\"dep:xxhash-rust\",\"dep:zstd\",\"dep:encoding_rs\"],\"string_path\":[],\"test\":[\"string_path\"],\"test_framework\":[\"compiler\",\"dep:prettydiff\",\"dep:serde_json\",\"dep:ansi_term\"],\"value\":[\"path\",\"dep:bytes\",\"dep:regex\",\"dep:ordered-float\",\"dep:chrono\",\"dep:serde_json\",\"dep:simdutf8\"]},\"strip_prefix\":\"\"}", "git+ssh://git@github.com/serde-rs/serde.git?rev=4e278703c62428b0a72e4ecec434a99c0e8576a3#4e278703c62428b0a72e4ecec434a99c0e8576a3_serde_derive": "{\"dependencies\":[{\"default_features\":false,\"features\":[\"proc-macro\"],\"name\":\"proc-macro2\",\"optional\":false},{\"default_features\":false,\"features\":[\"proc-macro\"],\"name\":\"quote\",\"optional\":false},{\"default_features\":false,\"features\":[\"clone-impls\",\"derive\",\"parsing\",\"printing\",\"proc-macro\"],\"name\":\"syn\",\"optional\":false}],\"features\":{\"default\":[],\"deserialize_in_place\":[]},\"strip_prefix\":\"serde_derive\"}", "git2_0.20.4": "{\"dependencies\":[{\"name\":\"bitflags\",\"req\":\"^2.1.0\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"clap\",\"req\":\"^4.4.13\"},{\"name\":\"libc\",\"req\":\"^0.2\"},{\"name\":\"libgit2-sys\",\"req\":\"^0.18.3\"},{\"name\":\"log\",\"req\":\"^0.4.8\"},{\"name\":\"openssl-probe\",\"optional\":true,\"req\":\"^0.1\",\"target\":\"cfg(all(unix, not(target_os = \\\"macos\\\")))\"},{\"name\":\"openssl-sys\",\"optional\":true,\"req\":\"^0.9.45\",\"target\":\"cfg(all(unix, not(target_os = \\\"macos\\\")))\"},{\"kind\":\"dev\",\"name\":\"tempfile\",\"req\":\"^3.1.0\"},{\"features\":[\"formatting\"],\"kind\":\"dev\",\"name\":\"time\",\"req\":\"^0.3.37\"},{\"name\":\"url\",\"req\":\"^2.5.4\"}],\"features\":{\"default\":[\"ssh\",\"https\"],\"https\":[\"libgit2-sys/https\",\"openssl-sys\",\"openssl-probe\"],\"ssh\":[\"libgit2-sys/ssh\"],\"unstable\":[],\"vendored-libgit2\":[\"libgit2-sys/vendored\"],\"vendored-openssl\":[\"openssl-sys/vendored\",\"libgit2-sys/vendored-openssl\"],\"zlib-ng-compat\":[\"libgit2-sys/zlib-ng-compat\"]}}", @@ -1702,6 +1712,7 @@ "hashbrown_0.15.5": "{\"dependencies\":[{\"name\":\"alloc\",\"optional\":true,\"package\":\"rustc-std-workspace-alloc\",\"req\":\"^1.0.0\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"allocator-api2\",\"optional\":true,\"req\":\"^0.2.9\"},{\"features\":[\"allocator-api2\"],\"kind\":\"dev\",\"name\":\"bumpalo\",\"req\":\"^3.13.0\"},{\"name\":\"core\",\"optional\":true,\"package\":\"rustc-std-workspace-core\",\"req\":\"^1.0.0\"},{\"kind\":\"dev\",\"name\":\"doc-comment\",\"req\":\"^0.3.1\"},{\"default_features\":false,\"name\":\"equivalent\",\"optional\":true,\"req\":\"^1.0\"},{\"kind\":\"dev\",\"name\":\"fnv\",\"req\":\"^1.0.7\"},{\"default_features\":false,\"name\":\"foldhash\",\"optional\":true,\"req\":\"^0.1.2\"},{\"kind\":\"dev\",\"name\":\"lazy_static\",\"req\":\"^1.4\"},{\"features\":[\"small_rng\"],\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.9.0\"},{\"name\":\"rayon\",\"optional\":true,\"req\":\"^1.2\"},{\"kind\":\"dev\",\"name\":\"rayon\",\"req\":\"^1.2\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.25\"},{\"kind\":\"dev\",\"name\":\"serde_test\",\"req\":\"^1.0\"}],\"features\":{\"default\":[\"default-hasher\",\"inline-more\",\"allocator-api2\",\"equivalent\",\"raw-entry\"],\"default-hasher\":[\"dep:foldhash\"],\"inline-more\":[],\"nightly\":[\"bumpalo/allocator_api\"],\"raw-entry\":[],\"rustc-dep-of-std\":[\"nightly\",\"core\",\"alloc\",\"rustc-internal-api\"],\"rustc-internal-api\":[]}}", "hashbrown_0.16.0": "{\"dependencies\":[{\"name\":\"alloc\",\"optional\":true,\"package\":\"rustc-std-workspace-alloc\",\"req\":\"^1.0.0\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"allocator-api2\",\"optional\":true,\"req\":\"^0.2.9\"},{\"features\":[\"allocator-api2\"],\"kind\":\"dev\",\"name\":\"bumpalo\",\"req\":\"^3.13.0\"},{\"name\":\"core\",\"optional\":true,\"package\":\"rustc-std-workspace-core\",\"req\":\"^1.0.0\"},{\"kind\":\"dev\",\"name\":\"doc-comment\",\"req\":\"^0.3.1\"},{\"default_features\":false,\"name\":\"equivalent\",\"optional\":true,\"req\":\"^1.0\"},{\"kind\":\"dev\",\"name\":\"fnv\",\"req\":\"^1.0.7\"},{\"default_features\":false,\"name\":\"foldhash\",\"optional\":true,\"req\":\"^0.2.0\"},{\"kind\":\"dev\",\"name\":\"lazy_static\",\"req\":\"^1.4\"},{\"features\":[\"small_rng\"],\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.9.0\"},{\"name\":\"rayon\",\"optional\":true,\"req\":\"^1.2\"},{\"kind\":\"dev\",\"name\":\"rayon\",\"req\":\"^1.2\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.25\"},{\"kind\":\"dev\",\"name\":\"serde_test\",\"req\":\"^1.0\"}],\"features\":{\"default\":[\"default-hasher\",\"inline-more\",\"allocator-api2\",\"equivalent\",\"raw-entry\"],\"default-hasher\":[\"dep:foldhash\"],\"inline-more\":[],\"nightly\":[\"foldhash?/nightly\",\"bumpalo/allocator_api\"],\"raw-entry\":[],\"rustc-dep-of-std\":[\"nightly\",\"core\",\"alloc\",\"rustc-internal-api\"],\"rustc-internal-api\":[]}}", "hashbrown_0.16.1": "{\"dependencies\":[{\"name\":\"alloc\",\"optional\":true,\"package\":\"rustc-std-workspace-alloc\",\"req\":\"^1.0.0\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"allocator-api2\",\"optional\":true,\"req\":\"^0.2.9\"},{\"features\":[\"allocator-api2\"],\"kind\":\"dev\",\"name\":\"bumpalo\",\"req\":\"^3.13.0\"},{\"name\":\"core\",\"optional\":true,\"package\":\"rustc-std-workspace-core\",\"req\":\"^1.0.0\"},{\"default_features\":false,\"name\":\"equivalent\",\"optional\":true,\"req\":\"^1.0\"},{\"kind\":\"dev\",\"name\":\"fnv\",\"req\":\"^1.0.7\"},{\"default_features\":false,\"name\":\"foldhash\",\"optional\":true,\"req\":\"^0.2.0\"},{\"kind\":\"dev\",\"name\":\"lazy_static\",\"req\":\"^1.4\"},{\"kind\":\"dev\",\"name\":\"libc\",\"req\":\"^0.2.155\",\"target\":\"cfg(unix)\"},{\"features\":[\"small_rng\"],\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.9.0\"},{\"name\":\"rayon\",\"optional\":true,\"req\":\"^1.9.0\"},{\"kind\":\"dev\",\"name\":\"rayon\",\"req\":\"^1.2\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.220\",\"target\":\"cfg(any())\"},{\"default_features\":false,\"name\":\"serde_core\",\"optional\":true,\"req\":\"^1.0.221\"},{\"kind\":\"dev\",\"name\":\"serde_test\",\"req\":\"^1.0\"}],\"features\":{\"default\":[\"default-hasher\",\"inline-more\",\"allocator-api2\",\"equivalent\",\"raw-entry\"],\"default-hasher\":[\"dep:foldhash\"],\"inline-more\":[],\"nightly\":[\"foldhash?/nightly\",\"bumpalo/allocator_api\"],\"raw-entry\":[],\"rustc-dep-of-std\":[\"nightly\",\"core\",\"alloc\",\"rustc-internal-api\"],\"rustc-internal-api\":[],\"serde\":[\"dep:serde_core\",\"dep:serde\"]}}", + "hashbrown_0.17.0": "{\"dependencies\":[{\"name\":\"alloc\",\"optional\":true,\"package\":\"rustc-std-workspace-alloc\",\"req\":\"^1.0.0\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"allocator-api2\",\"optional\":true,\"req\":\"^0.2.9\"},{\"features\":[\"allocator-api2\"],\"kind\":\"dev\",\"name\":\"bumpalo\",\"req\":\"^3.13.0\"},{\"name\":\"core\",\"optional\":true,\"package\":\"rustc-std-workspace-core\",\"req\":\"^1.0.0\"},{\"features\":[\"html_reports\"],\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.7\"},{\"default_features\":false,\"name\":\"equivalent\",\"optional\":true,\"req\":\"^1.0\"},{\"kind\":\"dev\",\"name\":\"fnv\",\"req\":\"^1.0.7\"},{\"default_features\":false,\"name\":\"foldhash\",\"optional\":true,\"req\":\"^0.2.0\"},{\"kind\":\"dev\",\"name\":\"libc\",\"req\":\"^0.2.155\",\"target\":\"cfg(unix)\"},{\"features\":[\"small_rng\"],\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.9.0\"},{\"name\":\"rayon\",\"optional\":true,\"req\":\"^1.9.0\"},{\"kind\":\"dev\",\"name\":\"rayon\",\"req\":\"^1.2\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.220\",\"target\":\"cfg(any())\"},{\"default_features\":false,\"name\":\"serde_core\",\"optional\":true,\"req\":\"^1.0.221\"},{\"kind\":\"dev\",\"name\":\"serde_test\",\"req\":\"^1.0\"}],\"features\":{\"default\":[\"default-hasher\",\"inline-more\",\"allocator-api2\",\"equivalent\",\"raw-entry\"],\"default-hasher\":[\"dep:foldhash\"],\"inline-more\":[],\"nightly\":[\"foldhash?/nightly\",\"bumpalo/allocator_api\"],\"raw-entry\":[],\"rustc-dep-of-std\":[\"nightly\",\"core\",\"alloc\",\"rustc-internal-api\"],\"rustc-internal-api\":[],\"serde\":[\"dep:serde_core\",\"dep:serde\"]}}", "hashers_1.0.1": "{\"dependencies\":[{\"name\":\"fxhash\",\"req\":\"^0.2.1\"},{\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.5.4\"}],\"features\":{}}", "hashlink_0.10.0": "{\"dependencies\":[{\"default_features\":false,\"features\":[\"default-hasher\",\"inline-more\"],\"name\":\"hashbrown\",\"req\":\"^0.15\"},{\"kind\":\"dev\",\"name\":\"rustc-hash\",\"req\":\"^2\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0\"},{\"kind\":\"dev\",\"name\":\"serde_test\",\"req\":\"^1.0\"}],\"features\":{\"serde_impl\":[\"serde\"]}}", "hassle-rs_0.11.0": "{\"dependencies\":[{\"name\":\"bitflags\",\"req\":\"^2\"},{\"features\":[\"production\"],\"name\":\"com\",\"req\":\"^0.6\"},{\"name\":\"libc\",\"req\":\"^0.2\",\"target\":\"cfg(not(windows))\"},{\"name\":\"libloading\",\"req\":\">=0.7, <0.9\"},{\"kind\":\"dev\",\"name\":\"rspirv\",\"req\":\"^0.11\"},{\"name\":\"thiserror\",\"req\":\"^1.0.2\"},{\"name\":\"widestring\",\"req\":\"^1\"},{\"features\":[\"wtypes\",\"oleauto\",\"combaseapi\"],\"name\":\"winapi\",\"req\":\"^0.3\",\"target\":\"cfg(windows)\"}],\"features\":{}}", @@ -1758,22 +1769,30 @@ "iced_winit_0.13.0": "{\"dependencies\":[{\"name\":\"iced_futures\",\"req\":\"^0.13.0\"},{\"name\":\"iced_graphics\",\"req\":\"^0.13.0\"},{\"name\":\"iced_runtime\",\"req\":\"^0.13.0\"},{\"name\":\"log\",\"req\":\"^0.4\"},{\"name\":\"rustc-hash\",\"req\":\"^2.0\"},{\"name\":\"sysinfo\",\"optional\":true,\"req\":\"^0.30\"},{\"name\":\"thiserror\",\"req\":\"^1.0\"},{\"name\":\"tracing\",\"req\":\"^0.1\"},{\"name\":\"wasm-bindgen-futures\",\"req\":\"^0.4\",\"target\":\"cfg(target_arch = \\\"wasm32\\\")\"},{\"features\":[\"Document\",\"Window\",\"HtmlCanvasElement\"],\"name\":\"web-sys\",\"req\":\"^0.3.69\",\"target\":\"cfg(target_arch = \\\"wasm32\\\")\"},{\"name\":\"winapi\",\"req\":\"^0.3\",\"target\":\"cfg(target_os = \\\"windows\\\")\"},{\"name\":\"window_clipboard\",\"req\":\"^0.4.1\"},{\"name\":\"winit\",\"req\":\"^0.30\"}],\"features\":{\"debug\":[\"iced_runtime/debug\"],\"default\":[\"x11\",\"wayland\",\"wayland-dlopen\",\"wayland-csd-adwaita\"],\"multi-window\":[\"iced_runtime/multi-window\"],\"program\":[],\"system\":[\"sysinfo\"],\"wayland\":[\"winit/wayland\"],\"wayland-csd-adwaita\":[\"winit/wayland-csd-adwaita\"],\"wayland-dlopen\":[\"winit/wayland-dlopen\"],\"x11\":[\"winit/x11\"]}}", "icu_collections_2.0.0": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5.0\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"databake\",\"optional\":true,\"req\":\"^0.2.0\"},{\"default_features\":false,\"name\":\"displaydoc\",\"req\":\"^0.2.3\"},{\"kind\":\"dev\",\"name\":\"iai\",\"req\":\"^0.1.1\"},{\"default_features\":false,\"features\":[\"alloc\"],\"kind\":\"dev\",\"name\":\"postcard\",\"req\":\"^1.0.3\"},{\"default_features\":false,\"features\":[\"zerovec\"],\"name\":\"potential_utf\",\"req\":\"^0.1.1\"},{\"default_features\":false,\"features\":[\"derive\",\"alloc\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.110\"},{\"default_features\":false,\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0.110\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.45\"},{\"default_features\":false,\"features\":[\"parse\"],\"kind\":\"dev\",\"name\":\"toml\",\"req\":\"^0.8.0\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"yoke\",\"req\":\"^0.8.0\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"zerofrom\",\"req\":\"^0.1.3\"},{\"default_features\":false,\"features\":[\"derive\",\"yoke\"],\"name\":\"zerovec\",\"req\":\"^0.11.1\"}],\"features\":{\"alloc\":[\"zerovec/alloc\"],\"databake\":[\"dep:databake\",\"zerovec/databake\"],\"serde\":[\"dep:serde\",\"zerovec/serde\",\"potential_utf/serde\",\"alloc\"]}}", "icu_collections_2.1.1": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5.0\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"databake\",\"optional\":true,\"req\":\"^0.2.0\"},{\"default_features\":false,\"name\":\"displaydoc\",\"req\":\"^0.2.3\"},{\"kind\":\"dev\",\"name\":\"iai\",\"req\":\"^0.1.1\"},{\"default_features\":false,\"features\":[\"alloc\"],\"kind\":\"dev\",\"name\":\"postcard\",\"req\":\"^1.0.3\"},{\"default_features\":false,\"features\":[\"zerovec\"],\"name\":\"potential_utf\",\"req\":\"^0.1.3\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.220\"},{\"default_features\":false,\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0.220\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.45\"},{\"default_features\":false,\"features\":[\"parse\"],\"kind\":\"dev\",\"name\":\"toml\",\"req\":\"^0.8.0\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"yoke\",\"req\":\"^0.8.0\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"zerofrom\",\"req\":\"^0.1.3\"},{\"default_features\":false,\"features\":[\"derive\",\"yoke\"],\"name\":\"zerovec\",\"req\":\"^0.11.3\"}],\"features\":{\"alloc\":[\"serde?/alloc\",\"zerovec/alloc\"],\"databake\":[\"dep:databake\",\"zerovec/databake\"],\"serde\":[\"dep:serde\",\"zerovec/serde\",\"potential_utf/serde\",\"alloc\"]}}", + "icu_collections_2.2.0": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5.0\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"databake\",\"optional\":true,\"req\":\"^0.2.0\"},{\"default_features\":false,\"name\":\"displaydoc\",\"req\":\"^0.2.3\"},{\"kind\":\"dev\",\"name\":\"iai\",\"req\":\"^0.1.1\"},{\"default_features\":false,\"features\":[\"alloc\"],\"kind\":\"dev\",\"name\":\"postcard\",\"req\":\"^1.0.3\"},{\"default_features\":false,\"features\":[\"zerovec\"],\"name\":\"potential_utf\",\"req\":\"^0.1.3\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.220\"},{\"default_features\":false,\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0.220\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.45\"},{\"default_features\":false,\"features\":[\"parse\"],\"kind\":\"dev\",\"name\":\"toml\",\"req\":\"^0.8.0\"},{\"default_features\":false,\"name\":\"utf8_iter\",\"req\":\"^1.0.2\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"yoke\",\"req\":\"^0.8.2\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"zerofrom\",\"req\":\"^0.1.6\"},{\"default_features\":false,\"features\":[\"derive\",\"yoke\"],\"name\":\"zerovec\",\"req\":\"^0.11.6\"}],\"features\":{\"alloc\":[\"serde?/alloc\",\"zerovec/alloc\"],\"databake\":[\"dep:databake\",\"zerovec/databake\"],\"serde\":[\"dep:serde\",\"zerovec/serde\",\"potential_utf/serde\",\"alloc\"]}}", "icu_locale_core_2.0.0": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5.0\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"databake\",\"optional\":true,\"req\":\"^0.2.0\"},{\"default_features\":false,\"name\":\"displaydoc\",\"req\":\"^0.2.3\"},{\"kind\":\"dev\",\"name\":\"iai\",\"req\":\"^0.1.1\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"litemap\",\"req\":\"^0.8.0\"},{\"default_features\":false,\"features\":[\"use-std\"],\"kind\":\"dev\",\"name\":\"postcard\",\"req\":\"^1.0.3\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"potential_utf\",\"req\":\"^0.1.1\"},{\"default_features\":false,\"features\":[\"alloc\",\"derive\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.110\"},{\"default_features\":false,\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0.110\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.45\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"tinystr\",\"req\":\"^0.8.0\"},{\"default_features\":false,\"name\":\"writeable\",\"req\":\"^0.6.0\"},{\"default_features\":false,\"name\":\"zerovec\",\"optional\":true,\"req\":\"^0.11.1\"}],\"features\":{\"alloc\":[],\"databake\":[\"dep:databake\",\"alloc\"],\"serde\":[\"dep:serde\",\"tinystr/serde\",\"alloc\"],\"zerovec\":[\"dep:zerovec\",\"tinystr/zerovec\"]}}", "icu_locale_core_2.1.1": "{\"dependencies\":[{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"databake\",\"optional\":true,\"req\":\"^0.2.0\"},{\"default_features\":false,\"name\":\"displaydoc\",\"req\":\"^0.2.3\"},{\"default_features\":false,\"name\":\"litemap\",\"req\":\"^0.8.0\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.220\"},{\"default_features\":false,\"name\":\"tinystr\",\"req\":\"^0.8.0\"},{\"default_features\":false,\"name\":\"writeable\",\"req\":\"^0.6.0\"},{\"default_features\":false,\"name\":\"zerovec\",\"optional\":true,\"req\":\"^0.11.3\"}],\"features\":{\"alloc\":[\"litemap/alloc\",\"tinystr/alloc\",\"writeable/alloc\",\"serde?/alloc\"],\"databake\":[\"dep:databake\",\"alloc\"],\"serde\":[\"dep:serde\",\"tinystr/serde\"],\"zerovec\":[\"dep:zerovec\",\"tinystr/zerovec\"]}}", + "icu_locale_core_2.2.0": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5.0\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"databake\",\"optional\":true,\"req\":\"^0.2.0\"},{\"default_features\":false,\"name\":\"displaydoc\",\"req\":\"^0.2.3\"},{\"kind\":\"dev\",\"name\":\"iai\",\"req\":\"^0.1.1\"},{\"default_features\":false,\"name\":\"litemap\",\"req\":\"^0.8.0\"},{\"default_features\":false,\"features\":[\"testing\"],\"kind\":\"dev\",\"name\":\"litemap\",\"req\":\"^0.8.0\"},{\"default_features\":false,\"features\":[\"use-std\"],\"kind\":\"dev\",\"name\":\"postcard\",\"req\":\"^1.0.3\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"potential_utf\",\"req\":\"^0.1.3\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.220\"},{\"default_features\":false,\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0.220\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.45\"},{\"default_features\":false,\"name\":\"tinystr\",\"req\":\"^0.8.3\"},{\"default_features\":false,\"name\":\"writeable\",\"req\":\"^0.6.1\"},{\"default_features\":false,\"name\":\"zerovec\",\"optional\":true,\"req\":\"^0.11.6\"}],\"features\":{\"alloc\":[\"litemap/alloc\",\"tinystr/alloc\",\"writeable/alloc\",\"serde?/alloc\"],\"databake\":[\"dep:databake\",\"alloc\"],\"serde\":[\"dep:serde\",\"tinystr/serde\"],\"zerovec\":[\"dep:zerovec\",\"tinystr/zerovec\"]}}", "icu_normalizer_2.0.0": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"arraystring\",\"req\":\"^0.3.0\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"arrayvec\",\"req\":\"^0.7.2\"},{\"kind\":\"dev\",\"name\":\"atoi\",\"req\":\"^2.0.0\"},{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5.0\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"databake\",\"optional\":true,\"req\":\"^0.2.0\"},{\"kind\":\"dev\",\"name\":\"detone\",\"req\":\"^1.0.0\"},{\"default_features\":false,\"name\":\"displaydoc\",\"req\":\"^0.2.3\"},{\"default_features\":false,\"name\":\"icu_collections\",\"req\":\"~2.0.0\"},{\"default_features\":false,\"name\":\"icu_normalizer_data\",\"optional\":true,\"req\":\"~2.0.0\"},{\"default_features\":false,\"name\":\"icu_properties\",\"optional\":true,\"req\":\"~2.0.0\"},{\"default_features\":false,\"name\":\"icu_provider\",\"req\":\"^2.0.0\"},{\"default_features\":false,\"features\":[\"derive\",\"alloc\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.110\"},{\"default_features\":false,\"name\":\"smallvec\",\"req\":\"^1.10.0\"},{\"default_features\":false,\"name\":\"utf16_iter\",\"optional\":true,\"req\":\"^1.0.2\"},{\"default_features\":false,\"name\":\"utf8_iter\",\"optional\":true,\"req\":\"^1.0.2\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"write16\",\"optional\":true,\"req\":\"^1.0.0\"},{\"default_features\":false,\"features\":[\"arrayvec\"],\"kind\":\"dev\",\"name\":\"write16\",\"req\":\"^1.0.0\"},{\"default_features\":false,\"name\":\"zerovec\",\"req\":\"^0.11.1\"}],\"features\":{\"compiled_data\":[\"dep:icu_normalizer_data\",\"icu_properties?/compiled_data\",\"icu_provider/baked\"],\"datagen\":[\"serde\",\"dep:databake\",\"icu_properties\",\"icu_collections/databake\",\"zerovec/databake\",\"icu_properties?/datagen\",\"icu_provider/export\"],\"default\":[\"compiled_data\",\"utf8_iter\",\"utf16_iter\"],\"experimental\":[],\"icu_properties\":[\"dep:icu_properties\"],\"serde\":[\"dep:serde\",\"icu_collections/serde\",\"zerovec/serde\",\"icu_properties?/serde\",\"icu_provider/serde\"],\"utf16_iter\":[\"dep:utf16_iter\",\"write16\"],\"utf8_iter\":[\"dep:utf8_iter\"]}}", "icu_normalizer_2.1.1": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"arraystring\",\"req\":\"^0.3.0\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"arrayvec\",\"req\":\"^0.7.2\"},{\"kind\":\"dev\",\"name\":\"atoi\",\"req\":\"^2.0.0\"},{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5.0\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"databake\",\"optional\":true,\"req\":\"^0.2.0\"},{\"kind\":\"dev\",\"name\":\"detone\",\"req\":\"^1.0.0\"},{\"default_features\":false,\"name\":\"icu_collections\",\"req\":\"~2.1.1\"},{\"default_features\":false,\"name\":\"icu_normalizer_data\",\"optional\":true,\"req\":\"~2.1.1\"},{\"default_features\":false,\"name\":\"icu_properties\",\"optional\":true,\"req\":\"~2.1.1\"},{\"default_features\":false,\"name\":\"icu_provider\",\"req\":\"^2.1.1\"},{\"default_features\":false,\"features\":[\"derive\",\"alloc\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.220\"},{\"default_features\":false,\"name\":\"smallvec\",\"req\":\"^1.10.0\"},{\"default_features\":false,\"name\":\"utf16_iter\",\"optional\":true,\"req\":\"^1.0.2\"},{\"default_features\":false,\"name\":\"utf8_iter\",\"optional\":true,\"req\":\"^1.0.2\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"write16\",\"optional\":true,\"req\":\"^1.0.0\"},{\"default_features\":false,\"features\":[\"arrayvec\",\"smallvec\"],\"kind\":\"dev\",\"name\":\"write16\",\"req\":\"^1.0.0\"},{\"default_features\":false,\"name\":\"zerovec\",\"req\":\"^0.11.3\"}],\"features\":{\"compiled_data\":[\"dep:icu_normalizer_data\",\"icu_properties?/compiled_data\",\"icu_provider/baked\"],\"datagen\":[\"serde\",\"dep:databake\",\"icu_properties\",\"icu_collections/databake\",\"zerovec/databake\",\"icu_properties?/datagen\",\"icu_provider/export\"],\"default\":[\"compiled_data\",\"utf8_iter\",\"utf16_iter\"],\"experimental\":[],\"icu_properties\":[\"dep:icu_properties\"],\"serde\":[\"dep:serde\",\"icu_collections/serde\",\"zerovec/serde\",\"icu_properties?/serde\",\"icu_provider/serde\"],\"utf16_iter\":[\"dep:utf16_iter\",\"dep:write16\"],\"utf8_iter\":[\"dep:utf8_iter\"],\"write16\":[]}}", + "icu_normalizer_2.2.0": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"arraystring\",\"req\":\"^0.3.0\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"arrayvec\",\"req\":\"^0.7.2\"},{\"kind\":\"dev\",\"name\":\"atoi\",\"req\":\"^2.0.0\"},{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5.0\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"databake\",\"optional\":true,\"req\":\"^0.2.0\"},{\"kind\":\"dev\",\"name\":\"detone\",\"req\":\"^1.0.0\"},{\"default_features\":false,\"name\":\"harfbuzz-traits\",\"optional\":true,\"req\":\"^0.6.0\"},{\"default_features\":false,\"name\":\"icu_collections\",\"req\":\"~2.2.0\"},{\"default_features\":false,\"name\":\"icu_normalizer_data\",\"optional\":true,\"req\":\"~2.2.0\"},{\"default_features\":false,\"name\":\"icu_properties\",\"optional\":true,\"req\":\"~2.2.0\"},{\"default_features\":false,\"name\":\"icu_provider\",\"req\":\"^2.2.0\"},{\"default_features\":false,\"features\":[\"derive\",\"alloc\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.220\"},{\"default_features\":false,\"name\":\"smallvec\",\"req\":\"^1.10.0\"},{\"default_features\":false,\"name\":\"utf16_iter\",\"optional\":true,\"req\":\"^1.0.2\"},{\"default_features\":false,\"name\":\"utf8_iter\",\"optional\":true,\"req\":\"^1.0.2\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"write16\",\"optional\":true,\"req\":\"^1.0.0\"},{\"default_features\":false,\"features\":[\"arrayvec\",\"smallvec\"],\"kind\":\"dev\",\"name\":\"write16\",\"req\":\"^1.0.0\"},{\"default_features\":false,\"name\":\"zerovec\",\"req\":\"^0.11.6\"}],\"features\":{\"compiled_data\":[\"dep:icu_normalizer_data\",\"icu_properties?/compiled_data\",\"icu_provider/baked\"],\"datagen\":[\"serde\",\"dep:databake\",\"icu_properties\",\"icu_collections/databake\",\"zerovec/databake\",\"icu_properties?/datagen\",\"icu_provider/export\"],\"default\":[\"compiled_data\",\"utf8_iter\",\"utf16_iter\"],\"harfbuzz_traits\":[\"dep:harfbuzz-traits\"],\"icu_properties\":[\"dep:icu_properties\"],\"serde\":[\"dep:serde\",\"icu_collections/serde\",\"zerovec/serde\",\"icu_properties?/serde\",\"icu_provider/serde\"],\"utf16_iter\":[\"dep:utf16_iter\",\"dep:write16\"],\"utf8_iter\":[\"dep:utf8_iter\"],\"write16\":[]}}", "icu_normalizer_data_2.0.0": "{\"dependencies\":[],\"features\":{}}", "icu_normalizer_data_2.1.1": "{\"dependencies\":[],\"features\":{}}", + "icu_normalizer_data_2.2.0": "{\"dependencies\":[],\"features\":{}}", "icu_properties_2.0.1": "{\"dependencies\":[{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"databake\",\"optional\":true,\"req\":\"^0.2.0\"},{\"default_features\":false,\"name\":\"displaydoc\",\"req\":\"^0.2.3\"},{\"default_features\":false,\"name\":\"icu_collections\",\"req\":\"~2.0.0\"},{\"default_features\":false,\"features\":[\"zerovec\"],\"name\":\"icu_locale_core\",\"req\":\"^2.0.0\"},{\"default_features\":false,\"name\":\"icu_properties_data\",\"optional\":true,\"req\":\"~2.0.0\"},{\"default_features\":false,\"name\":\"icu_provider\",\"req\":\"^2.0.0\"},{\"default_features\":false,\"features\":[\"zerovec\"],\"name\":\"potential_utf\",\"req\":\"^0.1.1\"},{\"default_features\":false,\"features\":[\"derive\",\"alloc\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.110\"},{\"default_features\":false,\"name\":\"unicode-bidi\",\"optional\":true,\"req\":\"^0.3.11\"},{\"default_features\":false,\"features\":[\"yoke\",\"zerofrom\"],\"name\":\"zerotrie\",\"req\":\"^0.2.0\"},{\"default_features\":false,\"features\":[\"derive\",\"yoke\"],\"name\":\"zerovec\",\"req\":\"^0.11.1\"}],\"features\":{\"alloc\":[\"zerovec/alloc\",\"icu_collections/alloc\"],\"compiled_data\":[\"dep:icu_properties_data\",\"icu_provider/baked\"],\"datagen\":[\"serde\",\"dep:databake\",\"potential_utf/databake\",\"zerovec/databake\",\"icu_collections/databake\",\"icu_locale_core/databake\",\"zerotrie/databake\",\"icu_provider/export\"],\"default\":[\"compiled_data\"],\"serde\":[\"dep:serde\",\"icu_locale_core/serde\",\"potential_utf/serde\",\"zerovec/serde\",\"icu_collections/serde\",\"icu_provider/serde\",\"zerotrie/serde\"],\"unicode_bidi\":[\"dep:unicode-bidi\"]}}", "icu_properties_2.1.2": "{\"dependencies\":[{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"databake\",\"optional\":true,\"req\":\"^0.2.0\"},{\"default_features\":false,\"name\":\"icu_collections\",\"req\":\"~2.1.1\"},{\"default_features\":false,\"features\":[\"zerovec\"],\"name\":\"icu_locale_core\",\"req\":\"^2.1.1\"},{\"default_features\":false,\"name\":\"icu_properties_data\",\"optional\":true,\"req\":\"~2.1.2\"},{\"default_features\":false,\"name\":\"icu_provider\",\"req\":\"^2.1.1\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.220\"},{\"default_features\":false,\"name\":\"unicode-bidi\",\"optional\":true,\"req\":\"^0.3.11\"},{\"default_features\":false,\"features\":[\"yoke\",\"zerofrom\"],\"name\":\"zerotrie\",\"req\":\"^0.2.0\"},{\"default_features\":false,\"features\":[\"derive\",\"yoke\"],\"name\":\"zerovec\",\"req\":\"^0.11.3\"}],\"features\":{\"alloc\":[\"zerovec/alloc\",\"icu_collections/alloc\",\"serde?/alloc\"],\"compiled_data\":[\"dep:icu_properties_data\",\"icu_provider/baked\"],\"datagen\":[\"serde\",\"dep:databake\",\"zerovec/databake\",\"icu_collections/databake\",\"icu_locale_core/databake\",\"zerotrie/databake\",\"icu_provider/export\"],\"default\":[\"compiled_data\"],\"serde\":[\"dep:serde\",\"icu_locale_core/serde\",\"zerovec/serde\",\"icu_collections/serde\",\"icu_provider/serde\",\"zerotrie/serde\"],\"unicode_bidi\":[\"dep:unicode-bidi\"]}}", + "icu_properties_2.2.0": "{\"dependencies\":[{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"databake\",\"optional\":true,\"req\":\"^0.2.0\"},{\"default_features\":false,\"name\":\"harfbuzz-traits\",\"optional\":true,\"req\":\"^0.6.0\"},{\"default_features\":false,\"name\":\"icu_collections\",\"req\":\"~2.2.0\"},{\"default_features\":false,\"features\":[\"zerovec\"],\"name\":\"icu_locale_core\",\"req\":\"^2.2.0\"},{\"default_features\":false,\"name\":\"icu_properties_data\",\"optional\":true,\"req\":\"~2.2.0\"},{\"default_features\":false,\"name\":\"icu_provider\",\"req\":\"^2.2.0\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.220\"},{\"default_features\":false,\"name\":\"unicode-bidi\",\"optional\":true,\"req\":\"^0.3.11\"},{\"default_features\":false,\"features\":[\"yoke\",\"zerofrom\"],\"name\":\"zerotrie\",\"req\":\"^0.2.4\"},{\"default_features\":false,\"features\":[\"derive\",\"yoke\"],\"name\":\"zerovec\",\"req\":\"^0.11.6\"}],\"features\":{\"alloc\":[\"zerovec/alloc\",\"icu_collections/alloc\",\"serde?/alloc\"],\"compiled_data\":[\"dep:icu_properties_data\",\"icu_provider/baked\"],\"datagen\":[\"serde\",\"dep:databake\",\"zerovec/databake\",\"icu_collections/databake\",\"icu_locale_core/databake\",\"zerotrie/databake\",\"icu_provider/export\"],\"default\":[\"compiled_data\"],\"harfbuzz_traits\":[\"dep:harfbuzz-traits\"],\"serde\":[\"dep:serde\",\"icu_locale_core/serde\",\"zerovec/serde\",\"icu_collections/serde\",\"icu_provider/serde\",\"zerotrie/serde\"],\"unicode_bidi\":[\"dep:unicode-bidi\"]}}", "icu_properties_data_2.0.1": "{\"dependencies\":[],\"features\":{}}", "icu_properties_data_2.1.2": "{\"dependencies\":[],\"features\":{}}", + "icu_properties_data_2.2.0": "{\"dependencies\":[],\"features\":{}}", "icu_provider_2.0.0": "{\"dependencies\":[{\"name\":\"bincode\",\"optional\":true,\"req\":\"^1.3.1\"},{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5.0\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"databake\",\"optional\":true,\"req\":\"^0.2.0\"},{\"default_features\":false,\"name\":\"displaydoc\",\"req\":\"^0.2.3\"},{\"features\":[\"alloc\"],\"name\":\"erased-serde\",\"optional\":true,\"req\":\"^0.4.0\"},{\"default_features\":false,\"name\":\"icu_locale_core\",\"req\":\"^2.0.0\"},{\"default_features\":false,\"name\":\"log\",\"optional\":true,\"req\":\"^0.4.17\"},{\"default_features\":false,\"name\":\"postcard\",\"optional\":true,\"req\":\"^1.0.3\"},{\"default_features\":false,\"features\":[\"derive\",\"alloc\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.110\"},{\"name\":\"serde_json\",\"optional\":true,\"req\":\"^1.0.45\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.45\"},{\"default_features\":false,\"name\":\"stable_deref_trait\",\"req\":\"^1.2.0\"},{\"default_features\":false,\"name\":\"tinystr\",\"req\":\"^0.8.0\"},{\"default_features\":false,\"name\":\"writeable\",\"req\":\"^0.6.0\"},{\"default_features\":false,\"features\":[\"alloc\",\"derive\"],\"name\":\"yoke\",\"req\":\"^0.8.0\"},{\"default_features\":false,\"features\":[\"alloc\",\"derive\"],\"name\":\"zerofrom\",\"req\":\"^0.1.3\"},{\"default_features\":false,\"name\":\"zerotrie\",\"optional\":true,\"req\":\"^0.2.0\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"zerovec\",\"req\":\"^0.11.1\"}],\"features\":{\"alloc\":[\"icu_locale_core/alloc\",\"zerovec/alloc\",\"zerotrie/alloc\"],\"baked\":[\"zerotrie\"],\"deserialize_bincode_1\":[\"serde\",\"dep:bincode\",\"std\"],\"deserialize_json\":[\"serde\",\"dep:serde_json\"],\"deserialize_postcard_1\":[\"serde\",\"dep:postcard\"],\"export\":[\"serde\",\"dep:erased-serde\",\"dep:databake\",\"std\",\"sync\",\"dep:postcard\",\"zerovec/databake\"],\"logging\":[\"dep:log\"],\"serde\":[\"dep:serde\",\"yoke/serde\"],\"std\":[\"alloc\"],\"sync\":[]}}", "icu_provider_2.1.1": "{\"dependencies\":[{\"name\":\"bincode\",\"optional\":true,\"req\":\"^1.3.1\"},{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5.0\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"databake\",\"optional\":true,\"req\":\"^0.2.0\"},{\"default_features\":false,\"name\":\"displaydoc\",\"req\":\"^0.2.3\"},{\"name\":\"erased-serde\",\"optional\":true,\"req\":\"^0.4.0\"},{\"default_features\":false,\"name\":\"icu_locale_core\",\"req\":\"^2.1.1\"},{\"default_features\":false,\"name\":\"log\",\"optional\":true,\"req\":\"^0.4.17\"},{\"default_features\":false,\"name\":\"postcard\",\"optional\":true,\"req\":\"^1.0.3\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.220\"},{\"name\":\"serde_json\",\"optional\":true,\"req\":\"^1.0.45\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.45\"},{\"default_features\":false,\"name\":\"stable_deref_trait\",\"optional\":true,\"req\":\"^1.2.0\"},{\"default_features\":false,\"name\":\"writeable\",\"optional\":true,\"req\":\"^0.6.0\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"yoke\",\"req\":\"^0.8.0\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"zerofrom\",\"req\":\"^0.1.3\"},{\"default_features\":false,\"name\":\"zerotrie\",\"optional\":true,\"req\":\"^0.2.0\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"zerovec\",\"req\":\"^0.11.3\"}],\"features\":{\"alloc\":[\"icu_locale_core/alloc\",\"serde?/alloc\",\"yoke/alloc\",\"zerofrom/alloc\",\"zerovec/alloc\",\"zerotrie?/alloc\",\"dep:stable_deref_trait\",\"dep:writeable\"],\"baked\":[\"dep:zerotrie\",\"dep:writeable\"],\"deserialize_bincode_1\":[\"serde\",\"dep:bincode\",\"std\"],\"deserialize_json\":[\"serde\",\"dep:serde_json\"],\"deserialize_postcard_1\":[\"serde\",\"dep:postcard\"],\"export\":[\"serde\",\"dep:erased-serde\",\"dep:databake\",\"std\",\"sync\",\"dep:postcard\",\"zerovec/databake\"],\"logging\":[\"dep:log\"],\"serde\":[\"dep:serde\",\"yoke/serde\"],\"std\":[\"alloc\"],\"sync\":[],\"zerotrie\":[]}}", + "icu_provider_2.2.0": "{\"dependencies\":[{\"name\":\"bincode\",\"optional\":true,\"req\":\"^1.3.1\"},{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5.0\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"databake\",\"optional\":true,\"req\":\"^0.2.0\"},{\"default_features\":false,\"name\":\"displaydoc\",\"req\":\"^0.2.3\"},{\"name\":\"erased-serde\",\"optional\":true,\"req\":\"^0.4.0\"},{\"default_features\":false,\"name\":\"icu_locale_core\",\"req\":\"^2.2.0\"},{\"default_features\":false,\"name\":\"log\",\"optional\":true,\"req\":\"^0.4.17\"},{\"default_features\":false,\"name\":\"postcard\",\"optional\":true,\"req\":\"^1.0.3\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.220\"},{\"name\":\"serde_json\",\"optional\":true,\"req\":\"^1.0.45\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.45\"},{\"default_features\":false,\"name\":\"stable_deref_trait\",\"optional\":true,\"req\":\"^1.2.0\"},{\"default_features\":false,\"name\":\"writeable\",\"optional\":true,\"req\":\"^0.6.1\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"yoke\",\"req\":\"^0.8.2\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"zerofrom\",\"req\":\"^0.1.6\"},{\"default_features\":false,\"name\":\"zerotrie\",\"optional\":true,\"req\":\"^0.2.4\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"zerovec\",\"req\":\"^0.11.6\"}],\"features\":{\"alloc\":[\"icu_locale_core/alloc\",\"serde?/alloc\",\"yoke/alloc\",\"zerofrom/alloc\",\"zerovec/alloc\",\"zerotrie?/alloc\",\"dep:stable_deref_trait\",\"dep:writeable\"],\"baked\":[\"dep:zerotrie\",\"dep:writeable\"],\"deserialize_bincode_1\":[\"serde\",\"dep:bincode\",\"std\"],\"deserialize_json\":[\"serde\",\"dep:serde_json\"],\"deserialize_postcard_1\":[\"serde\",\"dep:postcard\"],\"export\":[\"serde\",\"dep:erased-serde\",\"dep:databake\",\"std\",\"sync\",\"dep:postcard\",\"zerovec/databake\"],\"logging\":[\"dep:log\"],\"serde\":[\"dep:serde\",\"yoke/serde\"],\"std\":[\"alloc\"],\"sync\":[],\"zerotrie\":[]}}", "id-arena_2.3.0": "{\"dependencies\":[{\"name\":\"rayon\",\"optional\":true,\"req\":\"^1.0.3\"}],\"features\":{\"default\":[\"std\"],\"std\":[]}}", "ident_case_1.0.1": "{\"dependencies\":[],\"features\":{}}", "idna_1.1.0": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"assert_matches\",\"req\":\"^1.3\"},{\"kind\":\"dev\",\"name\":\"bencher\",\"req\":\"^0.1\"},{\"name\":\"idna_adapter\",\"req\":\"^1\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0\"},{\"features\":[\"const_generics\"],\"name\":\"smallvec\",\"req\":\"^1.13.1\"},{\"kind\":\"dev\",\"name\":\"tester\",\"req\":\"^0.9\"},{\"name\":\"utf8_iter\",\"req\":\"^1.0.4\"}],\"features\":{\"alloc\":[],\"compiled_data\":[\"idna_adapter/compiled_data\"],\"default\":[\"std\",\"compiled_data\"],\"std\":[\"alloc\"]}}", "idna_adapter_1.2.1": "{\"dependencies\":[{\"default_features\":false,\"name\":\"icu_normalizer\",\"req\":\"^2\"},{\"default_features\":false,\"name\":\"icu_properties\",\"req\":\"^2\"}],\"features\":{\"compiled_data\":[\"icu_normalizer/compiled_data\",\"icu_properties/compiled_data\"]}}", + "idna_adapter_1.2.2": "{\"dependencies\":[{\"default_features\":false,\"name\":\"icu_normalizer\",\"req\":\"^2.2\"},{\"default_features\":false,\"name\":\"icu_properties\",\"req\":\"^2.2\"}],\"features\":{\"compiled_data\":[\"icu_normalizer/compiled_data\",\"icu_properties/compiled_data\"]}}", "if_chain_1.0.3": "{\"dependencies\":[],\"features\":{}}", "ignore_0.4.24": "{\"dependencies\":[{\"default_features\":false,\"features\":[\"std\"],\"kind\":\"dev\",\"name\":\"bstr\",\"req\":\"^1.6.2\"},{\"kind\":\"dev\",\"name\":\"crossbeam-channel\",\"req\":\"^0.5.15\"},{\"name\":\"crossbeam-deque\",\"req\":\"^0.8.3\"},{\"name\":\"globset\",\"req\":\"^0.4.17\"},{\"name\":\"log\",\"req\":\"^0.4.20\"},{\"name\":\"memchr\",\"req\":\"^2.6.3\"},{\"default_features\":false,\"features\":[\"std\",\"perf\",\"syntax\",\"meta\",\"nfa\",\"hybrid\",\"dfa-onepass\"],\"name\":\"regex-automata\",\"req\":\"^0.4.0\"},{\"name\":\"same-file\",\"req\":\"^1.0.6\"},{\"name\":\"walkdir\",\"req\":\"^2.4.0\"},{\"name\":\"winapi-util\",\"req\":\"^0.1.2\",\"target\":\"cfg(windows)\"}],\"features\":{\"simd-accel\":[]}}", "image-webp_0.2.4": "{\"dependencies\":[{\"name\":\"byteorder-lite\",\"req\":\"^0.1.0\"},{\"kind\":\"dev\",\"name\":\"paste\",\"req\":\"^1.0.14\"},{\"kind\":\"dev\",\"name\":\"png\",\"req\":\"^0.17.12\"},{\"name\":\"quick-error\",\"req\":\"^2.0.1\"},{\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.8.5\"},{\"kind\":\"dev\",\"name\":\"webp\",\"req\":\"^0.3.0\"}],\"features\":{\"_benchmarks\":[]}}", @@ -1791,6 +1810,7 @@ "indexmap_2.11.4": "{\"dependencies\":[{\"default_features\":false,\"name\":\"arbitrary\",\"optional\":true,\"req\":\"^1.0\"},{\"default_features\":false,\"name\":\"borsh\",\"optional\":true,\"req\":\"^1.2\"},{\"default_features\":false,\"name\":\"equivalent\",\"req\":\"^1.0\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"fastrand\",\"req\":\"^2\"},{\"kind\":\"dev\",\"name\":\"fnv\",\"req\":\"^1.0\"},{\"default_features\":false,\"name\":\"hashbrown\",\"req\":\">=0.15.0, <0.17.0\"},{\"kind\":\"dev\",\"name\":\"itertools\",\"req\":\"^0.14\"},{\"default_features\":false,\"name\":\"quickcheck\",\"optional\":true,\"req\":\"^1.0\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"quickcheck\",\"req\":\"^1.0\"},{\"name\":\"rayon\",\"optional\":true,\"req\":\"^1.9\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.220\",\"target\":\"cfg(any())\"},{\"default_features\":false,\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0\"},{\"default_features\":false,\"name\":\"serde_core\",\"optional\":true,\"req\":\"^1.0.220\"},{\"default_features\":false,\"name\":\"sval\",\"optional\":true,\"req\":\"^2\"}],\"features\":{\"default\":[\"std\"],\"serde\":[\"dep:serde_core\",\"dep:serde\"],\"std\":[],\"test_debug\":[]}}", "indexmap_2.12.0": "{\"dependencies\":[{\"default_features\":false,\"name\":\"arbitrary\",\"optional\":true,\"req\":\"^1.0\"},{\"default_features\":false,\"name\":\"borsh\",\"optional\":true,\"req\":\"^1.2\"},{\"default_features\":false,\"name\":\"equivalent\",\"req\":\"^1.0\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"fastrand\",\"req\":\"^2\"},{\"kind\":\"dev\",\"name\":\"fnv\",\"req\":\"^1.0\"},{\"default_features\":false,\"name\":\"hashbrown\",\"req\":\"^0.16\"},{\"kind\":\"dev\",\"name\":\"itertools\",\"req\":\"^0.14\"},{\"default_features\":false,\"name\":\"quickcheck\",\"optional\":true,\"req\":\"^1.0\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"quickcheck\",\"req\":\"^1.0\"},{\"name\":\"rayon\",\"optional\":true,\"req\":\"^1.9\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.220\",\"target\":\"cfg(any())\"},{\"default_features\":false,\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0\"},{\"default_features\":false,\"name\":\"serde_core\",\"optional\":true,\"req\":\"^1.0.220\"},{\"default_features\":false,\"name\":\"sval\",\"optional\":true,\"req\":\"^2\"}],\"features\":{\"default\":[\"std\"],\"serde\":[\"dep:serde_core\",\"dep:serde\"],\"std\":[],\"test_debug\":[]}}", "indexmap_2.13.0": "{\"dependencies\":[{\"default_features\":false,\"name\":\"arbitrary\",\"optional\":true,\"req\":\"^1.0\"},{\"default_features\":false,\"name\":\"borsh\",\"optional\":true,\"req\":\"^1.2\"},{\"default_features\":false,\"name\":\"equivalent\",\"req\":\"^1.0\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"fastrand\",\"req\":\"^2\"},{\"kind\":\"dev\",\"name\":\"fnv\",\"req\":\"^1.0\"},{\"default_features\":false,\"name\":\"hashbrown\",\"req\":\"^0.16.1\"},{\"kind\":\"dev\",\"name\":\"itertools\",\"req\":\"^0.14\"},{\"default_features\":false,\"name\":\"quickcheck\",\"optional\":true,\"req\":\"^1.0\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"quickcheck\",\"req\":\"^1.0\"},{\"name\":\"rayon\",\"optional\":true,\"req\":\"^1.9\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.220\",\"target\":\"cfg(any())\"},{\"default_features\":false,\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0\"},{\"default_features\":false,\"name\":\"serde_core\",\"optional\":true,\"req\":\"^1.0.220\"},{\"default_features\":false,\"name\":\"sval\",\"optional\":true,\"req\":\"^2\"}],\"features\":{\"default\":[\"std\"],\"serde\":[\"dep:serde_core\",\"dep:serde\"],\"std\":[],\"test_debug\":[]}}", + "indexmap_2.14.0": "{\"dependencies\":[{\"default_features\":false,\"name\":\"arbitrary\",\"optional\":true,\"req\":\"^1.0\"},{\"default_features\":false,\"name\":\"borsh\",\"optional\":true,\"req\":\"^1.2\"},{\"default_features\":false,\"name\":\"equivalent\",\"req\":\"^1.0\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"fastrand\",\"req\":\"^2\"},{\"kind\":\"dev\",\"name\":\"fnv\",\"req\":\"^1.0\"},{\"default_features\":false,\"name\":\"hashbrown\",\"req\":\"^0.17\"},{\"kind\":\"dev\",\"name\":\"itertools\",\"req\":\"^0.14\"},{\"default_features\":false,\"name\":\"quickcheck\",\"optional\":true,\"req\":\"^1.0\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"quickcheck\",\"req\":\"^1.1\"},{\"name\":\"rayon\",\"optional\":true,\"req\":\"^1.9\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.220\",\"target\":\"cfg(any())\"},{\"default_features\":false,\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0\"},{\"default_features\":false,\"name\":\"serde_core\",\"optional\":true,\"req\":\"^1.0.220\"},{\"default_features\":false,\"name\":\"sval\",\"optional\":true,\"req\":\"^2\"}],\"features\":{\"default\":[\"std\"],\"serde\":[\"dep:serde_core\",\"dep:serde\"],\"std\":[],\"test_debug\":[]}}", "indicatif_0.17.11": "{\"dependencies\":[{\"features\":[\"color\",\"derive\"],\"kind\":\"dev\",\"name\":\"clap\",\"req\":\"^4\"},{\"default_features\":false,\"features\":[\"ansi-parsing\"],\"name\":\"console\",\"req\":\"^0.15\"},{\"kind\":\"dev\",\"name\":\"futures\",\"req\":\"^0.3\"},{\"default_features\":false,\"name\":\"futures-core\",\"optional\":true,\"req\":\"^0.3\"},{\"name\":\"number_prefix\",\"req\":\"^0.4\"},{\"kind\":\"dev\",\"name\":\"once_cell\",\"req\":\"^1\"},{\"name\":\"portable-atomic\",\"req\":\"^1.0.0\"},{\"kind\":\"dev\",\"name\":\"pretty_assertions\",\"req\":\"^1.4.0\"},{\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.9\"},{\"name\":\"rayon\",\"optional\":true,\"req\":\"^1.1\"},{\"features\":[\"io-util\"],\"name\":\"tokio\",\"optional\":true,\"req\":\"^1\"},{\"features\":[\"fs\",\"time\",\"rt\"],\"kind\":\"dev\",\"name\":\"tokio\",\"req\":\"^1\"},{\"name\":\"unicode-segmentation\",\"optional\":true,\"req\":\"^1\"},{\"name\":\"unicode-width\",\"optional\":true,\"req\":\"^0.2\"},{\"name\":\"vt100\",\"optional\":true,\"req\":\"^0.15.1\"},{\"name\":\"web-time\",\"req\":\"^1.1.0\",\"target\":\"cfg(target_arch = \\\"wasm32\\\")\"}],\"features\":{\"default\":[\"unicode-width\",\"console/unicode-width\"],\"futures\":[\"dep:futures-core\"],\"improved_unicode\":[\"unicode-segmentation\",\"unicode-width\",\"console/unicode-width\"],\"in_memory\":[\"vt100\"]}}", "indicatif_0.18.3": "{\"dependencies\":[{\"features\":[\"color\",\"derive\"],\"kind\":\"dev\",\"name\":\"clap\",\"req\":\"^4\"},{\"default_features\":false,\"features\":[\"ansi-parsing\",\"std\"],\"name\":\"console\",\"req\":\"^0.16\"},{\"kind\":\"dev\",\"name\":\"futures\",\"req\":\"^0.3\"},{\"default_features\":false,\"name\":\"futures-core\",\"optional\":true,\"req\":\"^0.3\"},{\"kind\":\"dev\",\"name\":\"once_cell\",\"req\":\"^1\"},{\"name\":\"portable-atomic\",\"req\":\"^1.0.0\"},{\"kind\":\"dev\",\"name\":\"pretty_assertions\",\"req\":\"^1.4.0\"},{\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.9\"},{\"name\":\"rayon\",\"optional\":true,\"req\":\"^1.1\"},{\"features\":[\"io-util\"],\"name\":\"tokio\",\"optional\":true,\"req\":\"^1\"},{\"features\":[\"fs\",\"time\",\"rt\"],\"kind\":\"dev\",\"name\":\"tokio\",\"req\":\"^1\"},{\"name\":\"unicode-segmentation\",\"optional\":true,\"req\":\"^1\"},{\"name\":\"unicode-width\",\"optional\":true,\"req\":\"^0.2\"},{\"name\":\"unit-prefix\",\"req\":\"^0.5.1\"},{\"name\":\"vt100\",\"optional\":true,\"req\":\"^0.16.1\"},{\"name\":\"web-time\",\"req\":\"^1.1.0\",\"target\":\"cfg(target_arch = \\\"wasm32\\\")\"}],\"features\":{\"default\":[\"unicode-width\",\"console/unicode-width\"],\"futures\":[\"dep:futures-core\"],\"improved_unicode\":[\"unicode-segmentation\",\"unicode-width\",\"console/unicode-width\"],\"in_memory\":[\"vt100\"]}}", "indoc_2.0.6": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"rustversion\",\"req\":\"^1.0\"},{\"features\":[\"diff\"],\"kind\":\"dev\",\"name\":\"trybuild\",\"req\":\"^1.0.49\"},{\"kind\":\"dev\",\"name\":\"unindent\",\"req\":\"^0.2.3\"}],\"features\":{}}", @@ -1830,10 +1850,12 @@ "ivf_0.1.4": "{\"dependencies\":[{\"name\":\"bitstream-io\",\"req\":\"^4.1.0\"}],\"features\":{}}", "jiff-static_0.2.15": "{\"dependencies\":[{\"name\":\"jiff-tzdb\",\"optional\":true,\"req\":\"^0.1.4\"},{\"name\":\"proc-macro2\",\"req\":\"^1.0.93\"},{\"name\":\"quote\",\"req\":\"^1.0.38\"},{\"name\":\"syn\",\"req\":\"^2.0.98\"}],\"features\":{\"default\":[],\"perf-inline\":[],\"tz-fat\":[],\"tzdb\":[\"dep:jiff-tzdb\"]}}", "jiff-static_0.2.23": "{\"dependencies\":[{\"name\":\"jiff-tzdb\",\"optional\":true,\"req\":\"^0.1.6\"},{\"name\":\"proc-macro2\",\"req\":\"^1.0.93\"},{\"name\":\"quote\",\"req\":\"^1.0.38\"},{\"name\":\"syn\",\"req\":\"^2.0.98\"}],\"features\":{\"default\":[],\"perf-inline\":[],\"tz-fat\":[],\"tzdb\":[\"dep:jiff-tzdb\"]}}", + "jiff-static_0.2.24": "{\"dependencies\":[{\"name\":\"jiff-tzdb\",\"optional\":true,\"req\":\"^0.1.6\"},{\"name\":\"proc-macro2\",\"req\":\"^1.0.93\"},{\"name\":\"quote\",\"req\":\"^1.0.38\"},{\"name\":\"syn\",\"req\":\"^2.0.98\"}],\"features\":{\"default\":[],\"perf-inline\":[],\"tz-fat\":[],\"tzdb\":[\"dep:jiff-tzdb\"]}}", "jiff-tzdb-platform_0.1.3": "{\"dependencies\":[{\"name\":\"jiff-tzdb\",\"req\":\"^0.1.4\"}],\"features\":{}}", "jiff-tzdb_0.1.4": "{\"dependencies\":[],\"features\":{}}", "jiff_0.2.15": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"anyhow\",\"req\":\"^1.0.81\"},{\"features\":[\"serde\"],\"kind\":\"dev\",\"name\":\"chrono\",\"req\":\"^0.4.38\"},{\"kind\":\"dev\",\"name\":\"chrono-tz\",\"req\":\"^0.10.0\"},{\"kind\":\"dev\",\"name\":\"hifitime\",\"req\":\"^3.9.0\",\"target\":\"cfg(not(target_family = \\\"wasm\\\"))\"},{\"kind\":\"dev\",\"name\":\"humantime\",\"req\":\"^2.1.0\"},{\"kind\":\"dev\",\"name\":\"insta\",\"req\":\"^1.39.0\"},{\"name\":\"jiff-static\",\"req\":\"=0.2.15\",\"target\":\"cfg(any())\"},{\"name\":\"jiff-static\",\"optional\":true,\"req\":\"^0.2\"},{\"name\":\"jiff-tzdb\",\"optional\":true,\"req\":\"^0.1.4\"},{\"name\":\"jiff-tzdb-platform\",\"optional\":true,\"req\":\"^0.1.3\",\"target\":\"cfg(any(windows, target_family = \\\"wasm\\\"))\"},{\"name\":\"js-sys\",\"optional\":true,\"req\":\"^0.3.50\",\"target\":\"cfg(all(any(target_arch = \\\"wasm32\\\", target_arch = \\\"wasm64\\\"), target_os = \\\"unknown\\\"))\"},{\"default_features\":false,\"name\":\"log\",\"optional\":true,\"req\":\"^0.4.21\"},{\"kind\":\"dev\",\"name\":\"log\",\"req\":\"^0.4.21\"},{\"default_features\":false,\"name\":\"portable-atomic\",\"req\":\"^1.10.0\",\"target\":\"cfg(not(target_has_atomic = \\\"ptr\\\"))\"},{\"default_features\":false,\"name\":\"portable-atomic-util\",\"req\":\"^0.2.4\",\"target\":\"cfg(not(target_has_atomic = \\\"ptr\\\"))\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"quickcheck\",\"req\":\"^1.0.3\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.203\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0.203\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.117\"},{\"kind\":\"dev\",\"name\":\"serde_yaml\",\"req\":\"^0.9.34\"},{\"kind\":\"dev\",\"name\":\"tabwriter\",\"req\":\"^1.4.0\"},{\"features\":[\"local-offset\",\"macros\",\"parsing\"],\"kind\":\"dev\",\"name\":\"time\",\"req\":\"^0.3.36\"},{\"kind\":\"dev\",\"name\":\"tzfile\",\"req\":\"^0.1.3\"},{\"kind\":\"dev\",\"name\":\"walkdir\",\"req\":\"^2.5.0\"},{\"name\":\"wasm-bindgen\",\"optional\":true,\"req\":\"^0.2.70\",\"target\":\"cfg(all(any(target_arch = \\\"wasm32\\\", target_arch = \\\"wasm64\\\"), target_os = \\\"unknown\\\"))\"},{\"default_features\":false,\"features\":[\"Win32_Foundation\",\"Win32_System_Time\"],\"name\":\"windows-sys\",\"optional\":true,\"req\":\">=0.52.0, <=0.59\",\"target\":\"cfg(windows)\"}],\"features\":{\"alloc\":[\"serde?/alloc\",\"portable-atomic-util/alloc\"],\"default\":[\"std\",\"tz-system\",\"tz-fat\",\"tzdb-bundle-platform\",\"tzdb-zoneinfo\",\"tzdb-concatenated\",\"perf-inline\"],\"js\":[\"dep:wasm-bindgen\",\"dep:js-sys\"],\"logging\":[\"dep:log\"],\"perf-inline\":[],\"serde\":[\"dep:serde\"],\"static\":[\"static-tz\",\"jiff-static?/tzdb\"],\"static-tz\":[\"dep:jiff-static\"],\"std\":[\"alloc\",\"log?/std\",\"serde?/std\"],\"tz-fat\":[\"jiff-static?/tz-fat\"],\"tz-system\":[\"std\",\"dep:windows-sys\"],\"tzdb-bundle-always\":[\"dep:jiff-tzdb\",\"alloc\"],\"tzdb-bundle-platform\":[\"dep:jiff-tzdb-platform\",\"alloc\"],\"tzdb-concatenated\":[\"std\"],\"tzdb-zoneinfo\":[\"std\"]}}", "jiff_0.2.23": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"anyhow\",\"req\":\"^1.0.81\"},{\"features\":[\"serde\"],\"kind\":\"dev\",\"name\":\"chrono\",\"req\":\"^0.4.38\"},{\"kind\":\"dev\",\"name\":\"chrono-tz\",\"req\":\"^0.10.0\"},{\"kind\":\"dev\",\"name\":\"hifitime\",\"req\":\"^3.9.0\",\"target\":\"cfg(not(target_family = \\\"wasm\\\"))\"},{\"kind\":\"dev\",\"name\":\"humantime\",\"req\":\"^2.1.0\"},{\"kind\":\"dev\",\"name\":\"insta\",\"req\":\"^1.39.0\"},{\"name\":\"jiff-static\",\"req\":\"=0.2.23\",\"target\":\"cfg(any())\"},{\"name\":\"jiff-static\",\"optional\":true,\"req\":\"^0.2\"},{\"name\":\"jiff-tzdb\",\"optional\":true,\"req\":\"^0.1.6\"},{\"name\":\"jiff-tzdb-platform\",\"optional\":true,\"req\":\"^0.1.3\",\"target\":\"cfg(any(windows, target_family = \\\"wasm\\\"))\"},{\"name\":\"js-sys\",\"optional\":true,\"req\":\"^0.3.50\",\"target\":\"cfg(all(any(target_arch = \\\"wasm32\\\", target_arch = \\\"wasm64\\\"), target_os = \\\"unknown\\\"))\"},{\"default_features\":false,\"name\":\"log\",\"optional\":true,\"req\":\"^0.4.21\"},{\"kind\":\"dev\",\"name\":\"log\",\"req\":\"^0.4.21\"},{\"default_features\":false,\"name\":\"portable-atomic\",\"req\":\"^1.10.0\",\"target\":\"cfg(not(target_has_atomic = \\\"ptr\\\"))\"},{\"default_features\":false,\"name\":\"portable-atomic-util\",\"req\":\"^0.2.4\",\"target\":\"cfg(not(target_has_atomic = \\\"ptr\\\"))\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"quickcheck\",\"req\":\"^1.0.3\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0.203\"},{\"default_features\":false,\"name\":\"serde_core\",\"optional\":true,\"req\":\"^1.0.221\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.117\"},{\"kind\":\"dev\",\"name\":\"serde_yaml\",\"req\":\"^0.9.34\"},{\"kind\":\"dev\",\"name\":\"tabwriter\",\"req\":\"^1.4.0\"},{\"features\":[\"local-offset\",\"macros\",\"parsing\"],\"kind\":\"dev\",\"name\":\"time\",\"req\":\"^0.3.36\"},{\"kind\":\"dev\",\"name\":\"time-tz\",\"req\":\"^2.0.0\"},{\"kind\":\"dev\",\"name\":\"tzfile\",\"req\":\"^0.1.3\"},{\"kind\":\"dev\",\"name\":\"walkdir\",\"req\":\"^2.5.0\"},{\"name\":\"wasm-bindgen\",\"optional\":true,\"req\":\"^0.2.70\",\"target\":\"cfg(all(any(target_arch = \\\"wasm32\\\", target_arch = \\\"wasm64\\\"), target_os = \\\"unknown\\\"))\"},{\"default_features\":false,\"features\":[\"Win32_Foundation\",\"Win32_System_Time\"],\"name\":\"windows-sys\",\"optional\":true,\"req\":\">=0.52.0, <=0.61\",\"target\":\"cfg(windows)\"}],\"features\":{\"alloc\":[\"serde_core?/alloc\",\"portable-atomic-util/alloc\"],\"default\":[\"std\",\"tz-system\",\"tz-fat\",\"tzdb-bundle-platform\",\"tzdb-zoneinfo\",\"tzdb-concatenated\",\"perf-inline\"],\"js\":[\"dep:wasm-bindgen\",\"dep:js-sys\"],\"logging\":[\"dep:log\"],\"perf-inline\":[],\"serde\":[\"dep:serde_core\"],\"static\":[\"static-tz\",\"jiff-static?/tzdb\"],\"static-tz\":[\"dep:jiff-static\"],\"std\":[\"alloc\",\"log?/std\",\"serde_core?/std\"],\"tz-fat\":[\"jiff-static?/tz-fat\"],\"tz-system\":[\"std\",\"dep:windows-sys\"],\"tzdb-bundle-always\":[\"dep:jiff-tzdb\",\"alloc\"],\"tzdb-bundle-platform\":[\"dep:jiff-tzdb-platform\",\"alloc\"],\"tzdb-concatenated\":[\"std\"],\"tzdb-zoneinfo\":[\"std\"]}}", + "jiff_0.2.24": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"anyhow\",\"req\":\"^1.0.81\"},{\"features\":[\"serde\"],\"kind\":\"dev\",\"name\":\"chrono\",\"req\":\"^0.4.38\"},{\"kind\":\"dev\",\"name\":\"chrono-tz\",\"req\":\"^0.10.0\"},{\"kind\":\"dev\",\"name\":\"hifitime\",\"req\":\"^3.9.0\",\"target\":\"cfg(not(target_family = \\\"wasm\\\"))\"},{\"kind\":\"dev\",\"name\":\"humantime\",\"req\":\"^2.1.0\"},{\"kind\":\"dev\",\"name\":\"insta\",\"req\":\"^1.39.0\"},{\"name\":\"jiff-static\",\"req\":\"=0.2.24\",\"target\":\"cfg(any())\"},{\"name\":\"jiff-static\",\"optional\":true,\"req\":\"^0.2\"},{\"name\":\"jiff-tzdb\",\"optional\":true,\"req\":\"^0.1.6\"},{\"name\":\"jiff-tzdb-platform\",\"optional\":true,\"req\":\"^0.1.3\",\"target\":\"cfg(any(windows, target_family = \\\"wasm\\\"))\"},{\"name\":\"js-sys\",\"optional\":true,\"req\":\"^0.3.50\",\"target\":\"cfg(all(any(target_arch = \\\"wasm32\\\", target_arch = \\\"wasm64\\\"), target_os = \\\"unknown\\\"))\"},{\"default_features\":false,\"name\":\"log\",\"optional\":true,\"req\":\"^0.4.21\"},{\"kind\":\"dev\",\"name\":\"log\",\"req\":\"^0.4.21\"},{\"default_features\":false,\"name\":\"portable-atomic\",\"req\":\"^1.10.0\",\"target\":\"cfg(not(target_has_atomic = \\\"ptr\\\"))\"},{\"default_features\":false,\"name\":\"portable-atomic-util\",\"req\":\"^0.2.4\",\"target\":\"cfg(not(target_has_atomic = \\\"ptr\\\"))\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"quickcheck\",\"req\":\"^1.0.3\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0.203\"},{\"default_features\":false,\"name\":\"serde_core\",\"optional\":true,\"req\":\"^1.0.221\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.117\"},{\"kind\":\"dev\",\"name\":\"serde_yaml\",\"req\":\"^0.9.34\"},{\"kind\":\"dev\",\"name\":\"tabwriter\",\"req\":\"^1.4.0\"},{\"features\":[\"local-offset\",\"macros\",\"parsing\"],\"kind\":\"dev\",\"name\":\"time\",\"req\":\"^0.3.36\"},{\"kind\":\"dev\",\"name\":\"time-tz\",\"req\":\"^2.0.0\"},{\"kind\":\"dev\",\"name\":\"tzfile\",\"req\":\"^0.1.3\"},{\"kind\":\"dev\",\"name\":\"walkdir\",\"req\":\"^2.5.0\"},{\"name\":\"wasm-bindgen\",\"optional\":true,\"req\":\"^0.2.70\",\"target\":\"cfg(all(any(target_arch = \\\"wasm32\\\", target_arch = \\\"wasm64\\\"), target_os = \\\"unknown\\\"))\"},{\"default_features\":false,\"features\":[\"Win32_Foundation\",\"Win32_System_Time\"],\"name\":\"windows-sys\",\"optional\":true,\"req\":\">=0.52.0, <=0.61\",\"target\":\"cfg(windows)\"}],\"features\":{\"alloc\":[\"serde_core?/alloc\",\"portable-atomic-util/alloc\"],\"default\":[\"std\",\"tz-system\",\"tz-fat\",\"tzdb-bundle-platform\",\"tzdb-zoneinfo\",\"tzdb-concatenated\",\"perf-inline\"],\"js\":[\"dep:wasm-bindgen\",\"dep:js-sys\"],\"logging\":[\"dep:log\"],\"perf-inline\":[],\"serde\":[\"dep:serde_core\"],\"static\":[\"static-tz\",\"jiff-static?/tzdb\"],\"static-tz\":[\"dep:jiff-static\"],\"std\":[\"alloc\",\"log?/std\",\"serde_core?/std\"],\"tz-fat\":[\"jiff-static?/tz-fat\"],\"tz-system\":[\"std\",\"dep:windows-sys\"],\"tzdb-bundle-always\":[\"dep:jiff-tzdb\",\"alloc\"],\"tzdb-bundle-platform\":[\"dep:jiff-tzdb-platform\",\"alloc\"],\"tzdb-concatenated\":[\"std\"],\"tzdb-zoneinfo\":[\"std\"]}}", "jni-sys_0.3.0": "{\"dependencies\":[],\"features\":{}}", "jni_0.21.1": "{\"dependencies\":[{\"name\":\"cesu8\",\"req\":\"^1.1.0\"},{\"name\":\"cfg-if\",\"req\":\"^1.0.0\"},{\"name\":\"combine\",\"req\":\"^4.1.0\"},{\"name\":\"java-locator\",\"optional\":true,\"req\":\"^0.1\"},{\"name\":\"jni-sys\",\"req\":\"^0.3.0\"},{\"name\":\"libloading\",\"optional\":true,\"req\":\"^0.7\"},{\"name\":\"log\",\"req\":\"^0.4.4\"},{\"name\":\"thiserror\",\"req\":\"^1.0.20\"},{\"kind\":\"dev\",\"name\":\"assert_matches\",\"req\":\"^1.5.0\"},{\"kind\":\"dev\",\"name\":\"lazy_static\",\"req\":\"^1\"},{\"kind\":\"dev\",\"name\":\"rusty-fork\",\"req\":\"^0.3.0\"},{\"kind\":\"build\",\"name\":\"walkdir\",\"req\":\"^2\"},{\"features\":[\"Win32_Globalization\"],\"name\":\"windows-sys\",\"req\":\"^0.45.0\",\"target\":\"cfg(windows)\"},{\"kind\":\"dev\",\"name\":\"bytemuck\",\"req\":\"^1.13.0\",\"target\":\"cfg(windows)\"}],\"features\":{\"default\":[],\"invocation\":[\"java-locator\",\"libloading\"]}}", "jobserver_0.1.34": "{\"dependencies\":[{\"features\":[\"std\"],\"name\":\"getrandom\",\"req\":\"^0.3.2\",\"target\":\"cfg(windows)\"},{\"name\":\"libc\",\"req\":\"^0.2.171\",\"target\":\"cfg(unix)\"},{\"features\":[\"fs\"],\"kind\":\"dev\",\"name\":\"nix\",\"req\":\"^0.28.0\",\"target\":\"cfg(unix)\"},{\"kind\":\"dev\",\"name\":\"tempfile\",\"req\":\"^3.10.1\"}],\"features\":{}}", @@ -1889,6 +1911,7 @@ "libgit2-sys_0.18.3+1.9.2": "{\"dependencies\":[{\"features\":[\"parallel\"],\"kind\":\"build\",\"name\":\"cc\",\"req\":\"^1.0.43\"},{\"name\":\"libc\",\"req\":\"^0.2\"},{\"name\":\"libssh2-sys\",\"optional\":true,\"req\":\"^0.3.0\"},{\"default_features\":false,\"features\":[\"libc\"],\"name\":\"libz-sys\",\"req\":\"^1.1.0\"},{\"name\":\"openssl-sys\",\"optional\":true,\"req\":\"^0.9.45\",\"target\":\"cfg(unix)\"},{\"kind\":\"build\",\"name\":\"pkg-config\",\"req\":\"^0.3.15\"}],\"features\":{\"https\":[\"openssl-sys\"],\"ssh\":[\"libssh2-sys\"],\"vendored\":[],\"vendored-openssl\":[\"openssl-sys/vendored\"],\"zlib-ng-compat\":[\"libz-sys/zlib-ng\",\"libssh2-sys?/zlib-ng-compat\"]}}", "libloading_0.7.4": "{\"dependencies\":[{\"name\":\"cfg-if\",\"req\":\"^1\",\"target\":\"cfg(unix)\"},{\"kind\":\"dev\",\"name\":\"libc\",\"req\":\"^0.2\"},{\"kind\":\"dev\",\"name\":\"static_assertions\",\"req\":\"^1.1\"},{\"features\":[\"errhandlingapi\",\"libloaderapi\"],\"name\":\"winapi\",\"req\":\"^0.3\",\"target\":\"cfg(windows)\"}],\"features\":{}}", "libloading_0.8.9": "{\"dependencies\":[{\"name\":\"cfg-if\",\"req\":\"^1\",\"target\":\"cfg(unix)\"},{\"kind\":\"dev\",\"name\":\"libc\",\"req\":\"^0.2\"},{\"kind\":\"dev\",\"name\":\"static_assertions\",\"req\":\"^1.1\"},{\"name\":\"windows-link\",\"req\":\"^0.2\",\"target\":\"cfg(windows)\"},{\"features\":[\"Win32_Foundation\"],\"kind\":\"dev\",\"name\":\"windows-sys\",\"req\":\"^0.61\",\"target\":\"cfg(windows)\"}],\"features\":{}}", + "libloading_0.9.0": "{\"dependencies\":[{\"name\":\"cfg-if\",\"req\":\"^1\",\"target\":\"cfg(unix)\"},{\"kind\":\"dev\",\"name\":\"libc\",\"req\":\"^0.2\"},{\"kind\":\"dev\",\"name\":\"static_assertions\",\"req\":\"^1.1\"},{\"name\":\"windows-link\",\"req\":\"^0.2\",\"target\":\"cfg(windows)\"},{\"features\":[\"Win32_Foundation\"],\"kind\":\"dev\",\"name\":\"windows-sys\",\"req\":\"^0.61\",\"target\":\"cfg(windows)\"}],\"features\":{\"default\":[\"std\"],\"std\":[]}}", "libm_0.2.16": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"no-panic\",\"req\":\"^0.1.35\"}],\"features\":{\"arch\":[],\"default\":[\"arch\"],\"force-soft-floats\":[],\"unstable\":[\"unstable-intrinsics\",\"unstable-float\"],\"unstable-float\":[],\"unstable-intrinsics\":[],\"unstable-public-internals\":[]}}", "libmimalloc-sys_0.1.44": "{\"dependencies\":[{\"kind\":\"build\",\"name\":\"cc\",\"req\":\"^1.0\"},{\"name\":\"cty\",\"optional\":true,\"req\":\"^0.2\"},{\"name\":\"libc\",\"req\":\"^0.2\"}],\"features\":{\"arena\":[],\"debug\":[],\"debug_in_debug\":[],\"extended\":[\"cty\"],\"local_dynamic_tls\":[],\"no_thp\":[],\"override\":[],\"secure\":[],\"v3\":[]}}", "libp2p-allow-block-list_0.6.0": "{\"dependencies\":[{\"name\":\"libp2p-core\",\"req\":\"^0.43.1\"},{\"features\":[\"peerid\"],\"name\":\"libp2p-identity\",\"req\":\"^0.2.12\"},{\"name\":\"libp2p-swarm\",\"req\":\"^0.47.0\"},{\"default_features\":false,\"features\":[\"rt\",\"macros\"],\"kind\":\"dev\",\"name\":\"tokio\",\"req\":\"^1.38\"}],\"features\":{}}", @@ -1903,6 +1926,7 @@ "libz-rs-sys_0.5.2": "{\"dependencies\":[{\"default_features\":false,\"name\":\"zlib-rs\",\"req\":\"^0.5.2\"}],\"features\":{\"c-allocator\":[\"zlib-rs/c-allocator\"],\"custom-prefix\":[\"export-symbols\"],\"default\":[\"std\",\"rust-allocator\"],\"export-symbols\":[],\"rust-allocator\":[\"zlib-rs/rust-allocator\"],\"semver-prefix\":[\"export-symbols\"],\"std\":[\"zlib-rs/std\"],\"testing-prefix\":[\"export-symbols\"]}}", "libz-sys_1.1.23": "{\"dependencies\":[{\"kind\":\"build\",\"name\":\"cc\",\"req\":\"^1.0.98\"},{\"kind\":\"build\",\"name\":\"cmake\",\"optional\":true,\"req\":\"^0.1.50\"},{\"name\":\"libc\",\"optional\":true,\"req\":\"^0.2.43\"},{\"kind\":\"build\",\"name\":\"pkg-config\",\"req\":\"^0.3.9\"},{\"kind\":\"build\",\"name\":\"vcpkg\",\"req\":\"^0.2.11\"}],\"features\":{\"asm\":[],\"default\":[\"libc\",\"stock-zlib\"],\"static\":[],\"stock-zlib\":[],\"zlib-ng\":[\"libc\",\"cmake\"],\"zlib-ng-no-cmake-experimental-community-maintained\":[\"libc\"]}}", "libz-sys_1.1.25": "{\"dependencies\":[{\"kind\":\"build\",\"name\":\"cc\",\"req\":\"^1.0.98\"},{\"kind\":\"build\",\"name\":\"cmake\",\"optional\":true,\"req\":\"^0.1.50\"},{\"name\":\"libc\",\"optional\":true,\"req\":\"^0.2.43\"},{\"kind\":\"build\",\"name\":\"pkg-config\",\"req\":\"^0.3.9\"},{\"kind\":\"build\",\"name\":\"vcpkg\",\"req\":\"^0.2.11\"}],\"features\":{\"asm\":[],\"default\":[\"libc\",\"stock-zlib\"],\"static\":[],\"stock-zlib\":[],\"zlib-ng\":[\"libc\",\"cmake\"],\"zlib-ng-no-cmake-experimental-community-maintained\":[\"libc\"]}}", + "libz-sys_1.1.28": "{\"dependencies\":[{\"kind\":\"build\",\"name\":\"cc\",\"req\":\"^1.0.98\"},{\"kind\":\"build\",\"name\":\"cmake\",\"optional\":true,\"req\":\"^0.1.50\"},{\"name\":\"libc\",\"optional\":true,\"req\":\"^0.2.43\"},{\"kind\":\"build\",\"name\":\"pkg-config\",\"req\":\"^0.3.9\"},{\"kind\":\"build\",\"name\":\"vcpkg\",\"req\":\"^0.2.11\"}],\"features\":{\"asm\":[],\"default\":[\"libc\",\"stock-zlib\"],\"static\":[],\"stock-zlib\":[],\"zlib-ng\":[\"libc\",\"cmake\"],\"zlib-ng-no-cmake-experimental-community-maintained\":[\"libc\"]}}", "linear-map_1.2.0": "{\"dependencies\":[{\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0\"},{\"name\":\"serde_test\",\"optional\":true,\"req\":\"^1.0\"}],\"features\":{\"nightly\":[],\"serde_impl\":[\"serde\",\"serde_test\"]}}", "linux-raw-sys_0.11.0": "{\"dependencies\":[{\"name\":\"core\",\"optional\":true,\"package\":\"rustc-std-workspace-core\",\"req\":\"^1.0.0\"},{\"kind\":\"dev\",\"name\":\"libc\",\"req\":\"^0.2.100\"},{\"kind\":\"dev\",\"name\":\"static_assertions\",\"req\":\"^1.1.0\"}],\"features\":{\"auxvec\":[],\"bootparam\":[],\"btrfs\":[],\"default\":[\"std\",\"general\",\"errno\"],\"elf\":[],\"elf_uapi\":[],\"errno\":[],\"general\":[],\"if_arp\":[],\"if_ether\":[],\"if_packet\":[],\"image\":[],\"io_uring\":[],\"ioctl\":[],\"landlock\":[],\"loop_device\":[],\"mempolicy\":[],\"net\":[],\"netlink\":[],\"no_std\":[],\"prctl\":[],\"ptrace\":[],\"rustc-dep-of-std\":[\"core\",\"no_std\"],\"std\":[],\"system\":[],\"xdp\":[]}}", "linux-raw-sys_0.12.1": "{\"dependencies\":[{\"name\":\"core\",\"optional\":true,\"package\":\"rustc-std-workspace-core\",\"req\":\"^1.0.0\"},{\"kind\":\"dev\",\"name\":\"libc\",\"req\":\"^0.2.100\"},{\"kind\":\"dev\",\"name\":\"static_assertions\",\"req\":\"^1.1.0\"}],\"features\":{\"auxvec\":[],\"bootparam\":[],\"btrfs\":[],\"default\":[\"std\",\"general\",\"errno\"],\"elf\":[],\"elf_uapi\":[],\"errno\":[],\"general\":[],\"if_arp\":[],\"if_ether\":[],\"if_packet\":[],\"if_tun\":[],\"image\":[],\"io_uring\":[],\"ioctl\":[],\"landlock\":[],\"loop_device\":[],\"mempolicy\":[],\"net\":[],\"netlink\":[],\"no_std\":[],\"prctl\":[],\"ptrace\":[],\"rustc-dep-of-std\":[\"core\",\"no_std\"],\"std\":[],\"system\":[],\"vm_sockets\":[],\"xdp\":[]}}", @@ -1910,6 +1934,7 @@ "linux-raw-sys_0.6.5": "{\"dependencies\":[{\"name\":\"compiler_builtins\",\"optional\":true,\"req\":\"^0.1.49\"},{\"name\":\"core\",\"optional\":true,\"package\":\"rustc-std-workspace-core\",\"req\":\"^1.0.0\"},{\"kind\":\"dev\",\"name\":\"libc\",\"req\":\"^0.2.100\"},{\"kind\":\"dev\",\"name\":\"static_assertions\",\"req\":\"^1.1.0\"}],\"features\":{\"bootparam\":[],\"default\":[\"std\",\"general\",\"errno\"],\"elf\":[],\"errno\":[],\"general\":[],\"if_arp\":[],\"if_ether\":[],\"if_packet\":[],\"io_uring\":[],\"ioctl\":[],\"loop_device\":[],\"mempolicy\":[],\"net\":[],\"netlink\":[],\"no_std\":[],\"prctl\":[],\"rustc-dep-of-std\":[\"core\",\"compiler_builtins\",\"no_std\"],\"std\":[],\"system\":[],\"xdp\":[]}}", "litemap_0.8.0": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"bincode\",\"req\":\"^1.3.1\"},{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5.0\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":false,\"name\":\"databake\",\"optional\":true,\"req\":\"^0.2.0\"},{\"default_features\":false,\"features\":[\"use-std\"],\"kind\":\"dev\",\"name\":\"postcard\",\"req\":\"^1.0.3\"},{\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.9\"},{\"features\":[\"validation\"],\"kind\":\"dev\",\"name\":\"rkyv\",\"req\":\"^0.7\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.110\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0.110\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.45\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"yoke\",\"optional\":true,\"req\":\"^0.8.0\"}],\"features\":{\"alloc\":[],\"databake\":[\"dep:databake\"],\"default\":[\"alloc\"],\"serde\":[\"dep:serde\",\"alloc\"],\"testing\":[\"alloc\"],\"yoke\":[\"dep:yoke\"]}}", "litemap_0.8.1": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"bincode\",\"req\":\"^1.3.1\"},{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5.0\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":false,\"name\":\"databake\",\"optional\":true,\"req\":\"^0.2.0\"},{\"default_features\":false,\"features\":[\"use-std\"],\"kind\":\"dev\",\"name\":\"postcard\",\"req\":\"^1.0.3\"},{\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.9\"},{\"features\":[\"validation\"],\"kind\":\"dev\",\"name\":\"rkyv\",\"req\":\"^0.7\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"serde_core\",\"optional\":true,\"req\":\"^1.0.220\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"serde_core\",\"req\":\"^1.0.220\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.45\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"yoke\",\"optional\":true,\"req\":\"^0.8.0\"}],\"features\":{\"alloc\":[],\"databake\":[\"dep:databake\"],\"default\":[\"alloc\"],\"serde\":[\"dep:serde_core\",\"alloc\"],\"testing\":[\"alloc\"],\"yoke\":[\"dep:yoke\"]}}", + "litemap_0.8.2": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"bincode\",\"req\":\"^1.3.1\"},{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5.0\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":false,\"name\":\"databake\",\"optional\":true,\"req\":\"^0.2.0\"},{\"default_features\":false,\"features\":[\"use-std\"],\"kind\":\"dev\",\"name\":\"postcard\",\"req\":\"^1.0.3\"},{\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.9\"},{\"features\":[\"validation\"],\"kind\":\"dev\",\"name\":\"rkyv\",\"req\":\"^0.7\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"serde_core\",\"optional\":true,\"req\":\"^1.0.220\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"serde_core\",\"req\":\"^1.0.220\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.45\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"yoke\",\"optional\":true,\"req\":\"^0.8.2\"}],\"features\":{\"alloc\":[],\"databake\":[\"dep:databake\"],\"default\":[\"alloc\"],\"serde\":[\"dep:serde_core\",\"alloc\"],\"testing\":[\"alloc\"],\"yoke\":[\"dep:yoke\"]}}", "litrs_1.0.0": "{\"dependencies\":[{\"name\":\"proc-macro2\",\"optional\":true,\"req\":\"^1.0.63\"},{\"name\":\"unicode-xid\",\"optional\":true,\"req\":\"^0.2.4\"}],\"features\":{\"check_suffix\":[\"unicode-xid\"]}}", "local-channel_0.1.5": "{\"dependencies\":[{\"name\":\"futures-core\",\"req\":\"^0.3.17\"},{\"name\":\"futures-sink\",\"req\":\"^0.3.17\"},{\"name\":\"local-waker\",\"req\":\"^0.1\"}],\"features\":{}}", "local-waker_0.1.4": "{\"dependencies\":[],\"features\":{}}", @@ -2072,6 +2097,7 @@ "openssl-probe_0.2.1": "{\"dependencies\":[],\"features\":{}}", "openssl-sys_0.9.109": "{\"dependencies\":[{\"features\":[\"ssl\"],\"name\":\"aws-lc-sys\",\"optional\":true,\"req\":\"^0.27\"},{\"features\":[\"experimental\"],\"kind\":\"build\",\"name\":\"bindgen\",\"optional\":true,\"req\":\"^0.69.0\"},{\"name\":\"bssl-sys\",\"optional\":true,\"req\":\"^0.1.0\"},{\"kind\":\"build\",\"name\":\"cc\",\"req\":\"^1.0.61\"},{\"name\":\"libc\",\"req\":\"^0.2\"},{\"features\":[\"legacy\"],\"kind\":\"build\",\"name\":\"openssl-src\",\"optional\":true,\"req\":\"^300.2.0\"},{\"kind\":\"build\",\"name\":\"pkg-config\",\"req\":\"^0.3.9\"},{\"kind\":\"build\",\"name\":\"vcpkg\",\"req\":\"^0.2.8\"}],\"features\":{\"aws-lc\":[\"dep:aws-lc-sys\"],\"unstable_boringssl\":[\"bssl-sys\"],\"vendored\":[\"openssl-src\"]}}", "openssl-sys_0.9.111": "{\"dependencies\":[{\"features\":[\"ssl\",\"bindgen\"],\"name\":\"aws-lc-fips-sys\",\"optional\":true,\"req\":\"^0.13\"},{\"features\":[\"ssl\"],\"name\":\"aws-lc-sys\",\"optional\":true,\"req\":\"^0.27\"},{\"features\":[\"experimental\"],\"kind\":\"build\",\"name\":\"bindgen\",\"optional\":true,\"req\":\"^0.72.0\"},{\"name\":\"bssl-sys\",\"optional\":true,\"req\":\"^0.1.0\"},{\"kind\":\"build\",\"name\":\"cc\",\"req\":\"^1.0.61\"},{\"name\":\"libc\",\"req\":\"^0.2\"},{\"features\":[\"legacy\"],\"kind\":\"build\",\"name\":\"openssl-src\",\"optional\":true,\"req\":\"^300.2.0\"},{\"kind\":\"build\",\"name\":\"pkg-config\",\"req\":\"^0.3.9\"},{\"kind\":\"build\",\"name\":\"vcpkg\",\"req\":\"^0.2.8\"}],\"features\":{\"aws-lc\":[\"dep:aws-lc-sys\"],\"aws-lc-fips\":[\"dep:aws-lc-fips-sys\"],\"unstable_boringssl\":[\"bssl-sys\"],\"vendored\":[\"openssl-src\"]}}", + "openssl-sys_0.9.114": "{\"dependencies\":[{\"features\":[\"ssl\",\"bindgen\"],\"name\":\"aws-lc-fips-sys\",\"optional\":true,\"req\":\"^0.13\"},{\"features\":[\"ssl\"],\"name\":\"aws-lc-sys\",\"optional\":true,\"req\":\"^0.39\"},{\"features\":[\"experimental\"],\"kind\":\"build\",\"name\":\"bindgen\",\"optional\":true,\"req\":\"^0.72.0\"},{\"name\":\"bssl-sys\",\"optional\":true,\"req\":\"^0.1.0\"},{\"kind\":\"build\",\"name\":\"cc\",\"req\":\"^1.0.61\"},{\"name\":\"libc\",\"req\":\"^0.2\"},{\"features\":[\"legacy\"],\"kind\":\"build\",\"name\":\"openssl-src\",\"optional\":true,\"req\":\"^300.2.0\"},{\"kind\":\"build\",\"name\":\"pkg-config\",\"req\":\"^0.3.9\"},{\"kind\":\"build\",\"name\":\"vcpkg\",\"req\":\"^0.2.8\"}],\"features\":{\"aws-lc\":[\"dep:aws-lc-sys\"],\"aws-lc-fips\":[\"dep:aws-lc-fips-sys\"],\"unstable_boringssl\":[\"bssl-sys\"],\"vendored\":[\"openssl-src\"]}}", "openssl_0.10.75": "{\"dependencies\":[{\"name\":\"bitflags\",\"req\":\"^2.2.1\"},{\"name\":\"cfg-if\",\"req\":\"^1.0\"},{\"name\":\"ffi\",\"package\":\"openssl-sys\",\"req\":\"^0.9.111\"},{\"name\":\"foreign-types\",\"req\":\"^0.3.1\"},{\"kind\":\"dev\",\"name\":\"hex\",\"req\":\"^0.4\"},{\"name\":\"libc\",\"req\":\"^0.2\"},{\"name\":\"once_cell\",\"req\":\"^1.5.2\"},{\"name\":\"openssl-macros\",\"req\":\"^0.1.1\"}],\"features\":{\"aws-lc\":[\"ffi/aws-lc\"],\"aws-lc-fips\":[\"ffi/aws-lc-fips\"],\"bindgen\":[\"ffi/bindgen\"],\"default\":[],\"unstable_boringssl\":[\"ffi/unstable_boringssl\"],\"v101\":[],\"v102\":[],\"v110\":[],\"v111\":[],\"vendored\":[\"ffi/vendored\"]}}", "option-ext_0.2.0": "{\"dependencies\":[],\"features\":{}}", "or_poisoned_0.1.0": "{\"dependencies\":[],\"features\":{}}", @@ -2177,6 +2203,7 @@ "pkcs8_0.10.2": "{\"dependencies\":[{\"features\":[\"oid\"],\"name\":\"der\",\"req\":\"^0.7\"},{\"kind\":\"dev\",\"name\":\"hex-literal\",\"req\":\"^0.3\"},{\"name\":\"pkcs5\",\"optional\":true,\"req\":\"^0.7\"},{\"default_features\":false,\"name\":\"rand_core\",\"optional\":true,\"req\":\"^0.6\"},{\"name\":\"spki\",\"req\":\"^0.7.1\"},{\"default_features\":false,\"name\":\"subtle\",\"optional\":true,\"req\":\"^2\"},{\"kind\":\"dev\",\"name\":\"tempfile\",\"req\":\"^3\"}],\"features\":{\"3des\":[\"encryption\",\"pkcs5/3des\"],\"alloc\":[\"der/alloc\",\"der/zeroize\",\"spki/alloc\"],\"des-insecure\":[\"encryption\",\"pkcs5/des-insecure\"],\"encryption\":[\"alloc\",\"pkcs5/alloc\",\"pkcs5/pbes2\",\"rand_core\"],\"getrandom\":[\"rand_core/getrandom\"],\"pem\":[\"alloc\",\"der/pem\",\"spki/pem\"],\"sha1-insecure\":[\"encryption\",\"pkcs5/sha1-insecure\"],\"std\":[\"alloc\",\"der/std\",\"spki/std\"]}}", "pkcs8_0.9.0": "{\"dependencies\":[{\"features\":[\"oid\"],\"name\":\"der\",\"req\":\"^0.6\"},{\"kind\":\"dev\",\"name\":\"hex-literal\",\"req\":\"^0.3\"},{\"name\":\"pkcs5\",\"optional\":true,\"req\":\"^0.5\"},{\"default_features\":false,\"name\":\"rand_core\",\"optional\":true,\"req\":\"^0.6\"},{\"name\":\"spki\",\"req\":\"^0.6\"},{\"default_features\":false,\"name\":\"subtle\",\"optional\":true,\"req\":\"^2\"},{\"kind\":\"dev\",\"name\":\"tempfile\",\"req\":\"^3\"}],\"features\":{\"3des\":[\"encryption\",\"pkcs5/3des\"],\"alloc\":[\"der/alloc\",\"der/zeroize\",\"spki/alloc\"],\"des-insecure\":[\"encryption\",\"pkcs5/des-insecure\"],\"encryption\":[\"alloc\",\"pkcs5/alloc\",\"pkcs5/pbes2\",\"rand_core\"],\"getrandom\":[\"rand_core/getrandom\"],\"pem\":[\"alloc\",\"der/pem\",\"spki/pem\"],\"sha1\":[\"encryption\",\"pkcs5/sha1\"],\"std\":[\"alloc\",\"der/std\",\"spki/std\"]}}", "pkg-config_0.3.32": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"lazy_static\",\"req\":\"^1\"}],\"features\":{}}", + "pkg-config_0.3.33": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"lazy_static\",\"req\":\"^1\"}],\"features\":{}}", "plain_0.2.3": "{\"dependencies\":[],\"features\":{}}", "planus_1.1.1": "{\"dependencies\":[{\"name\":\"array-init-cursor\",\"req\":\"^0.2.0\"},{\"name\":\"hashbrown\",\"optional\":true,\"req\":\"^0.15.2\"},{\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.9.0\"}],\"features\":{\"bytes-cache\":[\"hashbrown\"],\"default\":[\"std\",\"vtable-cache\",\"string-cache\",\"bytes-cache\"],\"extra-validation\":[],\"std\":[],\"string-cache\":[\"hashbrown\"],\"vtable-cache\":[\"hashbrown\"]}}", "plist_1.8.0": "{\"dependencies\":[{\"name\":\"base64\",\"req\":\"^0.22.0\"},{\"name\":\"indexmap\",\"req\":\"^2.1.0\"},{\"name\":\"quick_xml\",\"package\":\"quick-xml\",\"req\":\"^0.38.0\"},{\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.2\"},{\"kind\":\"dev\",\"name\":\"serde_derive\",\"req\":\"^1.0.2\"},{\"kind\":\"dev\",\"name\":\"serde_yaml\",\"req\":\"^0.8.21\"},{\"features\":[\"parsing\",\"formatting\"],\"name\":\"time\",\"req\":\"^0.3.30\"}],\"features\":{\"default\":[\"serde\"],\"enable_unstable_features_that_may_break_with_minor_version_bumps\":[]}}", @@ -2209,11 +2236,13 @@ "portable-atomic-util_0.2.4": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"build-context\",\"req\":\"^0.1\"},{\"default_features\":false,\"features\":[\"require-cas\"],\"name\":\"portable-atomic\",\"req\":\"^1.5.1\"}],\"features\":{\"alloc\":[],\"default\":[],\"std\":[\"alloc\"]}}", "portable-atomic-util_0.2.5": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"build-context\",\"req\":\"^0.1\"},{\"default_features\":false,\"features\":[\"require-cas\"],\"name\":\"portable-atomic\",\"req\":\"^1.5.1\"}],\"features\":{\"alloc\":[],\"default\":[],\"std\":[\"alloc\"]}}", "portable-atomic-util_0.2.6": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"build-context\",\"req\":\"^0.1\"},{\"default_features\":false,\"features\":[\"require-cas\"],\"name\":\"portable-atomic\",\"req\":\"^1.5.1\"}],\"features\":{\"alloc\":[],\"default\":[],\"std\":[\"alloc\"]}}", + "portable-atomic-util_0.2.7": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"build-context\",\"req\":\"^0.1\"},{\"default_features\":false,\"features\":[\"require-cas\"],\"name\":\"portable-atomic\",\"req\":\"^1.5.1\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.60\"}],\"features\":{\"alloc\":[],\"default\":[],\"std\":[\"alloc\"]}}", "portable-atomic_1.11.1": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"build-context\",\"req\":\"^0.1\"},{\"name\":\"critical-section\",\"optional\":true,\"req\":\"^1\"},{\"kind\":\"dev\",\"name\":\"crossbeam-utils\",\"req\":\"=0.8.16\"},{\"kind\":\"dev\",\"name\":\"fastrand\",\"req\":\"^2\"},{\"kind\":\"dev\",\"name\":\"libc\",\"req\":\"=0.2.163\",\"target\":\"cfg(unix)\"},{\"kind\":\"dev\",\"name\":\"paste\",\"req\":\"^1\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"quickcheck\",\"req\":\"^1\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.60\"},{\"kind\":\"dev\",\"name\":\"sptr\",\"req\":\"^0.3\"},{\"kind\":\"dev\",\"name\":\"static_assertions\",\"req\":\"^1\"},{\"features\":[\"Win32_Foundation\",\"Win32_System_Threading\"],\"kind\":\"dev\",\"name\":\"windows-sys\",\"req\":\"^0.59\",\"target\":\"cfg(windows)\"}],\"features\":{\"default\":[\"fallback\"],\"disable-fiq\":[],\"fallback\":[],\"float\":[],\"force-amo\":[],\"require-cas\":[],\"s-mode\":[],\"std\":[],\"unsafe-assume-single-core\":[]}}", "portable-atomic_1.13.1": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"build-context\",\"req\":\"^0.1\"},{\"kind\":\"dev\",\"name\":\"crabgrind\",\"req\":\"^0.1\",\"target\":\"cfg(valgrind)\"},{\"name\":\"critical-section\",\"optional\":true,\"req\":\"^1\"},{\"kind\":\"dev\",\"name\":\"crossbeam-utils\",\"req\":\"=0.8.16\"},{\"kind\":\"dev\",\"name\":\"fastrand\",\"req\":\"^2\"},{\"kind\":\"dev\",\"name\":\"libc\",\"req\":\"=0.2.163\",\"target\":\"cfg(unix)\"},{\"kind\":\"dev\",\"name\":\"paste\",\"req\":\"^1\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"quickcheck\",\"req\":\"^1\"},{\"kind\":\"dev\",\"name\":\"rustversion\",\"req\":\"^1\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.60\"},{\"kind\":\"dev\",\"name\":\"sptr\",\"req\":\"^0.3\"},{\"kind\":\"dev\",\"name\":\"static_assertions\",\"req\":\"^1\"},{\"features\":[\"Win32_Foundation\",\"Win32_System_Threading\"],\"kind\":\"dev\",\"name\":\"windows-sys\",\"req\":\"^0.61\",\"target\":\"cfg(windows)\"}],\"features\":{\"default\":[\"fallback\"],\"disable-fiq\":[],\"fallback\":[],\"float\":[],\"force-amo\":[],\"require-cas\":[],\"s-mode\":[],\"std\":[],\"unsafe-assume-privileged\":[],\"unsafe-assume-single-core\":[]}}", "postcard_1.1.3": "{\"dependencies\":[{\"default_features\":false,\"name\":\"cobs\",\"req\":\"^0.3.0\"},{\"name\":\"crc\",\"optional\":true,\"req\":\"^3.0.1\"},{\"name\":\"defmt\",\"optional\":true,\"req\":\"^1\"},{\"name\":\"embedded-io-04\",\"optional\":true,\"package\":\"embedded-io\",\"req\":\"^0.4\"},{\"name\":\"embedded-io-06\",\"optional\":true,\"package\":\"embedded-io\",\"req\":\"^0.6\"},{\"default_features\":false,\"features\":[\"serde\"],\"name\":\"heapless\",\"optional\":true,\"req\":\"^0.7.0\"},{\"default_features\":false,\"name\":\"nalgebra_v0_33\",\"optional\":true,\"package\":\"nalgebra\",\"req\":\"^0.33.0\"},{\"name\":\"postcard-derive\",\"optional\":true,\"req\":\"^0.2.0\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"serde\",\"req\":\"^1.0.100\"}],\"features\":{\"alloc\":[\"serde/alloc\",\"embedded-io-04?/alloc\",\"embedded-io-06?/alloc\"],\"core-num-saturating\":[],\"crc\":[\"dep:crc\"],\"default\":[\"heapless-cas\"],\"defmt\":[\"dep:defmt\"],\"embedded-io\":[\"dep:embedded-io-04\"],\"embedded-io-04\":[\"dep:embedded-io-04\"],\"embedded-io-06\":[\"dep:embedded-io-06\"],\"experimental-derive\":[\"postcard-derive\"],\"heapless\":[\"dep:heapless\"],\"heapless-cas\":[\"heapless\",\"dep:heapless\",\"heapless/cas\"],\"nalgebra-v0_33\":[\"nalgebra_v0_33\"],\"paste\":[],\"postcard-derive\":[\"dep:postcard-derive\"],\"use-crc\":[\"crc\"],\"use-defmt\":[\"defmt\"],\"use-std\":[\"serde/std\",\"alloc\"]}}", "potential_utf_0.1.3": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"bincode\",\"req\":\"^1.3.1\"},{\"default_features\":false,\"name\":\"databake\",\"optional\":true,\"req\":\"^0.2.0\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.110\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.45\"},{\"default_features\":false,\"name\":\"writeable\",\"optional\":true,\"req\":\"^0.6.0\"},{\"default_features\":false,\"name\":\"zerovec\",\"optional\":true,\"req\":\"^0.11.3\"}],\"features\":{\"alloc\":[\"serde?/alloc\",\"zerovec?/alloc\"],\"databake\":[\"dep:databake\"],\"serde\":[\"dep:serde\"],\"writeable\":[\"dep:writeable\",\"alloc\"],\"zerovec\":[\"dep:zerovec\"]}}", "potential_utf_0.1.4": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"bincode\",\"req\":\"^1.3.1\"},{\"default_features\":false,\"name\":\"databake\",\"optional\":true,\"req\":\"^0.2.0\"},{\"default_features\":false,\"name\":\"serde_core\",\"optional\":true,\"req\":\"^1.0.220\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.45\"},{\"default_features\":false,\"name\":\"writeable\",\"optional\":true,\"req\":\"^0.6.0\"},{\"default_features\":false,\"name\":\"zerovec\",\"optional\":true,\"req\":\"^0.11.3\"}],\"features\":{\"alloc\":[\"serde_core?/alloc\",\"writeable/alloc\",\"zerovec?/alloc\"],\"databake\":[\"dep:databake\"],\"default\":[\"alloc\"],\"serde\":[\"dep:serde_core\"],\"writeable\":[\"dep:writeable\"],\"zerovec\":[\"dep:zerovec\"]}}", + "potential_utf_0.1.5": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"bincode\",\"req\":\"^1.3.1\"},{\"default_features\":false,\"name\":\"databake\",\"optional\":true,\"req\":\"^0.2.0\"},{\"default_features\":false,\"name\":\"serde_core\",\"optional\":true,\"req\":\"^1.0.220\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.45\"},{\"default_features\":false,\"name\":\"writeable\",\"optional\":true,\"req\":\"^0.6.1\"},{\"default_features\":false,\"name\":\"zerovec\",\"optional\":true,\"req\":\"^0.11.6\"}],\"features\":{\"alloc\":[\"serde_core?/alloc\",\"writeable/alloc\",\"zerovec?/alloc\"],\"databake\":[\"dep:databake\"],\"default\":[\"alloc\"],\"serde\":[\"dep:serde_core\"],\"writeable\":[\"dep:writeable\"],\"zerovec\":[\"dep:zerovec\"]}}", "powerfmt_0.2.0": "{\"dependencies\":[{\"name\":\"powerfmt-macros\",\"optional\":true,\"req\":\"=0.1.0\"}],\"features\":{\"alloc\":[],\"default\":[\"std\",\"macros\"],\"macros\":[\"dep:powerfmt-macros\"],\"std\":[\"alloc\"]}}", "ppv-lite86_0.2.21": "{\"dependencies\":[{\"features\":[\"simd\"],\"name\":\"zerocopy\",\"req\":\"^0.8.23\"}],\"features\":{\"default\":[\"std\"],\"no_simd\":[],\"simd\":[],\"std\":[]}}", "precomputed-hash_0.1.1": "{\"dependencies\":[],\"features\":{}}", @@ -2430,6 +2459,7 @@ "scale-info_2.11.6": "{\"dependencies\":[{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"bitvec\",\"optional\":true,\"req\":\"^1\"},{\"name\":\"cfg-if\",\"req\":\"^1.0\"},{\"default_features\":false,\"features\":[\"from\"],\"name\":\"derive_more\",\"req\":\"^1.0.0\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"scale\",\"package\":\"parity-scale-codec\",\"req\":\"^3\"},{\"default_features\":false,\"name\":\"scale-info-derive\",\"optional\":true,\"req\":\"^2.11.6\"},{\"kind\":\"dev\",\"name\":\"scale-info-derive\",\"req\":\"^2.11.6\"},{\"name\":\"schemars\",\"optional\":true,\"req\":\"^0.8\"},{\"default_features\":false,\"features\":[\"derive\",\"alloc\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1\"}],\"features\":{\"bit-vec\":[\"bitvec\"],\"decode\":[\"scale/full\"],\"default\":[\"std\"],\"derive\":[\"scale-info-derive\"],\"docs\":[\"scale-info-derive/docs\"],\"schema\":[\"std\",\"schemars\"],\"std\":[\"bitvec?/std\",\"scale/std\"]}}", "scan_fmt_0.2.6": "{\"dependencies\":[{\"name\":\"regex\",\"optional\":true,\"req\":\"^1\"}],\"features\":{\"default\":[\"regex\",\"std\"],\"std\":[]}}", "schannel_0.1.28": "{\"dependencies\":[{\"features\":[\"Win32_Foundation\",\"Win32_Security_Cryptography\",\"Win32_Security_Authentication_Identity\",\"Win32_Security_Credentials\",\"Win32_System_LibraryLoader\",\"Win32_System_Memory\",\"Win32_System_SystemInformation\"],\"name\":\"windows-sys\",\"req\":\"^0.61\"},{\"features\":[\"Win32_System_SystemInformation\",\"Win32_System_Time\"],\"kind\":\"dev\",\"name\":\"windows-sys\",\"req\":\"^0.61\"}],\"features\":{}}", + "schannel_0.1.29": "{\"dependencies\":[{\"features\":[\"Win32_Foundation\",\"Win32_Security_Cryptography\",\"Win32_Security_Authentication_Identity\",\"Win32_Security_Credentials\",\"Win32_System_LibraryLoader\",\"Win32_System_Memory\",\"Win32_System_SystemInformation\"],\"name\":\"windows-sys\",\"req\":\"^0.61\"},{\"features\":[\"Win32_System_SystemInformation\",\"Win32_System_Time\"],\"kind\":\"dev\",\"name\":\"windows-sys\",\"req\":\"^0.61\"}],\"features\":{}}", "schemars_1.1.0": "{\"dependencies\":[{\"default_features\":false,\"name\":\"arrayvec07\",\"optional\":true,\"package\":\"arrayvec\",\"req\":\"^0.7\"},{\"default_features\":false,\"features\":[\"serde\"],\"kind\":\"dev\",\"name\":\"arrayvec07\",\"package\":\"arrayvec\",\"req\":\"^0.7\"},{\"default_features\":false,\"name\":\"bigdecimal04\",\"optional\":true,\"package\":\"bigdecimal\",\"req\":\"^0.4\"},{\"default_features\":false,\"features\":[\"serde\"],\"kind\":\"dev\",\"name\":\"bigdecimal04\",\"package\":\"bigdecimal\",\"req\":\"^0.4\"},{\"default_features\":false,\"name\":\"bytes1\",\"optional\":true,\"package\":\"bytes\",\"req\":\"^1.0\"},{\"default_features\":false,\"features\":[\"serde\"],\"kind\":\"dev\",\"name\":\"bytes1\",\"package\":\"bytes\",\"req\":\"^1.0\"},{\"default_features\":false,\"name\":\"chrono04\",\"optional\":true,\"package\":\"chrono\",\"req\":\"^0.4.39\"},{\"default_features\":false,\"features\":[\"serde\"],\"kind\":\"dev\",\"name\":\"chrono04\",\"package\":\"chrono\",\"req\":\"^0.4\"},{\"name\":\"dyn-clone\",\"req\":\"^1.0.17\"},{\"default_features\":false,\"name\":\"either1\",\"optional\":true,\"package\":\"either\",\"req\":\"^1.3\"},{\"default_features\":false,\"features\":[\"serde\"],\"kind\":\"dev\",\"name\":\"either1\",\"package\":\"either\",\"req\":\"^1.3\"},{\"features\":[\"derive\",\"email\",\"regex\",\"url\"],\"kind\":\"dev\",\"name\":\"garde\",\"req\":\"^0.22\"},{\"default_features\":false,\"name\":\"indexmap2\",\"optional\":true,\"package\":\"indexmap\",\"req\":\"^2.2.3\"},{\"default_features\":false,\"features\":[\"serde\"],\"kind\":\"dev\",\"name\":\"indexmap2\",\"package\":\"indexmap\",\"req\":\"^2.0\"},{\"default_features\":false,\"name\":\"jiff02\",\"optional\":true,\"package\":\"jiff\",\"req\":\"^0.2\"},{\"features\":[\"serde\"],\"kind\":\"dev\",\"name\":\"jiff02\",\"package\":\"jiff\",\"req\":\"^0.2\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"jsonschema\",\"req\":\"^0.30\"},{\"kind\":\"dev\",\"name\":\"pretty_assertions\",\"req\":\"^1.2.1\"},{\"name\":\"ref-cast\",\"req\":\"^1.0.22\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"regex\",\"req\":\"^1.10.6\"},{\"default_features\":false,\"name\":\"rust_decimal1\",\"optional\":true,\"package\":\"rust_decimal\",\"req\":\"^1.13\"},{\"default_features\":false,\"features\":[\"serde\"],\"kind\":\"dev\",\"name\":\"rust_decimal1\",\"package\":\"rust_decimal\",\"req\":\"^1\"},{\"name\":\"schemars_derive\",\"optional\":true,\"req\":\"=1.1.0\"},{\"default_features\":false,\"name\":\"semver1\",\"optional\":true,\"package\":\"semver\",\"req\":\"^1.0.9\"},{\"default_features\":false,\"features\":[\"serde\"],\"kind\":\"dev\",\"name\":\"semver1\",\"package\":\"semver\",\"req\":\"^1.0.9\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"serde\",\"req\":\"^1.0.194\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"serde_json\",\"req\":\"^1.0.127\"},{\"kind\":\"dev\",\"name\":\"serde_repr\",\"req\":\"^0.1.19\"},{\"default_features\":false,\"name\":\"smallvec1\",\"optional\":true,\"package\":\"smallvec\",\"req\":\"^1.0\"},{\"default_features\":false,\"features\":[\"serde\"],\"kind\":\"dev\",\"name\":\"smallvec1\",\"package\":\"smallvec\",\"req\":\"^1.0\"},{\"default_features\":false,\"name\":\"smol_str02\",\"optional\":true,\"package\":\"smol_str\",\"req\":\"^0.2.1\"},{\"default_features\":false,\"features\":[\"serde\"],\"kind\":\"dev\",\"name\":\"smol_str02\",\"package\":\"smol_str\",\"req\":\"^0.2.1\"},{\"features\":[\"json\"],\"kind\":\"dev\",\"name\":\"snapbox\",\"req\":\"^0.6.17\"},{\"kind\":\"dev\",\"name\":\"trybuild\",\"req\":\"^1.0\"},{\"default_features\":false,\"name\":\"url2\",\"optional\":true,\"package\":\"url\",\"req\":\"^2.0\"},{\"default_features\":false,\"features\":[\"serde\",\"std\"],\"kind\":\"dev\",\"name\":\"url2\",\"package\":\"url\",\"req\":\"^2.0\"},{\"default_features\":false,\"name\":\"uuid1\",\"optional\":true,\"package\":\"uuid\",\"req\":\"^1.0\"},{\"default_features\":false,\"features\":[\"serde\"],\"kind\":\"dev\",\"name\":\"uuid1\",\"package\":\"uuid\",\"req\":\"^1.0\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"validator\",\"req\":\"^0.20\"}],\"features\":{\"_ui_test\":[],\"default\":[\"derive\",\"std\"],\"derive\":[\"schemars_derive\"],\"preserve_order\":[\"serde_json/preserve_order\"],\"raw_value\":[\"serde_json/raw_value\"],\"std\":[]}}", "schemars_derive_1.1.0": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"pretty_assertions\",\"req\":\"^1.2.1\"},{\"name\":\"proc-macro2\",\"req\":\"^1.0.74\"},{\"name\":\"quote\",\"req\":\"^1.0.35\"},{\"name\":\"serde_derive_internals\",\"req\":\"^0.29.1\"},{\"name\":\"syn\",\"req\":\"^2.0.46\"},{\"features\":[\"extra-traits\"],\"kind\":\"dev\",\"name\":\"syn\",\"req\":\"^2.0\"}],\"features\":{}}", "scoped-tls_1.0.1": "{\"dependencies\":[],\"features\":{}}", @@ -2454,6 +2484,7 @@ "self-replace_1.5.0": "{\"dependencies\":[{\"name\":\"fastrand\",\"req\":\"^2.1.0\",\"target\":\"cfg(windows)\"},{\"name\":\"tempfile\",\"req\":\"^3.10.0\"},{\"features\":[\"Win32_Foundation\",\"Win32_Storage_FileSystem\",\"Win32_System_Environment\",\"Win32_System_LibraryLoader\",\"Win32_System_Memory\",\"Win32_System_Threading\",\"Win32_UI_Shell\",\"Win32_Security\"],\"name\":\"windows-sys\",\"req\":\"^0.52\",\"target\":\"cfg(windows)\"}],\"features\":{}}", "self_cell_1.2.2": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"once_cell\",\"req\":\"=1.1.0\"},{\"name\":\"rustversion\",\"optional\":true,\"req\":\">=1\"}],\"features\":{\"old_rust\":[\"rustversion\"]}}", "semver_1.0.27": "{\"dependencies\":[{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"package\":\"serde_core\",\"req\":\"^1.0.220\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.220\",\"target\":\"cfg(any())\"}],\"features\":{\"default\":[\"std\"],\"serde\":[\"dep:serde\"],\"std\":[]}}", + "semver_1.0.28": "{\"dependencies\":[{\"default_features\":false,\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.8\",\"target\":\"cfg(not(miri))\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"package\":\"serde_core\",\"req\":\"^1.0.220\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.220\",\"target\":\"cfg(any())\"}],\"features\":{\"default\":[\"std\"],\"serde\":[\"dep:serde\"],\"std\":[]}}", "send_wrapper_0.4.0": "{\"dependencies\":[],\"features\":{}}", "send_wrapper_0.6.0": "{\"dependencies\":[{\"name\":\"futures-core\",\"optional\":true,\"req\":\"^0.3\"},{\"kind\":\"dev\",\"name\":\"futures-executor\",\"req\":\"^0.3\"},{\"kind\":\"dev\",\"name\":\"futures-util\",\"req\":\"^0.3\"}],\"features\":{\"futures\":[\"futures-core\"]}}", "seq-macro_0.3.6": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"rustversion\",\"req\":\"^1.0\"},{\"features\":[\"diff\"],\"kind\":\"dev\",\"name\":\"trybuild\",\"req\":\"^1.0.49\"}],\"features\":{}}", @@ -2477,6 +2508,7 @@ "serde_repr_0.1.20": "{\"dependencies\":[{\"name\":\"proc-macro2\",\"req\":\"^1.0.74\"},{\"name\":\"quote\",\"req\":\"^1.0.35\"},{\"kind\":\"dev\",\"name\":\"rustversion\",\"req\":\"^1.0.13\"},{\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0.166\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.100\"},{\"name\":\"syn\",\"req\":\"^2.0.46\"},{\"features\":[\"diff\"],\"kind\":\"dev\",\"name\":\"trybuild\",\"req\":\"^1.0.81\"}],\"features\":{}}", "serde_spanned_0.6.9": "{\"dependencies\":[{\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.145\"},{\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1\"},{\"kind\":\"dev\",\"name\":\"serde-untagged\",\"req\":\"^0.1\"},{\"kind\":\"dev\",\"name\":\"serde_derive\",\"req\":\"^1\"}],\"features\":{}}", "serde_spanned_1.0.4": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1\"},{\"kind\":\"dev\",\"name\":\"serde-untagged\",\"req\":\"^0.1\"},{\"default_features\":false,\"name\":\"serde_core\",\"optional\":true,\"req\":\"^1.0.225\"},{\"kind\":\"dev\",\"name\":\"serde_derive\",\"req\":\"^1\"}],\"features\":{\"alloc\":[\"serde_core?/alloc\"],\"default\":[\"std\",\"serde\"],\"serde\":[\"dep:serde_core\"],\"std\":[\"alloc\",\"serde_core?/std\"]}}", + "serde_spanned_1.1.1": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1\"},{\"kind\":\"dev\",\"name\":\"serde-untagged\",\"req\":\"^0.1\"},{\"default_features\":false,\"name\":\"serde_core\",\"optional\":true,\"req\":\"^1.0.228\"},{\"kind\":\"dev\",\"name\":\"serde_derive\",\"req\":\"^1\"}],\"features\":{\"alloc\":[\"serde_core?/alloc\"],\"default\":[\"std\",\"serde\"],\"serde\":[\"dep:serde_core\"],\"std\":[\"alloc\",\"serde_core?/std\"]}}", "serde_stacker_0.1.14": "{\"dependencies\":[{\"default_features\":false,\"name\":\"serde\",\"req\":\"^1.0.220\",\"target\":\"cfg(any())\"},{\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0.220\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"serde_core\",\"req\":\"^1.0.220\"},{\"features\":[\"unbounded_depth\"],\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.100\"},{\"name\":\"stacker\",\"req\":\"^0.1.15\"}],\"features\":{}}", "serde_urlencoded_0.7.1": "{\"dependencies\":[{\"name\":\"form_urlencoded\",\"req\":\"^1\"},{\"name\":\"itoa\",\"req\":\"^1\"},{\"name\":\"ryu\",\"req\":\"^1\"},{\"name\":\"serde\",\"req\":\"^1.0.69\"},{\"kind\":\"dev\",\"name\":\"serde_derive\",\"req\":\"^1\"}],\"features\":{}}", "serde_with_3.16.1": "{\"dependencies\":[{\"default_features\":false,\"name\":\"base64\",\"optional\":true,\"req\":\"^0.22.1\"},{\"default_features\":false,\"features\":[\"serde\"],\"name\":\"chrono_0_4\",\"optional\":true,\"package\":\"chrono\",\"req\":\"^0.4.20\"},{\"name\":\"document-features\",\"optional\":true,\"req\":\"^0.2.7\"},{\"kind\":\"dev\",\"name\":\"expect-test\",\"req\":\"^1.5.1\"},{\"kind\":\"dev\",\"name\":\"fnv\",\"req\":\"^1.0.6\"},{\"kind\":\"dev\",\"name\":\"glob\",\"req\":\"^0.3.3\"},{\"default_features\":false,\"features\":[\"serde\"],\"name\":\"hashbrown_0_14\",\"optional\":true,\"package\":\"hashbrown\",\"req\":\"^0.14.0\"},{\"default_features\":false,\"features\":[\"serde\"],\"name\":\"hashbrown_0_15\",\"optional\":true,\"package\":\"hashbrown\",\"req\":\"^0.15.0\"},{\"default_features\":false,\"features\":[\"serde\"],\"name\":\"hashbrown_0_16\",\"optional\":true,\"package\":\"hashbrown\",\"req\":\"^0.16.0\"},{\"default_features\":false,\"name\":\"hex\",\"optional\":true,\"req\":\"^0.4.3\"},{\"default_features\":false,\"features\":[\"serde-1\"],\"name\":\"indexmap_1\",\"optional\":true,\"package\":\"indexmap\",\"req\":\"^1.8\"},{\"default_features\":false,\"features\":[\"serde\"],\"name\":\"indexmap_2\",\"optional\":true,\"package\":\"indexmap\",\"req\":\"^2.0\"},{\"default_features\":false,\"features\":[\"resolve-file\"],\"kind\":\"dev\",\"name\":\"jsonschema\",\"req\":\"^0.33.0\"},{\"kind\":\"dev\",\"name\":\"mime\",\"req\":\"^0.3.16\"},{\"kind\":\"dev\",\"name\":\"pretty_assertions\",\"req\":\"^1.4.0\"},{\"default_features\":false,\"features\":[\"std\"],\"kind\":\"dev\",\"name\":\"regex\",\"req\":\"^1.12.1\"},{\"kind\":\"dev\",\"name\":\"rmp-serde\",\"req\":\"^1.3.0\"},{\"kind\":\"dev\",\"name\":\"ron\",\"req\":\"^0.12\"},{\"kind\":\"dev\",\"name\":\"rustversion\",\"req\":\"^1.0.22\"},{\"default_features\":false,\"name\":\"schemars_0_8\",\"optional\":true,\"package\":\"schemars\",\"req\":\"^0.8.16\"},{\"kind\":\"dev\",\"name\":\"schemars_0_8\",\"package\":\"schemars\",\"req\":\"^0.8.16\"},{\"default_features\":false,\"name\":\"schemars_0_9\",\"optional\":true,\"package\":\"schemars\",\"req\":\"^0.9.0\"},{\"kind\":\"dev\",\"name\":\"schemars_0_9\",\"package\":\"schemars\",\"req\":\"^0.9.0\"},{\"default_features\":false,\"name\":\"schemars_1\",\"optional\":true,\"package\":\"schemars\",\"req\":\"^1.0.2\"},{\"kind\":\"dev\",\"name\":\"schemars_1\",\"package\":\"schemars\",\"req\":\"^1.0.2\"},{\"default_features\":false,\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0.152\"},{\"kind\":\"dev\",\"name\":\"serde-xml-rs\",\"req\":\"^0.8.1\"},{\"default_features\":false,\"features\":[\"result\"],\"name\":\"serde_core\",\"req\":\"^1.0.225\"},{\"default_features\":false,\"name\":\"serde_json\",\"optional\":true,\"req\":\"^1.0.145\"},{\"features\":[\"preserve_order\"],\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.25\"},{\"kind\":\"dev\",\"name\":\"serde_test\",\"req\":\"^1.0.124\"},{\"name\":\"serde_with_macros\",\"optional\":true,\"req\":\"=3.16.1\"},{\"kind\":\"dev\",\"name\":\"serde_yaml\",\"req\":\"^0.9.2\"},{\"default_features\":false,\"name\":\"smallvec_1\",\"optional\":true,\"package\":\"smallvec\",\"req\":\"^1\"},{\"default_features\":false,\"name\":\"time_0_3\",\"optional\":true,\"package\":\"time\",\"req\":\"~0.3.36\"}],\"features\":{\"alloc\":[\"serde_core/alloc\",\"base64?/alloc\",\"chrono_0_4?/alloc\",\"hex?/alloc\",\"serde_json?/alloc\",\"time_0_3?/alloc\"],\"base64\":[\"dep:base64\",\"alloc\"],\"chrono\":[\"chrono_0_4\"],\"chrono_0_4\":[\"dep:chrono_0_4\"],\"default\":[\"std\",\"macros\"],\"guide\":[\"dep:document-features\",\"macros\",\"std\"],\"hashbrown_0_14\":[\"dep:hashbrown_0_14\",\"alloc\"],\"hashbrown_0_15\":[\"dep:hashbrown_0_15\",\"alloc\"],\"hashbrown_0_16\":[\"dep:hashbrown_0_16\",\"alloc\"],\"hex\":[\"dep:hex\",\"alloc\"],\"indexmap\":[\"indexmap_1\"],\"indexmap_1\":[\"dep:indexmap_1\",\"alloc\"],\"indexmap_2\":[\"dep:indexmap_2\",\"alloc\"],\"json\":[\"dep:serde_json\",\"alloc\"],\"macros\":[\"dep:serde_with_macros\"],\"schemars_0_8\":[\"dep:schemars_0_8\",\"std\",\"serde_with_macros?/schemars_0_8\"],\"schemars_0_9\":[\"dep:schemars_0_9\",\"alloc\",\"serde_with_macros?/schemars_0_9\",\"dep:serde_json\"],\"schemars_1\":[\"dep:schemars_1\",\"alloc\",\"serde_with_macros?/schemars_1\",\"dep:serde_json\"],\"smallvec_1\":[\"dep:smallvec_1\"],\"std\":[\"alloc\",\"serde_core/std\",\"chrono_0_4?/clock\",\"chrono_0_4?/std\",\"indexmap_1?/std\",\"indexmap_2?/std\",\"time_0_3?/serde-well-known\",\"time_0_3?/std\",\"schemars_0_9?/std\",\"schemars_1?/std\"],\"time_0_3\":[\"dep:time_0_3\"]}}", @@ -2820,6 +2852,7 @@ "tiny-xlib_0.2.4": "{\"dependencies\":[{\"name\":\"as-raw-xcb-connection\",\"req\":\"^1.0.0\"},{\"name\":\"ctor-lite\",\"req\":\"^0.1.0\"},{\"name\":\"libloading\",\"optional\":true,\"req\":\"^0.8.0\"},{\"kind\":\"build\",\"name\":\"pkg-config\",\"req\":\"^0.3.27\"},{\"default_features\":false,\"name\":\"tracing\",\"optional\":true,\"req\":\"^0.1.37\"},{\"kind\":\"dev\",\"name\":\"tracing\",\"req\":\"^0.1.37\"},{\"kind\":\"dev\",\"name\":\"tracing-subscriber\",\"req\":\"^0.3.17\"},{\"kind\":\"dev\",\"name\":\"x11-dl\",\"req\":\"^2.21.0\"},{\"features\":[\"allow-unsafe-code\"],\"kind\":\"dev\",\"name\":\"x11rb\",\"req\":\"^0.13.0\"}],\"features\":{\"default\":[\"tracing\"],\"dlopen\":[\"libloading\"]}}", "tinystr_0.8.1": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"bincode\",\"req\":\"^1.3.1\"},{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5.0\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":false,\"name\":\"databake\",\"optional\":true,\"req\":\"^0.2.0\"},{\"default_features\":false,\"name\":\"displaydoc\",\"req\":\"^0.2.3\"},{\"default_features\":false,\"features\":[\"use-std\"],\"kind\":\"dev\",\"name\":\"postcard\",\"req\":\"^1.0.3\"},{\"features\":[\"small_rng\"],\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.8\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.110\"},{\"features\":[\"alloc\"],\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.45\"},{\"default_features\":false,\"name\":\"zerovec\",\"optional\":true,\"req\":\"^0.11.1\"}],\"features\":{\"alloc\":[\"zerovec?/alloc\"],\"databake\":[\"dep:databake\"],\"default\":[\"alloc\"],\"serde\":[\"dep:serde\"],\"std\":[],\"zerovec\":[\"dep:zerovec\"]}}", "tinystr_0.8.2": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"bincode\",\"req\":\"^1.3.1\"},{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5.0\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":false,\"name\":\"databake\",\"optional\":true,\"req\":\"^0.2.0\"},{\"default_features\":false,\"name\":\"displaydoc\",\"req\":\"^0.2.3\"},{\"default_features\":false,\"features\":[\"use-std\"],\"kind\":\"dev\",\"name\":\"postcard\",\"req\":\"^1.0.3\"},{\"features\":[\"small_rng\"],\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.9\"},{\"default_features\":false,\"name\":\"serde_core\",\"optional\":true,\"req\":\"^1.0.220\"},{\"features\":[\"alloc\"],\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.45\"},{\"default_features\":false,\"name\":\"zerovec\",\"optional\":true,\"req\":\"^0.11.3\"}],\"features\":{\"alloc\":[\"serde_core?/alloc\",\"zerovec?/alloc\"],\"databake\":[\"dep:databake\"],\"default\":[\"alloc\"],\"serde\":[\"dep:serde_core\"],\"std\":[],\"zerovec\":[\"dep:zerovec\"]}}", + "tinystr_0.8.3": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"bincode\",\"req\":\"^1.3.1\"},{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5.0\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":false,\"name\":\"databake\",\"optional\":true,\"req\":\"^0.2.0\"},{\"default_features\":false,\"name\":\"displaydoc\",\"req\":\"^0.2.3\"},{\"default_features\":false,\"features\":[\"use-std\"],\"kind\":\"dev\",\"name\":\"postcard\",\"req\":\"^1.0.3\"},{\"features\":[\"small_rng\"],\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.9\"},{\"default_features\":false,\"name\":\"serde_core\",\"optional\":true,\"req\":\"^1.0.220\"},{\"features\":[\"alloc\"],\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.45\"},{\"default_features\":false,\"name\":\"zerovec\",\"optional\":true,\"req\":\"^0.11.6\"}],\"features\":{\"alloc\":[\"serde_core?/alloc\",\"zerovec?/alloc\"],\"databake\":[\"dep:databake\"],\"default\":[\"alloc\"],\"serde\":[\"dep:serde_core\"],\"std\":[],\"zerovec\":[\"dep:zerovec\"]}}", "tinyvec_1.10.0": "{\"dependencies\":[{\"name\":\"arbitrary\",\"optional\":true,\"req\":\"^1\"},{\"default_features\":false,\"name\":\"borsh\",\"optional\":true,\"req\":\"^1.2.0\"},{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.3.0\"},{\"kind\":\"dev\",\"name\":\"debugger_test\",\"req\":\"^0.1\"},{\"kind\":\"dev\",\"name\":\"debugger_test_parser\",\"req\":\"^0.1\"},{\"default_features\":false,\"name\":\"generic-array\",\"optional\":true,\"req\":\"^1.1.1\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0\"},{\"kind\":\"dev\",\"name\":\"serde_test\",\"req\":\"^1.0\"},{\"kind\":\"dev\",\"name\":\"smallvec\",\"req\":\"^1\"},{\"name\":\"tinyvec_macros\",\"optional\":true,\"req\":\"^0.1\"}],\"features\":{\"alloc\":[\"tinyvec_macros\"],\"debugger_visualizer\":[],\"default\":[],\"experimental_write_impl\":[],\"grab_spare_slice\":[],\"latest_stable_rust\":[\"rustc_1_61\"],\"nightly_slice_partition_dedup\":[],\"real_blackbox\":[\"criterion/real_blackbox\"],\"rustc_1_40\":[],\"rustc_1_55\":[],\"rustc_1_57\":[],\"rustc_1_61\":[\"rustc_1_57\"],\"std\":[\"alloc\"]}}", "tinyvec_macros_0.1.1": "{\"dependencies\":[],\"features\":{}}", "tokio-macros_2.6.0": "{\"dependencies\":[{\"name\":\"proc-macro2\",\"req\":\"^1.0.60\"},{\"name\":\"quote\",\"req\":\"^1\"},{\"features\":[\"full\"],\"name\":\"syn\",\"req\":\"^2.0\"},{\"features\":[\"full\"],\"kind\":\"dev\",\"name\":\"tokio\",\"req\":\"^1.0.0\"}],\"features\":{}}", @@ -2840,15 +2873,20 @@ "toml_0.8.23": "{\"dependencies\":[{\"name\":\"indexmap\",\"optional\":true,\"req\":\"^2.0.0\"},{\"name\":\"serde\",\"req\":\"^1.0.145\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0.199\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.116\"},{\"features\":[\"serde\"],\"name\":\"serde_spanned\",\"req\":\"^0.6.9\"},{\"kind\":\"dev\",\"name\":\"snapbox\",\"req\":\"^0.6.0\"},{\"kind\":\"dev\",\"name\":\"toml-test-data\",\"req\":\"^2.3.0\"},{\"features\":[\"snapshot\"],\"kind\":\"dev\",\"name\":\"toml-test-harness\",\"req\":\"^1.3.2\"},{\"features\":[\"serde\"],\"name\":\"toml_datetime\",\"req\":\"^0.6.11\"},{\"default_features\":false,\"features\":[\"serde\"],\"name\":\"toml_edit\",\"optional\":true,\"req\":\"^0.22.27\"},{\"kind\":\"dev\",\"name\":\"walkdir\",\"req\":\"^2.5.0\"}],\"features\":{\"default\":[\"parse\",\"display\"],\"display\":[\"dep:toml_edit\",\"toml_edit?/display\"],\"parse\":[\"dep:toml_edit\",\"toml_edit?/parse\"],\"preserve_order\":[\"indexmap\"],\"unbounded\":[\"toml_edit?/unbounded\"]}}", "toml_0.9.10+spec-1.1.0": "{\"dependencies\":[{\"name\":\"anstream\",\"optional\":true,\"req\":\"^0.6.20\"},{\"name\":\"anstyle\",\"optional\":true,\"req\":\"^1.0.11\"},{\"default_features\":false,\"name\":\"foldhash\",\"optional\":true,\"req\":\"^0.2.0\"},{\"default_features\":false,\"name\":\"indexmap\",\"optional\":true,\"req\":\"^2.11.4\"},{\"kind\":\"dev\",\"name\":\"itertools\",\"req\":\"^0.14.0\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0.225\"},{\"kind\":\"dev\",\"name\":\"serde-untagged\",\"req\":\"^0.1.9\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"serde_core\",\"optional\":true,\"req\":\"^1.0.225\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.145\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"serde_spanned\",\"req\":\"^1.0.4\"},{\"kind\":\"dev\",\"name\":\"snapbox\",\"req\":\"^0.6.21\"},{\"kind\":\"dev\",\"name\":\"toml-test-data\",\"req\":\"^2.3.3\"},{\"features\":[\"snapshot\"],\"kind\":\"dev\",\"name\":\"toml-test-harness\",\"req\":\"^1.3.3\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"toml_datetime\",\"req\":\"^0.7.5\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"toml_parser\",\"optional\":true,\"req\":\"^1.0.6\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"toml_writer\",\"optional\":true,\"req\":\"^1.0.6\"},{\"kind\":\"dev\",\"name\":\"walkdir\",\"req\":\"^2.5.0\"},{\"default_features\":false,\"name\":\"winnow\",\"optional\":true,\"req\":\"^0.7.13\"}],\"features\":{\"debug\":[\"std\",\"toml_parser?/debug\",\"dep:anstream\",\"dep:anstyle\"],\"default\":[\"std\",\"serde\",\"parse\",\"display\"],\"display\":[\"dep:toml_writer\"],\"fast_hash\":[\"preserve_order\",\"dep:foldhash\"],\"parse\":[\"dep:toml_parser\",\"dep:winnow\"],\"preserve_order\":[\"dep:indexmap\",\"std\"],\"serde\":[\"dep:serde_core\",\"toml_datetime/serde\",\"serde_spanned/serde\"],\"std\":[\"indexmap?/std\",\"serde_core?/std\",\"toml_parser?/std\",\"toml_writer?/std\",\"toml_datetime/std\",\"serde_spanned/std\"],\"unbounded\":[]}}", "toml_0.9.11+spec-1.1.0": "{\"dependencies\":[{\"name\":\"anstream\",\"optional\":true,\"req\":\"^0.6.20\"},{\"name\":\"anstyle\",\"optional\":true,\"req\":\"^1.0.11\"},{\"default_features\":false,\"name\":\"foldhash\",\"optional\":true,\"req\":\"^0.2.0\"},{\"default_features\":false,\"name\":\"indexmap\",\"optional\":true,\"req\":\"^2.11.4\"},{\"kind\":\"dev\",\"name\":\"itertools\",\"req\":\"^0.14.0\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0.225\"},{\"kind\":\"dev\",\"name\":\"serde-untagged\",\"req\":\"^0.1.9\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"serde_core\",\"optional\":true,\"req\":\"^1.0.225\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.145\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"serde_spanned\",\"req\":\"^1.0.4\"},{\"kind\":\"dev\",\"name\":\"snapbox\",\"req\":\"^0.6.21\"},{\"kind\":\"dev\",\"name\":\"toml-test-data\",\"req\":\"^2.3.3\"},{\"features\":[\"snapshot\"],\"kind\":\"dev\",\"name\":\"toml-test-harness\",\"req\":\"^1.3.3\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"toml_datetime\",\"req\":\"^0.7.5\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"toml_parser\",\"optional\":true,\"req\":\"^1.0.6\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"toml_writer\",\"optional\":true,\"req\":\"^1.0.6\"},{\"kind\":\"dev\",\"name\":\"walkdir\",\"req\":\"^2.5.0\"},{\"default_features\":false,\"name\":\"winnow\",\"optional\":true,\"req\":\"^0.7.13\"}],\"features\":{\"debug\":[\"std\",\"toml_parser?/debug\",\"dep:anstream\",\"dep:anstyle\"],\"default\":[\"std\",\"serde\",\"parse\",\"display\"],\"display\":[\"dep:toml_writer\"],\"fast_hash\":[\"preserve_order\",\"dep:foldhash\"],\"parse\":[\"dep:toml_parser\",\"dep:winnow\"],\"preserve_order\":[\"dep:indexmap\",\"std\"],\"serde\":[\"dep:serde_core\",\"toml_datetime/serde\",\"serde_spanned/serde\"],\"std\":[\"indexmap?/std\",\"serde_core?/std\",\"toml_parser?/std\",\"toml_writer?/std\",\"toml_datetime/std\",\"serde_spanned/std\"],\"unbounded\":[]}}", + "toml_1.1.2+spec-1.1.0": "{\"dependencies\":[{\"name\":\"anstream\",\"optional\":true,\"req\":\"^1.0.0\"},{\"name\":\"anstyle\",\"optional\":true,\"req\":\"^1.0.14\"},{\"default_features\":false,\"name\":\"foldhash\",\"optional\":true,\"req\":\"^0.2.0\"},{\"default_features\":false,\"name\":\"indexmap\",\"optional\":true,\"req\":\"^2.13.0\"},{\"kind\":\"dev\",\"name\":\"itertools\",\"req\":\"^0.14.0\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0.228\"},{\"kind\":\"dev\",\"name\":\"serde-untagged\",\"req\":\"^0.1.9\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"serde_core\",\"optional\":true,\"req\":\"^1.0.228\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.149\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"serde_spanned\",\"req\":\"^1.1.1\"},{\"kind\":\"dev\",\"name\":\"snapbox\",\"req\":\"^1.1.0\"},{\"kind\":\"dev\",\"name\":\"toml-test-data\",\"req\":\"^2.4.0\"},{\"features\":[\"snapshot\"],\"kind\":\"dev\",\"name\":\"toml-test-harness\",\"req\":\"^1.4.0\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"toml_datetime\",\"req\":\"^1.1.1\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"toml_parser\",\"optional\":true,\"req\":\"^1.1.2\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"toml_writer\",\"optional\":true,\"req\":\"^1.1.1\"},{\"kind\":\"dev\",\"name\":\"walkdir\",\"req\":\"^2.5.0\"},{\"default_features\":false,\"name\":\"winnow\",\"optional\":true,\"req\":\"^1.0.0\"}],\"features\":{\"debug\":[\"std\",\"toml_parser?/debug\",\"dep:anstream\",\"dep:anstyle\"],\"default\":[\"std\",\"serde\",\"parse\",\"display\"],\"display\":[\"dep:toml_writer\"],\"fast_hash\":[\"preserve_order\",\"dep:foldhash\"],\"parse\":[\"dep:toml_parser\",\"dep:winnow\"],\"preserve_order\":[\"dep:indexmap\",\"std\"],\"serde\":[\"dep:serde_core\",\"toml_datetime/serde\",\"serde_spanned/serde\"],\"std\":[\"indexmap?/std\",\"serde_core?/std\",\"toml_parser?/std\",\"toml_writer?/std\",\"toml_datetime/std\",\"serde_spanned/std\"],\"unbounded\":[]}}", "toml_datetime_0.6.11": "{\"dependencies\":[{\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.145\"},{\"kind\":\"dev\",\"name\":\"snapbox\",\"req\":\"^0.6.21\"}],\"features\":{}}", "toml_datetime_0.7.5+spec-1.1.0": "{\"dependencies\":[{\"default_features\":false,\"name\":\"serde_core\",\"optional\":true,\"req\":\"^1.0.225\"},{\"kind\":\"dev\",\"name\":\"snapbox\",\"req\":\"^0.6.21\"}],\"features\":{\"alloc\":[\"serde_core?/alloc\"],\"default\":[\"std\"],\"serde\":[\"dep:serde_core\"],\"std\":[\"alloc\",\"serde_core?/std\"]}}", + "toml_datetime_1.1.1+spec-1.1.0": "{\"dependencies\":[{\"default_features\":false,\"name\":\"serde_core\",\"optional\":true,\"req\":\"^1.0.228\"},{\"kind\":\"dev\",\"name\":\"snapbox\",\"req\":\"^1.1.0\"}],\"features\":{\"alloc\":[\"serde_core?/alloc\"],\"default\":[\"std\"],\"serde\":[\"dep:serde_core\"],\"std\":[\"alloc\",\"serde_core?/std\"]}}", "toml_edit_0.19.15": "{\"dependencies\":[{\"features\":[\"std\"],\"name\":\"indexmap\",\"req\":\"^2.0.0\"},{\"features\":[\"max_inline\"],\"name\":\"kstring\",\"optional\":true,\"req\":\"^2.0.0\"},{\"kind\":\"dev\",\"name\":\"libtest-mimic\",\"req\":\"^0.6.0\"},{\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.145\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.96\"},{\"features\":[\"serde\"],\"name\":\"serde_spanned\",\"optional\":true,\"req\":\"^0.6.3\"},{\"features\":[\"harness\"],\"kind\":\"dev\",\"name\":\"snapbox\",\"req\":\"^0.4.11\"},{\"kind\":\"dev\",\"name\":\"toml-test-data\",\"req\":\"^1.3.0\"},{\"kind\":\"dev\",\"name\":\"toml-test-harness\",\"req\":\"^0.4.3\"},{\"name\":\"toml_datetime\",\"req\":\"^0.6.3\"},{\"name\":\"winnow\",\"req\":\"^0.5.0\"}],\"features\":{\"default\":[],\"perf\":[\"dep:kstring\"],\"serde\":[\"dep:serde\",\"toml_datetime/serde\",\"dep:serde_spanned\"],\"unbounded\":[]}}", "toml_edit_0.20.7": "{\"dependencies\":[{\"features\":[\"std\"],\"name\":\"indexmap\",\"req\":\"^2.0.0\"},{\"features\":[\"max_inline\"],\"name\":\"kstring\",\"optional\":true,\"req\":\"^2.0.0\"},{\"kind\":\"dev\",\"name\":\"libtest-mimic\",\"req\":\"^0.6.0\"},{\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.145\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.96\"},{\"features\":[\"serde\"],\"name\":\"serde_spanned\",\"optional\":true,\"req\":\"^0.6.4\"},{\"features\":[\"harness\"],\"kind\":\"dev\",\"name\":\"snapbox\",\"req\":\"^0.4.11\"},{\"kind\":\"dev\",\"name\":\"toml-test-data\",\"req\":\"^1.4.0\"},{\"kind\":\"dev\",\"name\":\"toml-test-harness\",\"req\":\"^0.4.8\"},{\"name\":\"toml_datetime\",\"req\":\"^0.6.5\"},{\"name\":\"winnow\",\"req\":\"^0.5.0\"}],\"features\":{\"default\":[],\"perf\":[\"dep:kstring\"],\"serde\":[\"dep:serde\",\"toml_datetime/serde\",\"dep:serde_spanned\"],\"unbounded\":[]}}", "toml_edit_0.22.27": "{\"dependencies\":[{\"features\":[\"std\"],\"name\":\"indexmap\",\"req\":\"^2.3.0\"},{\"features\":[\"max_inline\"],\"name\":\"kstring\",\"optional\":true,\"req\":\"^2.0.0\"},{\"kind\":\"dev\",\"name\":\"proptest\",\"req\":\"^1.5.0\"},{\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.145\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0.199\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.116\"},{\"features\":[\"serde\"],\"name\":\"serde_spanned\",\"optional\":true,\"req\":\"^0.6.9\"},{\"kind\":\"dev\",\"name\":\"snapbox\",\"req\":\"^0.6.0\"},{\"kind\":\"dev\",\"name\":\"toml-test-data\",\"req\":\"^2.3.0\"},{\"features\":[\"snapshot\"],\"kind\":\"dev\",\"name\":\"toml-test-harness\",\"req\":\"^1.3.2\"},{\"name\":\"toml_datetime\",\"req\":\"^0.6.11\"},{\"name\":\"toml_write\",\"optional\":true,\"req\":\"^0.1.2\"},{\"kind\":\"dev\",\"name\":\"walkdir\",\"req\":\"^2.5.0\"},{\"name\":\"winnow\",\"optional\":true,\"req\":\"^0.7.10\"}],\"features\":{\"default\":[\"parse\",\"display\"],\"display\":[\"dep:toml_write\"],\"parse\":[\"dep:winnow\"],\"perf\":[\"dep:kstring\"],\"serde\":[\"dep:serde\",\"toml_datetime/serde\",\"dep:serde_spanned\"],\"unbounded\":[],\"unstable-debug\":[\"winnow?/debug\"]}}", "toml_edit_0.23.10+spec-1.0.0": "{\"dependencies\":[{\"name\":\"anstream\",\"optional\":true,\"req\":\"^0.6.20\"},{\"name\":\"anstyle\",\"optional\":true,\"req\":\"^1.0.11\"},{\"features\":[\"std\"],\"name\":\"indexmap\",\"req\":\"^2.11.4\"},{\"kind\":\"dev\",\"name\":\"proptest\",\"req\":\"^1.7.0\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0.225\"},{\"kind\":\"dev\",\"name\":\"serde-untagged\",\"req\":\"^0.1.9\"},{\"name\":\"serde_core\",\"optional\":true,\"req\":\"^1.0.225\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.145\"},{\"features\":[\"serde\"],\"name\":\"serde_spanned\",\"optional\":true,\"req\":\"^1.0.4\"},{\"kind\":\"dev\",\"name\":\"snapbox\",\"req\":\"^0.6.21\"},{\"kind\":\"dev\",\"name\":\"toml-test-data\",\"req\":\"^2.3.3\"},{\"features\":[\"snapshot\"],\"kind\":\"dev\",\"name\":\"toml-test-harness\",\"req\":\"^1.3.3\"},{\"name\":\"toml_datetime\",\"req\":\"^0.7.4\"},{\"name\":\"toml_parser\",\"optional\":true,\"req\":\"^1.0.5\"},{\"name\":\"toml_writer\",\"optional\":true,\"req\":\"^1.0.5\"},{\"kind\":\"dev\",\"name\":\"walkdir\",\"req\":\"^2.5.0\"},{\"name\":\"winnow\",\"optional\":true,\"req\":\"^0.7.13\"}],\"features\":{\"debug\":[\"toml_parser?/debug\",\"dep:anstream\",\"dep:anstyle\",\"display\"],\"default\":[\"parse\",\"display\"],\"display\":[\"dep:toml_writer\"],\"parse\":[\"dep:toml_parser\",\"dep:winnow\"],\"serde\":[\"dep:serde_core\",\"toml_datetime/serde\",\"dep:serde_spanned\"],\"unbounded\":[]}}", + "toml_edit_0.25.11+spec-1.1.0": "{\"dependencies\":[{\"name\":\"anstream\",\"optional\":true,\"req\":\"^1.0.0\"},{\"name\":\"anstyle\",\"optional\":true,\"req\":\"^1.0.14\"},{\"features\":[\"std\"],\"name\":\"indexmap\",\"req\":\"^2.13.0\"},{\"kind\":\"dev\",\"name\":\"proptest\",\"req\":\"^1.10.0\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0.228\"},{\"kind\":\"dev\",\"name\":\"serde-untagged\",\"req\":\"^0.1.9\"},{\"name\":\"serde_core\",\"optional\":true,\"req\":\"^1.0.228\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.149\"},{\"features\":[\"serde\"],\"name\":\"serde_spanned\",\"optional\":true,\"req\":\"^1.1.1\"},{\"kind\":\"dev\",\"name\":\"snapbox\",\"req\":\"^1.1.0\"},{\"kind\":\"dev\",\"name\":\"toml-test-data\",\"req\":\"^2.4.0\"},{\"features\":[\"snapshot\"],\"kind\":\"dev\",\"name\":\"toml-test-harness\",\"req\":\"^1.4.0\"},{\"name\":\"toml_datetime\",\"req\":\"^1.1.1\"},{\"name\":\"toml_parser\",\"optional\":true,\"req\":\"^1.1.2\"},{\"name\":\"toml_writer\",\"optional\":true,\"req\":\"^1.1.1\"},{\"kind\":\"dev\",\"name\":\"walkdir\",\"req\":\"^2.5.0\"},{\"name\":\"winnow\",\"optional\":true,\"req\":\"^1.0.0\"}],\"features\":{\"debug\":[\"toml_parser?/debug\",\"dep:anstream\",\"dep:anstyle\",\"display\"],\"default\":[\"parse\",\"display\"],\"display\":[\"dep:toml_writer\"],\"parse\":[\"dep:toml_parser\",\"dep:winnow\"],\"serde\":[\"dep:serde_core\",\"toml_datetime/serde\",\"dep:serde_spanned\"],\"unbounded\":[]}}", "toml_parser_1.0.6+spec-1.1.0": "{\"dependencies\":[{\"name\":\"anstream\",\"optional\":true,\"req\":\"^0.6.20\"},{\"features\":[\"test\"],\"kind\":\"dev\",\"name\":\"anstream\",\"req\":\"^0.6.20\"},{\"name\":\"anstyle\",\"optional\":true,\"req\":\"^1.0.11\"},{\"kind\":\"dev\",\"name\":\"snapbox\",\"req\":\"^0.6.21\"},{\"default_features\":false,\"name\":\"winnow\",\"req\":\"^0.7.13\"}],\"features\":{\"alloc\":[],\"debug\":[\"std\",\"dep:anstream\",\"dep:anstyle\"],\"default\":[\"std\"],\"simd\":[\"winnow/simd\"],\"std\":[\"alloc\"],\"unsafe\":[]}}", + "toml_parser_1.1.2+spec-1.1.0": "{\"dependencies\":[{\"name\":\"anstream\",\"optional\":true,\"req\":\"^1.0.0\"},{\"features\":[\"test\"],\"kind\":\"dev\",\"name\":\"anstream\",\"req\":\"^1.0.0\"},{\"name\":\"anstyle\",\"optional\":true,\"req\":\"^1.0.14\"},{\"kind\":\"dev\",\"name\":\"snapbox\",\"req\":\"^1.1.0\"},{\"default_features\":false,\"name\":\"winnow\",\"req\":\"^1.0.0\"}],\"features\":{\"alloc\":[],\"debug\":[\"std\",\"dep:anstream\",\"dep:anstyle\"],\"default\":[\"std\"],\"simd\":[\"winnow/simd\"],\"std\":[\"alloc\"],\"unsafe\":[]}}", "toml_write_0.1.2": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"proptest\",\"req\":\"^1.6.0\"},{\"kind\":\"dev\",\"name\":\"snapbox\",\"req\":\"^0.6.0\"},{\"kind\":\"dev\",\"name\":\"toml_old\",\"package\":\"toml\",\"req\":\"^0.5.10\"}],\"features\":{\"alloc\":[],\"default\":[\"std\"],\"std\":[\"alloc\"]}}", "toml_writer_1.0.6+spec-1.1.0": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"proptest\",\"req\":\"^1.7.0\"},{\"kind\":\"dev\",\"name\":\"snapbox\",\"req\":\"^0.6.21\"},{\"kind\":\"dev\",\"name\":\"toml_old\",\"package\":\"toml\",\"req\":\"^0.5.11\"}],\"features\":{\"alloc\":[],\"default\":[\"std\"],\"std\":[\"alloc\"]}}", + "toml_writer_1.1.1+spec-1.1.0": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"proptest\",\"req\":\"^1.10.0\"},{\"kind\":\"dev\",\"name\":\"snapbox\",\"req\":\"^1.1.0\"},{\"kind\":\"dev\",\"name\":\"toml_old\",\"package\":\"toml\",\"req\":\"^0.5.11\"}],\"features\":{\"alloc\":[],\"default\":[\"std\"],\"std\":[\"alloc\"]}}", "tonic-build_0.12.3": "{\"dependencies\":[{\"name\":\"prettyplease\",\"req\":\"^0.2\"},{\"name\":\"proc-macro2\",\"req\":\"^1.0\"},{\"name\":\"prost-build\",\"optional\":true,\"req\":\"^0.13\"},{\"name\":\"prost-types\",\"optional\":true,\"req\":\"^0.13\"},{\"name\":\"quote\",\"req\":\"^1.0\"},{\"name\":\"syn\",\"req\":\"^2.0\"}],\"features\":{\"cleanup-markdown\":[\"prost\",\"prost-build/cleanup-markdown\"],\"default\":[\"transport\",\"prost\"],\"prost\":[\"prost-build\",\"dep:prost-types\"],\"transport\":[]}}", "tonic-build_0.14.5": "{\"dependencies\":[{\"name\":\"prettyplease\",\"req\":\"^0.2\"},{\"name\":\"proc-macro2\",\"req\":\"^1.0\"},{\"name\":\"quote\",\"req\":\"^1.0\"},{\"name\":\"syn\",\"req\":\"^2.0\"}],\"features\":{\"default\":[\"transport\"],\"transport\":[]}}", "tonic-prost_0.14.5": "{\"dependencies\":[{\"name\":\"bytes\",\"req\":\"^1\"},{\"kind\":\"dev\",\"name\":\"http-body\",\"req\":\"^1\"},{\"kind\":\"dev\",\"name\":\"http-body-util\",\"req\":\"^0.1\"},{\"name\":\"prost\",\"req\":\"^0.14\"},{\"features\":[\"macros\",\"rt-multi-thread\"],\"kind\":\"dev\",\"name\":\"tokio\",\"req\":\"^1\"},{\"kind\":\"dev\",\"name\":\"tokio-stream\",\"req\":\"^0.1\"},{\"default_features\":false,\"name\":\"tonic\",\"req\":\"^0.14.0\"}],\"features\":{}}", @@ -2969,6 +3007,7 @@ "wasi_0.14.7+wasi-0.2.4": "{\"dependencies\":[{\"default_features\":false,\"name\":\"wasip2\",\"req\":\"^1.0.1\"}],\"features\":{\"bitflags\":[\"wasip2/bitflags\"],\"default\":[\"wasip2/default\"],\"std\":[\"wasip2/std\"]}}", "wasip2_1.0.1+wasi-0.2.4": "{\"dependencies\":[{\"name\":\"alloc\",\"optional\":true,\"package\":\"rustc-std-workspace-alloc\",\"req\":\"^1.0\"},{\"name\":\"core\",\"optional\":true,\"package\":\"rustc-std-workspace-core\",\"req\":\"^1.0\"},{\"default_features\":false,\"name\":\"wit-bindgen\",\"req\":\"^0.46.0\"}],\"features\":{\"bitflags\":[\"wit-bindgen/bitflags\"],\"default\":[\"std\",\"bitflags\"],\"rustc-dep-of-std\":[\"core\",\"alloc\",\"wit-bindgen/rustc-dep-of-std\"],\"std\":[]}}", "wasip2_1.0.2+wasi-0.2.9": "{\"dependencies\":[{\"name\":\"alloc\",\"optional\":true,\"package\":\"rustc-std-workspace-alloc\",\"req\":\"^1.0\"},{\"name\":\"core\",\"optional\":true,\"package\":\"rustc-std-workspace-core\",\"req\":\"^1.0\"},{\"default_features\":false,\"name\":\"wit-bindgen\",\"req\":\"^0.51.0\"}],\"features\":{\"bitflags\":[\"wit-bindgen/bitflags\"],\"default\":[\"std\",\"bitflags\"],\"rustc-dep-of-std\":[\"core\",\"alloc\",\"wit-bindgen/rustc-dep-of-std\"],\"std\":[]}}", + "wasip2_1.0.3+wasi-0.2.9": "{\"dependencies\":[{\"name\":\"alloc\",\"optional\":true,\"package\":\"rustc-std-workspace-alloc\",\"req\":\"^1.0\"},{\"name\":\"core\",\"optional\":true,\"package\":\"rustc-std-workspace-core\",\"req\":\"^1.0\"},{\"default_features\":false,\"name\":\"wit-bindgen\",\"req\":\"^0.57.1\"}],\"features\":{\"bitflags\":[\"wit-bindgen/bitflags\"],\"default\":[\"std\",\"bitflags\"],\"rustc-dep-of-std\":[\"core\",\"alloc\",\"wit-bindgen/rustc-dep-of-std\"],\"std\":[]}}", "wasip3_0.4.0+wasi-0.3.0-rc-2026-01-06": "{\"dependencies\":[{\"name\":\"bytes\",\"optional\":true,\"req\":\"^1.10.1\"},{\"kind\":\"dev\",\"name\":\"futures\",\"req\":\"^0.3.31\"},{\"name\":\"http\",\"optional\":true,\"req\":\"^1.3.1\"},{\"kind\":\"dev\",\"name\":\"http\",\"req\":\"^1.3.1\"},{\"name\":\"http-body\",\"optional\":true,\"req\":\"^1.0.1\"},{\"name\":\"thiserror\",\"optional\":true,\"req\":\"^2.0.17\"},{\"default_features\":false,\"features\":[\"async\"],\"name\":\"wit-bindgen\",\"req\":\"^0.51.0\"},{\"default_features\":false,\"features\":[\"async-spawn\"],\"kind\":\"dev\",\"name\":\"wit-bindgen\",\"req\":\"^0.51.0\"}],\"features\":{\"http-compat\":[\"dep:bytes\",\"dep:http-body\",\"dep:http\",\"dep:thiserror\",\"wit-bindgen/async-spawn\"]}}", "wasm-bindgen-backend_0.2.103": "{\"dependencies\":[{\"name\":\"bumpalo\",\"req\":\"^3.0.0\"},{\"name\":\"log\",\"req\":\"^0.4\"},{\"name\":\"proc-macro2\",\"req\":\"^1.0\"},{\"name\":\"quote\",\"req\":\"^1.0\"},{\"features\":[\"full\"],\"name\":\"syn\",\"req\":\"^2.0\"},{\"name\":\"wasm-bindgen-shared\",\"req\":\"=0.2.103\"}],\"features\":{\"extra-traits\":[\"syn/extra-traits\"]}}", "wasm-bindgen-backend_0.2.104": "{\"dependencies\":[{\"name\":\"bumpalo\",\"req\":\"^3.0.0\"},{\"name\":\"log\",\"req\":\"^0.4\"},{\"name\":\"proc-macro2\",\"req\":\"^1.0\"},{\"name\":\"quote\",\"req\":\"^1.0\"},{\"features\":[\"full\"],\"name\":\"syn\",\"req\":\"^2.0\"},{\"name\":\"wasm-bindgen-shared\",\"req\":\"=0.2.104\"}],\"features\":{\"extra-traits\":[\"syn/extra-traits\"]}}", @@ -3146,6 +3185,7 @@ "winnow_0.5.40": "{\"dependencies\":[{\"name\":\"anstream\",\"optional\":true,\"req\":\"^0.3.2\"},{\"name\":\"anstyle\",\"optional\":true,\"req\":\"^1.0.1\"},{\"kind\":\"dev\",\"name\":\"circular\",\"req\":\"^0.3.0\"},{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5.1\"},{\"kind\":\"dev\",\"name\":\"doc-comment\",\"req\":\"^0.3\"},{\"kind\":\"dev\",\"name\":\"escargot\",\"req\":\"^0.5.7\"},{\"name\":\"is-terminal\",\"optional\":true,\"req\":\"^0.4.9\"},{\"kind\":\"dev\",\"name\":\"lexopt\",\"req\":\"^0.3.0\"},{\"default_features\":false,\"name\":\"memchr\",\"optional\":true,\"req\":\"^2.5\"},{\"kind\":\"dev\",\"name\":\"proptest\",\"req\":\"^1.2.0\"},{\"kind\":\"dev\",\"name\":\"rustc-hash\",\"req\":\"^1.1.0\"},{\"features\":[\"examples\"],\"kind\":\"dev\",\"name\":\"snapbox\",\"req\":\"^0.4.11\"},{\"kind\":\"dev\",\"name\":\"term-transcript\",\"req\":\"^0.2.0\"},{\"name\":\"terminal_size\",\"optional\":true,\"req\":\"^0.2.6\"}],\"features\":{\"alloc\":[],\"debug\":[\"dep:anstream\",\"dep:anstyle\",\"dep:is-terminal\",\"dep:terminal_size\"],\"default\":[\"std\"],\"simd\":[\"dep:memchr\"],\"std\":[\"alloc\",\"memchr?/std\"],\"unstable-doc\":[\"alloc\",\"std\",\"simd\",\"unstable-recover\"],\"unstable-recover\":[]}}", "winnow_0.7.13": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"annotate-snippets\",\"req\":\"^0.11.3\"},{\"name\":\"anstream\",\"optional\":true,\"req\":\"^0.3.2\"},{\"name\":\"anstyle\",\"optional\":true,\"req\":\"^1.0.1\"},{\"kind\":\"dev\",\"name\":\"anyhow\",\"req\":\"^1.0.86\"},{\"kind\":\"dev\",\"name\":\"automod\",\"req\":\"^1.0.14\"},{\"kind\":\"dev\",\"name\":\"circular\",\"req\":\"^0.3.0\"},{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5.1\"},{\"name\":\"is_terminal_polyfill\",\"optional\":true,\"req\":\"^1.48.0\"},{\"kind\":\"dev\",\"name\":\"lexopt\",\"req\":\"^0.3.0\"},{\"default_features\":false,\"name\":\"memchr\",\"optional\":true,\"req\":\"^2.5\"},{\"kind\":\"dev\",\"name\":\"proptest\",\"req\":\"^1.2.0\"},{\"kind\":\"dev\",\"name\":\"rustc-hash\",\"req\":\"^1.1.0\"},{\"features\":[\"examples\"],\"kind\":\"dev\",\"name\":\"snapbox\",\"req\":\"^0.6.21\"},{\"kind\":\"dev\",\"name\":\"term-transcript\",\"req\":\"^0.2.0\"},{\"name\":\"terminal_size\",\"optional\":true,\"req\":\"^0.4.0\"}],\"features\":{\"alloc\":[],\"debug\":[\"std\",\"dep:anstream\",\"dep:anstyle\",\"dep:is_terminal_polyfill\",\"dep:terminal_size\"],\"default\":[\"std\"],\"simd\":[\"dep:memchr\"],\"std\":[\"alloc\",\"memchr?/std\"],\"unstable-doc\":[\"alloc\",\"std\",\"simd\",\"unstable-recover\"],\"unstable-recover\":[]}}", "winnow_0.7.14": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"annotate-snippets\",\"req\":\"^0.11.4\"},{\"name\":\"anstream\",\"optional\":true,\"req\":\"^0.6.15\"},{\"name\":\"anstyle\",\"optional\":true,\"req\":\"^1.0.8\"},{\"kind\":\"dev\",\"name\":\"anyhow\",\"req\":\"^1.0.100\"},{\"kind\":\"dev\",\"name\":\"automod\",\"req\":\"^1.0.15\"},{\"kind\":\"dev\",\"name\":\"circular\",\"req\":\"^0.3.0\"},{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5.1\"},{\"name\":\"is_terminal_polyfill\",\"optional\":true,\"req\":\"^1.48.1\"},{\"kind\":\"dev\",\"name\":\"lexopt\",\"req\":\"^0.3.1\"},{\"default_features\":false,\"name\":\"memchr\",\"optional\":true,\"req\":\"^2.7\"},{\"kind\":\"dev\",\"name\":\"proptest\",\"req\":\"^1.6.0\"},{\"kind\":\"dev\",\"name\":\"rustc-hash\",\"req\":\"^2.1.1\"},{\"features\":[\"examples\"],\"kind\":\"dev\",\"name\":\"snapbox\",\"req\":\"^0.6.21\"},{\"kind\":\"dev\",\"name\":\"term-transcript\",\"req\":\"^0.2.0\"},{\"name\":\"terminal_size\",\"optional\":true,\"req\":\"^0.4.3\"}],\"features\":{\"alloc\":[],\"debug\":[\"std\",\"dep:anstream\",\"dep:anstyle\",\"dep:is_terminal_polyfill\",\"dep:terminal_size\"],\"default\":[\"std\"],\"simd\":[\"dep:memchr\"],\"std\":[\"alloc\",\"memchr?/std\"],\"unstable-doc\":[\"alloc\",\"std\",\"simd\",\"unstable-recover\"],\"unstable-recover\":[]}}", + "winnow_1.0.2": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"annotate-snippets\",\"req\":\"^0.11.4\"},{\"name\":\"anstream\",\"optional\":true,\"req\":\"^0.6.15\"},{\"name\":\"anstyle\",\"optional\":true,\"req\":\"^1.0.8\"},{\"kind\":\"dev\",\"name\":\"anyhow\",\"req\":\"^1.0.100\"},{\"kind\":\"dev\",\"name\":\"automod\",\"req\":\"^1.0.15\"},{\"kind\":\"dev\",\"name\":\"circular\",\"req\":\"^0.3.0\"},{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5.1\"},{\"name\":\"is_terminal_polyfill\",\"optional\":true,\"req\":\"^1.48.1\"},{\"kind\":\"dev\",\"name\":\"lexopt\",\"req\":\"^0.3.1\"},{\"default_features\":false,\"name\":\"memchr\",\"optional\":true,\"req\":\"^2.7\"},{\"kind\":\"dev\",\"name\":\"proptest\",\"req\":\"^1.6.0\"},{\"kind\":\"dev\",\"name\":\"rustc-hash\",\"req\":\"^2.1.1\"},{\"features\":[\"examples\"],\"kind\":\"dev\",\"name\":\"snapbox\",\"req\":\"^0.6.21\"},{\"kind\":\"dev\",\"name\":\"term-transcript\",\"req\":\"^0.2.0\"},{\"name\":\"terminal_size\",\"optional\":true,\"req\":\"^0.4.3\"}],\"features\":{\"alloc\":[],\"ascii\":[\"parser\"],\"binary\":[\"parser\"],\"debug\":[\"std\",\"dep:anstream\",\"dep:anstyle\",\"dep:is_terminal_polyfill\",\"dep:terminal_size\"],\"default\":[\"std\",\"ascii\",\"binary\"],\"parser\":[],\"simd\":[\"dep:memchr\"],\"std\":[\"alloc\",\"memchr?/std\"],\"unstable-doc\":[\"alloc\",\"std\",\"ascii\",\"binary\",\"simd\",\"unstable-recover\"],\"unstable-recover\":[\"parser\"]}}", "winreg_0.10.1": "{\"dependencies\":[{\"name\":\"chrono\",\"optional\":true,\"req\":\"^0.4.6\"},{\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.3\"},{\"name\":\"serde\",\"optional\":true,\"req\":\"^1\"},{\"kind\":\"dev\",\"name\":\"serde_derive\",\"req\":\"^1\"},{\"kind\":\"dev\",\"name\":\"tempfile\",\"req\":\"~3.0\"},{\"features\":[\"impl-default\",\"impl-debug\",\"minwindef\",\"minwinbase\",\"timezoneapi\",\"winerror\",\"winnt\",\"winreg\",\"handleapi\"],\"name\":\"winapi\",\"req\":\"^0.3.9\"}],\"features\":{\"serialization-serde\":[\"transactions\",\"serde\"],\"transactions\":[\"winapi/ktmw32\"]}}", "winreg_0.50.0": "{\"dependencies\":[{\"name\":\"cfg-if\",\"req\":\"^1.0\"},{\"name\":\"chrono\",\"optional\":true,\"req\":\"^0.4.6\"},{\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.3\"},{\"name\":\"serde\",\"optional\":true,\"req\":\"^1\"},{\"kind\":\"dev\",\"name\":\"serde_bytes\",\"req\":\"^0.11\"},{\"kind\":\"dev\",\"name\":\"serde_derive\",\"req\":\"^1\"},{\"kind\":\"dev\",\"name\":\"tempfile\",\"req\":\"~3.0\"},{\"features\":[\"Win32_Foundation\",\"Win32_System_Time\",\"Win32_System_Registry\",\"Win32_Security\",\"Win32_Storage_FileSystem\",\"Win32_System_Diagnostics_Debug\"],\"name\":\"windows-sys\",\"req\":\"^0.48.0\"}],\"features\":{\"serialization-serde\":[\"transactions\",\"serde\"],\"transactions\":[]}}", "winsafe_0.0.19": "{\"dependencies\":[],\"features\":{\"comctl\":[\"ole\"],\"dshow\":[\"oleaut\"],\"dwm\":[\"uxtheme\"],\"dxgi\":[\"ole\"],\"gdi\":[\"user\"],\"gui\":[\"comctl\",\"shell\",\"uxtheme\"],\"kernel\":[],\"mf\":[\"oleaut\"],\"ole\":[\"user\"],\"oleaut\":[\"ole\"],\"shell\":[\"oleaut\"],\"taskschd\":[\"oleaut\"],\"user\":[\"kernel\"],\"uxtheme\":[\"gdi\",\"ole\"],\"version\":[\"kernel\"]}}", @@ -3155,6 +3195,7 @@ "wit-bindgen-rust_0.51.0": "{\"dependencies\":[{\"name\":\"anyhow\",\"req\":\"^1.0.72\"},{\"kind\":\"dev\",\"name\":\"bytes\",\"req\":\"^1\"},{\"features\":[\"derive\"],\"name\":\"clap\",\"optional\":true,\"req\":\"^4.3.19\"},{\"kind\":\"dev\",\"name\":\"futures\",\"req\":\"^0.3.31\"},{\"name\":\"heck\",\"req\":\"^0.5\"},{\"name\":\"indexmap\",\"req\":\"^2.0.0\"},{\"name\":\"prettyplease\",\"req\":\"^0.2.20\"},{\"features\":[\"derive\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.218\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1\"},{\"features\":[\"printing\"],\"name\":\"syn\",\"req\":\"^2.0.89\"},{\"default_features\":false,\"name\":\"wasm-metadata\",\"req\":\"^0.244.0\"},{\"name\":\"wit-bindgen-core\",\"req\":\"^0.51.0\"},{\"name\":\"wit-component\",\"req\":\"^0.244.0\"}],\"features\":{\"clap\":[\"dep:clap\",\"wit-bindgen-core/clap\"],\"serde\":[\"dep:serde\",\"wit-bindgen-core/serde\"]}}", "wit-bindgen_0.46.0": "{\"dependencies\":[{\"name\":\"alloc\",\"optional\":true,\"package\":\"rustc-std-workspace-alloc\",\"req\":\"^1.0\"},{\"name\":\"bitflags\",\"optional\":true,\"req\":\"^2.3.3\"},{\"name\":\"core\",\"optional\":true,\"package\":\"rustc-std-workspace-core\",\"req\":\"^1.0\"},{\"name\":\"futures\",\"optional\":true,\"req\":\"^0.3.30\"},{\"name\":\"once_cell\",\"optional\":true,\"req\":\"^1.19.0\"},{\"name\":\"wit-bindgen-rust-macro\",\"optional\":true,\"req\":\"^0.46.0\"}],\"features\":{\"async\":[\"macros\",\"std\",\"dep:futures\",\"dep:once_cell\",\"wit-bindgen-rust-macro/async\"],\"bitflags\":[\"dep:bitflags\"],\"default\":[\"macros\",\"realloc\",\"async\",\"std\",\"bitflags\"],\"macros\":[\"dep:wit-bindgen-rust-macro\"],\"realloc\":[],\"rustc-dep-of-std\":[\"dep:core\",\"dep:alloc\"],\"std\":[]}}", "wit-bindgen_0.51.0": "{\"dependencies\":[{\"name\":\"alloc\",\"optional\":true,\"package\":\"rustc-std-workspace-alloc\",\"req\":\"^1.0\"},{\"name\":\"bitflags\",\"optional\":true,\"req\":\"^2.3.3\"},{\"name\":\"core\",\"optional\":true,\"package\":\"rustc-std-workspace-core\",\"req\":\"^1.0\"},{\"name\":\"futures\",\"optional\":true,\"req\":\"^0.3.30\"},{\"name\":\"wit-bindgen-rust-macro\",\"optional\":true,\"req\":\"^0.51.0\"}],\"features\":{\"async\":[\"std\",\"wit-bindgen-rust-macro?/async\"],\"async-spawn\":[\"async\",\"dep:futures\"],\"bitflags\":[\"dep:bitflags\"],\"default\":[\"macros\",\"realloc\",\"async\",\"std\",\"bitflags\"],\"inter-task-wakeup\":[\"async\"],\"macros\":[\"dep:wit-bindgen-rust-macro\"],\"realloc\":[],\"rustc-dep-of-std\":[\"dep:core\",\"dep:alloc\"],\"std\":[]}}", + "wit-bindgen_0.57.1": "{\"dependencies\":[{\"name\":\"alloc\",\"optional\":true,\"package\":\"rustc-std-workspace-alloc\",\"req\":\"^1.0\"},{\"name\":\"bitflags\",\"optional\":true,\"req\":\"^2.11.1\"},{\"name\":\"core\",\"optional\":true,\"package\":\"rustc-std-workspace-core\",\"req\":\"^1.0\"},{\"name\":\"futures\",\"optional\":true,\"req\":\"^0.3.30\"},{\"default_features\":false,\"name\":\"wit-bindgen-rust-macro\",\"optional\":true,\"req\":\"^0.57.1\"}],\"features\":{\"async\":[],\"async-spawn\":[\"async\",\"dep:futures\",\"std\"],\"bitflags\":[\"dep:bitflags\"],\"default\":[\"macros\",\"realloc\",\"async\",\"std\",\"bitflags\",\"macro-string\"],\"futures-stream\":[\"async\",\"dep:futures\"],\"inter-task-wakeup\":[\"async\"],\"macro-string\":[\"wit-bindgen-rust-macro?/macro-string\"],\"macros\":[\"dep:wit-bindgen-rust-macro\"],\"realloc\":[],\"rustc-dep-of-std\":[\"dep:core\",\"dep:alloc\"],\"std\":[]}}", "wit-component_0.244.0": "{\"dependencies\":[{\"name\":\"anyhow\",\"req\":\"^1.0.58\"},{\"name\":\"bitflags\",\"req\":\"^2.3.3\"},{\"kind\":\"dev\",\"name\":\"env_logger\",\"req\":\"^0.11\"},{\"kind\":\"dev\",\"name\":\"glob\",\"req\":\"^0.3.0\"},{\"default_features\":false,\"name\":\"indexmap\",\"req\":\"^2.7.0\"},{\"kind\":\"dev\",\"name\":\"libtest-mimic\",\"req\":\"^0.8.1\"},{\"name\":\"log\",\"req\":\"^0.4.17\"},{\"kind\":\"dev\",\"name\":\"pretty_assertions\",\"req\":\"^1.3.0\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"serde\",\"req\":\"^1.0.166\"},{\"name\":\"serde_derive\",\"req\":\"^1.0.166\"},{\"name\":\"serde_json\",\"req\":\"^1\"},{\"default_features\":false,\"features\":[\"std\",\"wasmparser\"],\"name\":\"wasm-encoder\",\"req\":\"^0.244.0\"},{\"default_features\":false,\"name\":\"wasm-metadata\",\"req\":\"^0.244.0\"},{\"default_features\":false,\"features\":[\"oci\"],\"kind\":\"dev\",\"name\":\"wasm-metadata\",\"req\":\"^0.244.0\"},{\"default_features\":false,\"features\":[\"simd\",\"std\",\"component-model\",\"simd\"],\"name\":\"wasmparser\",\"req\":\"^0.244.0\"},{\"default_features\":false,\"features\":[\"simd\",\"std\",\"component-model\",\"features\"],\"kind\":\"dev\",\"name\":\"wasmparser\",\"req\":\"^0.244.0\"},{\"default_features\":false,\"features\":[\"component-model\"],\"kind\":\"dev\",\"name\":\"wasmprinter\",\"req\":\"^0.244.0\"},{\"default_features\":false,\"features\":[\"cranelift\",\"component-model\",\"runtime\",\"gc-drc\"],\"kind\":\"dev\",\"name\":\"wasmtime\",\"req\":\"^34.0.1\",\"target\":\"cfg(not(target_family = \\\"wasm\\\"))\"},{\"default_features\":false,\"name\":\"wast\",\"optional\":true,\"req\":\"^244.0.0\"},{\"default_features\":false,\"name\":\"wat\",\"optional\":true,\"req\":\"^1.244.0\"},{\"default_features\":false,\"features\":[\"component-model\"],\"kind\":\"dev\",\"name\":\"wat\",\"req\":\"^1.244.0\"},{\"features\":[\"decoding\",\"serde\"],\"name\":\"wit-parser\",\"req\":\"^0.244.0\"}],\"features\":{\"dummy-module\":[\"dep:wat\"],\"semver-check\":[\"dummy-module\"],\"wat\":[\"dep:wast\",\"dep:wat\"]}}", "wit-parser_0.239.0": "{\"dependencies\":[{\"name\":\"anyhow\",\"req\":\"^1.0.58\"},{\"kind\":\"dev\",\"name\":\"env_logger\",\"req\":\"^0.11\"},{\"name\":\"id-arena\",\"req\":\"^2\"},{\"default_features\":false,\"features\":[\"std\"],\"name\":\"indexmap\",\"req\":\"^2.7.0\"},{\"kind\":\"dev\",\"name\":\"libtest-mimic\",\"req\":\"^0.8.1\"},{\"name\":\"log\",\"req\":\"^0.4.17\"},{\"kind\":\"dev\",\"name\":\"pretty_assertions\",\"req\":\"^1.3.0\"},{\"default_features\":false,\"name\":\"semver\",\"req\":\"^1.0.0\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.166\"},{\"name\":\"serde_derive\",\"optional\":true,\"req\":\"^1.0.166\"},{\"name\":\"serde_json\",\"optional\":true,\"req\":\"^1\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1\"},{\"name\":\"unicode-xid\",\"req\":\"^0.2.2\"},{\"default_features\":false,\"features\":[\"simd\",\"std\",\"validate\",\"component-model\",\"features\"],\"name\":\"wasmparser\",\"optional\":true,\"req\":\"^0.239.0\"},{\"default_features\":false,\"features\":[\"component-model\"],\"name\":\"wat\",\"optional\":true,\"req\":\"^1.239.0\"}],\"features\":{\"decoding\":[\"dep:wasmparser\"],\"default\":[\"serde\",\"decoding\"],\"serde\":[\"dep:serde\",\"dep:serde_derive\",\"indexmap/serde\",\"serde_json\"],\"wat\":[\"decoding\",\"dep:wat\"]}}", "wit-parser_0.244.0": "{\"dependencies\":[{\"name\":\"anyhow\",\"req\":\"^1.0.58\"},{\"kind\":\"dev\",\"name\":\"env_logger\",\"req\":\"^0.11\"},{\"name\":\"id-arena\",\"req\":\"^2\"},{\"default_features\":false,\"features\":[\"std\"],\"name\":\"indexmap\",\"req\":\"^2.7.0\"},{\"kind\":\"dev\",\"name\":\"libtest-mimic\",\"req\":\"^0.8.1\"},{\"name\":\"log\",\"req\":\"^0.4.17\"},{\"kind\":\"dev\",\"name\":\"pretty_assertions\",\"req\":\"^1.3.0\"},{\"default_features\":false,\"name\":\"semver\",\"req\":\"^1.0.0\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.166\"},{\"name\":\"serde_derive\",\"optional\":true,\"req\":\"^1.0.166\"},{\"name\":\"serde_json\",\"optional\":true,\"req\":\"^1\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1\"},{\"name\":\"unicode-xid\",\"req\":\"^0.2.2\"},{\"default_features\":false,\"features\":[\"simd\",\"std\",\"validate\",\"component-model\",\"features\"],\"name\":\"wasmparser\",\"optional\":true,\"req\":\"^0.244.0\"},{\"default_features\":false,\"features\":[\"component-model\"],\"name\":\"wat\",\"optional\":true,\"req\":\"^1.244.0\"}],\"features\":{\"decoding\":[\"dep:wasmparser\"],\"default\":[\"serde\",\"decoding\"],\"serde\":[\"dep:serde\",\"dep:serde_derive\",\"indexmap/serde\",\"serde_json\"],\"wat\":[\"decoding\",\"dep:wat\"]}}", @@ -3162,6 +3203,7 @@ "woothee_0.13.0": "{\"dependencies\":[{\"kind\":\"build\",\"name\":\"glob\",\"optional\":true,\"req\":\"^0.3.0\"},{\"name\":\"lazy_static\",\"req\":\"^1.3.0\"},{\"name\":\"regex\",\"req\":\"^1\"},{\"kind\":\"build\",\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0\"},{\"kind\":\"build\",\"name\":\"serde_derive\",\"optional\":true,\"req\":\"^1.0\"},{\"kind\":\"build\",\"name\":\"serde_json\",\"optional\":true,\"req\":\"^1.0\"},{\"kind\":\"build\",\"name\":\"tempdir\",\"optional\":true,\"req\":\"^0.3\"},{\"kind\":\"build\",\"name\":\"tera\",\"optional\":true,\"req\":\"^1\"},{\"kind\":\"dev\",\"name\":\"uap-rust\",\"req\":\"^0.0.4\"},{\"kind\":\"dev\",\"name\":\"uaparser\",\"req\":\"^0.4\"},{\"kind\":\"build\",\"name\":\"yaml-rust\",\"optional\":true,\"req\":\"^0.4\"}],\"features\":{\"default\":[],\"generate\":[\"yaml-rust\",\"tera\",\"tempdir\",\"glob\",\"serde\",\"serde_json\",\"serde_derive\"]}}", "writeable_0.6.1": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5.0\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":false,\"name\":\"either\",\"optional\":true,\"req\":\"^1.9.0\"},{\"features\":[\"small_rng\"],\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.8\"}],\"features\":{\"either\":[\"dep:either\"]}}", "writeable_0.6.2": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5.0\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":false,\"name\":\"either\",\"optional\":true,\"req\":\"^1.9.0\"},{\"features\":[\"small_rng\"],\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.9\"}],\"features\":{\"alloc\":[],\"default\":[\"alloc\"],\"either\":[\"dep:either\"]}}", + "writeable_0.6.3": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5.0\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":false,\"name\":\"either\",\"optional\":true,\"req\":\"^1.9.0\"},{\"features\":[\"small_rng\"],\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.9\"}],\"features\":{\"alloc\":[],\"default\":[\"alloc\"],\"either\":[\"dep:either\"]}}", "ws_stream_wasm_0.7.5": "{\"dependencies\":[{\"features\":[\"map_pharos\"],\"name\":\"async_io_stream\",\"req\":\"^0.3\"},{\"features\":[\"tokio_io\"],\"kind\":\"dev\",\"name\":\"async_io_stream\",\"req\":\"^0.3\"},{\"kind\":\"dev\",\"name\":\"asynchronous-codec\",\"req\":\"^0.7\"},{\"kind\":\"dev\",\"name\":\"bytes\",\"req\":\"^1\"},{\"kind\":\"dev\",\"name\":\"console_error_panic_hook\",\"req\":\"^0.1\"},{\"kind\":\"dev\",\"name\":\"console_log\",\"req\":\"^1\"},{\"default_features\":false,\"name\":\"futures\",\"req\":\"^0.3\"},{\"features\":[\"wasm_js\"],\"kind\":\"dev\",\"name\":\"getrandom\",\"req\":\"^0.3\"},{\"name\":\"js-sys\",\"req\":\"^0.3\"},{\"name\":\"log\",\"req\":\"^0.4\"},{\"name\":\"pharos\",\"req\":\"^0.5\"},{\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.9\"},{\"kind\":\"dev\",\"name\":\"rand_xoshiro\",\"req\":\"^0.7\"},{\"kind\":\"build\",\"name\":\"rustc_version\",\"req\":\"^0.4\"},{\"name\":\"send_wrapper\",\"req\":\"^0.6\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1\"},{\"kind\":\"dev\",\"name\":\"serde_cbor\",\"req\":\"^0.11\"},{\"name\":\"thiserror\",\"req\":\"^2\"},{\"kind\":\"dev\",\"name\":\"tokio\",\"req\":\"^1\"},{\"kind\":\"dev\",\"name\":\"tokio-serde-cbor\",\"req\":\"^0.7\"},{\"default_features\":false,\"features\":[\"codec\"],\"kind\":\"dev\",\"name\":\"tokio-util\",\"req\":\"^0.7\"},{\"name\":\"wasm-bindgen\",\"req\":\"^0.2\"},{\"name\":\"wasm-bindgen-futures\",\"req\":\"^0.4\"},{\"kind\":\"dev\",\"name\":\"wasm-bindgen-test\",\"req\":\"^0.3\"},{\"features\":[\"BinaryType\",\"Blob\",\"console\",\"MessageEvent\",\"WebSocket\",\"CloseEvent\",\"DomException\"],\"name\":\"web-sys\",\"req\":\"^0.3\"}],\"features\":{\"default\":[\"not_ci\"],\"not_ci\":[],\"tokio_io\":[\"async_io_stream/tokio_io\"]}}", "wyz_0.5.1": "{\"dependencies\":[{\"name\":\"once_cell\",\"optional\":true,\"req\":\"^1\"},{\"name\":\"tap\",\"req\":\"^1\"},{\"name\":\"typemap\",\"optional\":true,\"req\":\"^0.3\"}],\"features\":{\"alloc\":[],\"default\":[\"std\"],\"garbage\":[\"once_cell\",\"typemap\"],\"std\":[\"alloc\"]}}", "x11-dl_2.21.0": "{\"dependencies\":[{\"name\":\"libc\",\"req\":\"^0.2\"},{\"name\":\"once_cell\",\"req\":\"^1.17.0\"},{\"kind\":\"build\",\"name\":\"pkg-config\",\"req\":\"^0.3.24\"}],\"features\":{}}", @@ -3190,8 +3232,10 @@ "yew_0.21.0": "{\"dependencies\":[{\"features\":[\"std\"],\"name\":\"base64ct\",\"optional\":true,\"req\":\"^1.6.0\"},{\"name\":\"bincode\",\"optional\":true,\"req\":\"^1.3.3\"},{\"name\":\"console_error_panic_hook\",\"req\":\"^0.1\"},{\"default_features\":false,\"features\":[\"std\"],\"name\":\"futures\",\"req\":\"^0.3\"},{\"name\":\"gloo\",\"req\":\"^0.10\"},{\"features\":[\"futures\"],\"kind\":\"dev\",\"name\":\"gloo\",\"req\":\"^0.10\"},{\"name\":\"html-escape\",\"optional\":true,\"req\":\"^0.2.13\"},{\"features\":[\"map\"],\"name\":\"implicit-clone\",\"req\":\"^0.4.1\"},{\"features\":[\"std\"],\"name\":\"indexmap\",\"req\":\"^2\"},{\"name\":\"js-sys\",\"req\":\"^0.3\"},{\"name\":\"prokio\",\"req\":\"^0.1.0\"},{\"name\":\"rustversion\",\"req\":\"^1\"},{\"features\":[\"derive\"],\"name\":\"serde\",\"req\":\"^1\"},{\"name\":\"slab\",\"req\":\"^0.4\"},{\"name\":\"thiserror\",\"req\":\"^1.0\"},{\"features\":[\"rt\"],\"name\":\"tokio\",\"req\":\"^1.32\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"features\":[\"full\"],\"kind\":\"dev\",\"name\":\"tokio\",\"req\":\"^1.32\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"name\":\"tracing\",\"req\":\"^0.1.37\"},{\"kind\":\"dev\",\"name\":\"trybuild\",\"req\":\"^1\"},{\"name\":\"wasm-bindgen\",\"req\":\"^0.2\"},{\"name\":\"wasm-bindgen-futures\",\"req\":\"^0.4\",\"target\":\"cfg(target_arch = \\\"wasm32\\\")\"},{\"kind\":\"dev\",\"name\":\"wasm-bindgen-futures\",\"req\":\"^0.4\"},{\"kind\":\"dev\",\"name\":\"wasm-bindgen-test\",\"req\":\"^0.3\"},{\"features\":[\"AnimationEvent\",\"Document\",\"DragEvent\",\"Element\",\"ErrorEvent\",\"Event\",\"EventInit\",\"EventTarget\",\"FocusEvent\",\"HtmlElement\",\"HtmlInputElement\",\"HtmlCollection\",\"HtmlTextAreaElement\",\"InputEvent\",\"InputEventInit\",\"KeyboardEvent\",\"Location\",\"MouseEvent\",\"Node\",\"NodeList\",\"PointerEvent\",\"ProgressEvent\",\"ShadowRoot\",\"Text\",\"TouchEvent\",\"TransitionEvent\",\"UiEvent\",\"WheelEvent\",\"Window\",\"HtmlScriptElement\",\"SubmitEvent\"],\"name\":\"web-sys\",\"req\":\"^0.3.64\"},{\"features\":[\"ShadowRootInit\",\"ShadowRootMode\",\"HtmlButtonElement\"],\"kind\":\"dev\",\"name\":\"web-sys\",\"req\":\"^0.3\"},{\"name\":\"yew-macro\",\"req\":\"^0.21.0\"}],\"features\":{\"csr\":[],\"default\":[],\"hydration\":[\"csr\",\"dep:bincode\"],\"ssr\":[\"dep:html-escape\",\"dep:base64ct\",\"dep:bincode\"]}}", "yoke-derive_0.8.0": "{\"dependencies\":[{\"name\":\"proc-macro2\",\"req\":\"^1.0.61\"},{\"name\":\"quote\",\"req\":\"^1.0.28\"},{\"features\":[\"fold\"],\"name\":\"syn\",\"req\":\"^2.0.21\"},{\"name\":\"synstructure\",\"req\":\"^0.13.0\"}],\"features\":{}}", "yoke-derive_0.8.1": "{\"dependencies\":[{\"name\":\"proc-macro2\",\"req\":\"^1.0.61\"},{\"name\":\"quote\",\"req\":\"^1.0.28\"},{\"features\":[\"fold\"],\"name\":\"syn\",\"req\":\"^2.0.21\"},{\"name\":\"synstructure\",\"req\":\"^0.13.0\"}],\"features\":{}}", + "yoke-derive_0.8.2": "{\"dependencies\":[{\"name\":\"proc-macro2\",\"req\":\"^1.0.61\"},{\"name\":\"quote\",\"req\":\"^1.0.44\"},{\"features\":[\"fold\"],\"name\":\"syn\",\"req\":\"^2.0.21\"},{\"name\":\"synstructure\",\"req\":\"^0.13.0\"}],\"features\":{}}", "yoke_0.8.0": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"bincode\",\"req\":\"^1.3.1\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"postcard\",\"req\":\"^1.0.3\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.110\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0.110\"},{\"default_features\":false,\"name\":\"stable_deref_trait\",\"req\":\"^1.2.0\"},{\"default_features\":false,\"name\":\"yoke-derive\",\"optional\":true,\"req\":\"^0.8.0\"},{\"default_features\":false,\"name\":\"zerofrom\",\"optional\":true,\"req\":\"^0.1.3\"}],\"features\":{\"alloc\":[\"stable_deref_trait/alloc\",\"serde?/alloc\",\"zerofrom/alloc\"],\"default\":[\"alloc\",\"zerofrom\"],\"derive\":[\"dep:yoke-derive\",\"zerofrom/derive\"],\"serde\":[\"dep:serde\"],\"zerofrom\":[\"dep:zerofrom\"]}}", "yoke_0.8.1": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"bincode\",\"req\":\"^1.3.1\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"postcard\",\"req\":\"^1.0.3\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0.220\"},{\"default_features\":false,\"name\":\"stable_deref_trait\",\"req\":\"^1.2.0\"},{\"default_features\":false,\"name\":\"yoke-derive\",\"optional\":true,\"req\":\"^0.8.0\"},{\"default_features\":false,\"name\":\"zerofrom\",\"optional\":true,\"req\":\"^0.1.3\"}],\"features\":{\"alloc\":[\"stable_deref_trait/alloc\",\"zerofrom/alloc\"],\"default\":[\"alloc\",\"zerofrom\"],\"derive\":[\"dep:yoke-derive\",\"zerofrom/derive\"],\"serde\":[],\"zerofrom\":[\"dep:zerofrom\"]}}", + "yoke_0.8.2": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"bincode\",\"req\":\"^1.3.1\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"postcard\",\"req\":\"^1.0.3\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0.220\"},{\"default_features\":false,\"name\":\"stable_deref_trait\",\"req\":\"^1.2.0\"},{\"default_features\":false,\"name\":\"yoke-derive\",\"optional\":true,\"req\":\"^0.8.2\"},{\"default_features\":false,\"name\":\"zerofrom\",\"optional\":true,\"req\":\"^0.1.6\"}],\"features\":{\"alloc\":[\"stable_deref_trait/alloc\",\"zerofrom/alloc\"],\"default\":[\"alloc\",\"zerofrom\"],\"derive\":[\"dep:yoke-derive\",\"zerofrom/derive\"],\"serde\":[],\"zerofrom\":[\"dep:zerofrom\"]}}", "z85_3.0.6": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"proptest\",\"req\":\"^1\"}],\"features\":{}}", "zbus_4.4.0": "{\"dependencies\":[{\"name\":\"async-broadcast\",\"req\":\"^0.7.0\"},{\"name\":\"async-executor\",\"optional\":true,\"req\":\"^1.11.0\"},{\"name\":\"async-fs\",\"optional\":true,\"req\":\"^2.1.2\"},{\"name\":\"async-io\",\"optional\":true,\"req\":\"^2.3.2\"},{\"name\":\"async-lock\",\"optional\":true,\"req\":\"^3.3.0\"},{\"name\":\"async-process\",\"req\":\"^2.2.2\",\"target\":\"cfg(target_os = \\\"macos\\\")\"},{\"name\":\"async-recursion\",\"req\":\"^1.1.1\",\"target\":\"cfg(any(target_os = \\\"macos\\\", windows))\"},{\"name\":\"async-task\",\"optional\":true,\"req\":\"^4.7.1\"},{\"name\":\"async-trait\",\"req\":\"^0.1.80\"},{\"name\":\"blocking\",\"optional\":true,\"req\":\"^1.6.0\"},{\"kind\":\"dev\",\"name\":\"doc-comment\",\"req\":\"^0.3.3\"},{\"features\":[\"serde\"],\"name\":\"enumflags2\",\"req\":\"^0.7.9\"},{\"name\":\"event-listener\",\"req\":\"^5.3.0\"},{\"name\":\"futures-core\",\"req\":\"^0.3.30\"},{\"name\":\"futures-sink\",\"req\":\"^0.3.30\"},{\"default_features\":false,\"features\":[\"sink\",\"std\"],\"name\":\"futures-util\",\"req\":\"^0.3.30\"},{\"kind\":\"dev\",\"name\":\"futures-util\",\"req\":\"^0.3.30\"},{\"name\":\"hex\",\"req\":\"^0.4.3\"},{\"default_features\":false,\"features\":[\"socket\",\"uio\",\"user\"],\"name\":\"nix\",\"req\":\"^0.29\",\"target\":\"cfg(unix)\"},{\"kind\":\"dev\",\"name\":\"ntest\",\"req\":\"^0.9.2\"},{\"name\":\"ordered-stream\",\"req\":\"^0.2\"},{\"name\":\"rand\",\"req\":\"^0.8.5\"},{\"features\":[\"derive\"],\"name\":\"serde\",\"req\":\"^1.0.200\"},{\"name\":\"serde_repr\",\"req\":\"^0.1.19\"},{\"features\":[\"std\"],\"name\":\"sha1\",\"req\":\"^0.10.6\"},{\"name\":\"static_assertions\",\"req\":\"^1.1.0\"},{\"kind\":\"dev\",\"name\":\"tempfile\",\"req\":\"^3.10.1\"},{\"default_features\":false,\"features\":[\"trace\"],\"kind\":\"dev\",\"name\":\"test-log\",\"req\":\"^0.2.16\"},{\"features\":[\"rt\",\"net\",\"time\",\"fs\",\"io-util\",\"process\",\"sync\",\"tracing\"],\"name\":\"tokio\",\"optional\":true,\"req\":\"^1.37.0\"},{\"features\":[\"macros\",\"rt-multi-thread\",\"fs\",\"io-util\",\"net\",\"sync\"],\"kind\":\"dev\",\"name\":\"tokio\",\"req\":\"^1.37.0\"},{\"name\":\"tokio-vsock\",\"optional\":true,\"req\":\"^0.4\"},{\"name\":\"tracing\",\"req\":\"^0.1.40\"},{\"default_features\":false,\"features\":[\"env-filter\",\"fmt\",\"ansi\"],\"kind\":\"dev\",\"name\":\"tracing-subscriber\",\"req\":\"^0.3.18\"},{\"name\":\"uds_windows\",\"req\":\"^1.1.0\",\"target\":\"cfg(windows)\"},{\"name\":\"vsock\",\"optional\":true,\"req\":\"^0.5.0\"},{\"features\":[\"Win32_Foundation\",\"Win32_Security_Authorization\",\"Win32_System_Memory\",\"Win32_Networking\",\"Win32_Networking_WinSock\",\"Win32_NetworkManagement\",\"Win32_NetworkManagement_IpHelper\",\"Win32_System_Threading\"],\"name\":\"windows-sys\",\"req\":\"^0.52\",\"target\":\"cfg(windows)\"},{\"name\":\"xdg-home\",\"req\":\"^1.1.0\"},{\"name\":\"zbus_macros\",\"req\":\"=4.4.0\"},{\"name\":\"zbus_names\",\"req\":\"^3.0\"},{\"kind\":\"dev\",\"name\":\"zbus_xml\",\"req\":\"^4.0.0\"},{\"default_features\":false,\"features\":[\"enumflags2\"],\"name\":\"zvariant\",\"req\":\"^4.2.0\"}],\"features\":{\"async-io\":[\"dep:async-io\",\"async-executor\",\"async-task\",\"async-lock\",\"async-fs\",\"blocking\",\"futures-util/io\"],\"bus-impl\":[\"p2p\"],\"chrono\":[\"zvariant/chrono\"],\"default\":[\"async-io\"],\"heapless\":[\"zvariant/heapless\"],\"option-as-array\":[\"zvariant/option-as-array\"],\"p2p\":[],\"time\":[\"zvariant/time\"],\"tokio\":[\"dep:tokio\"],\"tokio-vsock\":[\"dep:tokio-vsock\",\"tokio\"],\"url\":[\"zvariant/url\"],\"uuid\":[\"zvariant/uuid\"],\"vsock\":[\"dep:vsock\",\"dep:async-io\"]}}", "zbus_5.12.0": "{\"dependencies\":[{\"name\":\"async-broadcast\",\"req\":\"^0.7.0\"},{\"name\":\"async-executor\",\"optional\":true,\"req\":\"^1.11.0\"},{\"name\":\"async-io\",\"optional\":true,\"req\":\"^2.3.2\"},{\"name\":\"async-lock\",\"optional\":true,\"req\":\"^3.3.0\"},{\"name\":\"async-process\",\"optional\":true,\"req\":\"^2.2.2\"},{\"name\":\"async-recursion\",\"req\":\"^1.1.1\",\"target\":\"cfg(any(target_os = \\\"macos\\\", windows))\"},{\"name\":\"async-task\",\"optional\":true,\"req\":\"^4.7.1\"},{\"name\":\"async-trait\",\"req\":\"^0.1.80\"},{\"name\":\"blocking\",\"optional\":true,\"req\":\"^1.6.0\"},{\"kind\":\"dev\",\"name\":\"criterion\",\"package\":\"codspeed-criterion-compat\",\"req\":\"^4.0.4\"},{\"kind\":\"dev\",\"name\":\"doc-comment\",\"req\":\"^0.3.3\"},{\"features\":[\"serde\"],\"name\":\"enumflags2\",\"req\":\"^0.7.9\"},{\"name\":\"event-listener\",\"req\":\"^5.3.0\"},{\"name\":\"futures-core\",\"req\":\"^0.3.30\"},{\"default_features\":false,\"features\":[\"std\"],\"name\":\"futures-lite\",\"req\":\"^2.6.0\"},{\"default_features\":false,\"features\":[\"io\",\"async-await-macro\",\"async-await\"],\"kind\":\"dev\",\"name\":\"futures-util\",\"req\":\"^0.3.31\"},{\"name\":\"hex\",\"req\":\"^0.4.3\"},{\"default_features\":false,\"features\":[\"socket\",\"uio\",\"user\"],\"name\":\"nix\",\"req\":\"^0.30\",\"target\":\"cfg(unix)\"},{\"kind\":\"dev\",\"name\":\"ntest\",\"req\":\"^0.9.2\"},{\"name\":\"ordered-stream\",\"req\":\"^0.2\"},{\"features\":[\"derive\"],\"name\":\"serde\",\"req\":\"^1.0.200\"},{\"name\":\"serde_repr\",\"req\":\"^0.1.19\"},{\"kind\":\"dev\",\"name\":\"tempfile\",\"req\":\"^3.10.1\"},{\"default_features\":false,\"features\":[\"trace\"],\"kind\":\"dev\",\"name\":\"test-log\",\"req\":\"^0.2.16\"},{\"features\":[\"rt\",\"rt-multi-thread\",\"net\",\"time\",\"fs\",\"io-util\",\"process\",\"sync\",\"tracing\"],\"name\":\"tokio\",\"optional\":true,\"req\":\"^1.37.0\"},{\"features\":[\"macros\",\"rt-multi-thread\",\"fs\",\"io-util\",\"net\",\"sync\",\"time\",\"test-util\"],\"kind\":\"dev\",\"name\":\"tokio\",\"req\":\"^1.37.0\"},{\"name\":\"tokio-vsock\",\"optional\":true,\"req\":\"^0.7\"},{\"name\":\"tracing\",\"req\":\"^0.1.40\"},{\"default_features\":false,\"features\":[\"env-filter\",\"fmt\",\"ansi\"],\"kind\":\"dev\",\"name\":\"tracing-subscriber\",\"req\":\"^0.3.18\"},{\"name\":\"uds_windows\",\"req\":\"^1.1.0\",\"target\":\"cfg(windows)\"},{\"features\":[\"serde\"],\"name\":\"uuid\",\"req\":\"^1.8.0\"},{\"name\":\"vsock\",\"optional\":true,\"req\":\"^0.5.0\"},{\"features\":[\"Win32_Foundation\",\"Win32_Security_Authorization\",\"Win32_System_Memory\",\"Win32_Networking\",\"Win32_Networking_WinSock\",\"Win32_NetworkManagement\",\"Win32_NetworkManagement_IpHelper\",\"Win32_System_IO\",\"Win32_System_Threading\"],\"name\":\"windows-sys\",\"req\":\"^0.61\",\"target\":\"cfg(windows)\"},{\"name\":\"winnow\",\"req\":\"^0.7\"},{\"name\":\"zbus_macros\",\"req\":\"^5.12.0\"},{\"name\":\"zbus_names\",\"req\":\"^4.2.0\"},{\"features\":[\"enumflags2\"],\"name\":\"zvariant\",\"req\":\"^5.5.2\"}],\"features\":{\"async-fs\":[],\"async-io\":[\"dep:async-io\",\"async-executor\",\"async-fs\",\"async-task\",\"async-lock\",\"async-process\",\"blocking\"],\"blocking-api\":[\"zbus_macros/blocking-api\"],\"bus-impl\":[\"p2p\"],\"camino\":[\"zvariant/camino\"],\"chrono\":[\"zvariant/chrono\"],\"default\":[\"async-io\",\"blocking-api\"],\"heapless\":[\"zvariant/heapless\"],\"option-as-array\":[\"zvariant/option-as-array\"],\"p2p\":[\"uuid/v4\"],\"serde_bytes\":[\"zvariant/serde_bytes\"],\"time\":[\"zvariant/time\"],\"tokio\":[\"dep:tokio\"],\"tokio-vsock\":[\"dep:tokio-vsock\",\"tokio\"],\"url\":[\"zvariant/url\"],\"uuid\":[\"zvariant/uuid\"],\"vsock\":[\"dep:vsock\",\"dep:async-io\"]}}", @@ -3205,15 +3249,20 @@ "zerocopy_0.8.27": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"either\",\"req\":\"=1.13.0\"},{\"kind\":\"dev\",\"name\":\"elain\",\"req\":\"^0.3.0\"},{\"kind\":\"dev\",\"name\":\"glob\",\"req\":\"=0.3.2\"},{\"kind\":\"dev\",\"name\":\"itertools\",\"req\":\"^0.11\"},{\"default_features\":false,\"features\":[\"small_rng\"],\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.8.5\"},{\"kind\":\"dev\",\"name\":\"rustversion\",\"req\":\"^1.0\"},{\"kind\":\"dev\",\"name\":\"static_assertions\",\"req\":\"^1.1\"},{\"features\":[\"diff\"],\"kind\":\"dev\",\"name\":\"trybuild\",\"req\":\"=1.0.89\"},{\"name\":\"zerocopy-derive\",\"req\":\"=0.8.27\",\"target\":\"cfg(any())\"},{\"name\":\"zerocopy-derive\",\"optional\":true,\"req\":\"=0.8.27\"},{\"kind\":\"dev\",\"name\":\"zerocopy-derive\",\"req\":\"=0.8.27\"}],\"features\":{\"__internal_use_only_features_that_work_on_stable\":[\"alloc\",\"derive\",\"simd\",\"std\"],\"alloc\":[],\"derive\":[\"zerocopy-derive\"],\"float-nightly\":[],\"simd\":[],\"simd-nightly\":[\"simd\"],\"std\":[\"alloc\"]}}", "zerocopy_0.8.39": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"elain\",\"req\":\"^0.3.0\"},{\"kind\":\"dev\",\"name\":\"itertools\",\"req\":\"^0.11\"},{\"default_features\":false,\"features\":[\"small_rng\"],\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.8.5\"},{\"kind\":\"dev\",\"name\":\"rustversion\",\"req\":\"^1.0\"},{\"kind\":\"dev\",\"name\":\"static_assertions\",\"req\":\"^1.1\"},{\"features\":[\"diff\"],\"kind\":\"dev\",\"name\":\"trybuild\",\"req\":\"=1.0.89\"},{\"name\":\"zerocopy-derive\",\"req\":\"=0.8.39\",\"target\":\"cfg(any())\"},{\"name\":\"zerocopy-derive\",\"optional\":true,\"req\":\"=0.8.39\"},{\"kind\":\"dev\",\"name\":\"zerocopy-derive\",\"req\":\"=0.8.39\"}],\"features\":{\"__internal_use_only_features_that_work_on_stable\":[\"alloc\",\"derive\",\"simd\",\"std\"],\"alloc\":[],\"derive\":[\"zerocopy-derive\"],\"float-nightly\":[],\"simd\":[],\"simd-nightly\":[\"simd\"],\"std\":[\"alloc\"]}}", "zerofrom-derive_0.1.6": "{\"dependencies\":[{\"name\":\"proc-macro2\",\"req\":\"^1.0.61\"},{\"name\":\"quote\",\"req\":\"^1.0.28\"},{\"features\":[\"fold\"],\"name\":\"syn\",\"req\":\"^2.0.21\"},{\"name\":\"synstructure\",\"req\":\"^0.13.0\"}],\"features\":{}}", + "zerofrom-derive_0.1.7": "{\"dependencies\":[{\"name\":\"proc-macro2\",\"req\":\"^1.0.61\"},{\"name\":\"quote\",\"req\":\"^1.0.44\"},{\"features\":[\"fold\"],\"name\":\"syn\",\"req\":\"^2.0.21\"},{\"name\":\"synstructure\",\"req\":\"^0.13.0\"}],\"features\":{}}", "zerofrom_0.1.6": "{\"dependencies\":[{\"default_features\":false,\"name\":\"zerofrom-derive\",\"optional\":true,\"req\":\"^0.1.3\"}],\"features\":{\"alloc\":[],\"default\":[\"alloc\"],\"derive\":[\"dep:zerofrom-derive\"]}}", + "zerofrom_0.1.7": "{\"dependencies\":[{\"default_features\":false,\"name\":\"zerofrom-derive\",\"optional\":true,\"req\":\"^0.1.6\"}],\"features\":{\"alloc\":[],\"default\":[\"alloc\"],\"derive\":[\"dep:zerofrom-derive\"]}}", "zeroize_1.8.2": "{\"dependencies\":[{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0\"},{\"name\":\"zeroize_derive\",\"optional\":true,\"req\":\"^1.3\"}],\"features\":{\"aarch64\":[],\"alloc\":[],\"default\":[\"alloc\"],\"derive\":[\"zeroize_derive\"],\"simd\":[],\"std\":[\"alloc\"]}}", "zeroize_derive_1.4.3": "{\"dependencies\":[{\"name\":\"proc-macro2\",\"req\":\"^1\"},{\"name\":\"quote\",\"req\":\"^1\"},{\"features\":[\"full\",\"extra-traits\",\"visit\"],\"name\":\"syn\",\"req\":\"^2\"}],\"features\":{}}", "zerotrie_0.2.2": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"bincode\",\"req\":\"^1.3.1\"},{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5.0\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"databake\",\"optional\":true,\"req\":\"^0.2.0\"},{\"default_features\":false,\"name\":\"displaydoc\",\"req\":\"^0.2.3\"},{\"default_features\":false,\"features\":[\"alloc\"],\"kind\":\"dev\",\"name\":\"icu_locale_core\",\"req\":\"^2.0.0\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"litemap\",\"optional\":true,\"req\":\"^0.8.0\"},{\"default_features\":false,\"features\":[\"alloc\"],\"kind\":\"dev\",\"name\":\"postcard\",\"req\":\"^1.0.3\"},{\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.9\"},{\"kind\":\"dev\",\"name\":\"rand_pcg\",\"req\":\"^0.9\"},{\"kind\":\"dev\",\"name\":\"rmp-serde\",\"req\":\"^1.2.0\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.110\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0.110\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.45\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"yoke\",\"optional\":true,\"req\":\"^0.8.0\"},{\"default_features\":false,\"name\":\"zerofrom\",\"optional\":true,\"req\":\"^0.1.3\"},{\"default_features\":false,\"name\":\"zerovec\",\"optional\":true,\"req\":\"^0.11.1\"}],\"features\":{\"alloc\":[],\"databake\":[\"dep:databake\",\"zerovec?/databake\"],\"default\":[],\"litemap\":[\"dep:litemap\",\"alloc\"],\"serde\":[\"dep:serde\",\"dep:litemap\",\"alloc\",\"litemap/serde\",\"zerovec?/serde\"],\"yoke\":[\"dep:yoke\"],\"zerofrom\":[\"dep:zerofrom\"]}}", "zerotrie_0.2.3": "{\"dependencies\":[{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"databake\",\"optional\":true,\"req\":\"^0.2.0\"},{\"default_features\":false,\"name\":\"displaydoc\",\"req\":\"^0.2.3\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"litemap\",\"optional\":true,\"req\":\"^0.8.0\"},{\"default_features\":false,\"name\":\"serde_core\",\"optional\":true,\"req\":\"^1.0.220\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"yoke\",\"optional\":true,\"req\":\"^0.8.0\"},{\"default_features\":false,\"name\":\"zerofrom\",\"optional\":true,\"req\":\"^0.1.3\"},{\"default_features\":false,\"name\":\"zerovec\",\"optional\":true,\"req\":\"^0.11.3\"}],\"features\":{\"alloc\":[],\"databake\":[\"dep:databake\",\"zerovec?/databake\"],\"default\":[],\"litemap\":[\"dep:litemap\",\"alloc\"],\"serde\":[\"dep:serde_core\",\"dep:litemap\",\"alloc\",\"litemap/serde\",\"zerovec?/serde\"],\"yoke\":[\"dep:yoke\"],\"zerofrom\":[\"dep:zerofrom\"]}}", + "zerotrie_0.2.4": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"bincode\",\"req\":\"^1.3.1\"},{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5.0\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"databake\",\"optional\":true,\"req\":\"^0.2.0\"},{\"default_features\":false,\"name\":\"displaydoc\",\"req\":\"^0.2.3\"},{\"default_features\":false,\"features\":[\"alloc\"],\"kind\":\"dev\",\"name\":\"icu_locale_core\",\"req\":\"^2.2.0\"},{\"kind\":\"dev\",\"name\":\"itertools\",\"req\":\"^0.14.0\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"litemap\",\"optional\":true,\"req\":\"^0.8.0\"},{\"default_features\":false,\"features\":[\"alloc\"],\"kind\":\"dev\",\"name\":\"postcard\",\"req\":\"^1.0.3\"},{\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.9\"},{\"kind\":\"dev\",\"name\":\"rand_pcg\",\"req\":\"^0.9\"},{\"kind\":\"dev\",\"name\":\"rmp-serde\",\"req\":\"^1.2.0\"},{\"default_features\":false,\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0.220\"},{\"default_features\":false,\"name\":\"serde_core\",\"optional\":true,\"req\":\"^1.0.220\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.45\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"yoke\",\"optional\":true,\"req\":\"^0.8.2\"},{\"default_features\":false,\"name\":\"zerofrom\",\"optional\":true,\"req\":\"^0.1.6\"},{\"default_features\":false,\"name\":\"zerovec\",\"optional\":true,\"req\":\"^0.11.6\"}],\"features\":{\"alloc\":[\"zerovec?/alloc\"],\"databake\":[\"dep:databake\",\"zerovec?/databake\"],\"default\":[],\"dense\":[\"dep:zerovec\"],\"litemap\":[\"dep:litemap\",\"alloc\"],\"serde\":[\"dep:serde_core\",\"dep:litemap\",\"alloc\",\"litemap/serde\",\"zerovec?/serde\"],\"yoke\":[\"dep:yoke\"],\"zerofrom\":[\"dep:zerofrom\"],\"zerovec\":[\"dep:zerovec\"]}}", "zerovec-derive_0.11.1": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"bincode\",\"req\":\"^1.3.1\"},{\"name\":\"proc-macro2\",\"req\":\"^1.0.61\"},{\"name\":\"quote\",\"req\":\"^1.0.28\"},{\"default_features\":false,\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0.110\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.45\"},{\"features\":[\"extra-traits\"],\"name\":\"syn\",\"req\":\"^2.0.21\"}],\"features\":{}}", "zerovec-derive_0.11.2": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"bincode\",\"req\":\"^1.3.1\"},{\"name\":\"proc-macro2\",\"req\":\"^1.0.61\"},{\"name\":\"quote\",\"req\":\"^1.0.28\"},{\"default_features\":false,\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0.220\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.45\"},{\"features\":[\"extra-traits\"],\"name\":\"syn\",\"req\":\"^2.0.21\"}],\"features\":{}}", + "zerovec-derive_0.11.3": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"bincode\",\"req\":\"^1.3.1\"},{\"name\":\"proc-macro2\",\"req\":\"^1.0.61\"},{\"name\":\"quote\",\"req\":\"^1.0.44\"},{\"default_features\":false,\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0.220\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.45\"},{\"features\":[\"extra-traits\"],\"name\":\"syn\",\"req\":\"^2.0.21\"}],\"features\":{}}", "zerovec_0.11.4": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"bincode\",\"req\":\"^1.3.1\"},{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5.0\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"databake\",\"optional\":true,\"req\":\"^0.2.0\"},{\"features\":[\"wasm_js\"],\"kind\":\"dev\",\"name\":\"getrandom\",\"req\":\"^0.3\"},{\"kind\":\"dev\",\"name\":\"iai\",\"req\":\"^0.1.1\"},{\"default_features\":false,\"features\":[\"use-std\"],\"kind\":\"dev\",\"name\":\"postcard\",\"req\":\"^1.0.3\"},{\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.9\"},{\"kind\":\"dev\",\"name\":\"rand_distr\",\"req\":\"^0.5\"},{\"kind\":\"dev\",\"name\":\"rand_pcg\",\"req\":\"^0.9\"},{\"kind\":\"dev\",\"name\":\"rmp-serde\",\"req\":\"^1.2.0\"},{\"default_features\":false,\"features\":[\"alloc\",\"derive\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.110\"},{\"default_features\":false,\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0.110\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.45\"},{\"default_features\":false,\"features\":[\"xxhash64\"],\"name\":\"twox-hash\",\"optional\":true,\"req\":\"^2.0.0\"},{\"default_features\":false,\"name\":\"yoke\",\"optional\":true,\"req\":\"^0.8.0\"},{\"default_features\":false,\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"yoke\",\"req\":\"^0.8.0\"},{\"default_features\":false,\"name\":\"zerofrom\",\"req\":\"^0.1.3\"},{\"default_features\":false,\"name\":\"zerovec-derive\",\"optional\":true,\"req\":\"^0.11.1\"}],\"features\":{\"alloc\":[],\"databake\":[\"dep:databake\"],\"derive\":[\"dep:zerovec-derive\"],\"hashmap\":[\"dep:twox-hash\",\"alloc\"],\"serde\":[\"dep:serde\",\"alloc\"],\"std\":[],\"yoke\":[\"dep:yoke\"]}}", "zerovec_0.11.5": "{\"dependencies\":[{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"databake\",\"optional\":true,\"req\":\"^0.2.0\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.220\"},{\"default_features\":false,\"features\":[\"xxhash64\"],\"name\":\"twox-hash\",\"optional\":true,\"req\":\"^2.0.0\"},{\"default_features\":false,\"name\":\"yoke\",\"optional\":true,\"req\":\"^0.8.0\"},{\"default_features\":false,\"name\":\"zerofrom\",\"req\":\"^0.1.3\"},{\"default_features\":false,\"name\":\"zerovec-derive\",\"optional\":true,\"req\":\"^0.11.1\"}],\"features\":{\"alloc\":[\"serde?/alloc\"],\"databake\":[\"dep:databake\"],\"derive\":[\"dep:zerovec-derive\"],\"hashmap\":[\"dep:twox-hash\",\"alloc\"],\"serde\":[\"dep:serde\"],\"std\":[],\"yoke\":[\"dep:yoke\"]}}", + "zerovec_0.11.6": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"bincode\",\"req\":\"^1.3.1\"},{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5.0\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"databake\",\"optional\":true,\"req\":\"^0.2.0\"},{\"features\":[\"wasm_js\"],\"kind\":\"dev\",\"name\":\"getrandom\",\"req\":\"^0.3\"},{\"kind\":\"dev\",\"name\":\"iai\",\"req\":\"^0.1.1\"},{\"features\":[\"json\"],\"kind\":\"dev\",\"name\":\"insta\",\"req\":\"^1.43.2\"},{\"default_features\":false,\"features\":[\"use-std\"],\"kind\":\"dev\",\"name\":\"postcard\",\"req\":\"^1.0.3\"},{\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.9\"},{\"kind\":\"dev\",\"name\":\"rand_distr\",\"req\":\"^0.5\"},{\"kind\":\"dev\",\"name\":\"rand_pcg\",\"req\":\"^0.9\"},{\"kind\":\"dev\",\"name\":\"rmp-serde\",\"req\":\"^1.2.0\"},{\"default_features\":false,\"name\":\"schemars\",\"optional\":true,\"req\":\"^1.0.4\"},{\"default_features\":false,\"features\":[\"derive\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.220\"},{\"default_features\":false,\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0.220\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.45\"},{\"default_features\":false,\"features\":[\"xxhash64\"],\"name\":\"twox-hash\",\"optional\":true,\"req\":\"^2.0.0\"},{\"default_features\":false,\"name\":\"yoke\",\"optional\":true,\"req\":\"^0.8.2\"},{\"default_features\":false,\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"yoke\",\"req\":\"^0.8.2\"},{\"default_features\":false,\"name\":\"zerofrom\",\"req\":\"^0.1.6\"},{\"default_features\":false,\"name\":\"zerovec-derive\",\"optional\":true,\"req\":\"^0.11.3\"}],\"features\":{\"alloc\":[\"serde?/alloc\"],\"databake\":[\"dep:databake\"],\"derive\":[\"dep:zerovec-derive\"],\"hashmap\":[\"dep:twox-hash\",\"alloc\"],\"schemars\":[\"dep:schemars\",\"alloc\"],\"serde\":[\"dep:serde\"],\"std\":[],\"yoke\":[\"dep:yoke\"]}}", "zip_0.6.6": "{\"dependencies\":[{\"name\":\"aes\",\"optional\":true,\"req\":\"^0.8.2\"},{\"kind\":\"dev\",\"name\":\"bencher\",\"req\":\"^0.1.5\"},{\"name\":\"byteorder\",\"req\":\"^1.4.3\"},{\"name\":\"bzip2\",\"optional\":true,\"req\":\"^0.4.3\"},{\"name\":\"constant_time_eq\",\"optional\":true,\"req\":\"^0.1.5\"},{\"name\":\"crc32fast\",\"req\":\"^1.3.2\"},{\"name\":\"crossbeam-utils\",\"req\":\"^0.8.8\",\"target\":\"cfg(any(all(target_arch = \\\"arm\\\", target_pointer_width = \\\"32\\\"), target_arch = \\\"mips\\\", target_arch = \\\"powerpc\\\"))\"},{\"default_features\":false,\"name\":\"flate2\",\"optional\":true,\"req\":\"^1.0.23\"},{\"kind\":\"dev\",\"name\":\"getrandom\",\"req\":\"^0.2.5\"},{\"features\":[\"reset\"],\"name\":\"hmac\",\"optional\":true,\"req\":\"^0.12.1\"},{\"name\":\"pbkdf2\",\"optional\":true,\"req\":\"^0.11.0\"},{\"name\":\"sha1\",\"optional\":true,\"req\":\"^0.10.1\"},{\"default_features\":false,\"features\":[\"std\"],\"name\":\"time\",\"optional\":true,\"req\":\"^0.3.7\"},{\"features\":[\"formatting\",\"macros\"],\"kind\":\"dev\",\"name\":\"time\",\"req\":\"^0.3.7\"},{\"kind\":\"dev\",\"name\":\"walkdir\",\"req\":\"^2.3.2\"},{\"name\":\"zstd\",\"optional\":true,\"req\":\"^0.11.2\"}],\"features\":{\"aes-crypto\":[\"aes\",\"constant_time_eq\",\"hmac\",\"pbkdf2\",\"sha1\"],\"default\":[\"aes-crypto\",\"bzip2\",\"deflate\",\"time\",\"zstd\"],\"deflate\":[\"flate2/rust_backend\"],\"deflate-miniz\":[\"flate2/default\"],\"deflate-zlib\":[\"flate2/zlib\"],\"unreserved\":[]}}", "zip_2.4.2": "{\"dependencies\":[{\"name\":\"aes\",\"optional\":true,\"req\":\"^0.8\"},{\"kind\":\"dev\",\"name\":\"anyhow\",\"req\":\"^1.0.95\"},{\"features\":[\"derive\"],\"name\":\"arbitrary\",\"req\":\"^1.4.1\",\"target\":\"cfg(fuzzing)\"},{\"kind\":\"dev\",\"name\":\"bencher\",\"req\":\"^0.1.5\"},{\"name\":\"bzip2\",\"optional\":true,\"req\":\"^0.5.0\"},{\"name\":\"chrono\",\"optional\":true,\"req\":\"^0.4\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"clap\",\"req\":\"=4.4.18\"},{\"name\":\"constant_time_eq\",\"optional\":true,\"req\":\"^0.3\"},{\"name\":\"crc32fast\",\"req\":\"^1.4\"},{\"name\":\"crossbeam-utils\",\"req\":\"^0.8.21\",\"target\":\"cfg(any(all(target_arch = \\\"arm\\\", target_pointer_width = \\\"32\\\"), target_arch = \\\"mips\\\", target_arch = \\\"powerpc\\\"))\"},{\"name\":\"deflate64\",\"optional\":true,\"req\":\"^0.1.9\"},{\"default_features\":false,\"name\":\"displaydoc\",\"req\":\"^0.2\"},{\"default_features\":false,\"name\":\"flate2\",\"optional\":true,\"req\":\"^1.0\"},{\"features\":[\"wasm_js\",\"std\"],\"name\":\"getrandom\",\"optional\":true,\"req\":\"^0.3.1\"},{\"features\":[\"wasm_js\",\"std\"],\"kind\":\"dev\",\"name\":\"getrandom\",\"req\":\"^0.3.1\"},{\"features\":[\"reset\"],\"name\":\"hmac\",\"optional\":true,\"req\":\"^0.12\"},{\"name\":\"indexmap\",\"req\":\"^2\"},{\"default_features\":false,\"name\":\"lzma-rs\",\"optional\":true,\"req\":\"^0.3\"},{\"name\":\"memchr\",\"req\":\"^2.7\"},{\"default_features\":false,\"name\":\"nt-time\",\"optional\":true,\"req\":\"^0.10.6\"},{\"name\":\"pbkdf2\",\"optional\":true,\"req\":\"^0.12\"},{\"name\":\"sha1\",\"optional\":true,\"req\":\"^0.10\"},{\"kind\":\"dev\",\"name\":\"tempfile\",\"req\":\"^3.15\"},{\"name\":\"thiserror\",\"req\":\"^2\"},{\"default_features\":false,\"features\":[\"std\"],\"name\":\"time\",\"optional\":true,\"req\":\"^0.3.37\"},{\"default_features\":false,\"features\":[\"formatting\",\"macros\"],\"kind\":\"dev\",\"name\":\"time\",\"req\":\"^0.3.37\"},{\"kind\":\"dev\",\"name\":\"walkdir\",\"req\":\"^2.5\"},{\"name\":\"xz2\",\"optional\":true,\"req\":\"^0.1.7\"},{\"features\":[\"zeroize_derive\"],\"name\":\"zeroize\",\"optional\":true,\"req\":\"^1.8\"},{\"name\":\"zopfli\",\"optional\":true,\"req\":\"^0.8\"},{\"default_features\":false,\"name\":\"zstd\",\"optional\":true,\"req\":\"^0.13\"}],\"features\":{\"_all-features\":[],\"_deflate-any\":[],\"aes-crypto\":[\"aes\",\"constant_time_eq\",\"hmac\",\"pbkdf2\",\"sha1\",\"getrandom\",\"zeroize\"],\"chrono\":[\"chrono/default\"],\"default\":[\"aes-crypto\",\"bzip2\",\"deflate64\",\"deflate\",\"lzma\",\"time\",\"zstd\",\"xz\"],\"deflate\":[\"flate2/rust_backend\",\"deflate-zopfli\",\"deflate-flate2\"],\"deflate-flate2\":[\"_deflate-any\"],\"deflate-miniz\":[\"deflate\",\"deflate-flate2\"],\"deflate-zlib\":[\"flate2/zlib\",\"deflate-flate2\"],\"deflate-zlib-ng\":[\"flate2/zlib-ng\",\"deflate-flate2\"],\"deflate-zopfli\":[\"zopfli\",\"_deflate-any\"],\"lzma\":[\"lzma-rs/stream\"],\"nt-time\":[\"dep:nt-time\"],\"unreserved\":[],\"xz\":[\"dep:xz2\"]}}", "zip_7.4.0": "{\"dependencies\":[{\"name\":\"aes\",\"optional\":true,\"req\":\"^0.8\"},{\"features\":[\"derive\"],\"name\":\"arbitrary\",\"optional\":true,\"req\":\"^1.4\"},{\"kind\":\"dev\",\"name\":\"bencher\",\"req\":\"^0.1\"},{\"name\":\"bitstream-io\",\"optional\":true,\"req\":\"^4.9\"},{\"default_features\":false,\"name\":\"bzip2\",\"optional\":true,\"req\":\"^0.6\"},{\"default_features\":false,\"features\":[\"std\"],\"name\":\"chrono\",\"optional\":true,\"req\":\"^0.4.27\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"clap\",\"req\":\"^4.4.18\"},{\"name\":\"constant_time_eq\",\"optional\":true,\"req\":\"^0.4\"},{\"name\":\"crc32fast\",\"req\":\"^1.5\"},{\"name\":\"deflate64\",\"optional\":true,\"req\":\"^0.1.10\"},{\"default_features\":false,\"name\":\"flate2\",\"optional\":true,\"req\":\"^1.1\"},{\"default_features\":false,\"name\":\"getrandom\",\"optional\":true,\"req\":\"^0.4\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":false,\"features\":[\"wasm_js\"],\"name\":\"getrandom\",\"optional\":true,\"req\":\"^0.4\",\"target\":\"cfg(target_arch = \\\"wasm32\\\")\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"getrandom\",\"req\":\"^0.4\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"getrandom\",\"req\":\"^0.4\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":false,\"features\":[\"wasm_js\"],\"kind\":\"dev\",\"name\":\"getrandom\",\"req\":\"^0.4\",\"target\":\"cfg(target_arch = \\\"wasm32\\\")\"},{\"features\":[\"reset\"],\"name\":\"hmac\",\"optional\":true,\"req\":\"^0.12\"},{\"name\":\"indexmap\",\"req\":\"^2\"},{\"name\":\"jiff\",\"optional\":true,\"req\":\"^0.2.4\"},{\"default_features\":false,\"features\":[\"std\",\"encoder\",\"optimization\",\"xz\"],\"name\":\"lzma-rust2\",\"optional\":true,\"req\":\"^0.15\"},{\"name\":\"memchr\",\"req\":\"^2.7\"},{\"default_features\":false,\"name\":\"nt-time\",\"optional\":true,\"req\":\"^0.13\"},{\"name\":\"pbkdf2\",\"optional\":true,\"req\":\"^0.12\"},{\"name\":\"ppmd-rust\",\"optional\":true,\"req\":\"^1.4\"},{\"kind\":\"dev\",\"name\":\"rayon\",\"req\":\"^1.11\"},{\"name\":\"sha1\",\"optional\":true,\"req\":\"^0.10\"},{\"kind\":\"dev\",\"name\":\"tempfile\",\"req\":\"^3.15\"},{\"default_features\":false,\"features\":[\"std\"],\"name\":\"time\",\"optional\":true,\"req\":\"^0.3.47\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":false,\"features\":[\"std\",\"wasm-bindgen\"],\"name\":\"time\",\"optional\":true,\"req\":\"^0.3.47\",\"target\":\"cfg(target_arch = \\\"wasm32\\\")\"},{\"features\":[\"formatting\",\"macros\"],\"kind\":\"dev\",\"name\":\"time\",\"req\":\"^0.3.47\"},{\"name\":\"typed-path\",\"req\":\"^0.12\"},{\"kind\":\"dev\",\"name\":\"walkdir\",\"req\":\"^2.5\"},{\"kind\":\"dev\",\"name\":\"wasm-bindgen-test\",\"req\":\"^0.3.56\",\"target\":\"cfg(target_arch = \\\"wasm32\\\")\"},{\"features\":[\"zeroize_derive\"],\"name\":\"zeroize\",\"optional\":true,\"req\":\"^1.8\"},{\"name\":\"zopfli\",\"optional\":true,\"req\":\"^0.8\"},{\"default_features\":false,\"name\":\"zstd\",\"optional\":true,\"req\":\"^0.13.3\"}],\"features\":{\"_arbitrary\":[\"dep:arbitrary\"],\"_bzip2_any\":[],\"_deflate-any\":[],\"aes-crypto\":[\"dep:aes\",\"dep:constant_time_eq\",\"getrandom/std\",\"dep:hmac\",\"dep:pbkdf2\",\"dep:sha1\",\"dep:zeroize\"],\"bzip2\":[\"dep:bzip2\",\"bzip2/default\",\"_bzip2_any\"],\"bzip2-rs\":[\"dep:bzip2\",\"bzip2/bzip2-sys\",\"_bzip2_any\"],\"chrono\":[\"dep:chrono\"],\"default\":[\"aes-crypto\",\"bzip2\",\"deflate64\",\"deflate\",\"lzma\",\"ppmd\",\"time\",\"zstd\",\"xz\"],\"deflate\":[\"deflate-zopfli\",\"deflate-flate2-zlib-rs\"],\"deflate-flate2\":[\"_deflate-any\",\"dep:flate2\"],\"deflate-flate2-zlib\":[\"deflate-flate2\",\"flate2/zlib\"],\"deflate-flate2-zlib-ng\":[\"deflate-flate2\",\"flate2/zlib-ng\"],\"deflate-flate2-zlib-ng-compat\":[\"deflate-flate2\",\"flate2/zlib-ng-compat\"],\"deflate-flate2-zlib-rs\":[\"deflate-flate2\",\"flate2/zlib-rs\"],\"deflate-zopfli\":[\"dep:zopfli\",\"_deflate-any\"],\"jiff-02\":[\"dep:jiff\"],\"legacy-zip\":[\"bitstream-io\"],\"lzma\":[\"dep:lzma-rust2\"],\"nt-time\":[\"dep:nt-time\"],\"ppmd\":[\"dep:ppmd-rust\"],\"time\":[\"dep:time\"],\"unreserved\":[],\"xz\":[\"dep:lzma-rust2\"]}}", @@ -3242,6 +3291,95 @@ "zvariant_utils_3.2.1": "{\"dependencies\":[{\"name\":\"proc-macro2\",\"req\":\"^1.0.81\"},{\"name\":\"quote\",\"req\":\"^1.0.36\"},{\"features\":[\"derive\"],\"name\":\"serde\",\"req\":\"^1.0.200\"},{\"features\":[\"extra-traits\",\"full\"],\"name\":\"syn\",\"req\":\"^2.0.64\"},{\"name\":\"winnow\",\"req\":\"^0.7\"}],\"features\":{\"default\":[],\"gvariant\":[]}}" }, "@@rules_rs+//rs/toolchains:module_extension.bzl%toolchains": { + "2026-03-05/cargo-nightly-aarch64-apple-darwin.tar.xz": "b56fa165f024b531f1a18c3e2796afd3e8f4cf1ff67b2a80aa225a8f94895b59", + "2026-03-05/cargo-nightly-aarch64-pc-windows-msvc.tar.xz": "7f20381841b51c8deefdbe1aca88787158169a3176731a7d71b4b974374cab31", + "2026-03-05/cargo-nightly-aarch64-unknown-linux-gnu.tar.xz": "fcd917fefc71ec9a8a1238586c325221ff7ec8691d4537c944c498b5350e497e", + "2026-03-05/cargo-nightly-x86_64-apple-darwin.tar.xz": "cccf1b4a2f007f279dc99cdecbbc93ef32a5175e0bf38b91c442f06f4282fcba", + "2026-03-05/cargo-nightly-x86_64-pc-windows-msvc.tar.xz": "4c9acf34b7f3b1262d4f1c97b11bf786a4e62f5f33807b7c1d47aa7a67f687f9", + "2026-03-05/cargo-nightly-x86_64-unknown-linux-gnu.tar.xz": "00863d609762f4fafa72a2d0de93029b30b98acf01123d547f6330819745d734", + "2026-03-05/clippy-nightly-aarch64-apple-darwin.tar.xz": "2f8952819755fce34944b8e7daa88a25c6595f0c6e4ef2197e7dca516d740e88", + "2026-03-05/clippy-nightly-aarch64-pc-windows-msvc.tar.xz": "8d8d6aeee5fb77cc34dbd17b0383bfc0caafb9e0aa8ec83de4e67eaa37fcd216", + "2026-03-05/clippy-nightly-aarch64-unknown-linux-gnu.tar.xz": "1898fffb9dcf71587f313c00312fcc004c28a9dc5749c1c160365db4978bcd1d", + "2026-03-05/clippy-nightly-x86_64-apple-darwin.tar.xz": "d83569864c177e12264036311920a6381dcfd3a47e70f7ea8923186971f127b4", + "2026-03-05/clippy-nightly-x86_64-pc-windows-msvc.tar.xz": "56d5c2a9efb3e91c386651f7f83cfa3668129fb3b0b57b8a0b5f91f5b13f91f4", + "2026-03-05/clippy-nightly-x86_64-unknown-linux-gnu.tar.xz": "3eddd7a1b27f76c716063c70798031dbda74efaacbb4c46978d50a4c10548363", + "2026-03-05/rust-std-nightly-aarch64-apple-darwin.tar.xz": "3f196a0a6277edb274af6ba4a687f665edea031129ddaf0ab1dff1942fa73aab", + "2026-03-05/rust-std-nightly-aarch64-apple-ios-macabi.tar.xz": "7f683dd8b126b1046a46c10ff9098f9d20cd397c99aa0076c7dd2503b546ffb7", + "2026-03-05/rust-std-nightly-aarch64-apple-ios-sim.tar.xz": "8669acdf9d19b1b75af4d27117d44c9b1fb7300442378d229ca4f1ca4e245a00", + "2026-03-05/rust-std-nightly-aarch64-apple-ios.tar.xz": "8465379b44d103f3bf39c21af94e17b62a558656436586f4fee52c11c13bc8e2", + "2026-03-05/rust-std-nightly-aarch64-linux-android.tar.xz": "f432c052a7fc63ca00e4dbc4e858f09267450e7a2143fc0488bc5822d9ed6fc9", + "2026-03-05/rust-std-nightly-aarch64-pc-windows-gnullvm.tar.xz": "9838f2fe86910a6685cd4de544c38cc004b074dacb40244464adece3e653ae75", + "2026-03-05/rust-std-nightly-aarch64-pc-windows-msvc.tar.xz": "e8478c091fc1abdc4a090409039f45bc6cee178a0efd0a1db3d7d8770ca33b39", + "2026-03-05/rust-std-nightly-aarch64-unknown-fuchsia.tar.xz": "753fa1db5afe897e1dc2b2ef09db862357f6af609b499c12bc9694eb6f387699", + "2026-03-05/rust-std-nightly-aarch64-unknown-linux-gnu.tar.xz": "407fbbfe89894868d077ca106a2abf0ea9a912b08306895ae5377f44451ca27e", + "2026-03-05/rust-std-nightly-aarch64-unknown-linux-musl.tar.xz": "f5a23c91a9d000432e46804a3cf8ed8984d55f7ebbb4a01bda8fd8ae96958484", + "2026-03-05/rust-std-nightly-aarch64-unknown-none-softfloat.tar.xz": "dd75bd9f7b306fb33abd7f006c2fd020b154e5aa01cb3cf5e7aa08d4c7595fdb", + "2026-03-05/rust-std-nightly-aarch64-unknown-none.tar.xz": "8150f2f8f419e9c15e8f697b281de90075d24fdf5ff778b48e34eb67ac464b08", + "2026-03-05/rust-std-nightly-aarch64-unknown-uefi.tar.xz": "802a01823e32ec1573dc30cad3c27cf364426fa4df3e78f4dfbda06c4105988e", + "2026-03-05/rust-std-nightly-arm-linux-androideabi.tar.xz": "424d627e4d259a6fd46dfed759235a4d4f135cafabeac5a3ab516d88dba5c96b", + "2026-03-05/rust-std-nightly-arm-unknown-linux-gnueabi.tar.xz": "d9cd9cc23eefd4983a1fea897096c7b867b2add0b9beca5ea26daf11fc05c383", + "2026-03-05/rust-std-nightly-arm-unknown-linux-gnueabihf.tar.xz": "21aa148405434be19d092847749bcad8f76dfea8ef42860507a402968509bbb8", + "2026-03-05/rust-std-nightly-arm-unknown-linux-musleabi.tar.xz": "46704104f9ba98af9f5979231ab1f647cd6eb6fa5776dbe7080275ff92bfe958", + "2026-03-05/rust-std-nightly-arm-unknown-linux-musleabihf.tar.xz": "c7c4b46ee6a6abf1ced377a476a4fb0a15256b210ded90d24746486e03557a19", + "2026-03-05/rust-std-nightly-armv7-linux-androideabi.tar.xz": "9b1a51b5f98bdc4da860088ace36d26d1418bf0b6351fe71e1e75db22e5e2fbb", + "2026-03-05/rust-std-nightly-armv7-unknown-linux-gnueabi.tar.xz": "7ba2df1a07b50c977fe78f9a0f10865fbb237f6de5456bdc4e4c1a74e3b33613", + "2026-03-05/rust-std-nightly-armv7-unknown-linux-gnueabihf.tar.xz": "fa593f8353a25d4af966ac036316b7fd3309776960b8bcac336ac5c32ccf1c34", + "2026-03-05/rust-std-nightly-armv7-unknown-linux-musleabi.tar.xz": "83c8317c58b86c9e6146e9f2fccd4b8c57ccbb3fad25730e16468ea0d5e50693", + "2026-03-05/rust-std-nightly-armv7-unknown-linux-musleabihf.tar.xz": "773ba96c2e688099da2a0eb9b26431ed2156e8ecf8be04986ce0674b5ba92768", + "2026-03-05/rust-std-nightly-i686-linux-android.tar.xz": "bef86f35175adfc4ee8322f8760a9a152b12720edb1f0991cb84916d39641848", + "2026-03-05/rust-std-nightly-i686-pc-windows-gnu.tar.xz": "f6bcf28e7eb9b67cad2677548c824e4db230b7664397a2a5cbc18845c9420ccc", + "2026-03-05/rust-std-nightly-i686-pc-windows-gnullvm.tar.xz": "b0e3367157f9ce4e7b156fc9251b68960084cda9a5db68084cfc088811c83059", + "2026-03-05/rust-std-nightly-i686-pc-windows-msvc.tar.xz": "acd0194a21247177214cbbf6c0ea453a08fd870ef001d6bb81ee25fe1886d3de", + "2026-03-05/rust-std-nightly-i686-unknown-freebsd.tar.xz": "a824863504b92222cc9f653c0191dee5d1115508e842e0063e55d989fa13fb57", + "2026-03-05/rust-std-nightly-i686-unknown-linux-gnu.tar.xz": "337440cf1c673b63a464fc77dbbcb9538167fe6e751d5e62ac9dd83fc74852b3", + "2026-03-05/rust-std-nightly-i686-unknown-linux-musl.tar.xz": "611ce9281b020af685c40f0a01fbd6ecc7b16dc24f0694d9ecc1d7474c22d3d4", + "2026-03-05/rust-std-nightly-i686-unknown-uefi.tar.xz": "24ec23d99869e72c0576757050e2a9daee61e53257de31eb0c9abc545502a7ee", + "2026-03-05/rust-std-nightly-powerpc-unknown-linux-gnu.tar.xz": "f8808b16e240777df3c43248d0f549f1d05aa98ef74e0cf2a5849df88c9d4e86", + "2026-03-05/rust-std-nightly-powerpc64-unknown-linux-gnu.tar.xz": "83dac9b81ed9da51f591a2bd3c9dc61fd341a0c485254102c148b93094ba22a0", + "2026-03-05/rust-std-nightly-powerpc64le-unknown-linux-gnu.tar.xz": "21aa08fa0ae4e02f0377794665c0c4f56a4155e21e1262891fe2fc9fdc658241", + "2026-03-05/rust-std-nightly-powerpc64le-unknown-linux-musl.tar.xz": "ca55c5a13f32762d4a2f5463b190bb27d30395a299caf6374e1416155b1ab8e3", + "2026-03-05/rust-std-nightly-riscv32imc-unknown-none-elf.tar.xz": "c37b190de372b4f2a582c5d2306b8f4a07a22a10d387543e6a03b7aa07d21f5f", + "2026-03-05/rust-std-nightly-riscv64gc-unknown-linux-gnu.tar.xz": "60c9b2588ff33c2bb770a77e153b487064a36c879b671124277c37e98b325729", + "2026-03-05/rust-std-nightly-riscv64gc-unknown-linux-musl.tar.xz": "24b097d6244a21947d4d40d1f409ac2e857b48a350b4dcb6123315d859b277f5", + "2026-03-05/rust-std-nightly-riscv64gc-unknown-none-elf.tar.xz": "1bdc4df143920262ec717a09c574e130179da807ae561444720a7748eae3570d", + "2026-03-05/rust-std-nightly-s390x-unknown-linux-gnu.tar.xz": "154ba57473b4f68e74638babc3f090a66f91d46225536ce97f718c742fe6e78c", + "2026-03-05/rust-std-nightly-thumbv6m-none-eabi.tar.xz": "86fba3a01d12e40131c875e864c2d86ea31852b50676442fd3d8ac3b50d9dcc2", + "2026-03-05/rust-std-nightly-thumbv7em-none-eabi.tar.xz": "f3d13452cac9b63eaa920160c6ff3d8c2f463935f0c6620d7ab64241032b8d29", + "2026-03-05/rust-std-nightly-thumbv7em-none-eabihf.tar.xz": "df01ab8d93f86009022efcd0e46052f4aa99eea539256c5e81660c43532dea54", + "2026-03-05/rust-std-nightly-thumbv7m-none-eabi.tar.xz": "e7503fa378ce421699c777f6154fafa3d91f76eb7b38d41b95c7c32278e481d9", + "2026-03-05/rust-std-nightly-thumbv8m.main-none-eabi.tar.xz": "5763af1f833720b99aa879afccbda0629926f1d602de80fa73df17f900e78dfb", + "2026-03-05/rust-std-nightly-thumbv8m.main-none-eabihf.tar.xz": "0e7f1fc7936fa1f9179f647192995a4f0ce10b1f3540d1c2dc21a5d0241f49b9", + "2026-03-05/rust-std-nightly-wasm32-unknown-emscripten.tar.xz": "d0183c248bc8d34b152aff3dc87094fd8b033ae5151769956d6ffb9d631a26ab", + "2026-03-05/rust-std-nightly-wasm32-unknown-unknown.tar.xz": "4c35cb12b5cc3cd8c9e4dadfb9e86362f04155e36a7f59d9cb4acd511ecc7865", + "2026-03-05/rust-std-nightly-wasm32-wasip1-threads.tar.xz": "373a8c5cc19b1d1886e07e4b3d168eb8081782fbf6fd4c129ccc3523faf64bc9", + "2026-03-05/rust-std-nightly-wasm32-wasip1.tar.xz": "bc52206d6d4cd5ae41e052d1c6e67bdfc0b3895bcadf69a2d82c0a2a188db4a6", + "2026-03-05/rust-std-nightly-wasm32-wasip2.tar.xz": "99f26214cb1ce69f10c40856a0ab3d1434bf0165fdd7b12fb68ffb11d1970b56", + "2026-03-05/rust-std-nightly-x86_64-apple-darwin.tar.xz": "b5d8493e03b8db590a4dd09fe3c2c32c18fda4171952d690daf936b92a66f30a", + "2026-03-05/rust-std-nightly-x86_64-apple-ios-macabi.tar.xz": "f0e67abc0b233ab40c71318678a7875954d8627fd35aab8c3bfd268e99d6a311", + "2026-03-05/rust-std-nightly-x86_64-apple-ios.tar.xz": "ae1c8daf073bb9760ebf708b382311bc6baa9b1944c2aeafeefc75baac85ca61", + "2026-03-05/rust-std-nightly-x86_64-linux-android.tar.xz": "e65ebc52a0ff37d0f56159ccf3aff396e8dbd3c90aec23b2a1dc79456e7d7c44", + "2026-03-05/rust-std-nightly-x86_64-pc-windows-gnu.tar.xz": "3a6110808ca3af0a532a242780e20f96b75ce999c4808f91bf38daee2e4b3dd9", + "2026-03-05/rust-std-nightly-x86_64-pc-windows-gnullvm.tar.xz": "644c70dc84853001740a708cc47b1676c5ac6827524b0e70e2f075760fb8babd", + "2026-03-05/rust-std-nightly-x86_64-pc-windows-msvc.tar.xz": "d79752d0f8d89e3ad6f8f35cc7afe090799a85b24ac31c57ad41aa2a650ef0ec", + "2026-03-05/rust-std-nightly-x86_64-unknown-freebsd.tar.xz": "4710cc454c306887c14cba9f20985ca62d1b30359d5795817cb4f5da501771b2", + "2026-03-05/rust-std-nightly-x86_64-unknown-fuchsia.tar.xz": "db98d094b2d3d55e74e3dde9794b6967230779a0eba068bb0f0fe0f950e5bd9a", + "2026-03-05/rust-std-nightly-x86_64-unknown-linux-gnu.tar.xz": "0a537c99b4863d67b72b1b74206fcaa3c888f71e59d3aa04c74bd6ae86a4da41", + "2026-03-05/rust-std-nightly-x86_64-unknown-linux-musl.tar.xz": "64f74967d39c6538d6532ddb65256182d20d5943851c14f0f6397eb39049cf9e", + "2026-03-05/rust-std-nightly-x86_64-unknown-netbsd.tar.xz": "4b629e5b38826cdc67c256a391ebb3c6590d063a4cbe855f7b244252e88289db", + "2026-03-05/rust-std-nightly-x86_64-unknown-none.tar.xz": "f54331b603426ce0a76d3805d0666a46ceb85d0b3287f6e482d65f41cc833172", + "2026-03-05/rust-std-nightly-x86_64-unknown-uefi.tar.xz": "34c387de946710e27f85d089acf6347690c9e5e4f4a51428406dec2fb3b452bc", + "2026-03-05/rustc-dev-nightly-aarch64-apple-darwin.tar.xz": "1c59a102aedf2050e0ad3b71281432ff6a7d61b4db959f088e35e6816bdcd756", + "2026-03-05/rustc-dev-nightly-aarch64-pc-windows-msvc.tar.xz": "c53583f8511bfa4bbebe00ccf280109b7538b0f5015654240cdcd32e8c8201db", + "2026-03-05/rustc-dev-nightly-aarch64-unknown-linux-gnu.tar.xz": "e330d55f45785b99476e63e2301d740c56efe0a02834ce25e6d936cd9a68da71", + "2026-03-05/rustc-dev-nightly-x86_64-apple-darwin.tar.xz": "fd7e0002afc3a8ed24dcc57078c31b4190bf71e01e78f84a700d9fef52f45a84", + "2026-03-05/rustc-dev-nightly-x86_64-pc-windows-msvc.tar.xz": "46a621dc6334199e1be64c6724a281519b58469147cce8623062a6c520c57567", + "2026-03-05/rustc-dev-nightly-x86_64-unknown-linux-gnu.tar.xz": "fb03eae9d56dad6698a15d8f2cc0a98df670244504b8b83fcab9a11a0cff087f", + "2026-03-05/rustc-nightly-aarch64-apple-darwin.tar.xz": "d52a4f380fe5fe17c361f39f913062cf9d8498cb8a8f3d9f21a4280564b87123", + "2026-03-05/rustc-nightly-aarch64-pc-windows-msvc.tar.xz": "4e7a34abffe1eb6e7119c43d4a79893abcac38c4090b2175d24c3d9156f71dc1", + "2026-03-05/rustc-nightly-aarch64-unknown-linux-gnu.tar.xz": "88bcbec30877561aecb88ad475e96783c99cc525dbcaaecbb321c158c32cfc62", + "2026-03-05/rustc-nightly-x86_64-apple-darwin.tar.xz": "7ac7a15dfbacf5a79ff0f1b596828f178327df77883d7a4af76b7abdcde4cd9d", + "2026-03-05/rustc-nightly-x86_64-pc-windows-msvc.tar.xz": "f314218a65ce441498b988c29ab8f8f79d65d3c4184d4d99fb483b6f887f1505", + "2026-03-05/rustc-nightly-x86_64-unknown-linux-gnu.tar.xz": "cda6cb941296a57229610ad32fa48c3df8408e8dddafad621f9f3e663e3b9868", "cargo-1.92.0-aarch64-apple-darwin.tar.xz": "bce6e7def37240c5a63115828017a9fc0ebcb31e64115382f5943b62b71aa34a", "cargo-1.92.0-aarch64-pc-windows-msvc.tar.xz": "3fc47cc29781190c5075f807836c4b98d411aaf27c59598fbfb2aa781ccf6190", "cargo-1.92.0-aarch64-unknown-linux-gnu.tar.xz": "cb2ce6be6411b986e25c71ad8a813f9dfbe3461738136fd684e3644f8dd75df4", diff --git a/test/dylint-driver-bazel-env.patch b/test/dylint-driver-bazel-env.patch new file mode 100644 index 0000000..22f4416 --- /dev/null +++ b/test/dylint-driver-bazel-env.patch @@ -0,0 +1,28 @@ +diff --git a/driver/build/extra_symbols.rs b/driver/build/extra_symbols.rs +--- a/driver/build/extra_symbols.rs ++++ b/driver/build/extra_symbols.rs +@@ -26,7 +26,8 @@ + // smoelius: `CARGO_MANIFEST_DIR` is the directory of the `dylint_driver` library, not the + // Dylint driver being built. We cannot easily access the Dylint driver's rust-toolchain file, + // so we use the `RUSTUP_TOOLCHAIN` environment variable instead. +- let rustup_toolchain = env::var(env::RUSTUP_TOOLCHAIN)?; ++ let rustup_toolchain = env::var(env::RUSTUP_TOOLCHAIN) ++ .or_else(|_| env::var(env::TARGET).map(|target| format!("nightly-{target}")))?; + let Some(channel) = clippy_utils_has_extra_symbols(&rustup_toolchain)? else { + write(&path_buf, "const EXTRA_SYMBOLS: &[&str] = &[];") + .with_context(|| format!("`write` failed for `{}`", path_buf.display()))?; +diff --git a/driver/src/lib.rs b/driver/src/lib.rs +--- a/driver/src/lib.rs ++++ b/driver/src/lib.rs +@@ -398,7 +398,11 @@ + + pub fn dylint_driver>(args: &[T]) -> Result<()> { + if args.len() <= 1 || args.iter().any(|arg| arg.as_ref() == "-V") { +- println!("{} {}", env!("RUSTUP_TOOLCHAIN"), env!("CARGO_PKG_VERSION")); ++ println!( ++ "{} {}", ++ option_env!("RUSTUP_TOOLCHAIN").unwrap_or("nightly"), ++ env!("CARGO_PKG_VERSION"), ++ ); + return Ok(()); + } diff --git a/test/dylint-internal-rustc-env.patch b/test/dylint-internal-rustc-env.patch new file mode 100644 index 0000000..c334332 --- /dev/null +++ b/test/dylint-internal-rustc-env.patch @@ -0,0 +1,17 @@ +--- a/internal/build.rs ++++ b/internal/build.rs +@@ -1,4 +1,4 @@ +-use std::process::{Command, Stdio}; ++use std::{env, ffi::OsString, process::{Command, Stdio}}; + + fn main() { + if is_nightly() { +@@ -12,7 +12,7 @@ + } + + fn is_nightly() -> bool { +- Command::new("rustc") ++ Command::new(env::var_os("RUSTC").unwrap_or_else(|| OsString::from("rustc"))) + .args(["-Z", "help"]) + .stderr(Stdio::null()) + .status() diff --git a/test/dylint/BUILD.bazel b/test/dylint/BUILD.bazel new file mode 100644 index 0000000..4fd8fe6 --- /dev/null +++ b/test/dylint/BUILD.bazel @@ -0,0 +1,103 @@ +load("@rules_rs//rs:dylint.bzl", "dylint_config", "dylint_library", "dylint_toolchain", "rust_dylint") +load("@rules_rs//rs:rust_binary.bzl", "rust_binary") +load("@rules_rs//rs:rust_library.bzl", "rust_library") +load("@rules_rs//rs:rust_shared_library.bzl", "rust_shared_library") +load("@rules_shell//shell:sh_test.bzl", "sh_test") + +package(default_visibility = ["//visibility:public"]) + +rust_binary( + name = "dylint_driver", + srcs = ["driver.rs"], + edition = "2024", + tags = ["manual"], + deps = [ + "@dylint//:anyhow", + "@dylint//:dylint_driver", + "@dylint//:env_logger", + ], +) + +dylint_toolchain( + name = "dylint_toolchain", + driver = ":dylint_driver", + toolchain_family = "nightly_rust_toolchains", +) + +rust_shared_library( + name = "alpha_policy_impl", + srcs = ["alpha_policy.rs"], + crate_name = "alpha_policy", + edition = "2024", + tags = ["manual"], + deps = ["@dylint//:dylint_linting"], +) + +dylint_library( + name = "alpha_policy", + library = ":alpha_policy_impl", +) + +rust_shared_library( + name = "beta_policy_impl", + srcs = ["beta_policy.rs"], + crate_name = "beta_policy", + edition = "2024", + tags = ["manual"], + deps = ["@dylint//:dylint_linting"], +) + +dylint_library( + name = "beta_policy", + library = ":beta_policy_impl", +) + +dylint_config( + name = "alpha_lints", + config = "dylint.toml", + libraries = [":alpha_policy"], +) + +dylint_config( + name = "beta_lints", + libraries = [":beta_policy"], +) + +rust_library( + name = "alpha_component", + srcs = ["component.rs"], + edition = "2024", + lint_config = ":alpha_lints", +) + +rust_library( + name = "beta_component", + srcs = ["component.rs"], + edition = "2024", + lint_config = ":beta_lints", +) + +rust_dylint( + name = "alpha_component_dylint", + toolchain_family = "nightly_rust_toolchains", + deps = [":alpha_component"], +) + +rust_dylint( + name = "beta_component_dylint", + toolchain_family = "nightly_rust_toolchains", + deps = [":beta_component"], +) + +sh_test( + name = "verify_target_local_dylint_configs", + srcs = ["verify_target_local_dylint_configs.sh"], + args = [ + "$(location :alpha_component_dylint)", + "$(location :beta_component_dylint)", + ], + data = [ + ":alpha_component_dylint", + ":beta_component_dylint", + ], +) diff --git a/test/dylint/Cargo.lock b/test/dylint/Cargo.lock new file mode 100644 index 0000000..84c1426 --- /dev/null +++ b/test/dylint/Cargo.lock @@ -0,0 +1,1362 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "aho-corasick" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" +dependencies = [ + "memchr", +] + +[[package]] +name = "anstream" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" + +[[package]] +name = "anstyle-parse" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" +dependencies = [ + "anstyle", + "once_cell_polyfill", + "windows-sys 0.61.2", +] + +[[package]] +name = "anyhow" +version = "1.0.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" + +[[package]] +name = "bitflags" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3" + +[[package]] +name = "camino" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e629a66d692cb9ff1a1c664e41771b3dcaf961985a9774c0eb0bd1b51cf60a48" +dependencies = [ + "serde_core", +] + +[[package]] +name = "cargo-platform" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87a0c0e6148f11f01f32650a2ea02d532b2ad4e81d8bd41e6e565b5adc5e6082" +dependencies = [ + "serde", + "serde_core", +] + +[[package]] +name = "cargo_metadata" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef987d17b0a113becdd19d3d0022d04d7ef41f9efe4f3fb63ac44ba61df3ade9" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "cc" +version = "1.2.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d16d90359e986641506914ba71350897565610e87ce0ad9e6f28569db3dd5c6d" +dependencies = [ + "find-msvc-tools", + "jobserver", + "libc", + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "colorchoice" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" + +[[package]] +name = "curl" +version = "0.4.49" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79fc3b6dd0b87ba36e565715bf9a2ced221311db47bd18011676f24a6066edbc" +dependencies = [ + "curl-sys", + "libc", + "openssl-probe", + "openssl-sys", + "schannel", + "socket2", + "windows-sys 0.59.0", +] + +[[package]] +name = "curl-sys" +version = "0.4.88+curl-8.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "644816de6547255eff4e491a1dda1c19b7237f00b62a61e6e64859ce4f2906d0" +dependencies = [ + "cc", + "libc", + "libz-sys", + "openssl-sys", + "pkg-config", + "vcpkg", + "windows-sys 0.61.2", +] + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "dylint_demo" +version = "0.1.0" +dependencies = [ + "anyhow", + "dylint_driver", + "dylint_linting", + "env_logger", +] + +[[package]] +name = "dylint_driver" +version = "5.0.0" +source = "git+https://github.com/trailofbits/dylint?rev=1d7211228764dc18f73e41de5fc6d30c9e0de7b6#1d7211228764dc18f73e41de5fc6d30c9e0de7b6" +dependencies = [ + "anyhow", + "curl", + "dylint_internal", + "git2", + "libc", + "libloading", + "log", + "proc-macro2", + "rustversion", + "serde_json", + "syn", +] + +[[package]] +name = "dylint_internal" +version = "5.0.0" +source = "git+https://github.com/trailofbits/dylint?rev=1d7211228764dc18f73e41de5fc6d30c9e0de7b6#1d7211228764dc18f73e41de5fc6d30c9e0de7b6" +dependencies = [ + "anyhow", + "cargo_metadata", + "git2", + "log", + "regex", + "semver", + "serde", + "tempfile", + "thiserror", + "toml", + "toml_edit", +] + +[[package]] +name = "dylint_linting" +version = "5.0.0" +source = "git+https://github.com/trailofbits/dylint?rev=1d7211228764dc18f73e41de5fc6d30c9e0de7b6#1d7211228764dc18f73e41de5fc6d30c9e0de7b6" +dependencies = [ + "cargo_metadata", + "dylint_internal", + "paste", + "rustversion", + "serde", + "thiserror", + "toml", +] + +[[package]] +name = "env_filter" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e90c2accc4b07a8456ea0debdc2e7587bdd890680d71173a15d4ae604f6eef" +dependencies = [ + "log", + "regex", +] + +[[package]] +name = "env_logger" +version = "0.11.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0621c04f2196ac3f488dd583365b9c09be011a4ab8b9f37248ffcc8f6198b56a" +dependencies = [ + "anstream", + "anstyle", + "env_filter", + "jiff", + "log", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "fastrand" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" + +[[package]] +name = "find-msvc-tools" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" + +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + +[[package]] +name = "form_urlencoded" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "getrandom" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if", + "libc", + "r-efi 5.3.0", + "wasip2", +] + +[[package]] +name = "getrandom" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" +dependencies = [ + "cfg-if", + "libc", + "r-efi 6.0.0", + "wasip2", + "wasip3", +] + +[[package]] +name = "git2" +version = "0.20.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b88256088d75a56f8ecfa070513a775dd9107f6530ef14919dac831af9cfe2b" +dependencies = [ + "bitflags", + "libc", + "libgit2-sys", + "log", + "openssl-probe", + "openssl-sys", + "url", +] + +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "foldhash", +] + +[[package]] +name = "hashbrown" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f467dd6dccf739c208452f8014c75c18bb8301b050ad1cfb27153803edb0f51" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "icu_collections" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c" +dependencies = [ + "displaydoc", + "potential_utf", + "utf8_iter", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4" +dependencies = [ + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38" + +[[package]] +name = "icu_properties" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de" +dependencies = [ + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14" + +[[package]] +name = "icu_provider" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" +dependencies = [ + "displaydoc", + "icu_locale_core", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + +[[package]] +name = "id-arena" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" + +[[package]] +name = "idna" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "indexmap" +version = "2.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" +dependencies = [ + "equivalent", + "hashbrown 0.17.0", + "serde", + "serde_core", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "jiff" +version = "0.2.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f00b5dbd620d61dfdcb6007c9c1f6054ebd75319f163d886a9055cec1155073d" +dependencies = [ + "jiff-static", + "log", + "portable-atomic", + "portable-atomic-util", + "serde_core", +] + +[[package]] +name = "jiff-static" +version = "0.2.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e000de030ff8022ea1da3f466fbb0f3a809f5e51ed31f6dd931c35181ad8e6d7" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "jobserver" +version = "0.1.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" +dependencies = [ + "getrandom 0.3.4", + "libc", +] + +[[package]] +name = "leb128fmt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" + +[[package]] +name = "libc" +version = "0.2.186" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" + +[[package]] +name = "libgit2-sys" +version = "0.18.3+1.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9b3acc4b91781bb0b3386669d325163746af5f6e4f73e6d2d630e09a35f3487" +dependencies = [ + "cc", + "libc", + "libssh2-sys", + "libz-sys", + "openssl-sys", + "pkg-config", +] + +[[package]] +name = "libloading" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "754ca22de805bb5744484a5b151a9e1a8e837d5dc232c2d7d8c2e3492edc8b60" +dependencies = [ + "cfg-if", + "windows-link", +] + +[[package]] +name = "libssh2-sys" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "220e4f05ad4a218192533b300327f5150e809b54c4ec83b5a1d91833601811b9" +dependencies = [ + "cc", + "libc", + "libz-sys", + "openssl-sys", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "libz-sys" +version = "1.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc3a226e576f50782b3305c5ccf458698f92798987f551c6a02efe8276721e22" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "linux-raw-sys" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" + +[[package]] +name = "litemap" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" + +[[package]] +name = "log" +version = "0.4.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" + +[[package]] +name = "memchr" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" + +[[package]] +name = "once_cell" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + +[[package]] +name = "once_cell_polyfill" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" + +[[package]] +name = "openssl-probe" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" + +[[package]] +name = "openssl-sys" +version = "0.9.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13ce1245cd07fcc4cfdb438f7507b0c7e4f3849a69fd84d52374c66d83741bb6" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "pkg-config" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" + +[[package]] +name = "portable-atomic" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" + +[[package]] +name = "portable-atomic-util" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618" +dependencies = [ + "portable-atomic", +] + +[[package]] +name = "potential_utf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" +dependencies = [ + "zerovec", +] + +[[package]] +name = "prettyplease" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +dependencies = [ + "proc-macro2", + "syn", +] + +[[package]] +name = "proc-macro2" +version = "1.0.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + +[[package]] +name = "regex" +version = "1.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" + +[[package]] +name = "rustix" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + +[[package]] +name = "schannel" +version = "0.1.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "semver" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" +dependencies = [ + "serde", + "serde_core", +] + +[[package]] +name = "serde" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.149" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_spanned" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" +dependencies = [ + "serde_core", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" + +[[package]] +name = "socket2" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" + +[[package]] +name = "syn" +version = "2.0.117" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "synstructure" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tempfile" +version = "3.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" +dependencies = [ + "fastrand", + "getrandom 0.4.2", + "once_cell", + "rustix", + "windows-sys 0.61.2", +] + +[[package]] +name = "thiserror" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tinystr" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "toml" +version = "1.1.2+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81f3d15e84cbcd896376e6730314d59fb5a87f31e4b038454184435cd57defee" +dependencies = [ + "indexmap", + "serde_core", + "serde_spanned", + "toml_datetime", + "toml_parser", + "toml_writer", + "winnow", +] + +[[package]] +name = "toml_datetime" +version = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.25.11+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b" +dependencies = [ + "indexmap", + "toml_datetime", + "toml_parser", + "toml_writer", + "winnow", +] + +[[package]] +name = "toml_parser" +version = "1.1.2+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" +dependencies = [ + "winnow", +] + +[[package]] +name = "toml_writer" +version = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db" + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "url" +version = "2.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "wasip2" +version = "1.0.3+wasi-0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6" +dependencies = [ + "wit-bindgen 0.57.1", +] + +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +dependencies = [ + "wit-bindgen 0.51.0", +] + +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser", +] + +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap", + "wasm-encoder", + "wasmparser", +] + +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags", + "hashbrown 0.15.5", + "indexmap", + "semver", +] + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ee1708bef14716a11bae175f579062d4554d95be2c6829f518df847b7b3fdd0" +dependencies = [ + "memchr", +] + +[[package]] +name = "wit-bindgen" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +dependencies = [ + "wit-bindgen-rust-macro", +] + +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck", + "wit-parser", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck", + "indexmap", + "prettyplease", + "syn", + "wasm-metadata", + "wit-bindgen-core", + "wit-component", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn", + "wit-bindgen-core", + "wit-bindgen-rust", +] + +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags", + "indexmap", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder", + "wasm-metadata", + "wasmparser", + "wit-parser", +] + +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser", +] + +[[package]] +name = "writeable" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" + +[[package]] +name = "yoke" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abe8c5fda708d9ca3df187cae8bfb9ceda00dd96231bed36e445a1a48e66f9ca" +dependencies = [ + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zerofrom" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69faa1f2a1ea75661980b013019ed6687ed0e83d069bc1114e2cc74c6c04c4df" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zerotrie" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zmij" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" diff --git a/test/dylint/Cargo.toml b/test/dylint/Cargo.toml new file mode 100644 index 0000000..c044365 --- /dev/null +++ b/test/dylint/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "dylint_demo" +version = "0.1.0" +edition = "2024" +publish = false + +[dependencies] +anyhow = "1.0" +env_logger = "0.11" +dylint_driver = { git = "https://github.com/trailofbits/dylint", rev = "1d7211228764dc18f73e41de5fc6d30c9e0de7b6" } +dylint_linting = { git = "https://github.com/trailofbits/dylint", rev = "1d7211228764dc18f73e41de5fc6d30c9e0de7b6" } diff --git a/test/dylint/README.md b/test/dylint/README.md new file mode 100644 index 0000000..c255c48 --- /dev/null +++ b/test/dylint/README.md @@ -0,0 +1,22 @@ +# Dylint integration example + +This package demonstrates two Rust targets in one Bazel workspace selecting different +custom Dylint libraries through their ordinary `lint_config` attribute: + +- `:alpha_component` loads only `:alpha_policy` +- `:beta_component` loads only `:beta_policy` + +The alpha config uses an explicit `dylint.toml`; the beta config omits one, which +exercises the runner's empty-config fallback instead of allowing Cargo workspace +discovery. + +The small patches registered from `test/MODULE.bazel` only adapt upstream Dylint +crates to Bazel's non-`rustup` build-script environment; the lint behavior under test +is unchanged. + +Run the example directly; `rust_dylint` moves only the checked lint subtree onto +the named nightly toolchain family: + +```bash +bazel test //dylint:verify_target_local_dylint_configs +``` diff --git a/test/dylint/alpha_policy.rs b/test/dylint/alpha_policy.rs new file mode 100644 index 0000000..d4a3de1 --- /dev/null +++ b/test/dylint/alpha_policy.rs @@ -0,0 +1,27 @@ +#![feature(rustc_private)] + +extern crate rustc_hir; + +use rustc_hir::{Item, ItemKind}; +use rustc_lint::{LateContext, LateLintPass, LintContext}; + +dylint_linting::declare_late_lint! { + pub ALPHA_ONLY_API, + Warn, + "alpha-only API should not be used outside project alpha" +} + +impl<'tcx> LateLintPass<'tcx> for AlphaOnlyApi { + fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx Item<'tcx>) { + if matches!(item.kind, ItemKind::Fn { .. }) + && cx.tcx.item_name(item.owner_id.def_id.to_def_id()).as_str() == "alpha_only" + { + cx.span_lint(ALPHA_ONLY_API, item.span, |diag| { + diag.span_label( + item.span, + "alpha-only API should not be used outside project alpha", + ); + }); + } + } +} diff --git a/test/dylint/beta_policy.rs b/test/dylint/beta_policy.rs new file mode 100644 index 0000000..eaa3a7d --- /dev/null +++ b/test/dylint/beta_policy.rs @@ -0,0 +1,27 @@ +#![feature(rustc_private)] + +extern crate rustc_hir; + +use rustc_hir::{Item, ItemKind}; +use rustc_lint::{LateContext, LateLintPass, LintContext}; + +dylint_linting::declare_late_lint! { + pub BETA_ONLY_API, + Warn, + "beta-only API should not be used outside project beta" +} + +impl<'tcx> LateLintPass<'tcx> for BetaOnlyApi { + fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx Item<'tcx>) { + if matches!(item.kind, ItemKind::Fn { .. }) + && cx.tcx.item_name(item.owner_id.def_id.to_def_id()).as_str() == "beta_only" + { + cx.span_lint(BETA_ONLY_API, item.span, |diag| { + diag.span_label( + item.span, + "beta-only API should not be used outside project beta", + ); + }); + } + } +} diff --git a/test/dylint/component.rs b/test/dylint/component.rs new file mode 100644 index 0000000..f0dd2b2 --- /dev/null +++ b/test/dylint/component.rs @@ -0,0 +1,3 @@ +pub fn alpha_only() {} + +pub fn beta_only() {} diff --git a/test/dylint/driver.rs b/test/dylint/driver.rs new file mode 100644 index 0000000..8180e62 --- /dev/null +++ b/test/dylint/driver.rs @@ -0,0 +1,10 @@ +#![feature(rustc_private)] + +use anyhow::Result; +use std::env; + +fn main() -> Result<()> { + env_logger::init(); + let args: Vec<_> = env::args_os().collect(); + dylint_driver::dylint_driver(&args) +} diff --git a/test/dylint/dylint.toml b/test/dylint/dylint.toml new file mode 100644 index 0000000..364fc5a --- /dev/null +++ b/test/dylint/dylint.toml @@ -0,0 +1,2 @@ +# Intentionally empty: this keeps the example hermetic while exercising the +# target-local `DYLINT_TOML` path instead of Dylint's Cargo workspace discovery. diff --git a/test/dylint/src/lib.rs b/test/dylint/src/lib.rs new file mode 100644 index 0000000..2974ff8 --- /dev/null +++ b/test/dylint/src/lib.rs @@ -0,0 +1 @@ +//! Cargo anchor crate for the Dylint integration test dependency graph. diff --git a/test/dylint/verify_target_local_dylint_configs.sh b/test/dylint/verify_target_local_dylint_configs.sh new file mode 100755 index 0000000..4720fe2 --- /dev/null +++ b/test/dylint/verify_target_local_dylint_configs.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +set -euo pipefail + +alpha_output="$1" +beta_output="$2" + +grep -q "alpha-only API should not be used outside project alpha" "${alpha_output}" +! grep -q "beta-only API should not be used outside project beta" "${alpha_output}" + +grep -q "beta-only API should not be used outside project beta" "${beta_output}" +! grep -q "alpha-only API should not be used outside project alpha" "${beta_output}"