summaryrefslogtreecommitdiffstats
path: root/src/tools/rust-analyzer/crates/project-model
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-30 03:57:31 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-30 03:57:31 +0000
commitdc0db358abe19481e475e10c32149b53370f1a1c (patch)
treeab8ce99c4b255ce46f99ef402c27916055b899ee /src/tools/rust-analyzer/crates/project-model
parentReleasing progress-linux version 1.71.1+dfsg1-2~progress7.99u1. (diff)
downloadrustc-dc0db358abe19481e475e10c32149b53370f1a1c.tar.xz
rustc-dc0db358abe19481e475e10c32149b53370f1a1c.zip
Merging upstream version 1.72.1+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/tools/rust-analyzer/crates/project-model')
-rw-r--r--src/tools/rust-analyzer/crates/project-model/Cargo.toml6
-rw-r--r--src/tools/rust-analyzer/crates/project-model/src/build_scripts.rs29
-rw-r--r--src/tools/rust-analyzer/crates/project-model/src/cargo_workspace.rs92
-rw-r--r--src/tools/rust-analyzer/crates/project-model/src/cfg_flag.rs8
-rw-r--r--src/tools/rust-analyzer/crates/project-model/src/lib.rs2
-rw-r--r--src/tools/rust-analyzer/crates/project-model/src/manifest_path.rs4
-rw-r--r--src/tools/rust-analyzer/crates/project-model/src/project_json.rs39
-rw-r--r--src/tools/rust-analyzer/crates/project-model/src/sysroot.rs64
-rw-r--r--src/tools/rust-analyzer/crates/project-model/src/target_data_layout.rs2
-rw-r--r--src/tools/rust-analyzer/crates/project-model/src/tests.rs1881
-rw-r--r--src/tools/rust-analyzer/crates/project-model/src/workspace.rs657
-rw-r--r--src/tools/rust-analyzer/crates/project-model/test_data/output/cargo_hello_world_project_model.txt344
-rw-r--r--src/tools/rust-analyzer/crates/project-model/test_data/output/cargo_hello_world_project_model_with_selective_overrides.txt344
-rw-r--r--src/tools/rust-analyzer/crates/project-model/test_data/output/cargo_hello_world_project_model_with_wildcard_overrides.txt340
-rw-r--r--src/tools/rust-analyzer/crates/project-model/test_data/output/rust_project_hello_world_project_model.txt462
-rw-r--r--src/tools/rust-analyzer/crates/project-model/test_data/regex-metadata.json6420
-rw-r--r--src/tools/rust-analyzer/crates/project-model/test_data/ripgrep-metadata.json12816
17 files changed, 21397 insertions, 2113 deletions
diff --git a/src/tools/rust-analyzer/crates/project-model/Cargo.toml b/src/tools/rust-analyzer/crates/project-model/Cargo.toml
index 22d6a6e78..3abff64a8 100644
--- a/src/tools/rust-analyzer/crates/project-model/Cargo.toml
+++ b/src/tools/rust-analyzer/crates/project-model/Cargo.toml
@@ -16,10 +16,12 @@ tracing = "0.1.35"
rustc-hash = "1.1.0"
cargo_metadata = "0.15.0"
semver = "1.0.14"
-serde = { version = "1.0.137", features = ["derive"] }
-serde_json = "1.0.86"
+serde_json.workspace = true
+serde.workspace = true
+triomphe.workspace = true
anyhow = "1.0.62"
la-arena = { version = "0.3.0", path = "../../lib/la-arena" }
+itertools = "0.10.5"
# local deps
base-db.workspace = true
diff --git a/src/tools/rust-analyzer/crates/project-model/src/build_scripts.rs b/src/tools/rust-analyzer/crates/project-model/src/build_scripts.rs
index 4e5d640f1..6cbf403cb 100644
--- a/src/tools/rust-analyzer/crates/project-model/src/build_scripts.rs
+++ b/src/tools/rust-analyzer/crates/project-model/src/build_scripts.rs
@@ -14,9 +14,10 @@ use std::{
};
use cargo_metadata::{camino::Utf8Path, Message};
+use itertools::Itertools;
use la_arena::ArenaMap;
use paths::{AbsPath, AbsPathBuf};
-use rustc_hash::FxHashMap;
+use rustc_hash::{FxHashMap, FxHashSet};
use semver::Version;
use serde::Deserialize;
@@ -56,7 +57,10 @@ impl BuildScriptOutput {
}
impl WorkspaceBuildScripts {
- fn build_command(config: &CargoConfig) -> io::Result<Command> {
+ fn build_command(
+ config: &CargoConfig,
+ allowed_features: &FxHashSet<String>,
+ ) -> io::Result<Command> {
let mut cmd = match config.run_build_script_command.as_deref() {
Some([program, args @ ..]) => {
let mut cmd = Command::new(program);
@@ -88,7 +92,12 @@ impl WorkspaceBuildScripts {
}
if !features.is_empty() {
cmd.arg("--features");
- cmd.arg(features.join(" "));
+ cmd.arg(
+ features
+ .iter()
+ .filter(|&feat| allowed_features.contains(feat))
+ .join(","),
+ );
}
}
}
@@ -127,13 +136,20 @@ impl WorkspaceBuildScripts {
}
.as_ref();
- match Self::run_per_ws(Self::build_command(config)?, workspace, current_dir, progress) {
+ let allowed_features = workspace.workspace_features();
+
+ match Self::run_per_ws(
+ Self::build_command(config, &allowed_features)?,
+ workspace,
+ current_dir,
+ progress,
+ ) {
Ok(WorkspaceBuildScripts { error: Some(error), .. })
if toolchain.as_ref().map_or(false, |it| *it >= RUST_1_62) =>
{
// building build scripts failed, attempt to build with --keep-going so
// that we potentially get more build data
- let mut cmd = Self::build_command(config)?;
+ let mut cmd = Self::build_command(config, &allowed_features)?;
cmd.args(["-Z", "unstable-options", "--keep-going"]).env("RUSTC_BOOTSTRAP", "1");
let mut res = Self::run_per_ws(cmd, workspace, current_dir, progress)?;
res.error = Some(error);
@@ -161,7 +177,7 @@ impl WorkspaceBuildScripts {
))
}
};
- let cmd = Self::build_command(config)?;
+ let cmd = Self::build_command(config, &Default::default())?;
// NB: Cargo.toml could have been modified between `cargo metadata` and
// `cargo check`. We shouldn't assume that package ids we see here are
// exactly those from `config`.
@@ -415,7 +431,6 @@ impl WorkspaceBuildScripts {
let dir_entry = entry.ok()?;
if dir_entry.file_type().ok()?.is_file() {
let path = dir_entry.path();
- tracing::info!("p{:?}", path);
let extension = path.extension()?;
if extension == std::env::consts::DLL_EXTENSION {
let name = path.file_stem()?.to_str()?.split_once('-')?.0.to_owned();
diff --git a/src/tools/rust-analyzer/crates/project-model/src/cargo_workspace.rs b/src/tools/rust-analyzer/crates/project-model/src/cargo_workspace.rs
index 01162b1a8..92b454150 100644
--- a/src/tools/rust-analyzer/crates/project-model/src/cargo_workspace.rs
+++ b/src/tools/rust-analyzer/crates/project-model/src/cargo_workspace.rs
@@ -1,6 +1,5 @@
//! See [`CargoWorkspace`].
-use std::iter;
use std::path::PathBuf;
use std::str::from_utf8;
use std::{ops, process::Command};
@@ -10,7 +9,7 @@ use base_db::Edition;
use cargo_metadata::{CargoOpt, MetadataCommand};
use la_arena::{Arena, Idx};
use paths::{AbsPath, AbsPathBuf};
-use rustc_hash::FxHashMap;
+use rustc_hash::{FxHashMap, FxHashSet};
use serde::Deserialize;
use serde_json::from_value;
@@ -32,6 +31,7 @@ pub struct CargoWorkspace {
packages: Arena<PackageData>,
targets: Arena<TargetData>,
workspace_root: AbsPathBuf,
+ target_directory: AbsPathBuf,
}
impl ops::Index<Package> for CargoWorkspace {
@@ -57,20 +57,6 @@ pub enum RustLibSource {
Discover,
}
-/// Crates to disable `#[cfg(test)]` on.
-#[derive(Clone, Debug, PartialEq, Eq)]
-pub enum UnsetTestCrates {
- None,
- Only(Vec<String>),
- All,
-}
-
-impl Default for UnsetTestCrates {
- fn default() -> Self {
- Self::None
- }
-}
-
#[derive(Clone, Debug, PartialEq, Eq)]
pub enum CargoFeatures {
All,
@@ -99,8 +85,7 @@ pub struct CargoConfig {
pub sysroot_src: Option<AbsPathBuf>,
/// rustc private crate source
pub rustc_source: Option<RustLibSource>,
- /// crates to disable `#[cfg(test)]` on
- pub unset_test_crates: UnsetTestCrates,
+ pub cfg_overrides: CfgOverrides,
/// Invoke `cargo check` through the RUSTC_WRAPPER.
pub wrap_rustc_in_build_scripts: bool,
/// The command to run instead of `cargo check` for building build scripts.
@@ -113,27 +98,6 @@ pub struct CargoConfig {
pub invocation_location: InvocationLocation,
}
-impl CargoConfig {
- pub fn cfg_overrides(&self) -> CfgOverrides {
- match &self.unset_test_crates {
- UnsetTestCrates::None => CfgOverrides::Selective(iter::empty().collect()),
- UnsetTestCrates::Only(unset_test_crates) => CfgOverrides::Selective(
- unset_test_crates
- .iter()
- .cloned()
- .zip(iter::repeat_with(|| {
- cfg::CfgDiff::new(Vec::new(), vec![cfg::CfgAtom::Flag("test".into())])
- .unwrap()
- }))
- .collect(),
- ),
- UnsetTestCrates::All => CfgOverrides::Wildcard(
- cfg::CfgDiff::new(Vec::new(), vec![cfg::CfgAtom::Flag("test".into())]).unwrap(),
- ),
- }
- }
-}
-
pub type Package = Idx<PackageData>;
pub type Target = Idx<TargetData>;
@@ -293,13 +257,29 @@ impl CargoWorkspace {
}
meta.current_dir(current_dir.as_os_str());
+ let mut other_options = vec![];
+ // cargo metadata only supports a subset of flags of what cargo usually accepts, and usually
+ // the only relevant flags for metadata here are unstable ones, so we pass those along
+ // but nothing else
+ let mut extra_args = config.extra_args.iter();
+ while let Some(arg) = extra_args.next() {
+ if arg == "-Z" {
+ if let Some(arg) = extra_args.next() {
+ other_options.push("-Z".to_owned());
+ other_options.push(arg.to_owned());
+ }
+ }
+ }
+
if !targets.is_empty() {
- let other_options: Vec<_> = targets
- .into_iter()
- .flat_map(|target| ["--filter-platform".to_string(), target])
- .collect();
- meta.other_options(other_options);
+ other_options.append(
+ &mut targets
+ .into_iter()
+ .flat_map(|target| ["--filter-platform".to_owned().to_string(), target])
+ .collect(),
+ );
}
+ meta.other_options(other_options);
// FIXME: Fetching metadata is a slow process, as it might require
// calling crates.io. We should be reporting progress here, but it's
@@ -411,7 +391,10 @@ impl CargoWorkspace {
let workspace_root =
AbsPathBuf::assert(PathBuf::from(meta.workspace_root.into_os_string()));
- CargoWorkspace { packages, targets, workspace_root }
+ let target_directory =
+ AbsPathBuf::assert(PathBuf::from(meta.target_directory.into_os_string()));
+
+ CargoWorkspace { packages, targets, workspace_root, target_directory }
}
pub fn packages(&self) -> impl Iterator<Item = Package> + ExactSizeIterator + '_ {
@@ -429,6 +412,10 @@ impl CargoWorkspace {
&self.workspace_root
}
+ pub fn target_directory(&self) -> &AbsPath {
+ &self.target_directory
+ }
+
pub fn package_flag(&self, package: &PackageData) -> String {
if self.is_unique(&package.name) {
package.name.clone()
@@ -467,6 +454,21 @@ impl CargoWorkspace {
None
}
+ /// Returns the union of the features of all member crates in this workspace.
+ pub fn workspace_features(&self) -> FxHashSet<String> {
+ self.packages()
+ .filter_map(|package| {
+ let package = &self[package];
+ if package.is_member {
+ Some(package.features.keys().cloned())
+ } else {
+ None
+ }
+ })
+ .flatten()
+ .collect()
+ }
+
fn is_unique(&self, name: &str) -> bool {
self.packages.iter().filter(|(_, v)| v.name == name).count() == 1
}
diff --git a/src/tools/rust-analyzer/crates/project-model/src/cfg_flag.rs b/src/tools/rust-analyzer/crates/project-model/src/cfg_flag.rs
index c134b78ab..e366d441c 100644
--- a/src/tools/rust-analyzer/crates/project-model/src/cfg_flag.rs
+++ b/src/tools/rust-analyzer/crates/project-model/src/cfg_flag.rs
@@ -49,6 +49,14 @@ impl Extend<CfgFlag> for CfgOptions {
}
}
+impl FromIterator<CfgFlag> for CfgOptions {
+ fn from_iter<T: IntoIterator<Item = CfgFlag>>(iter: T) -> Self {
+ let mut this = CfgOptions::default();
+ this.extend(iter);
+ this
+ }
+}
+
impl fmt::Display for CfgFlag {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
diff --git a/src/tools/rust-analyzer/crates/project-model/src/lib.rs b/src/tools/rust-analyzer/crates/project-model/src/lib.rs
index 70cb71ae3..61acc646f 100644
--- a/src/tools/rust-analyzer/crates/project-model/src/lib.rs
+++ b/src/tools/rust-analyzer/crates/project-model/src/lib.rs
@@ -44,7 +44,7 @@ pub use crate::{
build_scripts::WorkspaceBuildScripts,
cargo_workspace::{
CargoConfig, CargoFeatures, CargoWorkspace, Package, PackageData, PackageDependency,
- RustLibSource, Target, TargetData, TargetKind, UnsetTestCrates,
+ RustLibSource, Target, TargetData, TargetKind,
},
manifest_path::ManifestPath,
project_json::{ProjectJson, ProjectJsonData},
diff --git a/src/tools/rust-analyzer/crates/project-model/src/manifest_path.rs b/src/tools/rust-analyzer/crates/project-model/src/manifest_path.rs
index 980d92d3d..3f60e4dd9 100644
--- a/src/tools/rust-analyzer/crates/project-model/src/manifest_path.rs
+++ b/src/tools/rust-analyzer/crates/project-model/src/manifest_path.rs
@@ -34,6 +34,10 @@ impl ManifestPath {
pub fn parent(&self) -> &AbsPath {
self.file.parent().unwrap()
}
+
+ pub fn canonicalize(&self) -> ! {
+ (&**self).canonicalize()
+ }
}
impl ops::Deref for ManifestPath {
diff --git a/src/tools/rust-analyzer/crates/project-model/src/project_json.rs b/src/tools/rust-analyzer/crates/project-model/src/project_json.rs
index 4b2448e47..80897f747 100644
--- a/src/tools/rust-analyzer/crates/project-model/src/project_json.rs
+++ b/src/tools/rust-analyzer/crates/project-model/src/project_json.rs
@@ -49,12 +49,12 @@
//! user explores them belongs to that extension (it's totally valid to change
//! rust-project.json over time via configuration request!)
-use std::path::PathBuf;
-
use base_db::{CrateDisplayName, CrateId, CrateName, Dependency, Edition};
+use la_arena::RawIdx;
use paths::{AbsPath, AbsPathBuf};
use rustc_hash::FxHashMap;
use serde::{de, Deserialize};
+use std::path::PathBuf;
use crate::cfg_flag::CfgFlag;
@@ -98,26 +98,23 @@ impl ProjectJson {
/// * `data` - The parsed contents of `rust-project.json`, or project json that's passed via
/// configuration.
pub fn new(base: &AbsPath, data: ProjectJsonData) -> ProjectJson {
+ let absolutize_on_base = |p| base.absolutize(p);
ProjectJson {
- sysroot: data.sysroot.map(|it| base.join(it)),
- sysroot_src: data.sysroot_src.map(|it| base.join(it)),
+ sysroot: data.sysroot.map(absolutize_on_base),
+ sysroot_src: data.sysroot_src.map(absolutize_on_base),
project_root: base.to_path_buf(),
crates: data
.crates
.into_iter()
.map(|crate_data| {
- let is_workspace_member = crate_data.is_workspace_member.unwrap_or_else(|| {
- crate_data.root_module.is_relative()
- && !crate_data.root_module.starts_with("..")
- || crate_data.root_module.starts_with(base)
- });
- let root_module = base.join(crate_data.root_module).normalize();
+ let root_module = absolutize_on_base(crate_data.root_module);
+ let is_workspace_member = crate_data
+ .is_workspace_member
+ .unwrap_or_else(|| root_module.starts_with(base));
let (include, exclude) = match crate_data.source {
Some(src) => {
let absolutize = |dirs: Vec<PathBuf>| {
- dirs.into_iter()
- .map(|it| base.join(it).normalize())
- .collect::<Vec<_>>()
+ dirs.into_iter().map(absolutize_on_base).collect::<Vec<_>>()
};
(absolutize(src.include_dirs), absolutize(src.exclude_dirs))
}
@@ -135,7 +132,10 @@ impl ProjectJson {
.deps
.into_iter()
.map(|dep_data| {
- Dependency::new(dep_data.name, CrateId(dep_data.krate as u32))
+ Dependency::new(
+ dep_data.name,
+ CrateId::from_raw(RawIdx::from(dep_data.krate as u32)),
+ )
})
.collect::<Vec<_>>(),
cfg: crate_data.cfg,
@@ -143,7 +143,7 @@ impl ProjectJson {
env: crate_data.env,
proc_macro_dylib_path: crate_data
.proc_macro_dylib_path
- .map(|it| base.join(it)),
+ .map(absolutize_on_base),
is_workspace_member,
include,
exclude,
@@ -151,7 +151,7 @@ impl ProjectJson {
repository: crate_data.repository,
}
})
- .collect::<Vec<_>>(),
+ .collect(),
}
}
@@ -162,7 +162,10 @@ impl ProjectJson {
/// Returns an iterator over the crates in the project.
pub fn crates(&self) -> impl Iterator<Item = (CrateId, &Crate)> + '_ {
- self.crates.iter().enumerate().map(|(idx, krate)| (CrateId(idx as u32), krate))
+ self.crates
+ .iter()
+ .enumerate()
+ .map(|(idx, krate)| (CrateId::from_raw(RawIdx::from(idx as u32)), krate))
}
/// Returns the path to the project's root folder.
@@ -236,7 +239,7 @@ struct CrateSource {
exclude_dirs: Vec<PathBuf>,
}
-fn deserialize_crate_name<'de, D>(de: D) -> Result<CrateName, D::Error>
+fn deserialize_crate_name<'de, D>(de: D) -> std::result::Result<CrateName, D::Error>
where
D: de::Deserializer<'de>,
{
diff --git a/src/tools/rust-analyzer/crates/project-model/src/sysroot.rs b/src/tools/rust-analyzer/crates/project-model/src/sysroot.rs
index 74e41eda7..e3a2de927 100644
--- a/src/tools/rust-analyzer/crates/project-model/src/sysroot.rs
+++ b/src/tools/rust-analyzer/crates/project-model/src/sysroot.rs
@@ -12,13 +12,15 @@ use la_arena::{Arena, Idx};
use paths::{AbsPath, AbsPathBuf};
use rustc_hash::FxHashMap;
-use crate::{utf8_stdout, ManifestPath};
+use crate::{utf8_stdout, CargoConfig, CargoWorkspace, ManifestPath};
#[derive(Debug, Clone, Eq, PartialEq)]
pub struct Sysroot {
root: AbsPathBuf,
src_root: AbsPathBuf,
crates: Arena<SysrootCrateData>,
+ /// Stores the result of `cargo metadata` of the `RA_UNSTABLE_SYSROOT_HACK` workspace.
+ pub hack_cargo_workspace: Option<CargoWorkspace>,
}
pub(crate) type SysrootCrate = Idx<SysrootCrateData>;
@@ -74,6 +76,23 @@ impl Sysroot {
pub fn is_empty(&self) -> bool {
self.crates.is_empty()
}
+
+ pub fn loading_warning(&self) -> Option<String> {
+ if self.by_name("core").is_none() {
+ let var_note = if env::var_os("RUST_SRC_PATH").is_some() {
+ " (`RUST_SRC_PATH` might be incorrect, try unsetting it)"
+ } else {
+ " try running `rustup component add rust-src` to possible fix this"
+ };
+ Some(format!(
+ "could not find libcore in loaded sysroot at `{}`{}",
+ self.src_root.as_path().display(),
+ var_note,
+ ))
+ } else {
+ None
+ }
+ }
}
// FIXME: Expose a builder api as loading the sysroot got way too modular and complicated.
@@ -103,14 +122,36 @@ impl Sysroot {
pub fn with_sysroot_dir(sysroot_dir: AbsPathBuf) -> Result<Sysroot> {
let sysroot_src_dir = discover_sysroot_src_dir(&sysroot_dir).ok_or_else(|| {
- format_err!("can't load standard library from sysroot {}", sysroot_dir.display())
+ format_err!("can't load standard library from sysroot path {}", sysroot_dir.display())
})?;
Ok(Sysroot::load(sysroot_dir, sysroot_src_dir))
}
- pub fn load(sysroot_dir: AbsPathBuf, sysroot_src_dir: AbsPathBuf) -> Sysroot {
- let mut sysroot =
- Sysroot { root: sysroot_dir, src_root: sysroot_src_dir, crates: Arena::default() };
+ pub fn load(sysroot_dir: AbsPathBuf, mut sysroot_src_dir: AbsPathBuf) -> Sysroot {
+ // FIXME: Remove this `hack_cargo_workspace` field completely once we support sysroot dependencies
+ let hack_cargo_workspace = if let Ok(path) = std::env::var("RA_UNSTABLE_SYSROOT_HACK") {
+ let cargo_toml = ManifestPath::try_from(
+ AbsPathBuf::try_from(&*format!("{path}/Cargo.toml")).unwrap(),
+ )
+ .unwrap();
+ sysroot_src_dir = AbsPathBuf::try_from(&*path).unwrap().join("library");
+ CargoWorkspace::fetch_metadata(
+ &cargo_toml,
+ &AbsPathBuf::try_from("/").unwrap(),
+ &CargoConfig::default(),
+ &|_| (),
+ )
+ .map(CargoWorkspace::new)
+ .ok()
+ } else {
+ None
+ };
+ let mut sysroot = Sysroot {
+ root: sysroot_dir,
+ src_root: sysroot_src_dir,
+ crates: Arena::default(),
+ hack_cargo_workspace,
+ };
for path in SYSROOT_CRATES.trim().lines() {
let name = path.split('/').last().unwrap();
@@ -153,19 +194,6 @@ impl Sysroot {
}
}
- if sysroot.by_name("core").is_none() {
- let var_note = if env::var_os("RUST_SRC_PATH").is_some() {
- " (`RUST_SRC_PATH` might be incorrect, try unsetting it)"
- } else {
- ""
- };
- tracing::error!(
- "could not find libcore in sysroot path `{}`{}",
- sysroot.src_root.as_path().display(),
- var_note,
- );
- }
-
sysroot
}
diff --git a/src/tools/rust-analyzer/crates/project-model/src/target_data_layout.rs b/src/tools/rust-analyzer/crates/project-model/src/target_data_layout.rs
index 42c06ad0e..30ca7b348 100644
--- a/src/tools/rust-analyzer/crates/project-model/src/target_data_layout.rs
+++ b/src/tools/rust-analyzer/crates/project-model/src/target_data_layout.rs
@@ -16,7 +16,7 @@ pub fn get(
let mut cmd = Command::new(toolchain::rustc());
cmd.envs(extra_env);
cmd.current_dir(cargo_toml.parent())
- .args(["-Z", "unstable-options", "rustc", "--print", "target-spec-json"])
+ .args(["-Z", "unstable-options", "--print", "target-spec-json"])
.env("RUSTC_BOOTSTRAP", "1");
if let Some(target) = target {
cmd.args(["--target", target]);
diff --git a/src/tools/rust-analyzer/crates/project-model/src/tests.rs b/src/tools/rust-analyzer/crates/project-model/src/tests.rs
index 3754accbb..7815b9dda 100644
--- a/src/tools/rust-analyzer/crates/project-model/src/tests.rs
+++ b/src/tools/rust-analyzer/crates/project-model/src/tests.rs
@@ -3,10 +3,11 @@ use std::{
path::{Path, PathBuf},
};
-use base_db::{CrateGraph, FileId};
+use base_db::{CrateGraph, FileId, ProcMacroPaths};
use cfg::{CfgAtom, CfgDiff};
-use expect_test::{expect, Expect};
+use expect_test::{expect_file, ExpectFile};
use paths::{AbsPath, AbsPathBuf};
+use rustc_hash::FxHashMap;
use serde::de::DeserializeOwned;
use crate::{
@@ -14,11 +15,14 @@ use crate::{
WorkspaceBuildScripts,
};
-fn load_cargo(file: &str) -> CrateGraph {
+fn load_cargo(file: &str) -> (CrateGraph, ProcMacroPaths) {
load_cargo_with_overrides(file, CfgOverrides::default())
}
-fn load_cargo_with_overrides(file: &str, cfg_overrides: CfgOverrides) -> CrateGraph {
+fn load_cargo_with_overrides(
+ file: &str,
+ cfg_overrides: CfgOverrides,
+) -> (CrateGraph, ProcMacroPaths) {
let meta = get_test_json_file(file);
let cargo_workspace = CargoWorkspace::new(meta);
let project_workspace = ProjectWorkspace::Cargo {
@@ -34,11 +38,39 @@ fn load_cargo_with_overrides(file: &str, cfg_overrides: CfgOverrides) -> CrateGr
to_crate_graph(project_workspace)
}
-fn load_rust_project(file: &str) -> CrateGraph {
+fn load_cargo_with_sysroot(
+ file_map: &mut FxHashMap<AbsPathBuf, FileId>,
+ file: &str,
+) -> (CrateGraph, ProcMacroPaths) {
+ let meta = get_test_json_file(file);
+ let cargo_workspace = CargoWorkspace::new(meta);
+ let project_workspace = ProjectWorkspace::Cargo {
+ cargo: cargo_workspace,
+ build_scripts: WorkspaceBuildScripts::default(),
+ sysroot: Ok(get_fake_sysroot()),
+ rustc: Err(None),
+ rustc_cfg: Vec::new(),
+ cfg_overrides: Default::default(),
+ toolchain: None,
+ target_layout: Err("target_data_layout not loaded".into()),
+ };
+ project_workspace.to_crate_graph(
+ &mut {
+ |path| {
+ let len = file_map.len();
+ Some(*file_map.entry(path.to_path_buf()).or_insert(FileId(len as u32)))
+ }
+ },
+ &Default::default(),
+ )
+}
+
+fn load_rust_project(file: &str) -> (CrateGraph, ProcMacroPaths) {
let data = get_test_json_file(file);
let project = rooted_project_json(data);
let sysroot = Ok(get_fake_sysroot());
- let project_workspace = ProjectWorkspace::Json { project, sysroot, rustc_cfg: Vec::new() };
+ let project_workspace =
+ ProjectWorkspace::Json { project, sysroot, rustc_cfg: Vec::new(), toolchain: None };
to_crate_graph(project_workspace)
}
@@ -70,6 +102,18 @@ fn replace_root(s: &mut String, direction: bool) {
}
}
+fn replace_fake_sys_root(s: &mut String) {
+ let fake_sysroot_path = get_test_path("fake-sysroot");
+ let fake_sysroot_path = if cfg!(windows) {
+ let normalized_path =
+ fake_sysroot_path.to_str().expect("expected str").replace(r#"\"#, r#"\\"#);
+ format!(r#"{}\\"#, normalized_path)
+ } else {
+ format!("{}/", fake_sysroot_path.to_str().expect("expected str"))
+ };
+ *s = s.replace(&fake_sysroot_path, "$FAKESYSROOT$")
+}
+
fn get_test_path(file: &str) -> PathBuf {
let base = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
base.join("test_data").join(file)
@@ -92,9 +136,8 @@ fn rooted_project_json(data: ProjectJsonData) -> ProjectJson {
ProjectJson::new(base, data)
}
-fn to_crate_graph(project_workspace: ProjectWorkspace) -> CrateGraph {
+fn to_crate_graph(project_workspace: ProjectWorkspace) -> (CrateGraph, ProcMacroPaths) {
project_workspace.to_crate_graph(
- &mut |_, _| Ok(Vec::new()),
&mut {
let mut counter = 0;
move |_path| {
@@ -106,1808 +149,70 @@ fn to_crate_graph(project_workspace: ProjectWorkspace) -> CrateGraph {
)
}
-fn check_crate_graph(crate_graph: CrateGraph, expect: Expect) {
+fn check_crate_graph(crate_graph: CrateGraph, expect: ExpectFile) {
let mut crate_graph = format!("{crate_graph:#?}");
replace_root(&mut crate_graph, false);
+ replace_fake_sys_root(&mut crate_graph);
expect.assert_eq(&crate_graph);
}
#[test]
fn cargo_hello_world_project_model_with_wildcard_overrides() {
- let cfg_overrides = CfgOverrides::Wildcard(
- CfgDiff::new(Vec::new(), vec![CfgAtom::Flag("test".into())]).unwrap(),
- );
- let crate_graph = load_cargo_with_overrides("hello-world-metadata.json", cfg_overrides);
+ let cfg_overrides = CfgOverrides {
+ global: CfgDiff::new(Vec::new(), vec![CfgAtom::Flag("test".into())]).unwrap(),
+ selective: Default::default(),
+ };
+ let (crate_graph, _proc_macros) =
+ load_cargo_with_overrides("hello-world-metadata.json", cfg_overrides);
check_crate_graph(
crate_graph,
- expect![[r#"
- CrateGraph {
- arena: {
- CrateId(
- 0,
- ): CrateData {
- root_file_id: FileId(
- 1,
- ),
- edition: Edition2018,
- version: Some(
- "0.1.0",
- ),
- display_name: Some(
- CrateDisplayName {
- crate_name: CrateName(
- "hello_world",
- ),
- canonical_name: "hello-world",
- },
- ),
- cfg_options: CfgOptions(
- [
- "debug_assertions",
- ],
- ),
- potential_cfg_options: CfgOptions(
- [
- "debug_assertions",
- ],
- ),
- target_layout: Err(
- "target_data_layout not loaded",
- ),
- env: Env {
- entries: {
- "CARGO_PKG_LICENSE": "",
- "CARGO_PKG_VERSION_MAJOR": "0",
- "CARGO_MANIFEST_DIR": "$ROOT$hello-world",
- "CARGO_PKG_VERSION": "0.1.0",
- "CARGO_PKG_AUTHORS": "",
- "CARGO_CRATE_NAME": "hello_world",
- "CARGO_PKG_LICENSE_FILE": "",
- "CARGO_PKG_HOMEPAGE": "",
- "CARGO_PKG_DESCRIPTION": "",
- "CARGO_PKG_NAME": "hello-world",
- "CARGO_PKG_VERSION_PATCH": "0",
- "CARGO": "cargo",
- "CARGO_PKG_REPOSITORY": "",
- "CARGO_PKG_VERSION_MINOR": "1",
- "CARGO_PKG_VERSION_PRE": "",
- },
- },
- dependencies: [
- Dependency {
- crate_id: CrateId(
- 4,
- ),
- name: CrateName(
- "libc",
- ),
- prelude: true,
- },
- ],
- proc_macro: Err(
- "crate has not (yet) been built",
- ),
- origin: CratesIo {
- repo: None,
- name: Some(
- "hello-world",
- ),
- },
- is_proc_macro: false,
- },
- CrateId(
- 1,
- ): CrateData {
- root_file_id: FileId(
- 2,
- ),
- edition: Edition2018,
- version: Some(
- "0.1.0",
- ),
- display_name: Some(
- CrateDisplayName {
- crate_name: CrateName(
- "hello_world",
- ),
- canonical_name: "hello-world",
- },
- ),
- cfg_options: CfgOptions(
- [
- "debug_assertions",
- ],
- ),
- potential_cfg_options: CfgOptions(
- [
- "debug_assertions",
- ],
- ),
- target_layout: Err(
- "target_data_layout not loaded",
- ),
- env: Env {
- entries: {
- "CARGO_PKG_LICENSE": "",
- "CARGO_PKG_VERSION_MAJOR": "0",
- "CARGO_MANIFEST_DIR": "$ROOT$hello-world",
- "CARGO_PKG_VERSION": "0.1.0",
- "CARGO_PKG_AUTHORS": "",
- "CARGO_CRATE_NAME": "hello_world",
- "CARGO_PKG_LICENSE_FILE": "",
- "CARGO_PKG_HOMEPAGE": "",
- "CARGO_PKG_DESCRIPTION": "",
- "CARGO_PKG_NAME": "hello-world",
- "CARGO_PKG_VERSION_PATCH": "0",
- "CARGO": "cargo",
- "CARGO_PKG_REPOSITORY": "",
- "CARGO_PKG_VERSION_MINOR": "1",
- "CARGO_PKG_VERSION_PRE": "",
- },
- },
- dependencies: [
- Dependency {
- crate_id: CrateId(
- 0,
- ),
- name: CrateName(
- "hello_world",
- ),
- prelude: true,
- },
- Dependency {
- crate_id: CrateId(
- 4,
- ),
- name: CrateName(
- "libc",
- ),
- prelude: true,
- },
- ],
- proc_macro: Err(
- "crate has not (yet) been built",
- ),
- origin: CratesIo {
- repo: None,
- name: Some(
- "hello-world",
- ),
- },
- is_proc_macro: false,
- },
- CrateId(
- 2,
- ): CrateData {
- root_file_id: FileId(
- 3,
- ),
- edition: Edition2018,
- version: Some(
- "0.1.0",
- ),
- display_name: Some(
- CrateDisplayName {
- crate_name: CrateName(
- "an_example",
- ),
- canonical_name: "an-example",
- },
- ),
- cfg_options: CfgOptions(
- [
- "debug_assertions",
- ],
- ),
- potential_cfg_options: CfgOptions(
- [
- "debug_assertions",
- ],
- ),
- target_layout: Err(
- "target_data_layout not loaded",
- ),
- env: Env {
- entries: {
- "CARGO_PKG_LICENSE": "",
- "CARGO_PKG_VERSION_MAJOR": "0",
- "CARGO_MANIFEST_DIR": "$ROOT$hello-world",
- "CARGO_PKG_VERSION": "0.1.0",
- "CARGO_PKG_AUTHORS": "",
- "CARGO_CRATE_NAME": "hello_world",
- "CARGO_PKG_LICENSE_FILE": "",
- "CARGO_PKG_HOMEPAGE": "",
- "CARGO_PKG_DESCRIPTION": "",
- "CARGO_PKG_NAME": "hello-world",
- "CARGO_PKG_VERSION_PATCH": "0",
- "CARGO": "cargo",
- "CARGO_PKG_REPOSITORY": "",
- "CARGO_PKG_VERSION_MINOR": "1",
- "CARGO_PKG_VERSION_PRE": "",
- },
- },
- dependencies: [
- Dependency {
- crate_id: CrateId(
- 0,
- ),
- name: CrateName(
- "hello_world",
- ),
- prelude: true,
- },
- Dependency {
- crate_id: CrateId(
- 4,
- ),
- name: CrateName(
- "libc",
- ),
- prelude: true,
- },
- ],
- proc_macro: Err(
- "crate has not (yet) been built",
- ),
- origin: CratesIo {
- repo: None,
- name: Some(
- "hello-world",
- ),
- },
- is_proc_macro: false,
- },
- CrateId(
- 3,
- ): CrateData {
- root_file_id: FileId(
- 4,
- ),
- edition: Edition2018,
- version: Some(
- "0.1.0",
- ),
- display_name: Some(
- CrateDisplayName {
- crate_name: CrateName(
- "it",
- ),
- canonical_name: "it",
- },
- ),
- cfg_options: CfgOptions(
- [
- "debug_assertions",
- ],
- ),
- potential_cfg_options: CfgOptions(
- [
- "debug_assertions",
- ],
- ),
- target_layout: Err(
- "target_data_layout not loaded",
- ),
- env: Env {
- entries: {
- "CARGO_PKG_LICENSE": "",
- "CARGO_PKG_VERSION_MAJOR": "0",
- "CARGO_MANIFEST_DIR": "$ROOT$hello-world",
- "CARGO_PKG_VERSION": "0.1.0",
- "CARGO_PKG_AUTHORS": "",
- "CARGO_CRATE_NAME": "hello_world",
- "CARGO_PKG_LICENSE_FILE": "",
- "CARGO_PKG_HOMEPAGE": "",
- "CARGO_PKG_DESCRIPTION": "",
- "CARGO_PKG_NAME": "hello-world",
- "CARGO_PKG_VERSION_PATCH": "0",
- "CARGO": "cargo",
- "CARGO_PKG_REPOSITORY": "",
- "CARGO_PKG_VERSION_MINOR": "1",
- "CARGO_PKG_VERSION_PRE": "",
- },
- },
- dependencies: [
- Dependency {
- crate_id: CrateId(
- 0,
- ),
- name: CrateName(
- "hello_world",
- ),
- prelude: true,
- },
- Dependency {
- crate_id: CrateId(
- 4,
- ),
- name: CrateName(
- "libc",
- ),
- prelude: true,
- },
- ],
- proc_macro: Err(
- "crate has not (yet) been built",
- ),
- origin: CratesIo {
- repo: None,
- name: Some(
- "hello-world",
- ),
- },
- is_proc_macro: false,
- },
- CrateId(
- 4,
- ): CrateData {
- root_file_id: FileId(
- 5,
- ),
- edition: Edition2015,
- version: Some(
- "0.2.98",
- ),
- display_name: Some(
- CrateDisplayName {
- crate_name: CrateName(
- "libc",
- ),
- canonical_name: "libc",
- },
- ),
- cfg_options: CfgOptions(
- [
- "debug_assertions",
- "feature=default",
- "feature=std",
- ],
- ),
- potential_cfg_options: CfgOptions(
- [
- "debug_assertions",
- "feature=align",
- "feature=const-extern-fn",
- "feature=default",
- "feature=extra_traits",
- "feature=rustc-dep-of-std",
- "feature=std",
- "feature=use_std",
- ],
- ),
- target_layout: Err(
- "target_data_layout not loaded",
- ),
- env: Env {
- entries: {
- "CARGO_PKG_LICENSE": "",
- "CARGO_PKG_VERSION_MAJOR": "0",
- "CARGO_MANIFEST_DIR": "$ROOT$.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.98",
- "CARGO_PKG_VERSION": "0.2.98",
- "CARGO_PKG_AUTHORS": "",
- "CARGO_CRATE_NAME": "libc",
- "CARGO_PKG_LICENSE_FILE": "",
- "CARGO_PKG_HOMEPAGE": "",
- "CARGO_PKG_DESCRIPTION": "",
- "CARGO_PKG_NAME": "libc",
- "CARGO_PKG_VERSION_PATCH": "98",
- "CARGO": "cargo",
- "CARGO_PKG_REPOSITORY": "",
- "CARGO_PKG_VERSION_MINOR": "2",
- "CARGO_PKG_VERSION_PRE": "",
- },
- },
- dependencies: [],
- proc_macro: Err(
- "crate has not (yet) been built",
- ),
- origin: CratesIo {
- repo: Some(
- "https://github.com/rust-lang/libc",
- ),
- name: Some(
- "libc",
- ),
- },
- is_proc_macro: false,
- },
- },
- }"#]],
+ expect_file![
+ "../test_data/output/cargo_hello_world_project_model_with_wildcard_overrides.txt"
+ ],
)
}
#[test]
fn cargo_hello_world_project_model_with_selective_overrides() {
- let cfg_overrides = {
- CfgOverrides::Selective(
- std::iter::once((
- "libc".to_owned(),
- CfgDiff::new(Vec::new(), vec![CfgAtom::Flag("test".into())]).unwrap(),
- ))
- .collect(),
- )
+ let cfg_overrides = CfgOverrides {
+ global: Default::default(),
+ selective: std::iter::once((
+ "libc".to_owned(),
+ CfgDiff::new(Vec::new(), vec![CfgAtom::Flag("test".into())]).unwrap(),
+ ))
+ .collect(),
};
- let crate_graph = load_cargo_with_overrides("hello-world-metadata.json", cfg_overrides);
+ let (crate_graph, _proc_macros) =
+ load_cargo_with_overrides("hello-world-metadata.json", cfg_overrides);
check_crate_graph(
crate_graph,
- expect![[r#"
- CrateGraph {
- arena: {
- CrateId(
- 0,
- ): CrateData {
- root_file_id: FileId(
- 1,
- ),
- edition: Edition2018,
- version: Some(
- "0.1.0",
- ),
- display_name: Some(
- CrateDisplayName {
- crate_name: CrateName(
- "hello_world",
- ),
- canonical_name: "hello-world",
- },
- ),
- cfg_options: CfgOptions(
- [
- "debug_assertions",
- "test",
- ],
- ),
- potential_cfg_options: CfgOptions(
- [
- "debug_assertions",
- "test",
- ],
- ),
- target_layout: Err(
- "target_data_layout not loaded",
- ),
- env: Env {
- entries: {
- "CARGO_PKG_LICENSE": "",
- "CARGO_PKG_VERSION_MAJOR": "0",
- "CARGO_MANIFEST_DIR": "$ROOT$hello-world",
- "CARGO_PKG_VERSION": "0.1.0",
- "CARGO_PKG_AUTHORS": "",
- "CARGO_CRATE_NAME": "hello_world",
- "CARGO_PKG_LICENSE_FILE": "",
- "CARGO_PKG_HOMEPAGE": "",
- "CARGO_PKG_DESCRIPTION": "",
- "CARGO_PKG_NAME": "hello-world",
- "CARGO_PKG_VERSION_PATCH": "0",
- "CARGO": "cargo",
- "CARGO_PKG_REPOSITORY": "",
- "CARGO_PKG_VERSION_MINOR": "1",
- "CARGO_PKG_VERSION_PRE": "",
- },
- },
- dependencies: [
- Dependency {
- crate_id: CrateId(
- 4,
- ),
- name: CrateName(
- "libc",
- ),
- prelude: true,
- },
- ],
- proc_macro: Err(
- "crate has not (yet) been built",
- ),
- origin: CratesIo {
- repo: None,
- name: Some(
- "hello-world",
- ),
- },
- is_proc_macro: false,
- },
- CrateId(
- 1,
- ): CrateData {
- root_file_id: FileId(
- 2,
- ),
- edition: Edition2018,
- version: Some(
- "0.1.0",
- ),
- display_name: Some(
- CrateDisplayName {
- crate_name: CrateName(
- "hello_world",
- ),
- canonical_name: "hello-world",
- },
- ),
- cfg_options: CfgOptions(
- [
- "debug_assertions",
- "test",
- ],
- ),
- potential_cfg_options: CfgOptions(
- [
- "debug_assertions",
- "test",
- ],
- ),
- target_layout: Err(
- "target_data_layout not loaded",
- ),
- env: Env {
- entries: {
- "CARGO_PKG_LICENSE": "",
- "CARGO_PKG_VERSION_MAJOR": "0",
- "CARGO_MANIFEST_DIR": "$ROOT$hello-world",
- "CARGO_PKG_VERSION": "0.1.0",
- "CARGO_PKG_AUTHORS": "",
- "CARGO_CRATE_NAME": "hello_world",
- "CARGO_PKG_LICENSE_FILE": "",
- "CARGO_PKG_HOMEPAGE": "",
- "CARGO_PKG_DESCRIPTION": "",
- "CARGO_PKG_NAME": "hello-world",
- "CARGO_PKG_VERSION_PATCH": "0",
- "CARGO": "cargo",
- "CARGO_PKG_REPOSITORY": "",
- "CARGO_PKG_VERSION_MINOR": "1",
- "CARGO_PKG_VERSION_PRE": "",
- },
- },
- dependencies: [
- Dependency {
- crate_id: CrateId(
- 0,
- ),
- name: CrateName(
- "hello_world",
- ),
- prelude: true,
- },
- Dependency {
- crate_id: CrateId(
- 4,
- ),
- name: CrateName(
- "libc",
- ),
- prelude: true,
- },
- ],
- proc_macro: Err(
- "crate has not (yet) been built",
- ),
- origin: CratesIo {
- repo: None,
- name: Some(
- "hello-world",
- ),
- },
- is_proc_macro: false,
- },
- CrateId(
- 2,
- ): CrateData {
- root_file_id: FileId(
- 3,
- ),
- edition: Edition2018,
- version: Some(
- "0.1.0",
- ),
- display_name: Some(
- CrateDisplayName {
- crate_name: CrateName(
- "an_example",
- ),
- canonical_name: "an-example",
- },
- ),
- cfg_options: CfgOptions(
- [
- "debug_assertions",
- "test",
- ],
- ),
- potential_cfg_options: CfgOptions(
- [
- "debug_assertions",
- "test",
- ],
- ),
- target_layout: Err(
- "target_data_layout not loaded",
- ),
- env: Env {
- entries: {
- "CARGO_PKG_LICENSE": "",
- "CARGO_PKG_VERSION_MAJOR": "0",
- "CARGO_MANIFEST_DIR": "$ROOT$hello-world",
- "CARGO_PKG_VERSION": "0.1.0",
- "CARGO_PKG_AUTHORS": "",
- "CARGO_CRATE_NAME": "hello_world",
- "CARGO_PKG_LICENSE_FILE": "",
- "CARGO_PKG_HOMEPAGE": "",
- "CARGO_PKG_DESCRIPTION": "",
- "CARGO_PKG_NAME": "hello-world",
- "CARGO_PKG_VERSION_PATCH": "0",
- "CARGO": "cargo",
- "CARGO_PKG_REPOSITORY": "",
- "CARGO_PKG_VERSION_MINOR": "1",
- "CARGO_PKG_VERSION_PRE": "",
- },
- },
- dependencies: [
- Dependency {
- crate_id: CrateId(
- 0,
- ),
- name: CrateName(
- "hello_world",
- ),
- prelude: true,
- },
- Dependency {
- crate_id: CrateId(
- 4,
- ),
- name: CrateName(
- "libc",
- ),
- prelude: true,
- },
- ],
- proc_macro: Err(
- "crate has not (yet) been built",
- ),
- origin: CratesIo {
- repo: None,
- name: Some(
- "hello-world",
- ),
- },
- is_proc_macro: false,
- },
- CrateId(
- 3,
- ): CrateData {
- root_file_id: FileId(
- 4,
- ),
- edition: Edition2018,
- version: Some(
- "0.1.0",
- ),
- display_name: Some(
- CrateDisplayName {
- crate_name: CrateName(
- "it",
- ),
- canonical_name: "it",
- },
- ),
- cfg_options: CfgOptions(
- [
- "debug_assertions",
- "test",
- ],
- ),
- potential_cfg_options: CfgOptions(
- [
- "debug_assertions",
- "test",
- ],
- ),
- target_layout: Err(
- "target_data_layout not loaded",
- ),
- env: Env {
- entries: {
- "CARGO_PKG_LICENSE": "",
- "CARGO_PKG_VERSION_MAJOR": "0",
- "CARGO_MANIFEST_DIR": "$ROOT$hello-world",
- "CARGO_PKG_VERSION": "0.1.0",
- "CARGO_PKG_AUTHORS": "",
- "CARGO_CRATE_NAME": "hello_world",
- "CARGO_PKG_LICENSE_FILE": "",
- "CARGO_PKG_HOMEPAGE": "",
- "CARGO_PKG_DESCRIPTION": "",
- "CARGO_PKG_NAME": "hello-world",
- "CARGO_PKG_VERSION_PATCH": "0",
- "CARGO": "cargo",
- "CARGO_PKG_REPOSITORY": "",
- "CARGO_PKG_VERSION_MINOR": "1",
- "CARGO_PKG_VERSION_PRE": "",
- },
- },
- dependencies: [
- Dependency {
- crate_id: CrateId(
- 0,
- ),
- name: CrateName(
- "hello_world",
- ),
- prelude: true,
- },
- Dependency {
- crate_id: CrateId(
- 4,
- ),
- name: CrateName(
- "libc",
- ),
- prelude: true,
- },
- ],
- proc_macro: Err(
- "crate has not (yet) been built",
- ),
- origin: CratesIo {
- repo: None,
- name: Some(
- "hello-world",
- ),
- },
- is_proc_macro: false,
- },
- CrateId(
- 4,
- ): CrateData {
- root_file_id: FileId(
- 5,
- ),
- edition: Edition2015,
- version: Some(
- "0.2.98",
- ),
- display_name: Some(
- CrateDisplayName {
- crate_name: CrateName(
- "libc",
- ),
- canonical_name: "libc",
- },
- ),
- cfg_options: CfgOptions(
- [
- "debug_assertions",
- "feature=default",
- "feature=std",
- ],
- ),
- potential_cfg_options: CfgOptions(
- [
- "debug_assertions",
- "feature=align",
- "feature=const-extern-fn",
- "feature=default",
- "feature=extra_traits",
- "feature=rustc-dep-of-std",
- "feature=std",
- "feature=use_std",
- ],
- ),
- target_layout: Err(
- "target_data_layout not loaded",
- ),
- env: Env {
- entries: {
- "CARGO_PKG_LICENSE": "",
- "CARGO_PKG_VERSION_MAJOR": "0",
- "CARGO_MANIFEST_DIR": "$ROOT$.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.98",
- "CARGO_PKG_VERSION": "0.2.98",
- "CARGO_PKG_AUTHORS": "",
- "CARGO_CRATE_NAME": "libc",
- "CARGO_PKG_LICENSE_FILE": "",
- "CARGO_PKG_HOMEPAGE": "",
- "CARGO_PKG_DESCRIPTION": "",
- "CARGO_PKG_NAME": "libc",
- "CARGO_PKG_VERSION_PATCH": "98",
- "CARGO": "cargo",
- "CARGO_PKG_REPOSITORY": "",
- "CARGO_PKG_VERSION_MINOR": "2",
- "CARGO_PKG_VERSION_PRE": "",
- },
- },
- dependencies: [],
- proc_macro: Err(
- "crate has not (yet) been built",
- ),
- origin: CratesIo {
- repo: Some(
- "https://github.com/rust-lang/libc",
- ),
- name: Some(
- "libc",
- ),
- },
- is_proc_macro: false,
- },
- },
- }"#]],
+ expect_file![
+ "../test_data/output/cargo_hello_world_project_model_with_selective_overrides.txt"
+ ],
)
}
#[test]
fn cargo_hello_world_project_model() {
- let crate_graph = load_cargo("hello-world-metadata.json");
+ let (crate_graph, _proc_macros) = load_cargo("hello-world-metadata.json");
check_crate_graph(
crate_graph,
- expect![[r#"
- CrateGraph {
- arena: {
- CrateId(
- 0,
- ): CrateData {
- root_file_id: FileId(
- 1,
- ),
- edition: Edition2018,
- version: Some(
- "0.1.0",
- ),
- display_name: Some(
- CrateDisplayName {
- crate_name: CrateName(
- "hello_world",
- ),
- canonical_name: "hello-world",
- },
- ),
- cfg_options: CfgOptions(
- [
- "debug_assertions",
- "test",
- ],
- ),
- potential_cfg_options: CfgOptions(
- [
- "debug_assertions",
- "test",
- ],
- ),
- target_layout: Err(
- "target_data_layout not loaded",
- ),
- env: Env {
- entries: {
- "CARGO_PKG_LICENSE": "",
- "CARGO_PKG_VERSION_MAJOR": "0",
- "CARGO_MANIFEST_DIR": "$ROOT$hello-world",
- "CARGO_PKG_VERSION": "0.1.0",
- "CARGO_PKG_AUTHORS": "",
- "CARGO_CRATE_NAME": "hello_world",
- "CARGO_PKG_LICENSE_FILE": "",
- "CARGO_PKG_HOMEPAGE": "",
- "CARGO_PKG_DESCRIPTION": "",
- "CARGO_PKG_NAME": "hello-world",
- "CARGO_PKG_VERSION_PATCH": "0",
- "CARGO": "cargo",
- "CARGO_PKG_REPOSITORY": "",
- "CARGO_PKG_VERSION_MINOR": "1",
- "CARGO_PKG_VERSION_PRE": "",
- },
- },
- dependencies: [
- Dependency {
- crate_id: CrateId(
- 4,
- ),
- name: CrateName(
- "libc",
- ),
- prelude: true,
- },
- ],
- proc_macro: Err(
- "crate has not (yet) been built",
- ),
- origin: CratesIo {
- repo: None,
- name: Some(
- "hello-world",
- ),
- },
- is_proc_macro: false,
- },
- CrateId(
- 1,
- ): CrateData {
- root_file_id: FileId(
- 2,
- ),
- edition: Edition2018,
- version: Some(
- "0.1.0",
- ),
- display_name: Some(
- CrateDisplayName {
- crate_name: CrateName(
- "hello_world",
- ),
- canonical_name: "hello-world",
- },
- ),
- cfg_options: CfgOptions(
- [
- "debug_assertions",
- "test",
- ],
- ),
- potential_cfg_options: CfgOptions(
- [
- "debug_assertions",
- "test",
- ],
- ),
- target_layout: Err(
- "target_data_layout not loaded",
- ),
- env: Env {
- entries: {
- "CARGO_PKG_LICENSE": "",
- "CARGO_PKG_VERSION_MAJOR": "0",
- "CARGO_MANIFEST_DIR": "$ROOT$hello-world",
- "CARGO_PKG_VERSION": "0.1.0",
- "CARGO_PKG_AUTHORS": "",
- "CARGO_CRATE_NAME": "hello_world",
- "CARGO_PKG_LICENSE_FILE": "",
- "CARGO_PKG_HOMEPAGE": "",
- "CARGO_PKG_DESCRIPTION": "",
- "CARGO_PKG_NAME": "hello-world",
- "CARGO_PKG_VERSION_PATCH": "0",
- "CARGO": "cargo",
- "CARGO_PKG_REPOSITORY": "",
- "CARGO_PKG_VERSION_MINOR": "1",
- "CARGO_PKG_VERSION_PRE": "",
- },
- },
- dependencies: [
- Dependency {
- crate_id: CrateId(
- 0,
- ),
- name: CrateName(
- "hello_world",
- ),
- prelude: true,
- },
- Dependency {
- crate_id: CrateId(
- 4,
- ),
- name: CrateName(
- "libc",
- ),
- prelude: true,
- },
- ],
- proc_macro: Err(
- "crate has not (yet) been built",
- ),
- origin: CratesIo {
- repo: None,
- name: Some(
- "hello-world",
- ),
- },
- is_proc_macro: false,
- },
- CrateId(
- 2,
- ): CrateData {
- root_file_id: FileId(
- 3,
- ),
- edition: Edition2018,
- version: Some(
- "0.1.0",
- ),
- display_name: Some(
- CrateDisplayName {
- crate_name: CrateName(
- "an_example",
- ),
- canonical_name: "an-example",
- },
- ),
- cfg_options: CfgOptions(
- [
- "debug_assertions",
- "test",
- ],
- ),
- potential_cfg_options: CfgOptions(
- [
- "debug_assertions",
- "test",
- ],
- ),
- target_layout: Err(
- "target_data_layout not loaded",
- ),
- env: Env {
- entries: {
- "CARGO_PKG_LICENSE": "",
- "CARGO_PKG_VERSION_MAJOR": "0",
- "CARGO_MANIFEST_DIR": "$ROOT$hello-world",
- "CARGO_PKG_VERSION": "0.1.0",
- "CARGO_PKG_AUTHORS": "",
- "CARGO_CRATE_NAME": "hello_world",
- "CARGO_PKG_LICENSE_FILE": "",
- "CARGO_PKG_HOMEPAGE": "",
- "CARGO_PKG_DESCRIPTION": "",
- "CARGO_PKG_NAME": "hello-world",
- "CARGO_PKG_VERSION_PATCH": "0",
- "CARGO": "cargo",
- "CARGO_PKG_REPOSITORY": "",
- "CARGO_PKG_VERSION_MINOR": "1",
- "CARGO_PKG_VERSION_PRE": "",
- },
- },
- dependencies: [
- Dependency {
- crate_id: CrateId(
- 0,
- ),
- name: CrateName(
- "hello_world",
- ),
- prelude: true,
- },
- Dependency {
- crate_id: CrateId(
- 4,
- ),
- name: CrateName(
- "libc",
- ),
- prelude: true,
- },
- ],
- proc_macro: Err(
- "crate has not (yet) been built",
- ),
- origin: CratesIo {
- repo: None,
- name: Some(
- "hello-world",
- ),
- },
- is_proc_macro: false,
- },
- CrateId(
- 3,
- ): CrateData {
- root_file_id: FileId(
- 4,
- ),
- edition: Edition2018,
- version: Some(
- "0.1.0",
- ),
- display_name: Some(
- CrateDisplayName {
- crate_name: CrateName(
- "it",
- ),
- canonical_name: "it",
- },
- ),
- cfg_options: CfgOptions(
- [
- "debug_assertions",
- "test",
- ],
- ),
- potential_cfg_options: CfgOptions(
- [
- "debug_assertions",
- "test",
- ],
- ),
- target_layout: Err(
- "target_data_layout not loaded",
- ),
- env: Env {
- entries: {
- "CARGO_PKG_LICENSE": "",
- "CARGO_PKG_VERSION_MAJOR": "0",
- "CARGO_MANIFEST_DIR": "$ROOT$hello-world",
- "CARGO_PKG_VERSION": "0.1.0",
- "CARGO_PKG_AUTHORS": "",
- "CARGO_CRATE_NAME": "hello_world",
- "CARGO_PKG_LICENSE_FILE": "",
- "CARGO_PKG_HOMEPAGE": "",
- "CARGO_PKG_DESCRIPTION": "",
- "CARGO_PKG_NAME": "hello-world",
- "CARGO_PKG_VERSION_PATCH": "0",
- "CARGO": "cargo",
- "CARGO_PKG_REPOSITORY": "",
- "CARGO_PKG_VERSION_MINOR": "1",
- "CARGO_PKG_VERSION_PRE": "",
- },
- },
- dependencies: [
- Dependency {
- crate_id: CrateId(
- 0,
- ),
- name: CrateName(
- "hello_world",
- ),
- prelude: true,
- },
- Dependency {
- crate_id: CrateId(
- 4,
- ),
- name: CrateName(
- "libc",
- ),
- prelude: true,
- },
- ],
- proc_macro: Err(
- "crate has not (yet) been built",
- ),
- origin: CratesIo {
- repo: None,
- name: Some(
- "hello-world",
- ),
- },
- is_proc_macro: false,
- },
- CrateId(
- 4,
- ): CrateData {
- root_file_id: FileId(
- 5,
- ),
- edition: Edition2015,
- version: Some(
- "0.2.98",
- ),
- display_name: Some(
- CrateDisplayName {
- crate_name: CrateName(
- "libc",
- ),
- canonical_name: "libc",
- },
- ),
- cfg_options: CfgOptions(
- [
- "debug_assertions",
- "feature=default",
- "feature=std",
- ],
- ),
- potential_cfg_options: CfgOptions(
- [
- "debug_assertions",
- "feature=align",
- "feature=const-extern-fn",
- "feature=default",
- "feature=extra_traits",
- "feature=rustc-dep-of-std",
- "feature=std",
- "feature=use_std",
- ],
- ),
- target_layout: Err(
- "target_data_layout not loaded",
- ),
- env: Env {
- entries: {
- "CARGO_PKG_LICENSE": "",
- "CARGO_PKG_VERSION_MAJOR": "0",
- "CARGO_MANIFEST_DIR": "$ROOT$.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.98",
- "CARGO_PKG_VERSION": "0.2.98",
- "CARGO_PKG_AUTHORS": "",
- "CARGO_CRATE_NAME": "libc",
- "CARGO_PKG_LICENSE_FILE": "",
- "CARGO_PKG_HOMEPAGE": "",
- "CARGO_PKG_DESCRIPTION": "",
- "CARGO_PKG_NAME": "libc",
- "CARGO_PKG_VERSION_PATCH": "98",
- "CARGO": "cargo",
- "CARGO_PKG_REPOSITORY": "",
- "CARGO_PKG_VERSION_MINOR": "2",
- "CARGO_PKG_VERSION_PRE": "",
- },
- },
- dependencies: [],
- proc_macro: Err(
- "crate has not (yet) been built",
- ),
- origin: CratesIo {
- repo: Some(
- "https://github.com/rust-lang/libc",
- ),
- name: Some(
- "libc",
- ),
- },
- is_proc_macro: false,
- },
- },
- }"#]],
+ expect_file!["../test_data/output/cargo_hello_world_project_model.txt"],
)
}
#[test]
fn rust_project_hello_world_project_model() {
- let crate_graph = load_rust_project("hello-world-project.json");
+ let (crate_graph, _proc_macros) = load_rust_project("hello-world-project.json");
check_crate_graph(
crate_graph,
- expect![[r#"
- CrateGraph {
- arena: {
- CrateId(
- 0,
- ): CrateData {
- root_file_id: FileId(
- 1,
- ),
- edition: Edition2021,
- version: None,
- display_name: Some(
- CrateDisplayName {
- crate_name: CrateName(
- "alloc",
- ),
- canonical_name: "alloc",
- },
- ),
- cfg_options: CfgOptions(
- [],
- ),
- potential_cfg_options: CfgOptions(
- [],
- ),
- target_layout: Err(
- "rust-project.json projects have no target layout set",
- ),
- env: Env {
- entries: {},
- },
- dependencies: [
- Dependency {
- crate_id: CrateId(
- 1,
- ),
- name: CrateName(
- "core",
- ),
- prelude: true,
- },
- ],
- proc_macro: Err(
- "no proc macro loaded for sysroot crate",
- ),
- origin: Lang(
- Alloc,
- ),
- is_proc_macro: false,
- },
- CrateId(
- 1,
- ): CrateData {
- root_file_id: FileId(
- 2,
- ),
- edition: Edition2021,
- version: None,
- display_name: Some(
- CrateDisplayName {
- crate_name: CrateName(
- "core",
- ),
- canonical_name: "core",
- },
- ),
- cfg_options: CfgOptions(
- [],
- ),
- potential_cfg_options: CfgOptions(
- [],
- ),
- target_layout: Err(
- "rust-project.json projects have no target layout set",
- ),
- env: Env {
- entries: {},
- },
- dependencies: [],
- proc_macro: Err(
- "no proc macro loaded for sysroot crate",
- ),
- origin: Lang(
- Core,
- ),
- is_proc_macro: false,
- },
- CrateId(
- 2,
- ): CrateData {
- root_file_id: FileId(
- 3,
- ),
- edition: Edition2021,
- version: None,
- display_name: Some(
- CrateDisplayName {
- crate_name: CrateName(
- "panic_abort",
- ),
- canonical_name: "panic_abort",
- },
- ),
- cfg_options: CfgOptions(
- [],
- ),
- potential_cfg_options: CfgOptions(
- [],
- ),
- target_layout: Err(
- "rust-project.json projects have no target layout set",
- ),
- env: Env {
- entries: {},
- },
- dependencies: [],
- proc_macro: Err(
- "no proc macro loaded for sysroot crate",
- ),
- origin: Lang(
- Other,
- ),
- is_proc_macro: false,
- },
- CrateId(
- 3,
- ): CrateData {
- root_file_id: FileId(
- 4,
- ),
- edition: Edition2021,
- version: None,
- display_name: Some(
- CrateDisplayName {
- crate_name: CrateName(
- "panic_unwind",
- ),
- canonical_name: "panic_unwind",
- },
- ),
- cfg_options: CfgOptions(
- [],
- ),
- potential_cfg_options: CfgOptions(
- [],
- ),
- target_layout: Err(
- "rust-project.json projects have no target layout set",
- ),
- env: Env {
- entries: {},
- },
- dependencies: [],
- proc_macro: Err(
- "no proc macro loaded for sysroot crate",
- ),
- origin: Lang(
- Other,
- ),
- is_proc_macro: false,
- },
- CrateId(
- 4,
- ): CrateData {
- root_file_id: FileId(
- 5,
- ),
- edition: Edition2021,
- version: None,
- display_name: Some(
- CrateDisplayName {
- crate_name: CrateName(
- "proc_macro",
- ),
- canonical_name: "proc_macro",
- },
- ),
- cfg_options: CfgOptions(
- [],
- ),
- potential_cfg_options: CfgOptions(
- [],
- ),
- target_layout: Err(
- "rust-project.json projects have no target layout set",
- ),
- env: Env {
- entries: {},
- },
- dependencies: [
- Dependency {
- crate_id: CrateId(
- 6,
- ),
- name: CrateName(
- "std",
- ),
- prelude: true,
- },
- Dependency {
- crate_id: CrateId(
- 1,
- ),
- name: CrateName(
- "core",
- ),
- prelude: true,
- },
- ],
- proc_macro: Err(
- "no proc macro loaded for sysroot crate",
- ),
- origin: Lang(
- Other,
- ),
- is_proc_macro: false,
- },
- CrateId(
- 5,
- ): CrateData {
- root_file_id: FileId(
- 6,
- ),
- edition: Edition2021,
- version: None,
- display_name: Some(
- CrateDisplayName {
- crate_name: CrateName(
- "profiler_builtins",
- ),
- canonical_name: "profiler_builtins",
- },
- ),
- cfg_options: CfgOptions(
- [],
- ),
- potential_cfg_options: CfgOptions(
- [],
- ),
- target_layout: Err(
- "rust-project.json projects have no target layout set",
- ),
- env: Env {
- entries: {},
- },
- dependencies: [],
- proc_macro: Err(
- "no proc macro loaded for sysroot crate",
- ),
- origin: Lang(
- Other,
- ),
- is_proc_macro: false,
- },
- CrateId(
- 6,
- ): CrateData {
- root_file_id: FileId(
- 7,
- ),
- edition: Edition2021,
- version: None,
- display_name: Some(
- CrateDisplayName {
- crate_name: CrateName(
- "std",
- ),
- canonical_name: "std",
- },
- ),
- cfg_options: CfgOptions(
- [],
- ),
- potential_cfg_options: CfgOptions(
- [],
- ),
- target_layout: Err(
- "rust-project.json projects have no target layout set",
- ),
- env: Env {
- entries: {},
- },
- dependencies: [
- Dependency {
- crate_id: CrateId(
- 0,
- ),
- name: CrateName(
- "alloc",
- ),
- prelude: true,
- },
- Dependency {
- crate_id: CrateId(
- 3,
- ),
- name: CrateName(
- "panic_unwind",
- ),
- prelude: true,
- },
- Dependency {
- crate_id: CrateId(
- 2,
- ),
- name: CrateName(
- "panic_abort",
- ),
- prelude: true,
- },
- Dependency {
- crate_id: CrateId(
- 1,
- ),
- name: CrateName(
- "core",
- ),
- prelude: true,
- },
- Dependency {
- crate_id: CrateId(
- 5,
- ),
- name: CrateName(
- "profiler_builtins",
- ),
- prelude: true,
- },
- Dependency {
- crate_id: CrateId(
- 9,
- ),
- name: CrateName(
- "unwind",
- ),
- prelude: true,
- },
- Dependency {
- crate_id: CrateId(
- 7,
- ),
- name: CrateName(
- "std_detect",
- ),
- prelude: true,
- },
- Dependency {
- crate_id: CrateId(
- 8,
- ),
- name: CrateName(
- "test",
- ),
- prelude: true,
- },
- ],
- proc_macro: Err(
- "no proc macro loaded for sysroot crate",
- ),
- origin: Lang(
- Std,
- ),
- is_proc_macro: false,
- },
- CrateId(
- 7,
- ): CrateData {
- root_file_id: FileId(
- 8,
- ),
- edition: Edition2021,
- version: None,
- display_name: Some(
- CrateDisplayName {
- crate_name: CrateName(
- "std_detect",
- ),
- canonical_name: "std_detect",
- },
- ),
- cfg_options: CfgOptions(
- [],
- ),
- potential_cfg_options: CfgOptions(
- [],
- ),
- target_layout: Err(
- "rust-project.json projects have no target layout set",
- ),
- env: Env {
- entries: {},
- },
- dependencies: [],
- proc_macro: Err(
- "no proc macro loaded for sysroot crate",
- ),
- origin: Lang(
- Other,
- ),
- is_proc_macro: false,
- },
- CrateId(
- 8,
- ): CrateData {
- root_file_id: FileId(
- 9,
- ),
- edition: Edition2021,
- version: None,
- display_name: Some(
- CrateDisplayName {
- crate_name: CrateName(
- "test",
- ),
- canonical_name: "test",
- },
- ),
- cfg_options: CfgOptions(
- [],
- ),
- potential_cfg_options: CfgOptions(
- [],
- ),
- target_layout: Err(
- "rust-project.json projects have no target layout set",
- ),
- env: Env {
- entries: {},
- },
- dependencies: [],
- proc_macro: Err(
- "no proc macro loaded for sysroot crate",
- ),
- origin: Lang(
- Test,
- ),
- is_proc_macro: false,
- },
- CrateId(
- 9,
- ): CrateData {
- root_file_id: FileId(
- 10,
- ),
- edition: Edition2021,
- version: None,
- display_name: Some(
- CrateDisplayName {
- crate_name: CrateName(
- "unwind",
- ),
- canonical_name: "unwind",
- },
- ),
- cfg_options: CfgOptions(
- [],
- ),
- potential_cfg_options: CfgOptions(
- [],
- ),
- target_layout: Err(
- "rust-project.json projects have no target layout set",
- ),
- env: Env {
- entries: {},
- },
- dependencies: [],
- proc_macro: Err(
- "no proc macro loaded for sysroot crate",
- ),
- origin: Lang(
- Other,
- ),
- is_proc_macro: false,
- },
- CrateId(
- 10,
- ): CrateData {
- root_file_id: FileId(
- 11,
- ),
- edition: Edition2018,
- version: None,
- display_name: Some(
- CrateDisplayName {
- crate_name: CrateName(
- "hello_world",
- ),
- canonical_name: "hello_world",
- },
- ),
- cfg_options: CfgOptions(
- [],
- ),
- potential_cfg_options: CfgOptions(
- [],
- ),
- target_layout: Err(
- "rust-project.json projects have no target layout set",
- ),
- env: Env {
- entries: {},
- },
- dependencies: [
- Dependency {
- crate_id: CrateId(
- 1,
- ),
- name: CrateName(
- "core",
- ),
- prelude: true,
- },
- Dependency {
- crate_id: CrateId(
- 0,
- ),
- name: CrateName(
- "alloc",
- ),
- prelude: true,
- },
- Dependency {
- crate_id: CrateId(
- 6,
- ),
- name: CrateName(
- "std",
- ),
- prelude: true,
- },
- Dependency {
- crate_id: CrateId(
- 8,
- ),
- name: CrateName(
- "test",
- ),
- prelude: false,
- },
- ],
- proc_macro: Err(
- "no proc macro dylib present",
- ),
- origin: CratesIo {
- repo: None,
- name: Some(
- "hello_world",
- ),
- },
- is_proc_macro: false,
- },
- },
- }"#]],
+ expect_file!["../test_data/output/rust_project_hello_world_project_model.txt"],
);
}
#[test]
fn rust_project_is_proc_macro_has_proc_macro_dep() {
- let crate_graph = load_rust_project("is-proc-macro-project.json");
+ let (crate_graph, _proc_macros) = load_rust_project("is-proc-macro-project.json");
// Since the project only defines one crate (outside the sysroot crates),
// it should be the one with the biggest Id.
let crate_id = crate_graph.iter().max().unwrap();
@@ -1916,3 +221,31 @@ fn rust_project_is_proc_macro_has_proc_macro_dep() {
// on the proc_macro sysroot crate.
crate_data.dependencies.iter().find(|&dep| dep.name.deref() == "proc_macro").unwrap();
}
+
+#[test]
+fn crate_graph_dedup_identical() {
+ let (mut crate_graph, proc_macros) =
+ load_cargo_with_sysroot(&mut Default::default(), "regex-metadata.json");
+ crate_graph.sort_deps();
+
+ let (d_crate_graph, mut d_proc_macros) = (crate_graph.clone(), proc_macros.clone());
+
+ crate_graph.extend(d_crate_graph.clone(), &mut d_proc_macros);
+ assert!(crate_graph.iter().eq(d_crate_graph.iter()));
+ assert_eq!(proc_macros, d_proc_macros);
+}
+
+#[test]
+fn crate_graph_dedup() {
+ let path_map = &mut Default::default();
+ let (mut crate_graph, _proc_macros) =
+ load_cargo_with_sysroot(path_map, "ripgrep-metadata.json");
+ assert_eq!(crate_graph.iter().count(), 81);
+ crate_graph.sort_deps();
+ let (regex_crate_graph, mut regex_proc_macros) =
+ load_cargo_with_sysroot(path_map, "regex-metadata.json");
+ assert_eq!(regex_crate_graph.iter().count(), 60);
+
+ crate_graph.extend(regex_crate_graph, &mut regex_proc_macros);
+ assert_eq!(crate_graph.iter().count(), 118);
+}
diff --git a/src/tools/rust-analyzer/crates/project-model/src/workspace.rs b/src/tools/rust-analyzer/crates/project-model/src/workspace.rs
index d1e53e12e..b5fe237fc 100644
--- a/src/tools/rust-analyzer/crates/project-model/src/workspace.rs
+++ b/src/tools/rust-analyzer/crates/project-model/src/workspace.rs
@@ -2,53 +2,43 @@
//! metadata` or `rust-project.json`) into representation stored in the salsa
//! database -- `CrateGraph`.
-use std::{collections::VecDeque, fmt, fs, process::Command, sync::Arc};
+use std::{collections::VecDeque, fmt, fs, process::Command, sync};
use anyhow::{format_err, Context, Result};
use base_db::{
CrateDisplayName, CrateGraph, CrateId, CrateName, CrateOrigin, Dependency, Edition, Env,
- FileId, LangCrateOrigin, ProcMacroLoadResult, TargetLayoutLoadResult,
+ FileId, LangCrateOrigin, ProcMacroPaths, ReleaseChannel, TargetLayoutLoadResult,
};
use cfg::{CfgDiff, CfgOptions};
use paths::{AbsPath, AbsPathBuf};
use rustc_hash::{FxHashMap, FxHashSet};
use semver::Version;
-use stdx::{always, hash::NoHashHashMap};
+use stdx::always;
+use triomphe::Arc;
use crate::{
build_scripts::BuildScriptOutput,
cargo_workspace::{DepKind, PackageData, RustLibSource},
cfg_flag::CfgFlag,
+ project_json::Crate,
rustc_cfg,
sysroot::SysrootCrate,
target_data_layout, utf8_stdout, CargoConfig, CargoWorkspace, InvocationStrategy, ManifestPath,
- Package, ProjectJson, ProjectManifest, Sysroot, TargetKind, WorkspaceBuildScripts,
+ Package, ProjectJson, ProjectManifest, Sysroot, TargetData, TargetKind, WorkspaceBuildScripts,
};
/// A set of cfg-overrides per crate.
-///
-/// `Wildcard(..)` is useful e.g. disabling `#[cfg(test)]` on all crates,
-/// without having to first obtain a list of all crates.
-#[derive(Debug, Clone, Eq, PartialEq)]
-pub enum CfgOverrides {
- /// A single global set of overrides matching all crates.
- Wildcard(CfgDiff),
+#[derive(Default, Debug, Clone, Eq, PartialEq)]
+pub struct CfgOverrides {
+ /// A global set of overrides matching all crates.
+ pub global: CfgDiff,
/// A set of overrides matching specific crates.
- Selective(FxHashMap<String, CfgDiff>),
-}
-
-impl Default for CfgOverrides {
- fn default() -> Self {
- Self::Selective(FxHashMap::default())
- }
+ pub selective: FxHashMap<String, CfgDiff>,
}
impl CfgOverrides {
pub fn len(&self) -> usize {
- match self {
- CfgOverrides::Wildcard(_) => 1,
- CfgOverrides::Selective(hash_map) => hash_map.len(),
- }
+ self.global.len() + self.selective.iter().map(|(_, it)| it.len()).sum::<usize>()
}
}
@@ -82,7 +72,14 @@ pub enum ProjectWorkspace {
target_layout: Result<String, String>,
},
/// Project workspace was manually specified using a `rust-project.json` file.
- Json { project: ProjectJson, sysroot: Result<Sysroot, Option<String>>, rustc_cfg: Vec<CfgFlag> },
+ Json {
+ project: ProjectJson,
+ sysroot: Result<Sysroot, Option<String>>,
+ /// Holds cfg flags for the current target. We get those by running
+ /// `rustc --print cfg`.
+ rustc_cfg: Vec<CfgFlag>,
+ toolchain: Option<Version>,
+ },
// FIXME: The primary limitation of this approach is that the set of detached files needs to be fixed at the beginning.
// That's not the end user experience we should strive for.
// Ideally, you should be able to just open a random detached file in existing cargo projects, and get the basic features working.
@@ -96,6 +93,8 @@ pub enum ProjectWorkspace {
DetachedFiles {
files: Vec<AbsPathBuf>,
sysroot: Result<Sysroot, Option<String>>,
+ /// Holds cfg flags for the current target. We get those by running
+ /// `rustc --print cfg`.
rustc_cfg: Vec<CfgFlag>,
},
}
@@ -127,12 +126,13 @@ impl fmt::Debug for ProjectWorkspace {
.field("toolchain", &toolchain)
.field("data_layout", &data_layout)
.finish(),
- ProjectWorkspace::Json { project, sysroot, rustc_cfg } => {
+ ProjectWorkspace::Json { project, sysroot, rustc_cfg, toolchain } => {
let mut debug_struct = f.debug_struct("Json");
debug_struct.field("n_crates", &project.n_crates());
if let Ok(sysroot) = sysroot {
debug_struct.field("n_sysroot_crates", &sysroot.crates().len());
}
+ debug_struct.field("toolchain", &toolchain);
debug_struct.field("n_rustc_cfg", &rustc_cfg.len());
debug_struct.finish()
}
@@ -152,6 +152,19 @@ impl ProjectWorkspace {
config: &CargoConfig,
progress: &dyn Fn(String),
) -> Result<ProjectWorkspace> {
+ let version = |current_dir, cmd_path, prefix: &str| {
+ let cargo_version = utf8_stdout({
+ let mut cmd = Command::new(cmd_path);
+ cmd.envs(&config.extra_env);
+ cmd.arg("--version").current_dir(current_dir);
+ cmd
+ })?;
+ anyhow::Ok(
+ cargo_version
+ .get(prefix.len()..)
+ .and_then(|it| Version::parse(it.split_whitespace().next()?).ok()),
+ )
+ };
let res = match manifest {
ProjectManifest::ProjectJson(project_json) => {
let file = fs::read_to_string(&project_json).with_context(|| {
@@ -161,24 +174,17 @@ impl ProjectWorkspace {
format!("Failed to deserialize json file {}", project_json.display())
})?;
let project_location = project_json.parent().to_path_buf();
+ let toolchain = version(&*project_location, toolchain::rustc(), "rustc ")?;
let project_json = ProjectJson::new(&project_location, data);
ProjectWorkspace::load_inline(
project_json,
config.target.as_deref(),
&config.extra_env,
+ toolchain,
)
}
ProjectManifest::CargoToml(cargo_toml) => {
- let cargo_version = utf8_stdout({
- let mut cmd = Command::new(toolchain::cargo());
- cmd.envs(&config.extra_env);
- cmd.arg("--version");
- cmd
- })?;
- let toolchain = cargo_version
- .get("cargo ".len()..)
- .and_then(|it| Version::parse(it.split_whitespace().next()?).ok());
-
+ let toolchain = version(cargo_toml.parent(), toolchain::cargo(), "cargo ")?;
let meta = CargoWorkspace::fetch_metadata(
&cargo_toml,
cargo_toml.parent(),
@@ -274,7 +280,7 @@ impl ProjectWorkspace {
let rustc_cfg =
rustc_cfg::get(Some(&cargo_toml), config.target.as_deref(), &config.extra_env);
- let cfg_overrides = config.cfg_overrides();
+ let cfg_overrides = config.cfg_overrides.clone();
let data_layout = target_data_layout::get(
Some(&cargo_toml),
config.target.as_deref(),
@@ -303,6 +309,7 @@ impl ProjectWorkspace {
project_json: ProjectJson,
target: Option<&str>,
extra_env: &FxHashMap<String, String>,
+ toolchain: Option<Version>,
) -> ProjectWorkspace {
let sysroot = match (project_json.sysroot.clone(), project_json.sysroot_src.clone()) {
(Some(sysroot), Some(sysroot_src)) => Ok(Sysroot::load(sysroot, sysroot_src)),
@@ -327,7 +334,7 @@ impl ProjectWorkspace {
}
let rustc_cfg = rustc_cfg::get(None, target, extra_env);
- ProjectWorkspace::Json { project: project_json, sysroot, rustc_cfg }
+ ProjectWorkspace::Json { project: project_json, sysroot, rustc_cfg, toolchain }
}
pub fn load_detached_files(
@@ -403,7 +410,7 @@ impl ProjectWorkspace {
let outputs = &mut match WorkspaceBuildScripts::run_once(config, &cargo_ws, progress) {
Ok(it) => Ok(it.into_iter()),
// io::Error is not Clone?
- Err(e) => Err(Arc::new(e)),
+ Err(e) => Err(sync::Arc::new(e)),
};
workspaces
@@ -440,18 +447,35 @@ impl ProjectWorkspace {
}
}
- pub fn find_sysroot_proc_macro_srv(&self) -> Option<AbsPathBuf> {
+ pub fn find_sysroot_proc_macro_srv(&self) -> Result<AbsPathBuf> {
match self {
ProjectWorkspace::Cargo { sysroot: Ok(sysroot), .. }
- | ProjectWorkspace::Json { sysroot: Ok(sysroot), .. } => {
+ | ProjectWorkspace::Json { sysroot: Ok(sysroot), .. }
+ | ProjectWorkspace::DetachedFiles { sysroot: Ok(sysroot), .. } => {
let standalone_server_name =
format!("rust-analyzer-proc-macro-srv{}", std::env::consts::EXE_SUFFIX);
["libexec", "lib"]
.into_iter()
.map(|segment| sysroot.root().join(segment).join(&standalone_server_name))
.find(|server_path| std::fs::metadata(server_path).is_ok())
+ .ok_or_else(|| {
+ anyhow::anyhow!(
+ "cannot find proc-macro server in sysroot `{}`",
+ sysroot.root().display()
+ )
+ })
+ }
+ ProjectWorkspace::DetachedFiles { .. } => {
+ Err(anyhow::anyhow!("cannot find proc-macro server, no sysroot was found"))
}
- _ => None,
+ ProjectWorkspace::Cargo { cargo, .. } => Err(anyhow::anyhow!(
+ "cannot find proc-macro-srv, the workspace `{}` is missing a sysroot",
+ cargo.workspace_root().display()
+ )),
+ ProjectWorkspace::Json { project, .. } => Err(anyhow::anyhow!(
+ "cannot find proc-macro-srv, the workspace `{}` is missing a sysroot",
+ project.path().display()
+ )),
}
}
@@ -469,7 +493,7 @@ impl ProjectWorkspace {
})
};
match self {
- ProjectWorkspace::Json { project, sysroot, rustc_cfg: _ } => project
+ ProjectWorkspace::Json { project, sysroot, rustc_cfg: _, toolchain: _ } => project
.crates()
.map(|(_, krate)| PackageRoot {
is_local: krate.is_workspace_member,
@@ -570,22 +594,23 @@ impl ProjectWorkspace {
pub fn to_crate_graph(
&self,
- load_proc_macro: &mut dyn FnMut(&str, &AbsPath) -> ProcMacroLoadResult,
load: &mut dyn FnMut(&AbsPath) -> Option<FileId>,
extra_env: &FxHashMap<String, String>,
- ) -> CrateGraph {
+ ) -> (CrateGraph, ProcMacroPaths) {
let _p = profile::span("ProjectWorkspace::to_crate_graph");
- let mut crate_graph = match self {
- ProjectWorkspace::Json { project, sysroot, rustc_cfg } => project_json_to_crate_graph(
- rustc_cfg.clone(),
- load_proc_macro,
- load,
- project,
- sysroot.as_ref().ok(),
- extra_env,
- Err("rust-project.json projects have no target layout set".into()),
- ),
+ let (mut crate_graph, proc_macros) = match self {
+ ProjectWorkspace::Json { project, sysroot, rustc_cfg, toolchain } => {
+ project_json_to_crate_graph(
+ rustc_cfg.clone(),
+ load,
+ project,
+ sysroot.as_ref().ok(),
+ extra_env,
+ Err("rust-project.json projects have no target layout set".into()),
+ toolchain.as_ref().and_then(|it| ReleaseChannel::from_str(it.pre.as_str())),
+ )
+ }
ProjectWorkspace::Cargo {
cargo,
sysroot,
@@ -593,21 +618,22 @@ impl ProjectWorkspace {
rustc_cfg,
cfg_overrides,
build_scripts,
- toolchain: _,
+ toolchain,
target_layout,
} => cargo_to_crate_graph(
- load_proc_macro,
load,
rustc.as_ref().ok(),
cargo,
sysroot.as_ref().ok(),
rustc_cfg.clone(),
cfg_overrides,
+ None,
build_scripts,
match target_layout.as_ref() {
Ok(it) => Ok(Arc::from(it.as_str())),
Err(it) => Err(Arc::from(it.as_str())),
},
+ toolchain.as_ref().and_then(|it| ReleaseChannel::from_str(it.pre.as_str())),
),
ProjectWorkspace::DetachedFiles { files, sysroot, rustc_cfg } => {
detached_files_to_crate_graph(
@@ -624,7 +650,7 @@ impl ProjectWorkspace {
} else {
tracing::debug!("Did not patch std to depend on cfg-if")
}
- crate_graph
+ (crate_graph, proc_macros)
}
pub fn eq_ignore_build_data(&self, other: &Self) -> bool {
@@ -659,9 +685,19 @@ impl ProjectWorkspace {
&& sysroot == o_sysroot
}
(
- Self::Json { project, sysroot, rustc_cfg },
- Self::Json { project: o_project, sysroot: o_sysroot, rustc_cfg: o_rustc_cfg },
- ) => project == o_project && rustc_cfg == o_rustc_cfg && sysroot == o_sysroot,
+ Self::Json { project, sysroot, rustc_cfg, toolchain },
+ Self::Json {
+ project: o_project,
+ sysroot: o_sysroot,
+ rustc_cfg: o_rustc_cfg,
+ toolchain: o_toolchain,
+ },
+ ) => {
+ project == o_project
+ && rustc_cfg == o_rustc_cfg
+ && sysroot == o_sysroot
+ && toolchain == o_toolchain
+ }
(
Self::DetachedFiles { files, sysroot, rustc_cfg },
Self::DetachedFiles { files: o_files, sysroot: o_sysroot, rustc_cfg: o_rustc_cfg },
@@ -669,130 +705,146 @@ impl ProjectWorkspace {
_ => false,
}
}
+
+ /// Returns `true` if the project workspace is [`Json`].
+ ///
+ /// [`Json`]: ProjectWorkspace::Json
+ #[must_use]
+ pub fn is_json(&self) -> bool {
+ matches!(self, Self::Json { .. })
+ }
}
fn project_json_to_crate_graph(
rustc_cfg: Vec<CfgFlag>,
- load_proc_macro: &mut dyn FnMut(&str, &AbsPath) -> ProcMacroLoadResult,
load: &mut dyn FnMut(&AbsPath) -> Option<FileId>,
project: &ProjectJson,
sysroot: Option<&Sysroot>,
extra_env: &FxHashMap<String, String>,
target_layout: TargetLayoutLoadResult,
-) -> CrateGraph {
- let mut crate_graph = CrateGraph::default();
+ channel: Option<ReleaseChannel>,
+) -> (CrateGraph, ProcMacroPaths) {
+ let mut res = (CrateGraph::default(), ProcMacroPaths::default());
+ let (crate_graph, proc_macros) = &mut res;
let sysroot_deps = sysroot.as_ref().map(|sysroot| {
sysroot_to_crate_graph(
- &mut crate_graph,
+ crate_graph,
sysroot,
rustc_cfg.clone(),
target_layout.clone(),
load,
+ channel,
)
});
let mut cfg_cache: FxHashMap<&str, Vec<CfgFlag>> = FxHashMap::default();
- let crates: NoHashHashMap<CrateId, CrateId> = project
+ let crates: FxHashMap<CrateId, CrateId> = project
.crates()
- .filter_map(|(crate_id, krate)| {
- let file_path = &krate.root_module;
- let file_id = load(file_path)?;
- Some((crate_id, krate, file_id))
- })
- .map(|(crate_id, krate, file_id)| {
- let env = krate.env.clone().into_iter().collect();
- let proc_macro = match krate.proc_macro_dylib_path.clone() {
- Some(it) => load_proc_macro(
- krate.display_name.as_ref().map(|it| it.canonical_name()).unwrap_or(""),
- &it,
- ),
- None => Err("no proc macro dylib present".into()),
- };
-
- let target_cfgs = match krate.target.as_deref() {
- Some(target) => cfg_cache
- .entry(target)
- .or_insert_with(|| rustc_cfg::get(None, Some(target), extra_env)),
- None => &rustc_cfg,
- };
-
- let mut cfg_options = CfgOptions::default();
- cfg_options.extend(target_cfgs.iter().chain(krate.cfg.iter()).cloned());
- (
+ .filter_map(|(crate_id, krate)| Some((crate_id, krate, load(&krate.root_module)?)))
+ .map(
+ |(
crate_id,
- crate_graph.add_crate_root(
+ Crate {
+ display_name,
+ edition,
+ version,
+ cfg,
+ target,
+ env,
+ proc_macro_dylib_path,
+ is_proc_macro,
+ repository,
+ ..
+ },
+ file_id,
+ )| {
+ let env = env.clone().into_iter().collect();
+
+ let target_cfgs = match target.as_deref() {
+ Some(target) => cfg_cache
+ .entry(target)
+ .or_insert_with(|| rustc_cfg::get(None, Some(target), extra_env)),
+ None => &rustc_cfg,
+ };
+
+ let crate_graph_crate_id = crate_graph.add_crate_root(
file_id,
- krate.edition,
- krate.display_name.clone(),
- krate.version.clone(),
- cfg_options.clone(),
- cfg_options,
+ *edition,
+ display_name.clone(),
+ version.clone(),
+ target_cfgs.iter().chain(cfg.iter()).cloned().collect(),
+ None,
env,
- proc_macro,
- krate.is_proc_macro,
- if krate.display_name.is_some() {
- CrateOrigin::CratesIo {
- repo: krate.repository.clone(),
- name: krate
- .display_name
- .clone()
- .map(|n| n.canonical_name().to_string()),
+ *is_proc_macro,
+ if let Some(name) = display_name.clone() {
+ CrateOrigin::Local {
+ repo: repository.clone(),
+ name: Some(name.canonical_name().to_string()),
}
} else {
- CrateOrigin::CratesIo { repo: None, name: None }
+ CrateOrigin::Local { repo: None, name: None }
},
target_layout.clone(),
- ),
- )
- })
+ channel,
+ );
+ if *is_proc_macro {
+ if let Some(path) = proc_macro_dylib_path.clone() {
+ let node = Ok((
+ display_name.as_ref().map(|it| it.canonical_name().to_owned()),
+ path,
+ ));
+ proc_macros.insert(crate_graph_crate_id, node);
+ }
+ }
+ (crate_id, crate_graph_crate_id)
+ },
+ )
.collect();
for (from, krate) in project.crates() {
if let Some(&from) = crates.get(&from) {
if let Some((public_deps, libproc_macro)) = &sysroot_deps {
- public_deps.add_to_crate_graph(&mut crate_graph, from);
- if krate.is_proc_macro {
- if let Some(proc_macro) = libproc_macro {
- add_dep(
- &mut crate_graph,
- from,
- CrateName::new("proc_macro").unwrap(),
- *proc_macro,
- );
- }
+ public_deps.add_to_crate_graph(crate_graph, from);
+ if let Some(proc_macro) = libproc_macro {
+ add_proc_macro_dep(crate_graph, from, *proc_macro, krate.is_proc_macro);
}
}
for dep in &krate.deps {
if let Some(&to) = crates.get(&dep.crate_id) {
- add_dep(&mut crate_graph, from, dep.name.clone(), to)
+ add_dep(crate_graph, from, dep.name.clone(), to)
}
}
}
}
- crate_graph
+ res
}
fn cargo_to_crate_graph(
- load_proc_macro: &mut dyn FnMut(&str, &AbsPath) -> ProcMacroLoadResult,
load: &mut dyn FnMut(&AbsPath) -> Option<FileId>,
rustc: Option<&(CargoWorkspace, WorkspaceBuildScripts)>,
cargo: &CargoWorkspace,
sysroot: Option<&Sysroot>,
rustc_cfg: Vec<CfgFlag>,
override_cfg: &CfgOverrides,
+ // Don't compute cfg and use this if present
+ forced_cfg: Option<CfgOptions>,
build_scripts: &WorkspaceBuildScripts,
target_layout: TargetLayoutLoadResult,
-) -> CrateGraph {
+ channel: Option<ReleaseChannel>,
+) -> (CrateGraph, ProcMacroPaths) {
let _p = profile::span("cargo_to_crate_graph");
- let mut crate_graph = CrateGraph::default();
+ let mut res = (CrateGraph::default(), ProcMacroPaths::default());
+ let crate_graph = &mut res.0;
+ let proc_macros = &mut res.1;
let (public_deps, libproc_macro) = match sysroot {
Some(sysroot) => sysroot_to_crate_graph(
- &mut crate_graph,
+ crate_graph,
sysroot,
rustc_cfg.clone(),
target_layout.clone(),
load,
+ channel,
),
None => (SysrootPublicDeps::default(), None),
};
@@ -804,37 +856,40 @@ fn cargo_to_crate_graph(
cfg_options
};
+ // Mapping of a package to its library target
let mut pkg_to_lib_crate = FxHashMap::default();
-
let mut pkg_crates = FxHashMap::default();
// Does any crate signal to rust-analyzer that they need the rustc_private crates?
let mut has_private = false;
+
// Next, create crates for each package, target pair
for pkg in cargo.packages() {
- let mut cfg_options = cfg_options.clone();
+ has_private |= cargo[pkg].metadata.rustc_private;
- let overrides = match override_cfg {
- CfgOverrides::Wildcard(cfg_diff) => Some(cfg_diff),
- CfgOverrides::Selective(cfg_overrides) => cfg_overrides.get(&cargo[pkg].name),
- };
+ let cfg_options = forced_cfg.clone().unwrap_or_else(|| {
+ let mut cfg_options = cfg_options.clone();
- // Add test cfg for local crates
- if cargo[pkg].is_local {
- cfg_options.insert_atom("test".into());
- }
+ // Add test cfg for local crates
+ if cargo[pkg].is_local {
+ cfg_options.insert_atom("test".into());
+ }
- if let Some(overrides) = overrides {
- // FIXME: this is sort of a hack to deal with #![cfg(not(test))] vanishing such as seen
- // in ed25519_dalek (#7243), and libcore (#9203) (although you only hit that one while
- // working on rust-lang/rust as that's the only time it appears outside sysroot).
- //
- // A more ideal solution might be to reanalyze crates based on where the cursor is and
- // figure out the set of cfgs that would have to apply to make it active.
+ if !override_cfg.global.is_empty() {
+ cfg_options.apply_diff(override_cfg.global.clone());
+ };
+ if let Some(diff) = override_cfg.selective.get(&cargo[pkg].name) {
+ // FIXME: this is sort of a hack to deal with #![cfg(not(test))] vanishing such as seen
+ // in ed25519_dalek (#7243), and libcore (#9203) (although you only hit that one while
+ // working on rust-lang/rust as that's the only time it appears outside sysroot).
+ //
+ // A more ideal solution might be to reanalyze crates based on where the cursor is and
+ // figure out the set of cfgs that would have to apply to make it active.
- cfg_options.apply_diff(overrides.clone());
- };
+ cfg_options.apply_diff(diff.clone());
+ };
+ cfg_options
+ });
- has_private |= cargo[pkg].metadata.rustc_private;
let mut lib_tgt = None;
for &tgt in cargo[pkg].targets.iter() {
if cargo[tgt].kind != TargetKind::Lib && !cargo[pkg].is_member {
@@ -845,44 +900,57 @@ fn cargo_to_crate_graph(
// https://github.com/rust-lang/rust-analyzer/issues/11300
continue;
}
+ let &TargetData { ref name, kind, is_proc_macro, ref root, .. } = &cargo[tgt];
- if let Some(file_id) = load(&cargo[tgt].root) {
- let crate_id = add_target_crate_root(
- &mut crate_graph,
- &cargo[pkg],
- build_scripts.get_output(pkg),
- cfg_options.clone(),
- &mut |path| load_proc_macro(&cargo[tgt].name, path),
- file_id,
- &cargo[tgt].name,
- cargo[tgt].is_proc_macro,
- target_layout.clone(),
- );
- if cargo[tgt].kind == TargetKind::Lib {
- lib_tgt = Some((crate_id, cargo[tgt].name.clone()));
+ if kind == TargetKind::Lib
+ && sysroot.map_or(false, |sysroot| root.starts_with(sysroot.src_root()))
+ {
+ if let Some(&(_, crate_id, _)) =
+ public_deps.deps.iter().find(|(dep_name, ..)| dep_name.as_smol_str() == name)
+ {
+ pkg_crates.entry(pkg).or_insert_with(Vec::new).push((crate_id, kind));
+
+ lib_tgt = Some((crate_id, name.clone()));
pkg_to_lib_crate.insert(pkg, crate_id);
+ // sysroot is inside the workspace, prevent the sysroot crates from being duplicated here
+ continue;
}
- // Even crates that don't set proc-macro = true are allowed to depend on proc_macro
- // (just none of the APIs work when called outside of a proc macro).
- if let Some(proc_macro) = libproc_macro {
- add_dep_with_prelude(
- &mut crate_graph,
- crate_id,
- CrateName::new("proc_macro").unwrap(),
- proc_macro,
- cargo[tgt].is_proc_macro,
- );
- }
+ }
+
+ let Some(file_id) = load(root) else { continue };
- pkg_crates.entry(pkg).or_insert_with(Vec::new).push((crate_id, cargo[tgt].kind));
+ let crate_id = add_target_crate_root(
+ crate_graph,
+ proc_macros,
+ &cargo[pkg],
+ build_scripts.get_output(pkg),
+ cfg_options.clone(),
+ file_id,
+ name,
+ is_proc_macro,
+ target_layout.clone(),
+ false,
+ channel,
+ );
+ if kind == TargetKind::Lib {
+ lib_tgt = Some((crate_id, name.clone()));
+ pkg_to_lib_crate.insert(pkg, crate_id);
+ }
+ // Even crates that don't set proc-macro = true are allowed to depend on proc_macro
+ // (just none of the APIs work when called outside of a proc macro).
+ if let Some(proc_macro) = libproc_macro {
+ add_proc_macro_dep(crate_graph, crate_id, proc_macro, is_proc_macro);
}
+
+ pkg_crates.entry(pkg).or_insert_with(Vec::new).push((crate_id, kind));
}
// Set deps to the core, std and to the lib target of the current package
for &(from, kind) in pkg_crates.get(&pkg).into_iter().flatten() {
// Add sysroot deps first so that a lib target named `core` etc. can overwrite them.
- public_deps.add_to_crate_graph(&mut crate_graph, from);
+ public_deps.add_to_crate_graph(crate_graph, from);
+ // Add dep edge of all targets to the package's lib target
if let Some((to, name)) = lib_tgt.clone() {
if to != from && kind != TargetKind::BuildScript {
// (build script can not depend on its library target)
@@ -891,7 +959,7 @@ fn cargo_to_crate_graph(
// cargo metadata does not do any normalization,
// so we do it ourselves currently
let name = CrateName::normalize_dashes(&name);
- add_dep(&mut crate_graph, from, name, to);
+ add_dep(crate_graph, from, name, to);
}
}
}
@@ -900,21 +968,18 @@ fn cargo_to_crate_graph(
// Now add a dep edge from all targets of upstream to the lib
// target of downstream.
for pkg in cargo.packages() {
- for dep in cargo[pkg].dependencies.iter() {
- let name = CrateName::new(&dep.name).unwrap();
- if let Some(&to) = pkg_to_lib_crate.get(&dep.pkg) {
- for &(from, kind) in pkg_crates.get(&pkg).into_iter().flatten() {
- if dep.kind == DepKind::Build && kind != TargetKind::BuildScript {
- // Only build scripts may depend on build dependencies.
- continue;
- }
- if dep.kind != DepKind::Build && kind == TargetKind::BuildScript {
- // Build scripts may only depend on build dependencies.
- continue;
- }
+ for dep in &cargo[pkg].dependencies {
+ let Some(&to) = pkg_to_lib_crate.get(&dep.pkg) else { continue };
+ let Some(targets) = pkg_crates.get(&pkg) else { continue };
- add_dep(&mut crate_graph, from, name.clone(), to)
+ let name = CrateName::new(&dep.name).unwrap();
+ for &(from, kind) in targets {
+ // Build scripts may only depend on build dependencies.
+ if (dep.kind == DepKind::Build) != (kind == TargetKind::BuildScript) {
+ continue;
}
+
+ add_dep(crate_graph, from, name.clone(), to)
}
}
}
@@ -924,10 +989,10 @@ fn cargo_to_crate_graph(
// and create dependencies on them for the crates which opt-in to that
if let Some((rustc_workspace, rustc_build_scripts)) = rustc {
handle_rustc_crates(
- &mut crate_graph,
+ crate_graph,
+ proc_macros,
&mut pkg_to_lib_crate,
load,
- load_proc_macro,
rustc_workspace,
cargo,
&public_deps,
@@ -943,10 +1008,11 @@ fn cargo_to_crate_graph(
rustc_build_scripts
},
target_layout,
+ channel,
);
}
}
- crate_graph
+ res
}
fn detached_files_to_crate_graph(
@@ -955,7 +1021,7 @@ fn detached_files_to_crate_graph(
detached_files: &[AbsPathBuf],
sysroot: Option<&Sysroot>,
target_layout: TargetLayoutLoadResult,
-) -> CrateGraph {
+) -> (CrateGraph, ProcMacroPaths) {
let _p = profile::span("detached_files_to_crate_graph");
let mut crate_graph = CrateGraph::default();
let (public_deps, _libproc_macro) = match sysroot {
@@ -965,6 +1031,7 @@ fn detached_files_to_crate_graph(
rustc_cfg.clone(),
target_layout.clone(),
load,
+ None,
),
None => (SysrootPublicDeps::default(), None),
};
@@ -990,27 +1057,27 @@ fn detached_files_to_crate_graph(
display_name.clone(),
None,
cfg_options.clone(),
- cfg_options.clone(),
+ None,
Env::default(),
- Ok(Vec::new()),
false,
- CrateOrigin::CratesIo {
+ CrateOrigin::Local {
repo: None,
name: display_name.map(|n| n.canonical_name().to_string()),
},
target_layout.clone(),
+ None,
);
public_deps.add_to_crate_graph(&mut crate_graph, detached_file_crate);
}
- crate_graph
+ (crate_graph, FxHashMap::default())
}
fn handle_rustc_crates(
crate_graph: &mut CrateGraph,
+ proc_macros: &mut ProcMacroPaths,
pkg_to_lib_crate: &mut FxHashMap<Package, CrateId>,
load: &mut dyn FnMut(&AbsPath) -> Option<FileId>,
- load_proc_macro: &mut dyn FnMut(&str, &AbsPath) -> ProcMacroLoadResult,
rustc_workspace: &CargoWorkspace,
cargo: &CargoWorkspace,
public_deps: &SysrootPublicDeps,
@@ -1020,6 +1087,7 @@ fn handle_rustc_crates(
override_cfg: &CfgOverrides,
build_scripts: &WorkspaceBuildScripts,
target_layout: TargetLayoutLoadResult,
+ channel: Option<ReleaseChannel>,
) {
let mut rustc_pkg_crates = FxHashMap::default();
// The root package of the rustc-dev component is rustc_driver, so we match that
@@ -1044,14 +1112,10 @@ fn handle_rustc_crates(
let mut cfg_options = cfg_options.clone();
- let overrides = match override_cfg {
- CfgOverrides::Wildcard(cfg_diff) => Some(cfg_diff),
- CfgOverrides::Selective(cfg_overrides) => {
- cfg_overrides.get(&rustc_workspace[pkg].name)
- }
+ if !override_cfg.global.is_empty() {
+ cfg_options.apply_diff(override_cfg.global.clone());
};
-
- if let Some(overrides) = overrides {
+ if let Some(diff) = override_cfg.selective.get(&rustc_workspace[pkg].name) {
// FIXME: this is sort of a hack to deal with #![cfg(not(test))] vanishing such as seen
// in ed25519_dalek (#7243), and libcore (#9203) (although you only hit that one while
// working on rust-lang/rust as that's the only time it appears outside sysroot).
@@ -1059,7 +1123,7 @@ fn handle_rustc_crates(
// A more ideal solution might be to reanalyze crates based on where the cursor is and
// figure out the set of cfgs that would have to apply to make it active.
- cfg_options.apply_diff(overrides.clone());
+ cfg_options.apply_diff(diff.clone());
};
for &tgt in rustc_workspace[pkg].targets.iter() {
@@ -1069,23 +1133,24 @@ fn handle_rustc_crates(
if let Some(file_id) = load(&rustc_workspace[tgt].root) {
let crate_id = add_target_crate_root(
crate_graph,
+ proc_macros,
&rustc_workspace[pkg],
build_scripts.get_output(pkg),
cfg_options.clone(),
- &mut |path| load_proc_macro(&rustc_workspace[tgt].name, path),
file_id,
&rustc_workspace[tgt].name,
rustc_workspace[tgt].is_proc_macro,
target_layout.clone(),
+ true,
+ channel,
);
pkg_to_lib_crate.insert(pkg, crate_id);
// Add dependencies on core / std / alloc for this crate
public_deps.add_to_crate_graph(crate_graph, crate_id);
if let Some(proc_macro) = libproc_macro {
- add_dep_with_prelude(
+ add_proc_macro_dep(
crate_graph,
crate_id,
- CrateName::new("proc_macro").unwrap(),
proc_macro,
rustc_workspace[tgt].is_proc_macro,
);
@@ -1134,22 +1199,29 @@ fn handle_rustc_crates(
fn add_target_crate_root(
crate_graph: &mut CrateGraph,
+ proc_macros: &mut ProcMacroPaths,
pkg: &PackageData,
build_data: Option<&BuildScriptOutput>,
cfg_options: CfgOptions,
- load_proc_macro: &mut dyn FnMut(&AbsPath) -> ProcMacroLoadResult,
file_id: FileId,
cargo_name: &str,
is_proc_macro: bool,
target_layout: TargetLayoutLoadResult,
+ rustc_crate: bool,
+ channel: Option<ReleaseChannel>,
) -> CrateId {
let edition = pkg.edition;
- let mut potential_cfg_options = cfg_options.clone();
- potential_cfg_options.extend(
- pkg.features
- .iter()
- .map(|feat| CfgFlag::KeyValue { key: "feature".into(), value: feat.0.into() }),
- );
+ let potential_cfg_options = if pkg.features.is_empty() {
+ None
+ } else {
+ let mut potential_cfg_options = cfg_options.clone();
+ potential_cfg_options.extend(
+ pkg.features
+ .iter()
+ .map(|feat| CfgFlag::KeyValue { key: "feature".into(), value: feat.0.into() }),
+ );
+ Some(potential_cfg_options)
+ };
let cfg_options = {
let mut opts = cfg_options;
for feature in pkg.active_features.iter() {
@@ -1170,14 +1242,8 @@ fn add_target_crate_root(
}
}
- let proc_macro = match build_data.as_ref().map(|it| it.proc_macro_dylib_path.as_ref()) {
- Some(Some(it)) => load_proc_macro(it),
- Some(None) => Err("no proc macro dylib present".into()),
- None => Err("crate has not (yet) been built".into()),
- };
-
let display_name = CrateDisplayName::from_canonical_name(cargo_name.to_string());
- crate_graph.add_crate_root(
+ let crate_id = crate_graph.add_crate_root(
file_id,
edition,
Some(display_name),
@@ -1185,11 +1251,28 @@ fn add_target_crate_root(
cfg_options,
potential_cfg_options,
env,
- proc_macro,
is_proc_macro,
- CrateOrigin::CratesIo { repo: pkg.repository.clone(), name: Some(pkg.name.clone()) },
+ if rustc_crate {
+ CrateOrigin::Rustc { name: pkg.name.clone() }
+ } else if pkg.is_member {
+ CrateOrigin::Local { repo: pkg.repository.clone(), name: Some(pkg.name.clone()) }
+ } else {
+ CrateOrigin::Library { repo: pkg.repository.clone(), name: pkg.name.clone() }
+ },
target_layout,
- )
+ channel,
+ );
+ if is_proc_macro {
+ let proc_macro = match build_data.as_ref().map(|it| it.proc_macro_dylib_path.as_ref()) {
+ Some(it) => it.cloned().map(|path| Ok((Some(cargo_name.to_owned()), path))),
+ None => Some(Err("crate has not yet been built".to_owned())),
+ };
+ if let Some(proc_macro) = proc_macro {
+ proc_macros.insert(crate_id, proc_macro);
+ }
+ }
+
+ crate_id
}
#[derive(Default)]
@@ -1212,34 +1295,47 @@ fn sysroot_to_crate_graph(
rustc_cfg: Vec<CfgFlag>,
target_layout: TargetLayoutLoadResult,
load: &mut dyn FnMut(&AbsPath) -> Option<FileId>,
+ channel: Option<ReleaseChannel>,
) -> (SysrootPublicDeps, Option<CrateId>) {
let _p = profile::span("sysroot_to_crate_graph");
let mut cfg_options = CfgOptions::default();
- cfg_options.extend(rustc_cfg);
- let sysroot_crates: FxHashMap<SysrootCrate, CrateId> = sysroot
- .crates()
- .filter_map(|krate| {
- let file_id = load(&sysroot[krate].root)?;
-
- let env = Env::default();
- let display_name = CrateDisplayName::from_canonical_name(sysroot[krate].name.clone());
- let crate_id = crate_graph.add_crate_root(
- file_id,
- Edition::CURRENT,
- Some(display_name),
- None,
- cfg_options.clone(),
- cfg_options.clone(),
- env,
- Err("no proc macro loaded for sysroot crate".into()),
- false,
- CrateOrigin::Lang(LangCrateOrigin::from(&*sysroot[krate].name)),
- target_layout.clone(),
- );
- Some((krate, crate_id))
- })
- .collect();
-
+ cfg_options.extend(rustc_cfg.clone());
+ let sysroot_crates: FxHashMap<SysrootCrate, CrateId> = match &sysroot.hack_cargo_workspace {
+ Some(cargo) => handle_hack_cargo_workspace(
+ load,
+ cargo,
+ rustc_cfg,
+ cfg_options,
+ target_layout,
+ channel,
+ crate_graph,
+ sysroot,
+ ),
+ None => sysroot
+ .crates()
+ .filter_map(|krate| {
+ let file_id = load(&sysroot[krate].root)?;
+
+ let env = Env::default();
+ let display_name =
+ CrateDisplayName::from_canonical_name(sysroot[krate].name.clone());
+ let crate_id = crate_graph.add_crate_root(
+ file_id,
+ Edition::CURRENT,
+ Some(display_name),
+ None,
+ cfg_options.clone(),
+ None,
+ env,
+ false,
+ CrateOrigin::Lang(LangCrateOrigin::from(&*sysroot[krate].name)),
+ target_layout.clone(),
+ channel,
+ );
+ Some((krate, crate_id))
+ })
+ .collect(),
+ };
for from in sysroot.crates() {
for &to in sysroot[from].deps.iter() {
let name = CrateName::new(&sysroot[to].name).unwrap();
@@ -1260,6 +1356,69 @@ fn sysroot_to_crate_graph(
(public_deps, libproc_macro)
}
+fn handle_hack_cargo_workspace(
+ load: &mut dyn FnMut(&AbsPath) -> Option<FileId>,
+ cargo: &CargoWorkspace,
+ rustc_cfg: Vec<CfgFlag>,
+ cfg_options: CfgOptions,
+ target_layout: Result<Arc<str>, Arc<str>>,
+ channel: Option<ReleaseChannel>,
+ crate_graph: &mut CrateGraph,
+ sysroot: &Sysroot,
+) -> FxHashMap<SysrootCrate, CrateId> {
+ let (cg, mut pm) = cargo_to_crate_graph(
+ load,
+ None,
+ cargo,
+ None,
+ rustc_cfg,
+ &CfgOverrides::default(),
+ Some(cfg_options),
+ &WorkspaceBuildScripts::default(),
+ target_layout,
+ channel,
+ );
+ crate_graph.extend(cg, &mut pm);
+ for crate_name in ["std", "alloc", "core"] {
+ let original = crate_graph
+ .iter()
+ .find(|x| {
+ crate_graph[*x]
+ .display_name
+ .as_ref()
+ .map(|x| x.canonical_name() == crate_name)
+ .unwrap_or(false)
+ })
+ .unwrap();
+ let fake_crate_name = format!("rustc-std-workspace-{}", crate_name);
+ let fake = crate_graph
+ .iter()
+ .find(|x| {
+ crate_graph[*x]
+ .display_name
+ .as_ref()
+ .map(|x| x.canonical_name() == fake_crate_name)
+ .unwrap_or(false)
+ })
+ .unwrap();
+ crate_graph.remove_and_replace(fake, original).unwrap();
+ }
+ for (_, c) in crate_graph.iter_mut() {
+ if c.origin.is_local() {
+ // LangCrateOrigin::Other is good enough for a hack.
+ c.origin = CrateOrigin::Lang(LangCrateOrigin::Other);
+ }
+ }
+ sysroot
+ .crates()
+ .filter_map(|krate| {
+ let file_id = load(&sysroot[krate].root)?;
+ let crate_id = crate_graph.crate_id_for_crate_root(file_id)?;
+ Some((krate, crate_id))
+ })
+ .collect()
+}
+
fn add_dep(graph: &mut CrateGraph, from: CrateId, name: CrateName, to: CrateId) {
add_dep_inner(graph, from, Dependency::new(name, to))
}
@@ -1274,6 +1433,10 @@ fn add_dep_with_prelude(
add_dep_inner(graph, from, Dependency::with_prelude(name, to, prelude))
}
+fn add_proc_macro_dep(crate_graph: &mut CrateGraph, from: CrateId, to: CrateId, prelude: bool) {
+ add_dep_with_prelude(crate_graph, from, CrateName::new("proc_macro").unwrap(), to, prelude);
+}
+
fn add_dep_inner(graph: &mut CrateGraph, from: CrateId, dep: Dependency) {
if let Err(err) = graph.add_dep(from, dep) {
tracing::error!("{}", err)
diff --git a/src/tools/rust-analyzer/crates/project-model/test_data/output/cargo_hello_world_project_model.txt b/src/tools/rust-analyzer/crates/project-model/test_data/output/cargo_hello_world_project_model.txt
new file mode 100644
index 000000000..e595cd827
--- /dev/null
+++ b/src/tools/rust-analyzer/crates/project-model/test_data/output/cargo_hello_world_project_model.txt
@@ -0,0 +1,344 @@
+{
+ 0: CrateData {
+ root_file_id: FileId(
+ 1,
+ ),
+ edition: Edition2018,
+ version: Some(
+ "0.1.0",
+ ),
+ display_name: Some(
+ CrateDisplayName {
+ crate_name: CrateName(
+ "hello_world",
+ ),
+ canonical_name: "hello-world",
+ },
+ ),
+ cfg_options: CfgOptions(
+ [
+ "debug_assertions",
+ "test",
+ ],
+ ),
+ potential_cfg_options: None,
+ env: Env {
+ entries: {
+ "CARGO_PKG_LICENSE": "",
+ "CARGO_PKG_VERSION_MAJOR": "0",
+ "CARGO_MANIFEST_DIR": "$ROOT$hello-world",
+ "CARGO_PKG_VERSION": "0.1.0",
+ "CARGO_PKG_AUTHORS": "",
+ "CARGO_CRATE_NAME": "hello_world",
+ "CARGO_PKG_LICENSE_FILE": "",
+ "CARGO_PKG_HOMEPAGE": "",
+ "CARGO_PKG_DESCRIPTION": "",
+ "CARGO_PKG_NAME": "hello-world",
+ "CARGO_PKG_VERSION_PATCH": "0",
+ "CARGO": "cargo",
+ "CARGO_PKG_REPOSITORY": "",
+ "CARGO_PKG_VERSION_MINOR": "1",
+ "CARGO_PKG_VERSION_PRE": "",
+ },
+ },
+ dependencies: [
+ Dependency {
+ crate_id: Idx::<CrateData>(4),
+ name: CrateName(
+ "libc",
+ ),
+ prelude: true,
+ },
+ ],
+ origin: Local {
+ repo: None,
+ name: Some(
+ "hello-world",
+ ),
+ },
+ is_proc_macro: false,
+ target_layout: Err(
+ "target_data_layout not loaded",
+ ),
+ channel: None,
+ },
+ 1: CrateData {
+ root_file_id: FileId(
+ 2,
+ ),
+ edition: Edition2018,
+ version: Some(
+ "0.1.0",
+ ),
+ display_name: Some(
+ CrateDisplayName {
+ crate_name: CrateName(
+ "hello_world",
+ ),
+ canonical_name: "hello-world",
+ },
+ ),
+ cfg_options: CfgOptions(
+ [
+ "debug_assertions",
+ "test",
+ ],
+ ),
+ potential_cfg_options: None,
+ env: Env {
+ entries: {
+ "CARGO_PKG_LICENSE": "",
+ "CARGO_PKG_VERSION_MAJOR": "0",
+ "CARGO_MANIFEST_DIR": "$ROOT$hello-world",
+ "CARGO_PKG_VERSION": "0.1.0",
+ "CARGO_PKG_AUTHORS": "",
+ "CARGO_CRATE_NAME": "hello_world",
+ "CARGO_PKG_LICENSE_FILE": "",
+ "CARGO_PKG_HOMEPAGE": "",
+ "CARGO_PKG_DESCRIPTION": "",
+ "CARGO_PKG_NAME": "hello-world",
+ "CARGO_PKG_VERSION_PATCH": "0",
+ "CARGO": "cargo",
+ "CARGO_PKG_REPOSITORY": "",
+ "CARGO_PKG_VERSION_MINOR": "1",
+ "CARGO_PKG_VERSION_PRE": "",
+ },
+ },
+ dependencies: [
+ Dependency {
+ crate_id: Idx::<CrateData>(0),
+ name: CrateName(
+ "hello_world",
+ ),
+ prelude: true,
+ },
+ Dependency {
+ crate_id: Idx::<CrateData>(4),
+ name: CrateName(
+ "libc",
+ ),
+ prelude: true,
+ },
+ ],
+ origin: Local {
+ repo: None,
+ name: Some(
+ "hello-world",
+ ),
+ },
+ is_proc_macro: false,
+ target_layout: Err(
+ "target_data_layout not loaded",
+ ),
+ channel: None,
+ },
+ 2: CrateData {
+ root_file_id: FileId(
+ 3,
+ ),
+ edition: Edition2018,
+ version: Some(
+ "0.1.0",
+ ),
+ display_name: Some(
+ CrateDisplayName {
+ crate_name: CrateName(
+ "an_example",
+ ),
+ canonical_name: "an-example",
+ },
+ ),
+ cfg_options: CfgOptions(
+ [
+ "debug_assertions",
+ "test",
+ ],
+ ),
+ potential_cfg_options: None,
+ env: Env {
+ entries: {
+ "CARGO_PKG_LICENSE": "",
+ "CARGO_PKG_VERSION_MAJOR": "0",
+ "CARGO_MANIFEST_DIR": "$ROOT$hello-world",
+ "CARGO_PKG_VERSION": "0.1.0",
+ "CARGO_PKG_AUTHORS": "",
+ "CARGO_CRATE_NAME": "hello_world",
+ "CARGO_PKG_LICENSE_FILE": "",
+ "CARGO_PKG_HOMEPAGE": "",
+ "CARGO_PKG_DESCRIPTION": "",
+ "CARGO_PKG_NAME": "hello-world",
+ "CARGO_PKG_VERSION_PATCH": "0",
+ "CARGO": "cargo",
+ "CARGO_PKG_REPOSITORY": "",
+ "CARGO_PKG_VERSION_MINOR": "1",
+ "CARGO_PKG_VERSION_PRE": "",
+ },
+ },
+ dependencies: [
+ Dependency {
+ crate_id: Idx::<CrateData>(0),
+ name: CrateName(
+ "hello_world",
+ ),
+ prelude: true,
+ },
+ Dependency {
+ crate_id: Idx::<CrateData>(4),
+ name: CrateName(
+ "libc",
+ ),
+ prelude: true,
+ },
+ ],
+ origin: Local {
+ repo: None,
+ name: Some(
+ "hello-world",
+ ),
+ },
+ is_proc_macro: false,
+ target_layout: Err(
+ "target_data_layout not loaded",
+ ),
+ channel: None,
+ },
+ 3: CrateData {
+ root_file_id: FileId(
+ 4,
+ ),
+ edition: Edition2018,
+ version: Some(
+ "0.1.0",
+ ),
+ display_name: Some(
+ CrateDisplayName {
+ crate_name: CrateName(
+ "it",
+ ),
+ canonical_name: "it",
+ },
+ ),
+ cfg_options: CfgOptions(
+ [
+ "debug_assertions",
+ "test",
+ ],
+ ),
+ potential_cfg_options: None,
+ env: Env {
+ entries: {
+ "CARGO_PKG_LICENSE": "",
+ "CARGO_PKG_VERSION_MAJOR": "0",
+ "CARGO_MANIFEST_DIR": "$ROOT$hello-world",
+ "CARGO_PKG_VERSION": "0.1.0",
+ "CARGO_PKG_AUTHORS": "",
+ "CARGO_CRATE_NAME": "hello_world",
+ "CARGO_PKG_LICENSE_FILE": "",
+ "CARGO_PKG_HOMEPAGE": "",
+ "CARGO_PKG_DESCRIPTION": "",
+ "CARGO_PKG_NAME": "hello-world",
+ "CARGO_PKG_VERSION_PATCH": "0",
+ "CARGO": "cargo",
+ "CARGO_PKG_REPOSITORY": "",
+ "CARGO_PKG_VERSION_MINOR": "1",
+ "CARGO_PKG_VERSION_PRE": "",
+ },
+ },
+ dependencies: [
+ Dependency {
+ crate_id: Idx::<CrateData>(0),
+ name: CrateName(
+ "hello_world",
+ ),
+ prelude: true,
+ },
+ Dependency {
+ crate_id: Idx::<CrateData>(4),
+ name: CrateName(
+ "libc",
+ ),
+ prelude: true,
+ },
+ ],
+ origin: Local {
+ repo: None,
+ name: Some(
+ "hello-world",
+ ),
+ },
+ is_proc_macro: false,
+ target_layout: Err(
+ "target_data_layout not loaded",
+ ),
+ channel: None,
+ },
+ 4: CrateData {
+ root_file_id: FileId(
+ 5,
+ ),
+ edition: Edition2015,
+ version: Some(
+ "0.2.98",
+ ),
+ display_name: Some(
+ CrateDisplayName {
+ crate_name: CrateName(
+ "libc",
+ ),
+ canonical_name: "libc",
+ },
+ ),
+ cfg_options: CfgOptions(
+ [
+ "debug_assertions",
+ "feature=default",
+ "feature=std",
+ ],
+ ),
+ potential_cfg_options: Some(
+ CfgOptions(
+ [
+ "debug_assertions",
+ "feature=align",
+ "feature=const-extern-fn",
+ "feature=default",
+ "feature=extra_traits",
+ "feature=rustc-dep-of-std",
+ "feature=std",
+ "feature=use_std",
+ ],
+ ),
+ ),
+ env: Env {
+ entries: {
+ "CARGO_PKG_LICENSE": "",
+ "CARGO_PKG_VERSION_MAJOR": "0",
+ "CARGO_MANIFEST_DIR": "$ROOT$.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.98",
+ "CARGO_PKG_VERSION": "0.2.98",
+ "CARGO_PKG_AUTHORS": "",
+ "CARGO_CRATE_NAME": "libc",
+ "CARGO_PKG_LICENSE_FILE": "",
+ "CARGO_PKG_HOMEPAGE": "",
+ "CARGO_PKG_DESCRIPTION": "",
+ "CARGO_PKG_NAME": "libc",
+ "CARGO_PKG_VERSION_PATCH": "98",
+ "CARGO": "cargo",
+ "CARGO_PKG_REPOSITORY": "",
+ "CARGO_PKG_VERSION_MINOR": "2",
+ "CARGO_PKG_VERSION_PRE": "",
+ },
+ },
+ dependencies: [],
+ origin: Library {
+ repo: Some(
+ "https://github.com/rust-lang/libc",
+ ),
+ name: "libc",
+ },
+ is_proc_macro: false,
+ target_layout: Err(
+ "target_data_layout not loaded",
+ ),
+ channel: None,
+ },
+} \ No newline at end of file
diff --git a/src/tools/rust-analyzer/crates/project-model/test_data/output/cargo_hello_world_project_model_with_selective_overrides.txt b/src/tools/rust-analyzer/crates/project-model/test_data/output/cargo_hello_world_project_model_with_selective_overrides.txt
new file mode 100644
index 000000000..e595cd827
--- /dev/null
+++ b/src/tools/rust-analyzer/crates/project-model/test_data/output/cargo_hello_world_project_model_with_selective_overrides.txt
@@ -0,0 +1,344 @@
+{
+ 0: CrateData {
+ root_file_id: FileId(
+ 1,
+ ),
+ edition: Edition2018,
+ version: Some(
+ "0.1.0",
+ ),
+ display_name: Some(
+ CrateDisplayName {
+ crate_name: CrateName(
+ "hello_world",
+ ),
+ canonical_name: "hello-world",
+ },
+ ),
+ cfg_options: CfgOptions(
+ [
+ "debug_assertions",
+ "test",
+ ],
+ ),
+ potential_cfg_options: None,
+ env: Env {
+ entries: {
+ "CARGO_PKG_LICENSE": "",
+ "CARGO_PKG_VERSION_MAJOR": "0",
+ "CARGO_MANIFEST_DIR": "$ROOT$hello-world",
+ "CARGO_PKG_VERSION": "0.1.0",
+ "CARGO_PKG_AUTHORS": "",
+ "CARGO_CRATE_NAME": "hello_world",
+ "CARGO_PKG_LICENSE_FILE": "",
+ "CARGO_PKG_HOMEPAGE": "",
+ "CARGO_PKG_DESCRIPTION": "",
+ "CARGO_PKG_NAME": "hello-world",
+ "CARGO_PKG_VERSION_PATCH": "0",
+ "CARGO": "cargo",
+ "CARGO_PKG_REPOSITORY": "",
+ "CARGO_PKG_VERSION_MINOR": "1",
+ "CARGO_PKG_VERSION_PRE": "",
+ },
+ },
+ dependencies: [
+ Dependency {
+ crate_id: Idx::<CrateData>(4),
+ name: CrateName(
+ "libc",
+ ),
+ prelude: true,
+ },
+ ],
+ origin: Local {
+ repo: None,
+ name: Some(
+ "hello-world",
+ ),
+ },
+ is_proc_macro: false,
+ target_layout: Err(
+ "target_data_layout not loaded",
+ ),
+ channel: None,
+ },
+ 1: CrateData {
+ root_file_id: FileId(
+ 2,
+ ),
+ edition: Edition2018,
+ version: Some(
+ "0.1.0",
+ ),
+ display_name: Some(
+ CrateDisplayName {
+ crate_name: CrateName(
+ "hello_world",
+ ),
+ canonical_name: "hello-world",
+ },
+ ),
+ cfg_options: CfgOptions(
+ [
+ "debug_assertions",
+ "test",
+ ],
+ ),
+ potential_cfg_options: None,
+ env: Env {
+ entries: {
+ "CARGO_PKG_LICENSE": "",
+ "CARGO_PKG_VERSION_MAJOR": "0",
+ "CARGO_MANIFEST_DIR": "$ROOT$hello-world",
+ "CARGO_PKG_VERSION": "0.1.0",
+ "CARGO_PKG_AUTHORS": "",
+ "CARGO_CRATE_NAME": "hello_world",
+ "CARGO_PKG_LICENSE_FILE": "",
+ "CARGO_PKG_HOMEPAGE": "",
+ "CARGO_PKG_DESCRIPTION": "",
+ "CARGO_PKG_NAME": "hello-world",
+ "CARGO_PKG_VERSION_PATCH": "0",
+ "CARGO": "cargo",
+ "CARGO_PKG_REPOSITORY": "",
+ "CARGO_PKG_VERSION_MINOR": "1",
+ "CARGO_PKG_VERSION_PRE": "",
+ },
+ },
+ dependencies: [
+ Dependency {
+ crate_id: Idx::<CrateData>(0),
+ name: CrateName(
+ "hello_world",
+ ),
+ prelude: true,
+ },
+ Dependency {
+ crate_id: Idx::<CrateData>(4),
+ name: CrateName(
+ "libc",
+ ),
+ prelude: true,
+ },
+ ],
+ origin: Local {
+ repo: None,
+ name: Some(
+ "hello-world",
+ ),
+ },
+ is_proc_macro: false,
+ target_layout: Err(
+ "target_data_layout not loaded",
+ ),
+ channel: None,
+ },
+ 2: CrateData {
+ root_file_id: FileId(
+ 3,
+ ),
+ edition: Edition2018,
+ version: Some(
+ "0.1.0",
+ ),
+ display_name: Some(
+ CrateDisplayName {
+ crate_name: CrateName(
+ "an_example",
+ ),
+ canonical_name: "an-example",
+ },
+ ),
+ cfg_options: CfgOptions(
+ [
+ "debug_assertions",
+ "test",
+ ],
+ ),
+ potential_cfg_options: None,
+ env: Env {
+ entries: {
+ "CARGO_PKG_LICENSE": "",
+ "CARGO_PKG_VERSION_MAJOR": "0",
+ "CARGO_MANIFEST_DIR": "$ROOT$hello-world",
+ "CARGO_PKG_VERSION": "0.1.0",
+ "CARGO_PKG_AUTHORS": "",
+ "CARGO_CRATE_NAME": "hello_world",
+ "CARGO_PKG_LICENSE_FILE": "",
+ "CARGO_PKG_HOMEPAGE": "",
+ "CARGO_PKG_DESCRIPTION": "",
+ "CARGO_PKG_NAME": "hello-world",
+ "CARGO_PKG_VERSION_PATCH": "0",
+ "CARGO": "cargo",
+ "CARGO_PKG_REPOSITORY": "",
+ "CARGO_PKG_VERSION_MINOR": "1",
+ "CARGO_PKG_VERSION_PRE": "",
+ },
+ },
+ dependencies: [
+ Dependency {
+ crate_id: Idx::<CrateData>(0),
+ name: CrateName(
+ "hello_world",
+ ),
+ prelude: true,
+ },
+ Dependency {
+ crate_id: Idx::<CrateData>(4),
+ name: CrateName(
+ "libc",
+ ),
+ prelude: true,
+ },
+ ],
+ origin: Local {
+ repo: None,
+ name: Some(
+ "hello-world",
+ ),
+ },
+ is_proc_macro: false,
+ target_layout: Err(
+ "target_data_layout not loaded",
+ ),
+ channel: None,
+ },
+ 3: CrateData {
+ root_file_id: FileId(
+ 4,
+ ),
+ edition: Edition2018,
+ version: Some(
+ "0.1.0",
+ ),
+ display_name: Some(
+ CrateDisplayName {
+ crate_name: CrateName(
+ "it",
+ ),
+ canonical_name: "it",
+ },
+ ),
+ cfg_options: CfgOptions(
+ [
+ "debug_assertions",
+ "test",
+ ],
+ ),
+ potential_cfg_options: None,
+ env: Env {
+ entries: {
+ "CARGO_PKG_LICENSE": "",
+ "CARGO_PKG_VERSION_MAJOR": "0",
+ "CARGO_MANIFEST_DIR": "$ROOT$hello-world",
+ "CARGO_PKG_VERSION": "0.1.0",
+ "CARGO_PKG_AUTHORS": "",
+ "CARGO_CRATE_NAME": "hello_world",
+ "CARGO_PKG_LICENSE_FILE": "",
+ "CARGO_PKG_HOMEPAGE": "",
+ "CARGO_PKG_DESCRIPTION": "",
+ "CARGO_PKG_NAME": "hello-world",
+ "CARGO_PKG_VERSION_PATCH": "0",
+ "CARGO": "cargo",
+ "CARGO_PKG_REPOSITORY": "",
+ "CARGO_PKG_VERSION_MINOR": "1",
+ "CARGO_PKG_VERSION_PRE": "",
+ },
+ },
+ dependencies: [
+ Dependency {
+ crate_id: Idx::<CrateData>(0),
+ name: CrateName(
+ "hello_world",
+ ),
+ prelude: true,
+ },
+ Dependency {
+ crate_id: Idx::<CrateData>(4),
+ name: CrateName(
+ "libc",
+ ),
+ prelude: true,
+ },
+ ],
+ origin: Local {
+ repo: None,
+ name: Some(
+ "hello-world",
+ ),
+ },
+ is_proc_macro: false,
+ target_layout: Err(
+ "target_data_layout not loaded",
+ ),
+ channel: None,
+ },
+ 4: CrateData {
+ root_file_id: FileId(
+ 5,
+ ),
+ edition: Edition2015,
+ version: Some(
+ "0.2.98",
+ ),
+ display_name: Some(
+ CrateDisplayName {
+ crate_name: CrateName(
+ "libc",
+ ),
+ canonical_name: "libc",
+ },
+ ),
+ cfg_options: CfgOptions(
+ [
+ "debug_assertions",
+ "feature=default",
+ "feature=std",
+ ],
+ ),
+ potential_cfg_options: Some(
+ CfgOptions(
+ [
+ "debug_assertions",
+ "feature=align",
+ "feature=const-extern-fn",
+ "feature=default",
+ "feature=extra_traits",
+ "feature=rustc-dep-of-std",
+ "feature=std",
+ "feature=use_std",
+ ],
+ ),
+ ),
+ env: Env {
+ entries: {
+ "CARGO_PKG_LICENSE": "",
+ "CARGO_PKG_VERSION_MAJOR": "0",
+ "CARGO_MANIFEST_DIR": "$ROOT$.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.98",
+ "CARGO_PKG_VERSION": "0.2.98",
+ "CARGO_PKG_AUTHORS": "",
+ "CARGO_CRATE_NAME": "libc",
+ "CARGO_PKG_LICENSE_FILE": "",
+ "CARGO_PKG_HOMEPAGE": "",
+ "CARGO_PKG_DESCRIPTION": "",
+ "CARGO_PKG_NAME": "libc",
+ "CARGO_PKG_VERSION_PATCH": "98",
+ "CARGO": "cargo",
+ "CARGO_PKG_REPOSITORY": "",
+ "CARGO_PKG_VERSION_MINOR": "2",
+ "CARGO_PKG_VERSION_PRE": "",
+ },
+ },
+ dependencies: [],
+ origin: Library {
+ repo: Some(
+ "https://github.com/rust-lang/libc",
+ ),
+ name: "libc",
+ },
+ is_proc_macro: false,
+ target_layout: Err(
+ "target_data_layout not loaded",
+ ),
+ channel: None,
+ },
+} \ No newline at end of file
diff --git a/src/tools/rust-analyzer/crates/project-model/test_data/output/cargo_hello_world_project_model_with_wildcard_overrides.txt b/src/tools/rust-analyzer/crates/project-model/test_data/output/cargo_hello_world_project_model_with_wildcard_overrides.txt
new file mode 100644
index 000000000..f10c55d04
--- /dev/null
+++ b/src/tools/rust-analyzer/crates/project-model/test_data/output/cargo_hello_world_project_model_with_wildcard_overrides.txt
@@ -0,0 +1,340 @@
+{
+ 0: CrateData {
+ root_file_id: FileId(
+ 1,
+ ),
+ edition: Edition2018,
+ version: Some(
+ "0.1.0",
+ ),
+ display_name: Some(
+ CrateDisplayName {
+ crate_name: CrateName(
+ "hello_world",
+ ),
+ canonical_name: "hello-world",
+ },
+ ),
+ cfg_options: CfgOptions(
+ [
+ "debug_assertions",
+ ],
+ ),
+ potential_cfg_options: None,
+ env: Env {
+ entries: {
+ "CARGO_PKG_LICENSE": "",
+ "CARGO_PKG_VERSION_MAJOR": "0",
+ "CARGO_MANIFEST_DIR": "$ROOT$hello-world",
+ "CARGO_PKG_VERSION": "0.1.0",
+ "CARGO_PKG_AUTHORS": "",
+ "CARGO_CRATE_NAME": "hello_world",
+ "CARGO_PKG_LICENSE_FILE": "",
+ "CARGO_PKG_HOMEPAGE": "",
+ "CARGO_PKG_DESCRIPTION": "",
+ "CARGO_PKG_NAME": "hello-world",
+ "CARGO_PKG_VERSION_PATCH": "0",
+ "CARGO": "cargo",
+ "CARGO_PKG_REPOSITORY": "",
+ "CARGO_PKG_VERSION_MINOR": "1",
+ "CARGO_PKG_VERSION_PRE": "",
+ },
+ },
+ dependencies: [
+ Dependency {
+ crate_id: Idx::<CrateData>(4),
+ name: CrateName(
+ "libc",
+ ),
+ prelude: true,
+ },
+ ],
+ origin: Local {
+ repo: None,
+ name: Some(
+ "hello-world",
+ ),
+ },
+ is_proc_macro: false,
+ target_layout: Err(
+ "target_data_layout not loaded",
+ ),
+ channel: None,
+ },
+ 1: CrateData {
+ root_file_id: FileId(
+ 2,
+ ),
+ edition: Edition2018,
+ version: Some(
+ "0.1.0",
+ ),
+ display_name: Some(
+ CrateDisplayName {
+ crate_name: CrateName(
+ "hello_world",
+ ),
+ canonical_name: "hello-world",
+ },
+ ),
+ cfg_options: CfgOptions(
+ [
+ "debug_assertions",
+ ],
+ ),
+ potential_cfg_options: None,
+ env: Env {
+ entries: {
+ "CARGO_PKG_LICENSE": "",
+ "CARGO_PKG_VERSION_MAJOR": "0",
+ "CARGO_MANIFEST_DIR": "$ROOT$hello-world",
+ "CARGO_PKG_VERSION": "0.1.0",
+ "CARGO_PKG_AUTHORS": "",
+ "CARGO_CRATE_NAME": "hello_world",
+ "CARGO_PKG_LICENSE_FILE": "",
+ "CARGO_PKG_HOMEPAGE": "",
+ "CARGO_PKG_DESCRIPTION": "",
+ "CARGO_PKG_NAME": "hello-world",
+ "CARGO_PKG_VERSION_PATCH": "0",
+ "CARGO": "cargo",
+ "CARGO_PKG_REPOSITORY": "",
+ "CARGO_PKG_VERSION_MINOR": "1",
+ "CARGO_PKG_VERSION_PRE": "",
+ },
+ },
+ dependencies: [
+ Dependency {
+ crate_id: Idx::<CrateData>(0),
+ name: CrateName(
+ "hello_world",
+ ),
+ prelude: true,
+ },
+ Dependency {
+ crate_id: Idx::<CrateData>(4),
+ name: CrateName(
+ "libc",
+ ),
+ prelude: true,
+ },
+ ],
+ origin: Local {
+ repo: None,
+ name: Some(
+ "hello-world",
+ ),
+ },
+ is_proc_macro: false,
+ target_layout: Err(
+ "target_data_layout not loaded",
+ ),
+ channel: None,
+ },
+ 2: CrateData {
+ root_file_id: FileId(
+ 3,
+ ),
+ edition: Edition2018,
+ version: Some(
+ "0.1.0",
+ ),
+ display_name: Some(
+ CrateDisplayName {
+ crate_name: CrateName(
+ "an_example",
+ ),
+ canonical_name: "an-example",
+ },
+ ),
+ cfg_options: CfgOptions(
+ [
+ "debug_assertions",
+ ],
+ ),
+ potential_cfg_options: None,
+ env: Env {
+ entries: {
+ "CARGO_PKG_LICENSE": "",
+ "CARGO_PKG_VERSION_MAJOR": "0",
+ "CARGO_MANIFEST_DIR": "$ROOT$hello-world",
+ "CARGO_PKG_VERSION": "0.1.0",
+ "CARGO_PKG_AUTHORS": "",
+ "CARGO_CRATE_NAME": "hello_world",
+ "CARGO_PKG_LICENSE_FILE": "",
+ "CARGO_PKG_HOMEPAGE": "",
+ "CARGO_PKG_DESCRIPTION": "",
+ "CARGO_PKG_NAME": "hello-world",
+ "CARGO_PKG_VERSION_PATCH": "0",
+ "CARGO": "cargo",
+ "CARGO_PKG_REPOSITORY": "",
+ "CARGO_PKG_VERSION_MINOR": "1",
+ "CARGO_PKG_VERSION_PRE": "",
+ },
+ },
+ dependencies: [
+ Dependency {
+ crate_id: Idx::<CrateData>(0),
+ name: CrateName(
+ "hello_world",
+ ),
+ prelude: true,
+ },
+ Dependency {
+ crate_id: Idx::<CrateData>(4),
+ name: CrateName(
+ "libc",
+ ),
+ prelude: true,
+ },
+ ],
+ origin: Local {
+ repo: None,
+ name: Some(
+ "hello-world",
+ ),
+ },
+ is_proc_macro: false,
+ target_layout: Err(
+ "target_data_layout not loaded",
+ ),
+ channel: None,
+ },
+ 3: CrateData {
+ root_file_id: FileId(
+ 4,
+ ),
+ edition: Edition2018,
+ version: Some(
+ "0.1.0",
+ ),
+ display_name: Some(
+ CrateDisplayName {
+ crate_name: CrateName(
+ "it",
+ ),
+ canonical_name: "it",
+ },
+ ),
+ cfg_options: CfgOptions(
+ [
+ "debug_assertions",
+ ],
+ ),
+ potential_cfg_options: None,
+ env: Env {
+ entries: {
+ "CARGO_PKG_LICENSE": "",
+ "CARGO_PKG_VERSION_MAJOR": "0",
+ "CARGO_MANIFEST_DIR": "$ROOT$hello-world",
+ "CARGO_PKG_VERSION": "0.1.0",
+ "CARGO_PKG_AUTHORS": "",
+ "CARGO_CRATE_NAME": "hello_world",
+ "CARGO_PKG_LICENSE_FILE": "",
+ "CARGO_PKG_HOMEPAGE": "",
+ "CARGO_PKG_DESCRIPTION": "",
+ "CARGO_PKG_NAME": "hello-world",
+ "CARGO_PKG_VERSION_PATCH": "0",
+ "CARGO": "cargo",
+ "CARGO_PKG_REPOSITORY": "",
+ "CARGO_PKG_VERSION_MINOR": "1",
+ "CARGO_PKG_VERSION_PRE": "",
+ },
+ },
+ dependencies: [
+ Dependency {
+ crate_id: Idx::<CrateData>(0),
+ name: CrateName(
+ "hello_world",
+ ),
+ prelude: true,
+ },
+ Dependency {
+ crate_id: Idx::<CrateData>(4),
+ name: CrateName(
+ "libc",
+ ),
+ prelude: true,
+ },
+ ],
+ origin: Local {
+ repo: None,
+ name: Some(
+ "hello-world",
+ ),
+ },
+ is_proc_macro: false,
+ target_layout: Err(
+ "target_data_layout not loaded",
+ ),
+ channel: None,
+ },
+ 4: CrateData {
+ root_file_id: FileId(
+ 5,
+ ),
+ edition: Edition2015,
+ version: Some(
+ "0.2.98",
+ ),
+ display_name: Some(
+ CrateDisplayName {
+ crate_name: CrateName(
+ "libc",
+ ),
+ canonical_name: "libc",
+ },
+ ),
+ cfg_options: CfgOptions(
+ [
+ "debug_assertions",
+ "feature=default",
+ "feature=std",
+ ],
+ ),
+ potential_cfg_options: Some(
+ CfgOptions(
+ [
+ "debug_assertions",
+ "feature=align",
+ "feature=const-extern-fn",
+ "feature=default",
+ "feature=extra_traits",
+ "feature=rustc-dep-of-std",
+ "feature=std",
+ "feature=use_std",
+ ],
+ ),
+ ),
+ env: Env {
+ entries: {
+ "CARGO_PKG_LICENSE": "",
+ "CARGO_PKG_VERSION_MAJOR": "0",
+ "CARGO_MANIFEST_DIR": "$ROOT$.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.98",
+ "CARGO_PKG_VERSION": "0.2.98",
+ "CARGO_PKG_AUTHORS": "",
+ "CARGO_CRATE_NAME": "libc",
+ "CARGO_PKG_LICENSE_FILE": "",
+ "CARGO_PKG_HOMEPAGE": "",
+ "CARGO_PKG_DESCRIPTION": "",
+ "CARGO_PKG_NAME": "libc",
+ "CARGO_PKG_VERSION_PATCH": "98",
+ "CARGO": "cargo",
+ "CARGO_PKG_REPOSITORY": "",
+ "CARGO_PKG_VERSION_MINOR": "2",
+ "CARGO_PKG_VERSION_PRE": "",
+ },
+ },
+ dependencies: [],
+ origin: Library {
+ repo: Some(
+ "https://github.com/rust-lang/libc",
+ ),
+ name: "libc",
+ },
+ is_proc_macro: false,
+ target_layout: Err(
+ "target_data_layout not loaded",
+ ),
+ channel: None,
+ },
+} \ No newline at end of file
diff --git a/src/tools/rust-analyzer/crates/project-model/test_data/output/rust_project_hello_world_project_model.txt b/src/tools/rust-analyzer/crates/project-model/test_data/output/rust_project_hello_world_project_model.txt
new file mode 100644
index 000000000..fb3f5933b
--- /dev/null
+++ b/src/tools/rust-analyzer/crates/project-model/test_data/output/rust_project_hello_world_project_model.txt
@@ -0,0 +1,462 @@
+{
+ 0: CrateData {
+ root_file_id: FileId(
+ 1,
+ ),
+ edition: Edition2021,
+ version: None,
+ display_name: Some(
+ CrateDisplayName {
+ crate_name: CrateName(
+ "alloc",
+ ),
+ canonical_name: "alloc",
+ },
+ ),
+ cfg_options: CfgOptions(
+ [],
+ ),
+ potential_cfg_options: None,
+ env: Env {
+ entries: {},
+ },
+ dependencies: [
+ Dependency {
+ crate_id: Idx::<CrateData>(1),
+ name: CrateName(
+ "core",
+ ),
+ prelude: true,
+ },
+ ],
+ origin: Lang(
+ Alloc,
+ ),
+ is_proc_macro: false,
+ target_layout: Err(
+ "rust-project.json projects have no target layout set",
+ ),
+ channel: None,
+ },
+ 1: CrateData {
+ root_file_id: FileId(
+ 2,
+ ),
+ edition: Edition2021,
+ version: None,
+ display_name: Some(
+ CrateDisplayName {
+ crate_name: CrateName(
+ "core",
+ ),
+ canonical_name: "core",
+ },
+ ),
+ cfg_options: CfgOptions(
+ [],
+ ),
+ potential_cfg_options: None,
+ env: Env {
+ entries: {},
+ },
+ dependencies: [],
+ origin: Lang(
+ Core,
+ ),
+ is_proc_macro: false,
+ target_layout: Err(
+ "rust-project.json projects have no target layout set",
+ ),
+ channel: None,
+ },
+ 2: CrateData {
+ root_file_id: FileId(
+ 3,
+ ),
+ edition: Edition2021,
+ version: None,
+ display_name: Some(
+ CrateDisplayName {
+ crate_name: CrateName(
+ "panic_abort",
+ ),
+ canonical_name: "panic_abort",
+ },
+ ),
+ cfg_options: CfgOptions(
+ [],
+ ),
+ potential_cfg_options: None,
+ env: Env {
+ entries: {},
+ },
+ dependencies: [],
+ origin: Lang(
+ Other,
+ ),
+ is_proc_macro: false,
+ target_layout: Err(
+ "rust-project.json projects have no target layout set",
+ ),
+ channel: None,
+ },
+ 3: CrateData {
+ root_file_id: FileId(
+ 4,
+ ),
+ edition: Edition2021,
+ version: None,
+ display_name: Some(
+ CrateDisplayName {
+ crate_name: CrateName(
+ "panic_unwind",
+ ),
+ canonical_name: "panic_unwind",
+ },
+ ),
+ cfg_options: CfgOptions(
+ [],
+ ),
+ potential_cfg_options: None,
+ env: Env {
+ entries: {},
+ },
+ dependencies: [],
+ origin: Lang(
+ Other,
+ ),
+ is_proc_macro: false,
+ target_layout: Err(
+ "rust-project.json projects have no target layout set",
+ ),
+ channel: None,
+ },
+ 4: CrateData {
+ root_file_id: FileId(
+ 5,
+ ),
+ edition: Edition2021,
+ version: None,
+ display_name: Some(
+ CrateDisplayName {
+ crate_name: CrateName(
+ "proc_macro",
+ ),
+ canonical_name: "proc_macro",
+ },
+ ),
+ cfg_options: CfgOptions(
+ [],
+ ),
+ potential_cfg_options: None,
+ env: Env {
+ entries: {},
+ },
+ dependencies: [
+ Dependency {
+ crate_id: Idx::<CrateData>(6),
+ name: CrateName(
+ "std",
+ ),
+ prelude: true,
+ },
+ Dependency {
+ crate_id: Idx::<CrateData>(1),
+ name: CrateName(
+ "core",
+ ),
+ prelude: true,
+ },
+ ],
+ origin: Lang(
+ Other,
+ ),
+ is_proc_macro: false,
+ target_layout: Err(
+ "rust-project.json projects have no target layout set",
+ ),
+ channel: None,
+ },
+ 5: CrateData {
+ root_file_id: FileId(
+ 6,
+ ),
+ edition: Edition2021,
+ version: None,
+ display_name: Some(
+ CrateDisplayName {
+ crate_name: CrateName(
+ "profiler_builtins",
+ ),
+ canonical_name: "profiler_builtins",
+ },
+ ),
+ cfg_options: CfgOptions(
+ [],
+ ),
+ potential_cfg_options: None,
+ env: Env {
+ entries: {},
+ },
+ dependencies: [],
+ origin: Lang(
+ Other,
+ ),
+ is_proc_macro: false,
+ target_layout: Err(
+ "rust-project.json projects have no target layout set",
+ ),
+ channel: None,
+ },
+ 6: CrateData {
+ root_file_id: FileId(
+ 7,
+ ),
+ edition: Edition2021,
+ version: None,
+ display_name: Some(
+ CrateDisplayName {
+ crate_name: CrateName(
+ "std",
+ ),
+ canonical_name: "std",
+ },
+ ),
+ cfg_options: CfgOptions(
+ [],
+ ),
+ potential_cfg_options: None,
+ env: Env {
+ entries: {},
+ },
+ dependencies: [
+ Dependency {
+ crate_id: Idx::<CrateData>(0),
+ name: CrateName(
+ "alloc",
+ ),
+ prelude: true,
+ },
+ Dependency {
+ crate_id: Idx::<CrateData>(3),
+ name: CrateName(
+ "panic_unwind",
+ ),
+ prelude: true,
+ },
+ Dependency {
+ crate_id: Idx::<CrateData>(2),
+ name: CrateName(
+ "panic_abort",
+ ),
+ prelude: true,
+ },
+ Dependency {
+ crate_id: Idx::<CrateData>(1),
+ name: CrateName(
+ "core",
+ ),
+ prelude: true,
+ },
+ Dependency {
+ crate_id: Idx::<CrateData>(5),
+ name: CrateName(
+ "profiler_builtins",
+ ),
+ prelude: true,
+ },
+ Dependency {
+ crate_id: Idx::<CrateData>(9),
+ name: CrateName(
+ "unwind",
+ ),
+ prelude: true,
+ },
+ Dependency {
+ crate_id: Idx::<CrateData>(7),
+ name: CrateName(
+ "std_detect",
+ ),
+ prelude: true,
+ },
+ Dependency {
+ crate_id: Idx::<CrateData>(8),
+ name: CrateName(
+ "test",
+ ),
+ prelude: true,
+ },
+ ],
+ origin: Lang(
+ Std,
+ ),
+ is_proc_macro: false,
+ target_layout: Err(
+ "rust-project.json projects have no target layout set",
+ ),
+ channel: None,
+ },
+ 7: CrateData {
+ root_file_id: FileId(
+ 8,
+ ),
+ edition: Edition2021,
+ version: None,
+ display_name: Some(
+ CrateDisplayName {
+ crate_name: CrateName(
+ "std_detect",
+ ),
+ canonical_name: "std_detect",
+ },
+ ),
+ cfg_options: CfgOptions(
+ [],
+ ),
+ potential_cfg_options: None,
+ env: Env {
+ entries: {},
+ },
+ dependencies: [],
+ origin: Lang(
+ Other,
+ ),
+ is_proc_macro: false,
+ target_layout: Err(
+ "rust-project.json projects have no target layout set",
+ ),
+ channel: None,
+ },
+ 8: CrateData {
+ root_file_id: FileId(
+ 9,
+ ),
+ edition: Edition2021,
+ version: None,
+ display_name: Some(
+ CrateDisplayName {
+ crate_name: CrateName(
+ "test",
+ ),
+ canonical_name: "test",
+ },
+ ),
+ cfg_options: CfgOptions(
+ [],
+ ),
+ potential_cfg_options: None,
+ env: Env {
+ entries: {},
+ },
+ dependencies: [],
+ origin: Lang(
+ Test,
+ ),
+ is_proc_macro: false,
+ target_layout: Err(
+ "rust-project.json projects have no target layout set",
+ ),
+ channel: None,
+ },
+ 9: CrateData {
+ root_file_id: FileId(
+ 10,
+ ),
+ edition: Edition2021,
+ version: None,
+ display_name: Some(
+ CrateDisplayName {
+ crate_name: CrateName(
+ "unwind",
+ ),
+ canonical_name: "unwind",
+ },
+ ),
+ cfg_options: CfgOptions(
+ [],
+ ),
+ potential_cfg_options: None,
+ env: Env {
+ entries: {},
+ },
+ dependencies: [],
+ origin: Lang(
+ Other,
+ ),
+ is_proc_macro: false,
+ target_layout: Err(
+ "rust-project.json projects have no target layout set",
+ ),
+ channel: None,
+ },
+ 10: CrateData {
+ root_file_id: FileId(
+ 11,
+ ),
+ edition: Edition2018,
+ version: None,
+ display_name: Some(
+ CrateDisplayName {
+ crate_name: CrateName(
+ "hello_world",
+ ),
+ canonical_name: "hello_world",
+ },
+ ),
+ cfg_options: CfgOptions(
+ [],
+ ),
+ potential_cfg_options: None,
+ env: Env {
+ entries: {},
+ },
+ dependencies: [
+ Dependency {
+ crate_id: Idx::<CrateData>(1),
+ name: CrateName(
+ "core",
+ ),
+ prelude: true,
+ },
+ Dependency {
+ crate_id: Idx::<CrateData>(0),
+ name: CrateName(
+ "alloc",
+ ),
+ prelude: true,
+ },
+ Dependency {
+ crate_id: Idx::<CrateData>(6),
+ name: CrateName(
+ "std",
+ ),
+ prelude: true,
+ },
+ Dependency {
+ crate_id: Idx::<CrateData>(8),
+ name: CrateName(
+ "test",
+ ),
+ prelude: false,
+ },
+ Dependency {
+ crate_id: Idx::<CrateData>(4),
+ name: CrateName(
+ "proc_macro",
+ ),
+ prelude: false,
+ },
+ ],
+ origin: Local {
+ repo: None,
+ name: Some(
+ "hello_world",
+ ),
+ },
+ is_proc_macro: false,
+ target_layout: Err(
+ "rust-project.json projects have no target layout set",
+ ),
+ channel: None,
+ },
+} \ No newline at end of file
diff --git a/src/tools/rust-analyzer/crates/project-model/test_data/regex-metadata.json b/src/tools/rust-analyzer/crates/project-model/test_data/regex-metadata.json
new file mode 100644
index 000000000..371464dd2
--- /dev/null
+++ b/src/tools/rust-analyzer/crates/project-model/test_data/regex-metadata.json
@@ -0,0 +1,6420 @@
+{
+ "packages": [
+ {
+ "name": "aho-corasick",
+ "version": "0.7.20",
+ "id": "aho-corasick 0.7.20 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "Unlicense OR MIT",
+ "license_file": null,
+ "description": "Fast multiple substring searching.",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "memchr",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^2.4.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "aho_corasick",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/aho-corasick-0.7.20/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ }
+ ],
+ "features": {
+ "default": [
+ "std"
+ ],
+ "std": [
+ "memchr/std"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/aho-corasick-0.7.20/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Andrew Gallant <jamslam@gmail.com>"
+ ],
+ "categories": [
+ "text-processing"
+ ],
+ "keywords": [
+ "string",
+ "search",
+ "text",
+ "aho",
+ "multi"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/BurntSushi/aho-corasick",
+ "homepage": "https://github.com/BurntSushi/aho-corasick",
+ "documentation": null,
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "cc",
+ "version": "1.0.79",
+ "id": "cc 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "A build-time dependency for Cargo build scripts to assist in invoking the native\nC compiler to compile native C code into a static archive to be linked into Rust\ncode.\n",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "jobserver",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.1.16",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "tempfile",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^3",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "cc",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/cc-1.0.79/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "bin"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "gcc-shim",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/cc-1.0.79/src/bin/gcc-shim.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "cc_env",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/cc-1.0.79/tests/cc_env.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "cflags",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/cc-1.0.79/tests/cflags.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "cxxflags",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/cc-1.0.79/tests/cxxflags.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/cc-1.0.79/tests/test.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ }
+ ],
+ "features": {
+ "jobserver": [
+ "dep:jobserver"
+ ],
+ "parallel": [
+ "jobserver"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/cc-1.0.79/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Alex Crichton <alex@alexcrichton.com>"
+ ],
+ "categories": [
+ "development-tools::build-utils"
+ ],
+ "keywords": [
+ "build-dependencies"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/rust-lang/cc-rs",
+ "homepage": "https://github.com/rust-lang/cc-rs",
+ "documentation": "https://docs.rs/cc",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "cfg-if",
+ "version": "0.1.10",
+ "id": "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT/Apache-2.0",
+ "license_file": null,
+ "description": "A macro to ergonomically define an item depending on a large number of #[cfg]\nparameters. Structured like an if-else chain, the first matching branch is the\nitem that gets emitted.\n",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "compiler_builtins",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.1.2",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rustc-std-workspace-core",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.0",
+ "kind": null,
+ "rename": "core",
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "cfg-if",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/cfg-if-0.1.10/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "xcrate",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/cfg-if-0.1.10/tests/xcrate.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ }
+ ],
+ "features": {
+ "compiler_builtins": [
+ "dep:compiler_builtins"
+ ],
+ "core": [
+ "dep:core"
+ ],
+ "rustc-dep-of-std": [
+ "core",
+ "compiler_builtins"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/cfg-if-0.1.10/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Alex Crichton <alex@alexcrichton.com>"
+ ],
+ "categories": [],
+ "keywords": [],
+ "readme": "README.md",
+ "repository": "https://github.com/alexcrichton/cfg-if",
+ "homepage": "https://github.com/alexcrichton/cfg-if",
+ "documentation": "https://docs.rs/cfg-if",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "cfg-if",
+ "version": "1.0.0",
+ "id": "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT/Apache-2.0",
+ "license_file": null,
+ "description": "A macro to ergonomically define an item depending on a large number of #[cfg]\nparameters. Structured like an if-else chain, the first matching branch is the\nitem that gets emitted.\n",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "compiler_builtins",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.1.2",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rustc-std-workspace-core",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.0",
+ "kind": null,
+ "rename": "core",
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "cfg-if",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/cfg-if-1.0.0/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "xcrate",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/cfg-if-1.0.0/tests/xcrate.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ }
+ ],
+ "features": {
+ "compiler_builtins": [
+ "dep:compiler_builtins"
+ ],
+ "core": [
+ "dep:core"
+ ],
+ "rustc-dep-of-std": [
+ "core",
+ "compiler_builtins"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/cfg-if-1.0.0/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Alex Crichton <alex@alexcrichton.com>"
+ ],
+ "categories": [],
+ "keywords": [],
+ "readme": "README.md",
+ "repository": "https://github.com/alexcrichton/cfg-if",
+ "homepage": "https://github.com/alexcrichton/cfg-if",
+ "documentation": "https://docs.rs/cfg-if",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "docopt",
+ "version": "1.1.1",
+ "id": "docopt 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "Unlicense/MIT",
+ "license_file": null,
+ "description": "Command line argument parsing.",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "lazy_static",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.3",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "regex",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.4.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [
+ "std",
+ "unicode"
+ ],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "serde",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [
+ "derive"
+ ],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "strsim",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.10",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "docopt",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/docopt-1.1.1/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "bin"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "docopt-wordlist",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/docopt-1.1.1/src/wordlist.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "cargo",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/docopt-1.1.1/examples/cargo.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "cp",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/docopt-1.1.1/examples/cp.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "decode",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/docopt-1.1.1/examples/decode.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "hashmap",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/docopt-1.1.1/examples/hashmap.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "optional_command",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/docopt-1.1.1/examples/optional_command.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "verbose_multiple",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/docopt-1.1.1/examples/verbose_multiple.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {},
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/docopt-1.1.1/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Andrew Gallant <jamslam@gmail.com>"
+ ],
+ "categories": [
+ "command-line-interface"
+ ],
+ "keywords": [
+ "docopt",
+ "argument",
+ "command",
+ "argv"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/docopt/docopt.rs",
+ "homepage": "https://github.com/docopt/docopt.rs",
+ "documentation": "http://burntsushi.net/rustdoc/docopt/",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "getrandom",
+ "version": "0.2.9",
+ "id": "getrandom 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "A small cross-platform library for retrieving random data from system source",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "cfg-if",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "compiler_builtins",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.1",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rustc-std-workspace-core",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": null,
+ "rename": "core",
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "js-sys",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.3",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": "cfg(all(any(target_arch = \"wasm32\", target_arch = \"wasm64\"), target_os = \"unknown\"))",
+ "registry": null
+ },
+ {
+ "name": "wasm-bindgen",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.2.62",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": false,
+ "features": [],
+ "target": "cfg(all(any(target_arch = \"wasm32\", target_arch = \"wasm64\"), target_os = \"unknown\"))",
+ "registry": null
+ },
+ {
+ "name": "wasm-bindgen-test",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.3.18",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": "cfg(all(any(target_arch = \"wasm32\", target_arch = \"wasm64\"), target_os = \"unknown\"))",
+ "registry": null
+ },
+ {
+ "name": "wasi",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.11",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": "cfg(target_os = \"wasi\")",
+ "registry": null
+ },
+ {
+ "name": "libc",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.2.139",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": "cfg(unix)",
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "getrandom",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/getrandom-0.2.9/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "custom",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/getrandom-0.2.9/tests/custom.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "normal",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/getrandom-0.2.9/tests/normal.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "rdrand",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/getrandom-0.2.9/tests/rdrand.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "bench"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "buffer",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/getrandom-0.2.9/benches/buffer.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "compiler_builtins": [
+ "dep:compiler_builtins"
+ ],
+ "core": [
+ "dep:core"
+ ],
+ "custom": [],
+ "js": [
+ "wasm-bindgen",
+ "js-sys"
+ ],
+ "js-sys": [
+ "dep:js-sys"
+ ],
+ "rdrand": [],
+ "rustc-dep-of-std": [
+ "compiler_builtins",
+ "core",
+ "libc/rustc-dep-of-std",
+ "wasi/rustc-dep-of-std"
+ ],
+ "std": [],
+ "test-in-browser": [],
+ "wasm-bindgen": [
+ "dep:wasm-bindgen"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/getrandom-0.2.9/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "features": [
+ "std",
+ "custom"
+ ],
+ "rustdoc-args": [
+ "--cfg",
+ "docsrs"
+ ]
+ }
+ }
+ },
+ "publish": null,
+ "authors": [
+ "The Rand Project Developers"
+ ],
+ "categories": [
+ "os",
+ "no-std"
+ ],
+ "keywords": [],
+ "readme": "README.md",
+ "repository": "https://github.com/rust-random/getrandom",
+ "homepage": null,
+ "documentation": "https://docs.rs/getrandom",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "lazy_static",
+ "version": "1.4.0",
+ "id": "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT/Apache-2.0",
+ "license_file": null,
+ "description": "A macro for declaring lazily evaluated statics in Rust.",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "spin",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.5.0",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "doc-comment",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.3.1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "lazy_static",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/lazy_static-1.4.0/src/lib.rs",
+ "edition": "2015",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "no_std",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/lazy_static-1.4.0/tests/no_std.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/lazy_static-1.4.0/tests/test.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ }
+ ],
+ "features": {
+ "spin": [
+ "dep:spin"
+ ],
+ "spin_no_std": [
+ "spin"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/lazy_static-1.4.0/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Marvin Löbel <loebel.marvin@gmail.com>"
+ ],
+ "categories": [
+ "no-std",
+ "rust-patterns",
+ "memory-management"
+ ],
+ "keywords": [
+ "macro",
+ "lazy",
+ "static"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/rust-lang-nursery/lazy-static.rs",
+ "homepage": null,
+ "documentation": "https://docs.rs/lazy_static",
+ "edition": "2015",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "libc",
+ "version": "0.2.142",
+ "id": "libc 0.2.142 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "Raw FFI bindings to platform libraries like libc.\n",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "rustc-std-workspace-core",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.0",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "libc",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/libc-0.2.142/src/lib.rs",
+ "edition": "2015",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "const_fn",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/libc-0.2.142/tests/const_fn.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "custom-build"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "build-script-build",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/libc-0.2.142/build.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "align": [],
+ "const-extern-fn": [],
+ "default": [
+ "std"
+ ],
+ "extra_traits": [],
+ "rustc-dep-of-std": [
+ "align",
+ "rustc-std-workspace-core"
+ ],
+ "rustc-std-workspace-core": [
+ "dep:rustc-std-workspace-core"
+ ],
+ "std": [],
+ "use_std": [
+ "std"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/libc-0.2.142/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "features": [
+ "const-extern-fn",
+ "extra_traits"
+ ]
+ }
+ }
+ },
+ "publish": null,
+ "authors": [
+ "The Rust Project Developers"
+ ],
+ "categories": [
+ "external-ffi-bindings",
+ "no-std",
+ "os"
+ ],
+ "keywords": [
+ "libc",
+ "ffi",
+ "bindings",
+ "operating",
+ "system"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/rust-lang/libc",
+ "homepage": "https://github.com/rust-lang/libc",
+ "documentation": "https://docs.rs/libc/",
+ "edition": "2015",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "memchr",
+ "version": "2.5.0",
+ "id": "memchr 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "Unlicense/MIT",
+ "license_file": null,
+ "description": "Safe interface to memchr.",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "compiler_builtins",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.1.2",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rustc-std-workspace-core",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.0",
+ "kind": null,
+ "rename": "core",
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "libc",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.2.18",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "quickcheck",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.3",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "memchr",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.5.0/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "custom-build"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "build-script-build",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.5.0/build.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "compiler_builtins": [
+ "dep:compiler_builtins"
+ ],
+ "core": [
+ "dep:core"
+ ],
+ "default": [
+ "std"
+ ],
+ "libc": [
+ "dep:libc"
+ ],
+ "rustc-dep-of-std": [
+ "core",
+ "compiler_builtins"
+ ],
+ "std": [],
+ "use_std": [
+ "std"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.5.0/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Andrew Gallant <jamslam@gmail.com>",
+ "bluss"
+ ],
+ "categories": [],
+ "keywords": [
+ "memchr",
+ "char",
+ "scan",
+ "strchr",
+ "string"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/BurntSushi/memchr",
+ "homepage": "https://github.com/BurntSushi/memchr",
+ "documentation": "https://docs.rs/memchr/",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "memmap",
+ "version": "0.6.2",
+ "id": "memmap 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT/Apache-2.0",
+ "license_file": null,
+ "description": "Cross-platform Rust API for memory-mapped file IO",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "tempdir",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.3",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "libc",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.2",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": "cfg(unix)",
+ "registry": null
+ },
+ {
+ "name": "winapi",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.3",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [
+ "basetsd",
+ "handleapi",
+ "memoryapi",
+ "minwindef",
+ "std",
+ "sysinfoapi"
+ ],
+ "target": "cfg(windows)",
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "memmap",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/memmap-0.6.2/src/lib.rs",
+ "edition": "2015",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "cat",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/memmap-0.6.2/examples/cat.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {},
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/memmap-0.6.2/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Dan Burkert <dan@danburkert.com>"
+ ],
+ "categories": [],
+ "keywords": [
+ "mmap",
+ "memory-map",
+ "io",
+ "file"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/danburkert/memmap-rs",
+ "homepage": null,
+ "documentation": "https://docs.rs/memmap",
+ "edition": "2015",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "pkg-config",
+ "version": "0.3.26",
+ "id": "pkg-config 0.3.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "A library to run the pkg-config system tool at build time in order to be used in\nCargo build scripts.\n",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "lazy_static",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "pkg-config",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/pkg-config-0.3.26/src/lib.rs",
+ "edition": "2015",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/pkg-config-0.3.26/tests/test.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ }
+ ],
+ "features": {},
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/pkg-config-0.3.26/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Alex Crichton <alex@alexcrichton.com>"
+ ],
+ "categories": [],
+ "keywords": [
+ "build-dependencies"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/rust-lang/pkg-config-rs",
+ "homepage": null,
+ "documentation": "https://docs.rs/pkg-config",
+ "edition": "2015",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "proc-macro2",
+ "version": "1.0.56",
+ "id": "proc-macro2 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "A substitute implementation of the compiler's `proc_macro` API to decouple token-based libraries from the procedural macro use case.",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "unicode-ident",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "quote",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rustversion",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "proc-macro2",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.56/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "comments",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.56/tests/comments.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "features",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.56/tests/features.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "marker",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.56/tests/marker.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.56/tests/test.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_fmt",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.56/tests/test_fmt.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_size",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.56/tests/test_size.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "custom-build"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "build-script-build",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.56/build.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "default": [
+ "proc-macro"
+ ],
+ "nightly": [],
+ "proc-macro": [],
+ "span-locations": []
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.56/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "rustc-args": [
+ "--cfg",
+ "procmacro2_semver_exempt"
+ ],
+ "rustdoc-args": [
+ "--cfg",
+ "procmacro2_semver_exempt",
+ "--cfg",
+ "doc_cfg"
+ ],
+ "targets": [
+ "x86_64-unknown-linux-gnu"
+ ]
+ }
+ },
+ "playground": {
+ "features": [
+ "span-locations"
+ ]
+ }
+ },
+ "publish": null,
+ "authors": [
+ "David Tolnay <dtolnay@gmail.com>",
+ "Alex Crichton <alex@alexcrichton.com>"
+ ],
+ "categories": [
+ "development-tools::procedural-macro-helpers"
+ ],
+ "keywords": [
+ "macros",
+ "syn"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/dtolnay/proc-macro2",
+ "homepage": null,
+ "documentation": "https://docs.rs/proc-macro2",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": "1.31"
+ },
+ {
+ "name": "quickcheck",
+ "version": "1.0.3",
+ "id": "quickcheck 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "Unlicense/MIT",
+ "license_file": null,
+ "description": "Automatic property based testing with shrinking.",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "env_logger",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.8.2",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "log",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.4",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rand",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.8",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [
+ "getrandom",
+ "small_rng"
+ ],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "quickcheck",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/quickcheck-1.0.3/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "btree_set_range",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/quickcheck-1.0.3/examples/btree_set_range.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "out_of_bounds",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/quickcheck-1.0.3/examples/out_of_bounds.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "reverse",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/quickcheck-1.0.3/examples/reverse.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "reverse_single",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/quickcheck-1.0.3/examples/reverse_single.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "sieve",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/quickcheck-1.0.3/examples/sieve.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "sort",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/quickcheck-1.0.3/examples/sort.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "default": [
+ "regex",
+ "use_logging"
+ ],
+ "env_logger": [
+ "dep:env_logger"
+ ],
+ "log": [
+ "dep:log"
+ ],
+ "regex": [
+ "env_logger/regex"
+ ],
+ "use_logging": [
+ "log",
+ "env_logger"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/quickcheck-1.0.3/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Andrew Gallant <jamslam@gmail.com>"
+ ],
+ "categories": [
+ "development-tools::testing"
+ ],
+ "keywords": [
+ "testing",
+ "quickcheck",
+ "property",
+ "shrinking",
+ "fuzz"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/BurntSushi/quickcheck",
+ "homepage": "https://github.com/BurntSushi/quickcheck",
+ "documentation": "https://docs.rs/quickcheck",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "quote",
+ "version": "1.0.26",
+ "id": "quote 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "Quasi-quoting macro quote!(...)",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "proc-macro2",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.52",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rustversion",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "trybuild",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.66",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [
+ "diff"
+ ],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "quote",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/quote-1.0.26/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "compiletest",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/quote-1.0.26/tests/compiletest.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/quote-1.0.26/tests/test.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "custom-build"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "build-script-build",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/quote-1.0.26/build.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "default": [
+ "proc-macro"
+ ],
+ "proc-macro": [
+ "proc-macro2/proc-macro"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/quote-1.0.26/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "targets": [
+ "x86_64-unknown-linux-gnu"
+ ]
+ }
+ }
+ },
+ "publish": null,
+ "authors": [
+ "David Tolnay <dtolnay@gmail.com>"
+ ],
+ "categories": [
+ "development-tools::procedural-macro-helpers"
+ ],
+ "keywords": [
+ "macros",
+ "syn"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/dtolnay/quote",
+ "homepage": null,
+ "documentation": "https://docs.rs/quote/",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": "1.31"
+ },
+ {
+ "name": "rand",
+ "version": "0.8.5",
+ "id": "rand 0.8.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "Random number generators and other randomness functionality.\n",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "log",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.4.4",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "packed_simd_2",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.3.7",
+ "kind": null,
+ "rename": "packed_simd",
+ "optional": true,
+ "uses_default_features": true,
+ "features": [
+ "into_bits"
+ ],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rand_chacha",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.3.0",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rand_core",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.6.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "serde",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.103",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [
+ "derive"
+ ],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "bincode",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.2.1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rand_pcg",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.3.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "libc",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.2.22",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": false,
+ "features": [],
+ "target": "cfg(unix)",
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "rand",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/rand-0.8.5/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ }
+ ],
+ "features": {
+ "alloc": [
+ "rand_core/alloc"
+ ],
+ "default": [
+ "std",
+ "std_rng"
+ ],
+ "getrandom": [
+ "rand_core/getrandom"
+ ],
+ "libc": [
+ "dep:libc"
+ ],
+ "log": [
+ "dep:log"
+ ],
+ "min_const_gen": [],
+ "nightly": [],
+ "packed_simd": [
+ "dep:packed_simd"
+ ],
+ "rand_chacha": [
+ "dep:rand_chacha"
+ ],
+ "serde": [
+ "dep:serde"
+ ],
+ "serde1": [
+ "serde",
+ "rand_core/serde1"
+ ],
+ "simd_support": [
+ "packed_simd"
+ ],
+ "small_rng": [],
+ "std": [
+ "rand_core/std",
+ "rand_chacha/std",
+ "alloc",
+ "getrandom",
+ "libc"
+ ],
+ "std_rng": [
+ "rand_chacha"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/rand-0.8.5/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "all-features": true,
+ "rustdoc-args": [
+ "--cfg",
+ "doc_cfg"
+ ]
+ }
+ },
+ "playground": {
+ "features": [
+ "small_rng",
+ "serde1"
+ ]
+ }
+ },
+ "publish": null,
+ "authors": [
+ "The Rand Project Developers",
+ "The Rust Project Developers"
+ ],
+ "categories": [
+ "algorithms",
+ "no-std"
+ ],
+ "keywords": [
+ "random",
+ "rng"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/rust-random/rand",
+ "homepage": "https://rust-random.github.io/book",
+ "documentation": "https://docs.rs/rand",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "rand_core",
+ "version": "0.6.4",
+ "id": "rand_core 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "Core random number generator traits and tools for implementation.\n",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "getrandom",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.2",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "serde",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [
+ "derive"
+ ],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "rand_core",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/rand_core-0.6.4/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ }
+ ],
+ "features": {
+ "alloc": [],
+ "getrandom": [
+ "dep:getrandom"
+ ],
+ "serde": [
+ "dep:serde"
+ ],
+ "serde1": [
+ "serde"
+ ],
+ "std": [
+ "alloc",
+ "getrandom",
+ "getrandom/std"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/rand_core-0.6.4/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "all-features": true,
+ "rustdoc-args": [
+ "--cfg",
+ "doc_cfg"
+ ]
+ }
+ },
+ "playground": {
+ "all-features": true
+ }
+ },
+ "publish": null,
+ "authors": [
+ "The Rand Project Developers",
+ "The Rust Project Developers"
+ ],
+ "categories": [
+ "algorithms",
+ "no-std"
+ ],
+ "keywords": [
+ "random",
+ "rng"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/rust-random/rand",
+ "homepage": "https://rust-random.github.io/book",
+ "documentation": "https://docs.rs/rand_core",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "regex",
+ "version": "1.7.1",
+ "id": "regex 1.7.1 (path+file:///$ROOT$regex)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "An implementation of regular expressions for Rust. This implementation uses\nfinite automata and guarantees linear time matching on all inputs.\n",
+ "source": null,
+ "dependencies": [
+ {
+ "name": "aho-corasick",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.7.18",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "memchr",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^2.4.0",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "regex-syntax",
+ "source": null,
+ "req": "^0.6.27",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null,
+ "path": "$ROOT$regex/regex-syntax"
+ },
+ {
+ "name": "lazy_static",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "quickcheck",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.3",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rand",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.8.3",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [
+ "getrandom",
+ "small_rng"
+ ],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "regex",
+ "src_path": "$ROOT$regex/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "shootout-regex-dna-bytes",
+ "src_path": "$ROOT$regex/examples/shootout-regex-dna-bytes.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "shootout-regex-dna-cheat",
+ "src_path": "$ROOT$regex/examples/shootout-regex-dna-cheat.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "shootout-regex-dna-replace",
+ "src_path": "$ROOT$regex/examples/shootout-regex-dna-replace.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "shootout-regex-dna-single-cheat",
+ "src_path": "$ROOT$regex/examples/shootout-regex-dna-single-cheat.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "shootout-regex-dna-single",
+ "src_path": "$ROOT$regex/examples/shootout-regex-dna-single.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "shootout-regex-dna",
+ "src_path": "$ROOT$regex/examples/shootout-regex-dna.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "default",
+ "src_path": "$ROOT$regex/tests/test_default.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "default-bytes",
+ "src_path": "$ROOT$regex/tests/test_default_bytes.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "nfa",
+ "src_path": "$ROOT$regex/tests/test_nfa.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "nfa-utf8bytes",
+ "src_path": "$ROOT$regex/tests/test_nfa_utf8bytes.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "nfa-bytes",
+ "src_path": "$ROOT$regex/tests/test_nfa_bytes.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "backtrack",
+ "src_path": "$ROOT$regex/tests/test_backtrack.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "backtrack-utf8bytes",
+ "src_path": "$ROOT$regex/tests/test_backtrack_utf8bytes.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "backtrack-bytes",
+ "src_path": "$ROOT$regex/tests/test_backtrack_bytes.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "crates-regex",
+ "src_path": "$ROOT$regex/tests/test_crates_regex.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ }
+ ],
+ "features": {
+ "aho-corasick": [
+ "dep:aho-corasick"
+ ],
+ "default": [
+ "std",
+ "perf",
+ "unicode",
+ "regex-syntax/default"
+ ],
+ "memchr": [
+ "dep:memchr"
+ ],
+ "pattern": [],
+ "perf": [
+ "perf-cache",
+ "perf-dfa",
+ "perf-inline",
+ "perf-literal"
+ ],
+ "perf-cache": [],
+ "perf-dfa": [],
+ "perf-inline": [],
+ "perf-literal": [
+ "aho-corasick",
+ "memchr"
+ ],
+ "std": [],
+ "unicode": [
+ "unicode-age",
+ "unicode-bool",
+ "unicode-case",
+ "unicode-gencat",
+ "unicode-perl",
+ "unicode-script",
+ "unicode-segment",
+ "regex-syntax/unicode"
+ ],
+ "unicode-age": [
+ "regex-syntax/unicode-age"
+ ],
+ "unicode-bool": [
+ "regex-syntax/unicode-bool"
+ ],
+ "unicode-case": [
+ "regex-syntax/unicode-case"
+ ],
+ "unicode-gencat": [
+ "regex-syntax/unicode-gencat"
+ ],
+ "unicode-perl": [
+ "regex-syntax/unicode-perl"
+ ],
+ "unicode-script": [
+ "regex-syntax/unicode-script"
+ ],
+ "unicode-segment": [
+ "regex-syntax/unicode-segment"
+ ],
+ "unstable": [
+ "pattern"
+ ],
+ "use_std": [
+ "std"
+ ]
+ },
+ "manifest_path": "$ROOT$regex/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "The Rust Project Developers"
+ ],
+ "categories": [
+ "text-processing"
+ ],
+ "keywords": [],
+ "readme": "README.md",
+ "repository": "https://github.com/rust-lang/regex",
+ "homepage": "https://github.com/rust-lang/regex",
+ "documentation": "https://docs.rs/regex",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "regex",
+ "version": "1.8.1",
+ "id": "regex 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "An implementation of regular expressions for Rust. This implementation uses\nfinite automata and guarantees linear time matching on all inputs.\n",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "aho-corasick",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.0",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "memchr",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^2.5.0",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "regex-syntax",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.7.1",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "lazy_static",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "quickcheck",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.3",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rand",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.8.3",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [
+ "getrandom",
+ "small_rng"
+ ],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "regex",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/src/lib.rs",
+ "edition": "2021",
+ "doc": true,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "shootout-regex-dna-bytes",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/examples/shootout-regex-dna-bytes.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "shootout-regex-dna-cheat",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/examples/shootout-regex-dna-cheat.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "shootout-regex-dna-replace",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/examples/shootout-regex-dna-replace.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "shootout-regex-dna-single-cheat",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/examples/shootout-regex-dna-single-cheat.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "shootout-regex-dna-single",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/examples/shootout-regex-dna-single.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "shootout-regex-dna",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/examples/shootout-regex-dna.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "default",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/tests/test_default.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "default-bytes",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/tests/test_default_bytes.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "nfa",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/tests/test_nfa.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "nfa-utf8bytes",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/tests/test_nfa_utf8bytes.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "nfa-bytes",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/tests/test_nfa_bytes.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "backtrack",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/tests/test_backtrack.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "backtrack-utf8bytes",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/tests/test_backtrack_utf8bytes.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "backtrack-bytes",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/tests/test_backtrack_bytes.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "crates-regex",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/tests/test_crates_regex.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ }
+ ],
+ "features": {
+ "aho-corasick": [
+ "dep:aho-corasick"
+ ],
+ "default": [
+ "std",
+ "perf",
+ "unicode",
+ "regex-syntax/default"
+ ],
+ "memchr": [
+ "dep:memchr"
+ ],
+ "pattern": [],
+ "perf": [
+ "perf-cache",
+ "perf-dfa",
+ "perf-inline",
+ "perf-literal"
+ ],
+ "perf-cache": [],
+ "perf-dfa": [],
+ "perf-inline": [],
+ "perf-literal": [
+ "aho-corasick",
+ "memchr"
+ ],
+ "std": [],
+ "unicode": [
+ "unicode-age",
+ "unicode-bool",
+ "unicode-case",
+ "unicode-gencat",
+ "unicode-perl",
+ "unicode-script",
+ "unicode-segment",
+ "regex-syntax/unicode"
+ ],
+ "unicode-age": [
+ "regex-syntax/unicode-age"
+ ],
+ "unicode-bool": [
+ "regex-syntax/unicode-bool"
+ ],
+ "unicode-case": [
+ "regex-syntax/unicode-case"
+ ],
+ "unicode-gencat": [
+ "regex-syntax/unicode-gencat"
+ ],
+ "unicode-perl": [
+ "regex-syntax/unicode-perl"
+ ],
+ "unicode-script": [
+ "regex-syntax/unicode-script"
+ ],
+ "unicode-segment": [
+ "regex-syntax/unicode-segment"
+ ],
+ "unstable": [
+ "pattern"
+ ],
+ "use_std": [
+ "std"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "The Rust Project Developers"
+ ],
+ "categories": [
+ "text-processing"
+ ],
+ "keywords": [],
+ "readme": "README.md",
+ "repository": "https://github.com/rust-lang/regex",
+ "homepage": "https://github.com/rust-lang/regex",
+ "documentation": "https://docs.rs/regex",
+ "edition": "2021",
+ "links": null,
+ "default_run": null,
+ "rust_version": "1.60.0"
+ },
+ {
+ "name": "regex-benchmark",
+ "version": "0.1.0",
+ "id": "regex-benchmark 0.1.0 (path+file:///$ROOT$regex/bench)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "Regex benchmarks for Rust's and other engines.",
+ "source": null,
+ "dependencies": [
+ {
+ "name": "cfg-if",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.1",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "docopt",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "lazy_static",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "libc",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.2",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "libpcre-sys",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.2",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "memmap",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.6.2",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "onig",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^3",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "regex",
+ "source": null,
+ "req": "^1",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null,
+ "path": "$ROOT$regex"
+ },
+ {
+ "name": "regex-syntax",
+ "source": null,
+ "req": "^0.6",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null,
+ "path": "$ROOT$regex/regex-syntax"
+ },
+ {
+ "name": "serde",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [
+ "derive"
+ ],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "cc",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "build",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "pkg-config",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.3.9",
+ "kind": "build",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "bin"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "regex-run-one",
+ "src_path": "$ROOT$regex/bench/src/main.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "bench"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "bench",
+ "src_path": "$ROOT$regex/bench/src/bench.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "custom-build"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "build-script-build",
+ "src_path": "$ROOT$regex/bench/build.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "libpcre-sys": [
+ "dep:libpcre-sys"
+ ],
+ "onig": [
+ "dep:onig"
+ ],
+ "re-onig": [
+ "onig"
+ ],
+ "re-pcre1": [
+ "libpcre-sys"
+ ],
+ "re-pcre2": [],
+ "re-re2": [],
+ "re-rust": [],
+ "re-rust-bytes": [],
+ "re-tcl": []
+ },
+ "manifest_path": "$ROOT$regex/bench/Cargo.toml",
+ "metadata": null,
+ "publish": [],
+ "authors": [
+ "The Rust Project Developers"
+ ],
+ "categories": [],
+ "keywords": [],
+ "readme": null,
+ "repository": "https://github.com/rust-lang/regex",
+ "homepage": "https://github.com/rust-lang/regex",
+ "documentation": "https://docs.rs/regex",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "regex-debug",
+ "version": "0.1.0",
+ "id": "regex-debug 0.1.0 (path+file:///$ROOT$regex/regex-debug)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "A tool useful for debugging regular expressions.",
+ "source": null,
+ "dependencies": [
+ {
+ "name": "docopt",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "regex",
+ "source": null,
+ "req": "^1.1",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null,
+ "path": "$ROOT$regex"
+ },
+ {
+ "name": "regex-syntax",
+ "source": null,
+ "req": "^0.6",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null,
+ "path": "$ROOT$regex/regex-syntax"
+ },
+ {
+ "name": "serde",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [
+ "derive"
+ ],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "bin"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "regex-debug",
+ "src_path": "$ROOT$regex/regex-debug/src/main.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": false,
+ "test": true
+ }
+ ],
+ "features": {},
+ "manifest_path": "$ROOT$regex/regex-debug/Cargo.toml",
+ "metadata": null,
+ "publish": [],
+ "authors": [
+ "The Rust Project Developers"
+ ],
+ "categories": [],
+ "keywords": [],
+ "readme": null,
+ "repository": "https://github.com/rust-lang/regex",
+ "homepage": "https://github.com/rust-lang/regex",
+ "documentation": "https://docs.rs/regex",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "regex-syntax",
+ "version": "0.6.28",
+ "id": "regex-syntax 0.6.28 (path+file:///$ROOT$regex/regex-syntax)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "A regular expression parser.",
+ "source": null,
+ "dependencies": [],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "regex-syntax",
+ "src_path": "$ROOT$regex/regex-syntax/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "bench"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "bench",
+ "src_path": "$ROOT$regex/regex-syntax/benches/bench.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "default": [
+ "unicode"
+ ],
+ "unicode": [
+ "unicode-age",
+ "unicode-bool",
+ "unicode-case",
+ "unicode-gencat",
+ "unicode-perl",
+ "unicode-script",
+ "unicode-segment"
+ ],
+ "unicode-age": [],
+ "unicode-bool": [],
+ "unicode-case": [],
+ "unicode-gencat": [],
+ "unicode-perl": [],
+ "unicode-script": [],
+ "unicode-segment": []
+ },
+ "manifest_path": "$ROOT$regex/regex-syntax/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "The Rust Project Developers"
+ ],
+ "categories": [],
+ "keywords": [],
+ "readme": "README.md",
+ "repository": "https://github.com/rust-lang/regex",
+ "homepage": "https://github.com/rust-lang/regex",
+ "documentation": "https://docs.rs/regex-syntax",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "regex-syntax",
+ "version": "0.7.1",
+ "id": "regex-syntax 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "A regular expression parser.",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "regex-syntax",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-syntax-0.7.1/src/lib.rs",
+ "edition": "2021",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "bench"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "bench",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-syntax-0.7.1/benches/bench.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "default": [
+ "std",
+ "unicode"
+ ],
+ "std": [],
+ "unicode": [
+ "unicode-age",
+ "unicode-bool",
+ "unicode-case",
+ "unicode-gencat",
+ "unicode-perl",
+ "unicode-script",
+ "unicode-segment"
+ ],
+ "unicode-age": [],
+ "unicode-bool": [],
+ "unicode-case": [],
+ "unicode-gencat": [],
+ "unicode-perl": [],
+ "unicode-script": [],
+ "unicode-segment": []
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-syntax-0.7.1/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "all-features": true,
+ "rustdoc-args": [
+ "--cfg",
+ "docsrs"
+ ]
+ }
+ }
+ },
+ "publish": null,
+ "authors": [
+ "The Rust Project Developers"
+ ],
+ "categories": [],
+ "keywords": [],
+ "readme": "README.md",
+ "repository": "https://github.com/rust-lang/regex",
+ "homepage": "https://github.com/rust-lang/regex",
+ "documentation": "https://docs.rs/regex-syntax",
+ "edition": "2021",
+ "links": null,
+ "default_run": null,
+ "rust_version": "1.60.0"
+ },
+ {
+ "name": "rure",
+ "version": "0.2.2",
+ "id": "rure 0.2.2 (path+file:///$ROOT$regex/regex-capi)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "A C API for Rust's regular expression library.\n",
+ "source": null,
+ "dependencies": [
+ {
+ "name": "libc",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.2",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "regex",
+ "source": null,
+ "req": "^1",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null,
+ "path": "$ROOT$regex"
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "staticlib",
+ "cdylib",
+ "rlib"
+ ],
+ "crate_types": [
+ "staticlib",
+ "cdylib",
+ "rlib"
+ ],
+ "name": "rure",
+ "src_path": "$ROOT$regex/regex-capi/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ }
+ ],
+ "features": {},
+ "manifest_path": "$ROOT$regex/regex-capi/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "The Rust Project Developers"
+ ],
+ "categories": [],
+ "keywords": [],
+ "readme": "README.md",
+ "repository": "https://github.com/rust-lang/regex",
+ "homepage": "https://github.com/rust-lang/regex",
+ "documentation": "https://github.com/rust-lang/regex/tree/master/regex-capi",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "serde",
+ "version": "1.0.160",
+ "id": "serde 1.0.160 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "A generic serialization/deserialization framework",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "serde_derive",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "=1.0.160",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "serde_derive",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "serde",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.160/src/lib.rs",
+ "edition": "2015",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "custom-build"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "build-script-build",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.160/build.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "alloc": [],
+ "default": [
+ "std"
+ ],
+ "derive": [
+ "serde_derive"
+ ],
+ "rc": [],
+ "serde_derive": [
+ "dep:serde_derive"
+ ],
+ "std": [],
+ "unstable": []
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.160/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "features": [
+ "derive"
+ ],
+ "targets": [
+ "x86_64-unknown-linux-gnu"
+ ]
+ }
+ },
+ "playground": {
+ "features": [
+ "derive",
+ "rc"
+ ]
+ }
+ },
+ "publish": null,
+ "authors": [
+ "Erick Tryzelaar <erick.tryzelaar@gmail.com>",
+ "David Tolnay <dtolnay@gmail.com>"
+ ],
+ "categories": [
+ "encoding",
+ "no-std"
+ ],
+ "keywords": [
+ "serde",
+ "serialization",
+ "no_std"
+ ],
+ "readme": "crates-io.md",
+ "repository": "https://github.com/serde-rs/serde",
+ "homepage": "https://serde.rs",
+ "documentation": "https://docs.rs/serde",
+ "edition": "2015",
+ "links": null,
+ "default_run": null,
+ "rust_version": "1.19"
+ },
+ {
+ "name": "serde_derive",
+ "version": "1.0.160",
+ "id": "serde_derive 1.0.160 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "Macros 1.1 implementation of #[derive(Serialize, Deserialize)]",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "proc-macro2",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "quote",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "syn",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^2.0.3",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "serde",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "proc-macro"
+ ],
+ "crate_types": [
+ "proc-macro"
+ ],
+ "name": "serde_derive",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_derive-1.0.160/src/lib.rs",
+ "edition": "2015",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "custom-build"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "build-script-build",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_derive-1.0.160/build.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "default": [],
+ "deserialize_in_place": []
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_derive-1.0.160/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "targets": [
+ "x86_64-unknown-linux-gnu"
+ ]
+ }
+ }
+ },
+ "publish": null,
+ "authors": [
+ "Erick Tryzelaar <erick.tryzelaar@gmail.com>",
+ "David Tolnay <dtolnay@gmail.com>"
+ ],
+ "categories": [
+ "no-std"
+ ],
+ "keywords": [
+ "serde",
+ "serialization",
+ "no_std",
+ "derive"
+ ],
+ "readme": "crates-io.md",
+ "repository": "https://github.com/serde-rs/serde",
+ "homepage": "https://serde.rs",
+ "documentation": "https://serde.rs/derive.html",
+ "edition": "2015",
+ "links": null,
+ "default_run": null,
+ "rust_version": "1.56"
+ },
+ {
+ "name": "strsim",
+ "version": "0.10.0",
+ "id": "strsim 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT",
+ "license_file": null,
+ "description": "Implementations of string similarity metrics. Includes Hamming, Levenshtein,\nOSA, Damerau-Levenshtein, Jaro, Jaro-Winkler, and Sørensen-Dice.\n",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "strsim",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/strsim-0.10.0/src/lib.rs",
+ "edition": "2015",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "lib",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/strsim-0.10.0/tests/lib.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "bench"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "benches",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/strsim-0.10.0/benches/benches.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {},
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/strsim-0.10.0/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Danny Guo <danny@dannyguo.com>"
+ ],
+ "categories": [],
+ "keywords": [
+ "string",
+ "similarity",
+ "Hamming",
+ "Levenshtein",
+ "Jaro"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/dguo/strsim-rs",
+ "homepage": "https://github.com/dguo/strsim-rs",
+ "documentation": "https://docs.rs/strsim/",
+ "edition": "2015",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "syn",
+ "version": "2.0.15",
+ "id": "syn 2.0.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "Parser for Rust source code",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "proc-macro2",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.55",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "quote",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.25",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "unicode-ident",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "anyhow",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "automod",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "flate2",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "insta",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rayon",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "ref-cast",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "regex",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "reqwest",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.11",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [
+ "blocking"
+ ],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rustversion",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "syn-test-suite",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "tar",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.4.16",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "termcolor",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "walkdir",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^2.3.2",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "syn",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/src/lib.rs",
+ "edition": "2021",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "regression",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/regression.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_asyncness",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_asyncness.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_attribute",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_attribute.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_derive_input",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_derive_input.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_expr",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_expr.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_generics",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_generics.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_grouping",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_grouping.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_ident",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_ident.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_item",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_item.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_iterators",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_iterators.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_lit",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_lit.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_meta",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_meta.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_parse_buffer",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_parse_buffer.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_parse_stream",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_parse_stream.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_pat",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_pat.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_path",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_path.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_precedence",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_precedence.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_receiver",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_receiver.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_round_trip",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_round_trip.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_shebang",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_shebang.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_should_parse",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_should_parse.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_size",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_size.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_stmt",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_stmt.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_token_trees",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_token_trees.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_ty",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_ty.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_visibility",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_visibility.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "zzz_stable",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/zzz_stable.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "bench"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "rust",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/benches/rust.rs",
+ "edition": "2021",
+ "required-features": [
+ "full",
+ "parsing"
+ ],
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "bench"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "file",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/benches/file.rs",
+ "edition": "2021",
+ "required-features": [
+ "full",
+ "parsing"
+ ],
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "clone-impls": [],
+ "default": [
+ "derive",
+ "parsing",
+ "printing",
+ "clone-impls",
+ "proc-macro"
+ ],
+ "derive": [],
+ "extra-traits": [],
+ "fold": [],
+ "full": [],
+ "parsing": [],
+ "printing": [
+ "quote"
+ ],
+ "proc-macro": [
+ "proc-macro2/proc-macro",
+ "quote/proc-macro"
+ ],
+ "quote": [
+ "dep:quote"
+ ],
+ "test": [
+ "syn-test-suite/all-features"
+ ],
+ "visit": [],
+ "visit-mut": []
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "all-features": true,
+ "rustdoc-args": [
+ "--cfg",
+ "doc_cfg"
+ ],
+ "targets": [
+ "x86_64-unknown-linux-gnu"
+ ]
+ }
+ },
+ "playground": {
+ "features": [
+ "full",
+ "visit",
+ "visit-mut",
+ "fold",
+ "extra-traits"
+ ]
+ }
+ },
+ "publish": null,
+ "authors": [
+ "David Tolnay <dtolnay@gmail.com>"
+ ],
+ "categories": [
+ "development-tools::procedural-macro-helpers",
+ "parser-implementations"
+ ],
+ "keywords": [
+ "macros",
+ "syn"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/dtolnay/syn",
+ "homepage": null,
+ "documentation": "https://docs.rs/syn",
+ "edition": "2021",
+ "links": null,
+ "default_run": null,
+ "rust_version": "1.56"
+ },
+ {
+ "name": "unicode-ident",
+ "version": "1.0.8",
+ "id": "unicode-ident 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "(MIT OR Apache-2.0) AND Unicode-DFS-2016",
+ "license_file": null,
+ "description": "Determine whether characters have the XID_Start or XID_Continue properties according to Unicode Standard Annex #31",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "criterion",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.4",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "fst",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.4",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rand",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.8",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [
+ "small_rng"
+ ],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "roaring",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.10",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "ucd-trie",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "unicode-xid",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.2.4",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "unicode-ident",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/unicode-ident-1.0.8/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "compare",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/unicode-ident-1.0.8/tests/compare.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "static_size",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/unicode-ident-1.0.8/tests/static_size.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "bench"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "xid",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/unicode-ident-1.0.8/benches/xid.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {},
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/unicode-ident-1.0.8/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "targets": [
+ "x86_64-unknown-linux-gnu"
+ ]
+ }
+ }
+ },
+ "publish": null,
+ "authors": [
+ "David Tolnay <dtolnay@gmail.com>"
+ ],
+ "categories": [
+ "development-tools::procedural-macro-helpers",
+ "no-std"
+ ],
+ "keywords": [
+ "unicode",
+ "xid"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/dtolnay/unicode-ident",
+ "homepage": null,
+ "documentation": "https://docs.rs/unicode-ident",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": "1.31"
+ },
+ {
+ "name": "wasi",
+ "version": "0.11.0+wasi-snapshot-preview1",
+ "id": "wasi 0.11.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT",
+ "license_file": null,
+ "description": "Experimental WASI API bindings for Rust",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "compiler_builtins",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.1",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rustc-std-workspace-core",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": null,
+ "rename": "core",
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rustc-std-workspace-alloc",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "wasi",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/wasi-0.11.0+wasi-snapshot-preview1/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ }
+ ],
+ "features": {
+ "compiler_builtins": [
+ "dep:compiler_builtins"
+ ],
+ "core": [
+ "dep:core"
+ ],
+ "default": [
+ "std"
+ ],
+ "rustc-dep-of-std": [
+ "compiler_builtins",
+ "core",
+ "rustc-std-workspace-alloc"
+ ],
+ "rustc-std-workspace-alloc": [
+ "dep:rustc-std-workspace-alloc"
+ ],
+ "std": []
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/wasi-0.11.0+wasi-snapshot-preview1/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "The Cranelift Project Developers"
+ ],
+ "categories": [
+ "no-std",
+ "wasm"
+ ],
+ "keywords": [
+ "webassembly",
+ "wasm"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/bytecodealliance/wasi",
+ "homepage": null,
+ "documentation": "https://docs.rs/wasi",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "winapi",
+ "version": "0.3.9",
+ "id": "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT/Apache-2.0",
+ "license_file": null,
+ "description": "Raw FFI bindings for all of Windows API.",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "winapi-i686-pc-windows-gnu",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.4",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": "i686-pc-windows-gnu",
+ "registry": null
+ },
+ {
+ "name": "winapi-x86_64-pc-windows-gnu",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.4",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": "x86_64-pc-windows-gnu",
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "winapi",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/winapi-0.3.9/src/lib.rs",
+ "edition": "2015",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "custom-build"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "build-script-build",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/winapi-0.3.9/build.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "accctrl": [],
+ "aclapi": [],
+ "activation": [],
+ "adhoc": [],
+ "appmgmt": [],
+ "audioclient": [],
+ "audiosessiontypes": [],
+ "avrt": [],
+ "basetsd": [],
+ "bcrypt": [],
+ "bits": [],
+ "bits10_1": [],
+ "bits1_5": [],
+ "bits2_0": [],
+ "bits2_5": [],
+ "bits3_0": [],
+ "bits4_0": [],
+ "bits5_0": [],
+ "bitscfg": [],
+ "bitsmsg": [],
+ "bluetoothapis": [],
+ "bluetoothleapis": [],
+ "bthdef": [],
+ "bthioctl": [],
+ "bthledef": [],
+ "bthsdpdef": [],
+ "bugcodes": [],
+ "cderr": [],
+ "cfg": [],
+ "cfgmgr32": [],
+ "cguid": [],
+ "combaseapi": [],
+ "coml2api": [],
+ "commapi": [],
+ "commctrl": [],
+ "commdlg": [],
+ "commoncontrols": [],
+ "consoleapi": [],
+ "corecrt": [],
+ "corsym": [],
+ "d2d1": [],
+ "d2d1_1": [],
+ "d2d1_2": [],
+ "d2d1_3": [],
+ "d2d1effectauthor": [],
+ "d2d1effects": [],
+ "d2d1effects_1": [],
+ "d2d1effects_2": [],
+ "d2d1svg": [],
+ "d2dbasetypes": [],
+ "d3d": [],
+ "d3d10": [],
+ "d3d10_1": [],
+ "d3d10_1shader": [],
+ "d3d10effect": [],
+ "d3d10misc": [],
+ "d3d10sdklayers": [],
+ "d3d10shader": [],
+ "d3d11": [],
+ "d3d11_1": [],
+ "d3d11_2": [],
+ "d3d11_3": [],
+ "d3d11_4": [],
+ "d3d11on12": [],
+ "d3d11sdklayers": [],
+ "d3d11shader": [],
+ "d3d11tokenizedprogramformat": [],
+ "d3d12": [],
+ "d3d12sdklayers": [],
+ "d3d12shader": [],
+ "d3d9": [],
+ "d3d9caps": [],
+ "d3d9types": [],
+ "d3dcommon": [],
+ "d3dcompiler": [],
+ "d3dcsx": [],
+ "d3dkmdt": [],
+ "d3dkmthk": [],
+ "d3dukmdt": [],
+ "d3dx10core": [],
+ "d3dx10math": [],
+ "d3dx10mesh": [],
+ "datetimeapi": [],
+ "davclnt": [],
+ "dbghelp": [],
+ "dbt": [],
+ "dcommon": [],
+ "dcomp": [],
+ "dcompanimation": [],
+ "dcomptypes": [],
+ "dde": [],
+ "ddraw": [],
+ "ddrawi": [],
+ "ddrawint": [],
+ "debug": [
+ "impl-debug"
+ ],
+ "debugapi": [],
+ "devguid": [],
+ "devicetopology": [],
+ "devpkey": [],
+ "devpropdef": [],
+ "dinput": [],
+ "dinputd": [],
+ "dispex": [],
+ "dmksctl": [],
+ "dmusicc": [],
+ "docobj": [],
+ "documenttarget": [],
+ "dot1x": [],
+ "dpa_dsa": [],
+ "dpapi": [],
+ "dsgetdc": [],
+ "dsound": [],
+ "dsrole": [],
+ "dvp": [],
+ "dwmapi": [],
+ "dwrite": [],
+ "dwrite_1": [],
+ "dwrite_2": [],
+ "dwrite_3": [],
+ "dxdiag": [],
+ "dxfile": [],
+ "dxgi": [],
+ "dxgi1_2": [],
+ "dxgi1_3": [],
+ "dxgi1_4": [],
+ "dxgi1_5": [],
+ "dxgi1_6": [],
+ "dxgidebug": [],
+ "dxgiformat": [],
+ "dxgitype": [],
+ "dxva2api": [],
+ "dxvahd": [],
+ "eaptypes": [],
+ "enclaveapi": [],
+ "endpointvolume": [],
+ "errhandlingapi": [],
+ "everything": [],
+ "evntcons": [],
+ "evntprov": [],
+ "evntrace": [],
+ "excpt": [],
+ "exdisp": [],
+ "fibersapi": [],
+ "fileapi": [],
+ "functiondiscoverykeys_devpkey": [],
+ "gl-gl": [],
+ "guiddef": [],
+ "handleapi": [],
+ "heapapi": [],
+ "hidclass": [],
+ "hidpi": [],
+ "hidsdi": [],
+ "hidusage": [],
+ "highlevelmonitorconfigurationapi": [],
+ "hstring": [],
+ "http": [],
+ "ifdef": [],
+ "ifmib": [],
+ "imm": [],
+ "impl-debug": [],
+ "impl-default": [],
+ "in6addr": [],
+ "inaddr": [],
+ "inspectable": [],
+ "interlockedapi": [],
+ "intsafe": [],
+ "ioapiset": [],
+ "ipexport": [],
+ "iphlpapi": [],
+ "ipifcons": [],
+ "ipmib": [],
+ "iprtrmib": [],
+ "iptypes": [],
+ "jobapi": [],
+ "jobapi2": [],
+ "knownfolders": [],
+ "ks": [],
+ "ksmedia": [],
+ "ktmtypes": [],
+ "ktmw32": [],
+ "l2cmn": [],
+ "libloaderapi": [],
+ "limits": [],
+ "lmaccess": [],
+ "lmalert": [],
+ "lmapibuf": [],
+ "lmat": [],
+ "lmcons": [],
+ "lmdfs": [],
+ "lmerrlog": [],
+ "lmjoin": [],
+ "lmmsg": [],
+ "lmremutl": [],
+ "lmrepl": [],
+ "lmserver": [],
+ "lmshare": [],
+ "lmstats": [],
+ "lmsvc": [],
+ "lmuse": [],
+ "lmwksta": [],
+ "lowlevelmonitorconfigurationapi": [],
+ "lsalookup": [],
+ "memoryapi": [],
+ "minschannel": [],
+ "minwinbase": [],
+ "minwindef": [],
+ "mmdeviceapi": [],
+ "mmeapi": [],
+ "mmreg": [],
+ "mmsystem": [],
+ "mprapidef": [],
+ "msaatext": [],
+ "mscat": [],
+ "mschapp": [],
+ "mssip": [],
+ "mstcpip": [],
+ "mswsock": [],
+ "mswsockdef": [],
+ "namedpipeapi": [],
+ "namespaceapi": [],
+ "nb30": [],
+ "ncrypt": [],
+ "netioapi": [],
+ "nldef": [],
+ "ntddndis": [],
+ "ntddscsi": [],
+ "ntddser": [],
+ "ntdef": [],
+ "ntlsa": [],
+ "ntsecapi": [],
+ "ntstatus": [],
+ "oaidl": [],
+ "objbase": [],
+ "objidl": [],
+ "objidlbase": [],
+ "ocidl": [],
+ "ole2": [],
+ "oleauto": [],
+ "olectl": [],
+ "oleidl": [],
+ "opmapi": [],
+ "pdh": [],
+ "perflib": [],
+ "physicalmonitorenumerationapi": [],
+ "playsoundapi": [],
+ "portabledevice": [],
+ "portabledeviceapi": [],
+ "portabledevicetypes": [],
+ "powerbase": [],
+ "powersetting": [],
+ "powrprof": [],
+ "processenv": [],
+ "processsnapshot": [],
+ "processthreadsapi": [],
+ "processtopologyapi": [],
+ "profileapi": [],
+ "propidl": [],
+ "propkey": [],
+ "propkeydef": [],
+ "propsys": [],
+ "prsht": [],
+ "psapi": [],
+ "qos": [],
+ "realtimeapiset": [],
+ "reason": [],
+ "restartmanager": [],
+ "restrictederrorinfo": [],
+ "rmxfguid": [],
+ "roapi": [],
+ "robuffer": [],
+ "roerrorapi": [],
+ "rpc": [],
+ "rpcdce": [],
+ "rpcndr": [],
+ "rtinfo": [],
+ "sapi": [],
+ "sapi51": [],
+ "sapi53": [],
+ "sapiddk": [],
+ "sapiddk51": [],
+ "schannel": [],
+ "sddl": [],
+ "securityappcontainer": [],
+ "securitybaseapi": [],
+ "servprov": [],
+ "setupapi": [],
+ "shellapi": [],
+ "shellscalingapi": [],
+ "shlobj": [],
+ "shobjidl": [],
+ "shobjidl_core": [],
+ "shtypes": [],
+ "softpub": [],
+ "spapidef": [],
+ "spellcheck": [],
+ "sporder": [],
+ "sql": [],
+ "sqlext": [],
+ "sqltypes": [],
+ "sqlucode": [],
+ "sspi": [],
+ "std": [],
+ "stralign": [],
+ "stringapiset": [],
+ "strmif": [],
+ "subauth": [],
+ "synchapi": [],
+ "sysinfoapi": [],
+ "systemtopologyapi": [],
+ "taskschd": [],
+ "tcpestats": [],
+ "tcpmib": [],
+ "textstor": [],
+ "threadpoolapiset": [],
+ "threadpoollegacyapiset": [],
+ "timeapi": [],
+ "timezoneapi": [],
+ "tlhelp32": [],
+ "transportsettingcommon": [],
+ "tvout": [],
+ "udpmib": [],
+ "unknwnbase": [],
+ "urlhist": [],
+ "urlmon": [],
+ "usb": [],
+ "usbioctl": [],
+ "usbiodef": [],
+ "usbscan": [],
+ "usbspec": [],
+ "userenv": [],
+ "usp10": [],
+ "utilapiset": [],
+ "uxtheme": [],
+ "vadefs": [],
+ "vcruntime": [],
+ "vsbackup": [],
+ "vss": [],
+ "vsserror": [],
+ "vswriter": [],
+ "wbemads": [],
+ "wbemcli": [],
+ "wbemdisp": [],
+ "wbemprov": [],
+ "wbemtran": [],
+ "wct": [],
+ "werapi": [],
+ "winbase": [],
+ "wincodec": [],
+ "wincodecsdk": [],
+ "wincon": [],
+ "wincontypes": [],
+ "wincred": [],
+ "wincrypt": [],
+ "windef": [],
+ "windot11": [],
+ "windowsceip": [],
+ "windowsx": [],
+ "winefs": [],
+ "winerror": [],
+ "winevt": [],
+ "wingdi": [],
+ "winhttp": [],
+ "wininet": [],
+ "winineti": [],
+ "winioctl": [],
+ "winnetwk": [],
+ "winnls": [],
+ "winnt": [],
+ "winreg": [],
+ "winsafer": [],
+ "winscard": [],
+ "winsmcrd": [],
+ "winsock2": [],
+ "winspool": [],
+ "winstring": [],
+ "winsvc": [],
+ "wintrust": [],
+ "winusb": [],
+ "winusbio": [],
+ "winuser": [],
+ "winver": [],
+ "wlanapi": [],
+ "wlanihv": [],
+ "wlanihvtypes": [],
+ "wlantypes": [],
+ "wlclient": [],
+ "wmistr": [],
+ "wnnc": [],
+ "wow64apiset": [],
+ "wpdmtpextensions": [],
+ "ws2bth": [],
+ "ws2def": [],
+ "ws2ipdef": [],
+ "ws2spi": [],
+ "ws2tcpip": [],
+ "wtsapi32": [],
+ "wtypes": [],
+ "wtypesbase": [],
+ "xinput": []
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/winapi-0.3.9/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "default-target": "x86_64-pc-windows-msvc",
+ "features": [
+ "everything",
+ "impl-debug",
+ "impl-default"
+ ],
+ "targets": [
+ "aarch64-pc-windows-msvc",
+ "i686-pc-windows-msvc",
+ "x86_64-pc-windows-msvc"
+ ]
+ }
+ }
+ },
+ "publish": null,
+ "authors": [
+ "Peter Atashian <retep998@gmail.com>"
+ ],
+ "categories": [
+ "external-ffi-bindings",
+ "no-std",
+ "os::windows-apis"
+ ],
+ "keywords": [
+ "windows",
+ "ffi",
+ "win32",
+ "com",
+ "directx"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/retep998/winapi-rs",
+ "homepage": null,
+ "documentation": "https://docs.rs/winapi/",
+ "edition": "2015",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "winapi-i686-pc-windows-gnu",
+ "version": "0.4.0",
+ "id": "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT/Apache-2.0",
+ "license_file": null,
+ "description": "Import libraries for the i686-pc-windows-gnu target. Please don't use this crate directly, depend on winapi instead.",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "winapi-i686-pc-windows-gnu",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/winapi-i686-pc-windows-gnu-0.4.0/src/lib.rs",
+ "edition": "2015",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "custom-build"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "build-script-build",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/winapi-i686-pc-windows-gnu-0.4.0/build.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {},
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/winapi-i686-pc-windows-gnu-0.4.0/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Peter Atashian <retep998@gmail.com>"
+ ],
+ "categories": [],
+ "keywords": [
+ "windows"
+ ],
+ "readme": null,
+ "repository": "https://github.com/retep998/winapi-rs",
+ "homepage": null,
+ "documentation": null,
+ "edition": "2015",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "winapi-x86_64-pc-windows-gnu",
+ "version": "0.4.0",
+ "id": "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT/Apache-2.0",
+ "license_file": null,
+ "description": "Import libraries for the x86_64-pc-windows-gnu target. Please don't use this crate directly, depend on winapi instead.",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "winapi-x86_64-pc-windows-gnu",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/winapi-x86_64-pc-windows-gnu-0.4.0/src/lib.rs",
+ "edition": "2015",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "custom-build"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "build-script-build",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/winapi-x86_64-pc-windows-gnu-0.4.0/build.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {},
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/winapi-x86_64-pc-windows-gnu-0.4.0/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Peter Atashian <retep998@gmail.com>"
+ ],
+ "categories": [],
+ "keywords": [
+ "windows"
+ ],
+ "readme": null,
+ "repository": "https://github.com/retep998/winapi-rs",
+ "homepage": null,
+ "documentation": null,
+ "edition": "2015",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ }
+ ],
+ "workspace_members": [
+ "regex-benchmark 0.1.0 (path+file:///$ROOT$regex/bench)",
+ "regex 1.7.1 (path+file:///$ROOT$regex)",
+ "regex-syntax 0.6.28 (path+file:///$ROOT$regex/regex-syntax)",
+ "rure 0.2.2 (path+file:///$ROOT$regex/regex-capi)",
+ "regex-debug 0.1.0 (path+file:///$ROOT$regex/regex-debug)"
+ ],
+ "resolve": {
+ "nodes": [
+ {
+ "id": "aho-corasick 0.7.20 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "memchr 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "memchr",
+ "pkg": "memchr 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "default",
+ "std"
+ ]
+ },
+ {
+ "id": "cc 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": []
+ },
+ {
+ "id": "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": []
+ },
+ {
+ "id": "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": []
+ },
+ {
+ "id": "docopt 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.160 (registry+https://github.com/rust-lang/crates.io-index)",
+ "strsim 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "lazy_static",
+ "pkg": "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "regex",
+ "pkg": "regex 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "serde",
+ "pkg": "serde 1.0.160 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "strsim",
+ "pkg": "strsim 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": []
+ },
+ {
+ "id": "getrandom 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.142 (registry+https://github.com/rust-lang/crates.io-index)",
+ "wasi 0.11.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "cfg_if",
+ "pkg": "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "libc",
+ "pkg": "libc 0.2.142 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": "cfg(unix)"
+ }
+ ]
+ },
+ {
+ "name": "wasi",
+ "pkg": "wasi 0.11.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": "cfg(target_os = \"wasi\")"
+ }
+ ]
+ }
+ ],
+ "features": []
+ },
+ {
+ "id": "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": []
+ },
+ {
+ "id": "libc 0.2.142 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": [
+ "default",
+ "std"
+ ]
+ },
+ {
+ "id": "memchr 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": [
+ "default",
+ "std"
+ ]
+ },
+ {
+ "id": "memmap 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "libc 0.2.142 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "libc",
+ "pkg": "libc 0.2.142 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": "cfg(unix)"
+ }
+ ]
+ },
+ {
+ "name": "winapi",
+ "pkg": "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": "cfg(windows)"
+ }
+ ]
+ }
+ ],
+ "features": []
+ },
+ {
+ "id": "pkg-config 0.3.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": []
+ },
+ {
+ "id": "proc-macro2 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "unicode-ident 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "unicode_ident",
+ "pkg": "unicode-ident 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "default",
+ "proc-macro"
+ ]
+ },
+ {
+ "id": "quickcheck 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "rand 0.8.5 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "rand",
+ "pkg": "rand 0.8.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": []
+ },
+ {
+ "id": "quote 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "proc-macro2 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "proc_macro2",
+ "pkg": "proc-macro2 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "default",
+ "proc-macro"
+ ]
+ },
+ {
+ "id": "rand 0.8.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "rand_core 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "rand_core",
+ "pkg": "rand_core 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "getrandom",
+ "small_rng"
+ ]
+ },
+ {
+ "id": "rand_core 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "getrandom 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "getrandom",
+ "pkg": "getrandom 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "getrandom"
+ ]
+ },
+ {
+ "id": "regex 1.7.1 (path+file:///$ROOT$regex)",
+ "dependencies": [
+ "aho-corasick 0.7.20 (registry+https://github.com/rust-lang/crates.io-index)",
+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "memchr 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quickcheck 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand 0.8.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex-syntax 0.6.28 (path+file:///$ROOT$regex/regex-syntax)"
+ ],
+ "deps": [
+ {
+ "name": "aho_corasick",
+ "pkg": "aho-corasick 0.7.20 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "lazy_static",
+ "pkg": "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": "dev",
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "memchr",
+ "pkg": "memchr 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "quickcheck",
+ "pkg": "quickcheck 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": "dev",
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "rand",
+ "pkg": "rand 0.8.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": "dev",
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "regex_syntax",
+ "pkg": "regex-syntax 0.6.28 (path+file:///$ROOT$regex/regex-syntax)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "aho-corasick",
+ "default",
+ "memchr",
+ "perf",
+ "perf-cache",
+ "perf-dfa",
+ "perf-inline",
+ "perf-literal",
+ "std",
+ "unicode",
+ "unicode-age",
+ "unicode-bool",
+ "unicode-case",
+ "unicode-gencat",
+ "unicode-perl",
+ "unicode-script",
+ "unicode-segment"
+ ]
+ },
+ {
+ "id": "regex 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "regex-syntax 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "regex_syntax",
+ "pkg": "regex-syntax 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "std",
+ "unicode",
+ "unicode-age",
+ "unicode-bool",
+ "unicode-case",
+ "unicode-gencat",
+ "unicode-perl",
+ "unicode-script",
+ "unicode-segment"
+ ]
+ },
+ {
+ "id": "regex-benchmark 0.1.0 (path+file:///$ROOT$regex/bench)",
+ "dependencies": [
+ "cc 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "docopt 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.142 (registry+https://github.com/rust-lang/crates.io-index)",
+ "memmap 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "pkg-config 0.3.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 1.7.1 (path+file:///$ROOT$regex)",
+ "regex-syntax 0.6.28 (path+file:///$ROOT$regex/regex-syntax)",
+ "serde 1.0.160 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "cc",
+ "pkg": "cc 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": "build",
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "cfg_if",
+ "pkg": "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "docopt",
+ "pkg": "docopt 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "lazy_static",
+ "pkg": "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "libc",
+ "pkg": "libc 0.2.142 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "memmap",
+ "pkg": "memmap 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "pkg_config",
+ "pkg": "pkg-config 0.3.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": "build",
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "regex",
+ "pkg": "regex 1.7.1 (path+file:///$ROOT$regex)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "regex_syntax",
+ "pkg": "regex-syntax 0.6.28 (path+file:///$ROOT$regex/regex-syntax)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "serde",
+ "pkg": "serde 1.0.160 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": []
+ },
+ {
+ "id": "regex-debug 0.1.0 (path+file:///$ROOT$regex/regex-debug)",
+ "dependencies": [
+ "docopt 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 1.7.1 (path+file:///$ROOT$regex)",
+ "regex-syntax 0.6.28 (path+file:///$ROOT$regex/regex-syntax)",
+ "serde 1.0.160 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "docopt",
+ "pkg": "docopt 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "regex",
+ "pkg": "regex 1.7.1 (path+file:///$ROOT$regex)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "regex_syntax",
+ "pkg": "regex-syntax 0.6.28 (path+file:///$ROOT$regex/regex-syntax)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "serde",
+ "pkg": "serde 1.0.160 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": []
+ },
+ {
+ "id": "regex-syntax 0.6.28 (path+file:///$ROOT$regex/regex-syntax)",
+ "dependencies": [],
+ "deps": [],
+ "features": [
+ "default",
+ "unicode",
+ "unicode-age",
+ "unicode-bool",
+ "unicode-case",
+ "unicode-gencat",
+ "unicode-perl",
+ "unicode-script",
+ "unicode-segment"
+ ]
+ },
+ {
+ "id": "regex-syntax 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": [
+ "unicode",
+ "unicode-age",
+ "unicode-bool",
+ "unicode-case",
+ "unicode-gencat",
+ "unicode-perl",
+ "unicode-script",
+ "unicode-segment"
+ ]
+ },
+ {
+ "id": "rure 0.2.2 (path+file:///$ROOT$regex/regex-capi)",
+ "dependencies": [
+ "libc 0.2.142 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 1.7.1 (path+file:///$ROOT$regex)"
+ ],
+ "deps": [
+ {
+ "name": "libc",
+ "pkg": "libc 0.2.142 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "regex",
+ "pkg": "regex 1.7.1 (path+file:///$ROOT$regex)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": []
+ },
+ {
+ "id": "serde 1.0.160 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "serde_derive 1.0.160 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "serde_derive",
+ "pkg": "serde_derive 1.0.160 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "default",
+ "derive",
+ "serde_derive",
+ "std"
+ ]
+ },
+ {
+ "id": "serde_derive 1.0.160 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "proc-macro2 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quote 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "syn 2.0.15 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "proc_macro2",
+ "pkg": "proc-macro2 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "quote",
+ "pkg": "quote 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "syn",
+ "pkg": "syn 2.0.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "default"
+ ]
+ },
+ {
+ "id": "strsim 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": []
+ },
+ {
+ "id": "syn 2.0.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "proc-macro2 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quote 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-ident 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "proc_macro2",
+ "pkg": "proc-macro2 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "quote",
+ "pkg": "quote 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "unicode_ident",
+ "pkg": "unicode-ident 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "clone-impls",
+ "default",
+ "derive",
+ "parsing",
+ "printing",
+ "proc-macro",
+ "quote"
+ ]
+ },
+ {
+ "id": "unicode-ident 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": []
+ },
+ {
+ "id": "wasi 0.11.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": []
+ },
+ {
+ "id": "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "winapi_i686_pc_windows_gnu",
+ "pkg": "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": "i686-pc-windows-gnu"
+ }
+ ]
+ },
+ {
+ "name": "winapi_x86_64_pc_windows_gnu",
+ "pkg": "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": "x86_64-pc-windows-gnu"
+ }
+ ]
+ }
+ ],
+ "features": [
+ "basetsd",
+ "handleapi",
+ "memoryapi",
+ "minwindef",
+ "std",
+ "sysinfoapi"
+ ]
+ },
+ {
+ "id": "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": []
+ },
+ {
+ "id": "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": []
+ }
+ ],
+ "root": "regex 1.7.1 (path+file:///$ROOT$regex)"
+ },
+ "target_directory": "$ROOT$regex/target",
+ "version": 1,
+ "workspace_root": "$ROOT$regex",
+ "metadata": null
+}
diff --git a/src/tools/rust-analyzer/crates/project-model/test_data/ripgrep-metadata.json b/src/tools/rust-analyzer/crates/project-model/test_data/ripgrep-metadata.json
new file mode 100644
index 000000000..131ff5dd7
--- /dev/null
+++ b/src/tools/rust-analyzer/crates/project-model/test_data/ripgrep-metadata.json
@@ -0,0 +1,12816 @@
+{
+ "packages": [
+ {
+ "name": "aho-corasick",
+ "version": "0.7.20",
+ "id": "aho-corasick 0.7.20 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "Unlicense OR MIT",
+ "license_file": null,
+ "description": "Fast multiple substring searching.",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "memchr",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^2.4.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "aho_corasick",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/aho-corasick-0.7.20/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ }
+ ],
+ "features": {
+ "default": [
+ "std"
+ ],
+ "std": [
+ "memchr/std"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/aho-corasick-0.7.20/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Andrew Gallant <jamslam@gmail.com>"
+ ],
+ "categories": [
+ "text-processing"
+ ],
+ "keywords": [
+ "string",
+ "search",
+ "text",
+ "aho",
+ "multi"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/BurntSushi/aho-corasick",
+ "homepage": "https://github.com/BurntSushi/aho-corasick",
+ "documentation": null,
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "aho-corasick",
+ "version": "1.0.1",
+ "id": "aho-corasick 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "Unlicense OR MIT",
+ "license_file": null,
+ "description": "Fast multiple substring searching.",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "log",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.4.17",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "memchr",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^2.4.0",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "doc-comment",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.3.3",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "aho_corasick",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/aho-corasick-1.0.1/src/lib.rs",
+ "edition": "2021",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ }
+ ],
+ "features": {
+ "default": [
+ "std",
+ "perf-literal"
+ ],
+ "logging": [
+ "dep:log"
+ ],
+ "perf-literal": [
+ "dep:memchr"
+ ],
+ "std": [
+ "memchr?/std"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/aho-corasick-1.0.1/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "all-features": true,
+ "rustdoc-args": [
+ "--cfg",
+ "docsrs"
+ ]
+ }
+ }
+ },
+ "publish": null,
+ "authors": [
+ "Andrew Gallant <jamslam@gmail.com>"
+ ],
+ "categories": [
+ "text-processing"
+ ],
+ "keywords": [
+ "string",
+ "search",
+ "text",
+ "pattern",
+ "multi"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/BurntSushi/aho-corasick",
+ "homepage": "https://github.com/BurntSushi/aho-corasick",
+ "documentation": null,
+ "edition": "2021",
+ "links": null,
+ "default_run": null,
+ "rust_version": "1.60.0"
+ },
+ {
+ "name": "atty",
+ "version": "0.2.14",
+ "id": "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT",
+ "license_file": null,
+ "description": "A simple interface for querying atty",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "hermit-abi",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.1.6",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": "cfg(target_os = \"hermit\")",
+ "registry": null
+ },
+ {
+ "name": "libc",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.2",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": "cfg(unix)",
+ "registry": null
+ },
+ {
+ "name": "winapi",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.3",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [
+ "consoleapi",
+ "processenv",
+ "minwinbase",
+ "minwindef",
+ "winbase"
+ ],
+ "target": "cfg(windows)",
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "atty",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/atty-0.2.14/src/lib.rs",
+ "edition": "2015",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "atty",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/atty-0.2.14/examples/atty.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {},
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/atty-0.2.14/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "softprops <d.tangren@gmail.com>"
+ ],
+ "categories": [],
+ "keywords": [
+ "terminal",
+ "tty",
+ "isatty"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/softprops/atty",
+ "homepage": "https://github.com/softprops/atty",
+ "documentation": "http://softprops.github.io/atty",
+ "edition": "2015",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "base64",
+ "version": "0.20.0",
+ "id": "base64 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "encodes and decodes base64 as bytes or utf8",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "criterion",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.4.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rand",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.8.5",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [
+ "small_rng"
+ ],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rstest",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.12.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rstest_reuse",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.3.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "structopt",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.3.26",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "base64",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/base64-0.20.0/src/lib.rs",
+ "edition": "2021",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "base64",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/base64-0.20.0/examples/base64.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "encode",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/base64-0.20.0/tests/encode.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "tests",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/base64-0.20.0/tests/tests.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "bench"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "benchmarks",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/base64-0.20.0/benches/benchmarks.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "alloc": [],
+ "default": [
+ "std"
+ ],
+ "std": []
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/base64-0.20.0/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Alice Maz <alice@alicemaz.com>",
+ "Marshall Pierce <marshall@mpierce.org>"
+ ],
+ "categories": [
+ "encoding"
+ ],
+ "keywords": [
+ "base64",
+ "utf8",
+ "encode",
+ "decode",
+ "no_std"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/marshallpierce/rust-base64",
+ "homepage": null,
+ "documentation": "https://docs.rs/base64",
+ "edition": "2021",
+ "links": null,
+ "default_run": null,
+ "rust_version": "1.57.0"
+ },
+ {
+ "name": "bitflags",
+ "version": "1.3.2",
+ "id": "bitflags 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT/Apache-2.0",
+ "license_file": null,
+ "description": "A macro to generate structures which behave like bitflags.\n",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "compiler_builtins",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.1.2",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rustc-std-workspace-core",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.0",
+ "kind": null,
+ "rename": "core",
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rustversion",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "serde",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "serde_derive",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "serde_json",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "trybuild",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "walkdir",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^2.3",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "bitflags",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/bitflags-1.3.2/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "basic",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/bitflags-1.3.2/tests/basic.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "compile",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/bitflags-1.3.2/tests/compile.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ }
+ ],
+ "features": {
+ "compiler_builtins": [
+ "dep:compiler_builtins"
+ ],
+ "core": [
+ "dep:core"
+ ],
+ "default": [],
+ "example_generated": [],
+ "rustc-dep-of-std": [
+ "core",
+ "compiler_builtins"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/bitflags-1.3.2/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "features": [
+ "example_generated"
+ ]
+ }
+ }
+ },
+ "publish": null,
+ "authors": [
+ "The Rust Project Developers"
+ ],
+ "categories": [
+ "no-std"
+ ],
+ "keywords": [
+ "bit",
+ "bitmask",
+ "bitflags",
+ "flags"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/bitflags/bitflags",
+ "homepage": "https://github.com/bitflags/bitflags",
+ "documentation": "https://docs.rs/bitflags",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "bstr",
+ "version": "1.4.0",
+ "id": "bstr 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "A string type that is not required to be valid UTF-8.",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "memchr",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^2.4.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "once_cell",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.14.0",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "regex-automata",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.1.5",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "serde",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.85",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "quickcheck",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "ucd-parse",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.1.3",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "unicode-segmentation",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.2.1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "bstr",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/bstr-1.4.0/src/lib.rs",
+ "edition": "2021",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "graphemes",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/bstr-1.4.0/examples/graphemes.rs",
+ "edition": "2021",
+ "required-features": [
+ "std",
+ "unicode"
+ ],
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "lines",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/bstr-1.4.0/examples/lines.rs",
+ "edition": "2021",
+ "required-features": [
+ "std"
+ ],
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "uppercase",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/bstr-1.4.0/examples/uppercase.rs",
+ "edition": "2021",
+ "required-features": [
+ "std",
+ "unicode"
+ ],
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "words",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/bstr-1.4.0/examples/words.rs",
+ "edition": "2021",
+ "required-features": [
+ "std",
+ "unicode"
+ ],
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "graphemes-std",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/bstr-1.4.0/examples/graphemes-std.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "lines-std",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/bstr-1.4.0/examples/lines-std.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "uppercase-std",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/bstr-1.4.0/examples/uppercase-std.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "words-std",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/bstr-1.4.0/examples/words-std.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "alloc": [
+ "serde?/alloc"
+ ],
+ "default": [
+ "std",
+ "unicode"
+ ],
+ "serde": [
+ "dep:serde"
+ ],
+ "std": [
+ "alloc",
+ "memchr/std",
+ "serde?/std"
+ ],
+ "unicode": [
+ "dep:once_cell",
+ "dep:regex-automata"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/bstr-1.4.0/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "all-features": true,
+ "rustdoc-args": [
+ "--cfg",
+ "docsrs"
+ ]
+ }
+ }
+ },
+ "publish": null,
+ "authors": [
+ "Andrew Gallant <jamslam@gmail.com>"
+ ],
+ "categories": [
+ "text-processing",
+ "encoding"
+ ],
+ "keywords": [
+ "string",
+ "str",
+ "byte",
+ "bytes",
+ "text"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/BurntSushi/bstr",
+ "homepage": "https://github.com/BurntSushi/bstr",
+ "documentation": "https://docs.rs/bstr",
+ "edition": "2021",
+ "links": null,
+ "default_run": null,
+ "rust_version": "1.60"
+ },
+ {
+ "name": "bytecount",
+ "version": "0.6.3",
+ "id": "bytecount 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "Apache-2.0/MIT",
+ "license_file": null,
+ "description": "count occurrences of a given byte, or the number of UTF-8 code points, in a byte slice, fast",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "packed_simd_2",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.3.8",
+ "kind": null,
+ "rename": "packed_simd",
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "criterion",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.3",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "quickcheck",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rand",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.8",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "bytecount",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/bytecount-0.6.3/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "check",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/bytecount-0.6.3/tests/check.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "bench"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "bench",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/bytecount-0.6.3/benches/bench.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "generic-simd": [
+ "packed_simd"
+ ],
+ "html_report": [],
+ "packed_simd": [
+ "dep:packed_simd"
+ ],
+ "runtime-dispatch-simd": []
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/bytecount-0.6.3/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Andre Bogus <bogusandre@gmail.de>",
+ "Joshua Landau <joshua@landau.ws>"
+ ],
+ "categories": [
+ "algorithms",
+ "no-std"
+ ],
+ "keywords": [],
+ "readme": "README.md",
+ "repository": "https://github.com/llogiq/bytecount",
+ "homepage": null,
+ "documentation": null,
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "cc",
+ "version": "1.0.79",
+ "id": "cc 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "A build-time dependency for Cargo build scripts to assist in invoking the native\nC compiler to compile native C code into a static archive to be linked into Rust\ncode.\n",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "jobserver",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.1.16",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "tempfile",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^3",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "cc",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/cc-1.0.79/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "bin"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "gcc-shim",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/cc-1.0.79/src/bin/gcc-shim.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "cc_env",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/cc-1.0.79/tests/cc_env.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "cflags",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/cc-1.0.79/tests/cflags.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "cxxflags",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/cc-1.0.79/tests/cxxflags.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/cc-1.0.79/tests/test.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ }
+ ],
+ "features": {
+ "jobserver": [
+ "dep:jobserver"
+ ],
+ "parallel": [
+ "jobserver"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/cc-1.0.79/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Alex Crichton <alex@alexcrichton.com>"
+ ],
+ "categories": [
+ "development-tools::build-utils"
+ ],
+ "keywords": [
+ "build-dependencies"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/rust-lang/cc-rs",
+ "homepage": "https://github.com/rust-lang/cc-rs",
+ "documentation": "https://docs.rs/cc",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "cfg-if",
+ "version": "1.0.0",
+ "id": "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT/Apache-2.0",
+ "license_file": null,
+ "description": "A macro to ergonomically define an item depending on a large number of #[cfg]\nparameters. Structured like an if-else chain, the first matching branch is the\nitem that gets emitted.\n",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "compiler_builtins",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.1.2",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rustc-std-workspace-core",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.0",
+ "kind": null,
+ "rename": "core",
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "cfg-if",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/cfg-if-1.0.0/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "xcrate",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/cfg-if-1.0.0/tests/xcrate.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ }
+ ],
+ "features": {
+ "compiler_builtins": [
+ "dep:compiler_builtins"
+ ],
+ "core": [
+ "dep:core"
+ ],
+ "rustc-dep-of-std": [
+ "core",
+ "compiler_builtins"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/cfg-if-1.0.0/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Alex Crichton <alex@alexcrichton.com>"
+ ],
+ "categories": [],
+ "keywords": [],
+ "readme": "README.md",
+ "repository": "https://github.com/alexcrichton/cfg-if",
+ "homepage": "https://github.com/alexcrichton/cfg-if",
+ "documentation": "https://docs.rs/cfg-if",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "clap",
+ "version": "2.34.0",
+ "id": "clap 2.34.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT",
+ "license_file": null,
+ "description": "A simple to use, efficient, and full-featured Command Line Argument Parser\n",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "atty",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.2.2",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "bitflags",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "clippy",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "~0.0.166",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "strsim",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.8",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "term_size",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.3.0",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "textwrap",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.11.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "unicode-width",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.1.4",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "vec_map",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.8",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "yaml-rust",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.3.5",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "lazy_static",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.3",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "regex",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "version-sync",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.8",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "ansi_term",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.12",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": "cfg(not(windows))",
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "clap",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/clap-2.34.0/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ }
+ ],
+ "features": {
+ "ansi_term": [
+ "dep:ansi_term"
+ ],
+ "atty": [
+ "dep:atty"
+ ],
+ "clippy": [
+ "dep:clippy"
+ ],
+ "color": [
+ "ansi_term",
+ "atty"
+ ],
+ "debug": [],
+ "default": [
+ "suggestions",
+ "color",
+ "vec_map"
+ ],
+ "doc": [
+ "yaml"
+ ],
+ "nightly": [],
+ "no_cargo": [],
+ "strsim": [
+ "dep:strsim"
+ ],
+ "suggestions": [
+ "strsim"
+ ],
+ "term_size": [
+ "dep:term_size"
+ ],
+ "unstable": [],
+ "vec_map": [
+ "dep:vec_map"
+ ],
+ "wrap_help": [
+ "term_size",
+ "textwrap/term_size"
+ ],
+ "yaml": [
+ "yaml-rust"
+ ],
+ "yaml-rust": [
+ "dep:yaml-rust"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/clap-2.34.0/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "features": [
+ "doc"
+ ]
+ }
+ }
+ },
+ "publish": null,
+ "authors": [
+ "Kevin K. <kbknapp@gmail.com>"
+ ],
+ "categories": [
+ "command-line-interface"
+ ],
+ "keywords": [
+ "argument",
+ "cli",
+ "arg",
+ "parser",
+ "parse"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/clap-rs/clap",
+ "homepage": "https://clap.rs/",
+ "documentation": "https://docs.rs/clap/",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "crossbeam-channel",
+ "version": "0.5.8",
+ "id": "crossbeam-channel 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "Multi-producer multi-consumer channels for message passing",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "cfg-if",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "crossbeam-utils",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.8",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "num_cpus",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.13.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rand",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.8",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "signal-hook",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.3",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "crossbeam-channel",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "fibonacci",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/examples/fibonacci.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "matching",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/examples/matching.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "stopwatch",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/examples/stopwatch.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "after",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/tests/after.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "array",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/tests/array.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "golang",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/tests/golang.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "iter",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/tests/iter.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "list",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/tests/list.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "mpsc",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/tests/mpsc.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "never",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/tests/never.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "ready",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/tests/ready.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "same_channel",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/tests/same_channel.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "select",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/tests/select.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "select_macro",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/tests/select_macro.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "thread_locals",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/tests/thread_locals.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "tick",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/tests/tick.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "zero",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/tests/zero.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "bench"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "crossbeam",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/benches/crossbeam.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "crossbeam-utils": [
+ "dep:crossbeam-utils"
+ ],
+ "default": [
+ "std"
+ ],
+ "std": [
+ "crossbeam-utils/std"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [],
+ "categories": [
+ "algorithms",
+ "concurrency",
+ "data-structures"
+ ],
+ "keywords": [
+ "channel",
+ "mpmc",
+ "select",
+ "golang",
+ "message"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/crossbeam-rs/crossbeam",
+ "homepage": "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-channel",
+ "documentation": null,
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": "1.38"
+ },
+ {
+ "name": "crossbeam-utils",
+ "version": "0.8.15",
+ "id": "crossbeam-utils 0.8.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "Utilities for concurrent programming",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "cfg-if",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rand",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.8",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rustversion",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "loom",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.5",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": "cfg(crossbeam_loom)",
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "crossbeam-utils",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-utils-0.8.15/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "atomic_cell",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-utils-0.8.15/tests/atomic_cell.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "cache_padded",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-utils-0.8.15/tests/cache_padded.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "parker",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-utils-0.8.15/tests/parker.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "sharded_lock",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-utils-0.8.15/tests/sharded_lock.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "thread",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-utils-0.8.15/tests/thread.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "wait_group",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-utils-0.8.15/tests/wait_group.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "bench"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "atomic_cell",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-utils-0.8.15/benches/atomic_cell.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "custom-build"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "build-script-build",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-utils-0.8.15/build.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "default": [
+ "std"
+ ],
+ "loom": [
+ "dep:loom"
+ ],
+ "nightly": [],
+ "std": []
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-utils-0.8.15/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [],
+ "categories": [
+ "algorithms",
+ "concurrency",
+ "data-structures",
+ "no-std"
+ ],
+ "keywords": [
+ "scoped",
+ "thread",
+ "atomic",
+ "cache"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/crossbeam-rs/crossbeam",
+ "homepage": "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-utils",
+ "documentation": null,
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": "1.38"
+ },
+ {
+ "name": "encoding_rs",
+ "version": "0.8.32",
+ "id": "encoding_rs 0.8.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "(Apache-2.0 OR MIT) AND BSD-3-Clause",
+ "license_file": null,
+ "description": "A Gecko-oriented implementation of the Encoding Standard",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "cfg-if",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "packed_simd_2",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.3.4",
+ "kind": null,
+ "rename": "packed_simd",
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "serde",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "bincode",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "serde_derive",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "serde_json",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "encoding_rs",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/encoding_rs-0.8.32/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ }
+ ],
+ "features": {
+ "alloc": [],
+ "default": [
+ "alloc"
+ ],
+ "fast-big5-hanzi-encode": [],
+ "fast-gb-hanzi-encode": [],
+ "fast-hangul-encode": [],
+ "fast-hanja-encode": [],
+ "fast-kanji-encode": [],
+ "fast-legacy-encode": [
+ "fast-hangul-encode",
+ "fast-hanja-encode",
+ "fast-kanji-encode",
+ "fast-gb-hanzi-encode",
+ "fast-big5-hanzi-encode"
+ ],
+ "less-slow-big5-hanzi-encode": [],
+ "less-slow-gb-hanzi-encode": [],
+ "less-slow-kanji-encode": [],
+ "packed_simd": [
+ "dep:packed_simd"
+ ],
+ "serde": [
+ "dep:serde"
+ ],
+ "simd-accel": [
+ "packed_simd",
+ "packed_simd/into_bits"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/encoding_rs-0.8.32/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Henri Sivonen <hsivonen@hsivonen.fi>"
+ ],
+ "categories": [
+ "text-processing",
+ "encoding",
+ "web-programming",
+ "internationalization"
+ ],
+ "keywords": [
+ "encoding",
+ "web",
+ "unicode",
+ "charset"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/hsivonen/encoding_rs",
+ "homepage": "https://docs.rs/encoding_rs/",
+ "documentation": "https://docs.rs/encoding_rs/",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "encoding_rs_io",
+ "version": "0.1.7",
+ "id": "encoding_rs_io 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "Streaming transcoding for encoding_rs",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "encoding_rs",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.8",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "encoding_rs_io",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/encoding_rs_io-0.1.7/src/lib.rs",
+ "edition": "2015",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ }
+ ],
+ "features": {},
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/encoding_rs_io-0.1.7/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Andrew Gallant <jamslam@gmail.com>"
+ ],
+ "categories": [
+ "text-processing",
+ "encoding",
+ "web-programming",
+ "email"
+ ],
+ "keywords": [
+ "encoding",
+ "transcoding",
+ "stream",
+ "io",
+ "read"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/BurntSushi/encoding_rs_io",
+ "homepage": null,
+ "documentation": "https://docs.rs/encoding_rs_io",
+ "edition": "2015",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "fnv",
+ "version": "1.0.7",
+ "id": "fnv 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "Apache-2.0 / MIT",
+ "license_file": null,
+ "description": "Fowler–Noll–Vo hash function",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "fnv",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/fnv-1.0.7/lib.rs",
+ "edition": "2015",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ }
+ ],
+ "features": {
+ "default": [
+ "std"
+ ],
+ "std": []
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/fnv-1.0.7/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Alex Crichton <alex@alexcrichton.com>"
+ ],
+ "categories": [],
+ "keywords": [],
+ "readme": "README.md",
+ "repository": "https://github.com/servo/rust-fnv",
+ "homepage": null,
+ "documentation": "https://doc.servo.org/fnv/",
+ "edition": "2015",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "glob",
+ "version": "0.3.1",
+ "id": "glob 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "Support for matching file paths against Unix shell style patterns.\n",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "doc-comment",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.3",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "tempdir",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.3",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "glob",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/glob-0.3.1/src/lib.rs",
+ "edition": "2015",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "glob-std",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/glob-0.3.1/tests/glob-std.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ }
+ ],
+ "features": {},
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/glob-0.3.1/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "The Rust Project Developers"
+ ],
+ "categories": [
+ "filesystem"
+ ],
+ "keywords": [],
+ "readme": "README.md",
+ "repository": "https://github.com/rust-lang/glob",
+ "homepage": "https://github.com/rust-lang/glob",
+ "documentation": "https://docs.rs/glob/0.3.1",
+ "edition": "2015",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "globset",
+ "version": "0.4.10",
+ "id": "globset 0.4.10 (path+file:///$ROOT$ripgrep/crates/globset)",
+ "license": "Unlicense OR MIT",
+ "license_file": null,
+ "description": "Cross platform single glob and glob set matching. Glob set matching is the\nprocess of matching one or more glob patterns against a single candidate path\nsimultaneously, and returning all of the globs that matched.\n",
+ "source": null,
+ "dependencies": [
+ {
+ "name": "aho-corasick",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.7.3",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "bstr",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.1.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [
+ "std"
+ ],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "fnv",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.6",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "log",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.4.5",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "regex",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.1.5",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [
+ "perf",
+ "std"
+ ],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "serde",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.104",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "glob",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.3.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "lazy_static",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "serde_json",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.45",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "globset",
+ "src_path": "$ROOT$ripgrep/crates/globset/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "bench"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "bench",
+ "src_path": "$ROOT$ripgrep/crates/globset/benches/bench.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "default": [
+ "log"
+ ],
+ "log": [
+ "dep:log"
+ ],
+ "serde": [
+ "dep:serde"
+ ],
+ "serde1": [
+ "serde"
+ ],
+ "simd-accel": []
+ },
+ "manifest_path": "$ROOT$ripgrep/crates/globset/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Andrew Gallant <jamslam@gmail.com>"
+ ],
+ "categories": [],
+ "keywords": [
+ "regex",
+ "glob",
+ "multiple",
+ "set",
+ "pattern"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/BurntSushi/ripgrep/tree/master/crates/globset",
+ "homepage": "https://github.com/BurntSushi/ripgrep/tree/master/crates/globset",
+ "documentation": "https://docs.rs/globset",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "grep",
+ "version": "0.2.11",
+ "id": "grep 0.2.11 (path+file:///$ROOT$ripgrep/crates/grep)",
+ "license": "Unlicense OR MIT",
+ "license_file": null,
+ "description": "Fast line oriented regex searching as a library.\n",
+ "source": null,
+ "dependencies": [
+ {
+ "name": "grep-cli",
+ "source": null,
+ "req": "^0.1.7",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null,
+ "path": "$ROOT$ripgrep/crates/cli"
+ },
+ {
+ "name": "grep-matcher",
+ "source": null,
+ "req": "^0.1.6",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null,
+ "path": "$ROOT$ripgrep/crates/matcher"
+ },
+ {
+ "name": "grep-pcre2",
+ "source": null,
+ "req": "^0.1.6",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null,
+ "path": "$ROOT$ripgrep/crates/pcre2"
+ },
+ {
+ "name": "grep-printer",
+ "source": null,
+ "req": "^0.1.7",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null,
+ "path": "$ROOT$ripgrep/crates/printer"
+ },
+ {
+ "name": "grep-regex",
+ "source": null,
+ "req": "^0.1.11",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null,
+ "path": "$ROOT$ripgrep/crates/regex"
+ },
+ {
+ "name": "grep-searcher",
+ "source": null,
+ "req": "^0.1.11",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null,
+ "path": "$ROOT$ripgrep/crates/searcher"
+ },
+ {
+ "name": "termcolor",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.4",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "walkdir",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^2.2.7",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "grep",
+ "src_path": "$ROOT$ripgrep/crates/grep/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "simplegrep",
+ "src_path": "$ROOT$ripgrep/crates/grep/examples/simplegrep.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "avx-accel": [],
+ "grep-pcre2": [
+ "dep:grep-pcre2"
+ ],
+ "pcre2": [
+ "grep-pcre2"
+ ],
+ "simd-accel": [
+ "grep-searcher/simd-accel"
+ ]
+ },
+ "manifest_path": "$ROOT$ripgrep/crates/grep/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Andrew Gallant <jamslam@gmail.com>"
+ ],
+ "categories": [],
+ "keywords": [
+ "regex",
+ "grep",
+ "egrep",
+ "search",
+ "pattern"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/BurntSushi/ripgrep/tree/master/crates/grep",
+ "homepage": "https://github.com/BurntSushi/ripgrep/tree/master/crates/grep",
+ "documentation": "https://docs.rs/grep",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "grep-cli",
+ "version": "0.1.7",
+ "id": "grep-cli 0.1.7 (path+file:///$ROOT$ripgrep/crates/cli)",
+ "license": "Unlicense OR MIT",
+ "license_file": null,
+ "description": "Utilities for search oriented command line applications.\n",
+ "source": null,
+ "dependencies": [
+ {
+ "name": "atty",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.2.11",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "bstr",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.1.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "globset",
+ "source": null,
+ "req": "^0.4.10",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null,
+ "path": "$ROOT$ripgrep/crates/globset"
+ },
+ {
+ "name": "lazy_static",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.1.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "log",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.4.5",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "regex",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.1",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "same-file",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.4",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "termcolor",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.4",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "winapi-util",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.1.1",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": "cfg(windows)",
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "grep-cli",
+ "src_path": "$ROOT$ripgrep/crates/cli/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ }
+ ],
+ "features": {},
+ "manifest_path": "$ROOT$ripgrep/crates/cli/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Andrew Gallant <jamslam@gmail.com>"
+ ],
+ "categories": [],
+ "keywords": [
+ "regex",
+ "grep",
+ "cli",
+ "utility",
+ "util"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/BurntSushi/ripgrep/tree/master/crates/cli",
+ "homepage": "https://github.com/BurntSushi/ripgrep/tree/master/crates/cli",
+ "documentation": "https://docs.rs/grep-cli",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "grep-matcher",
+ "version": "0.1.6",
+ "id": "grep-matcher 0.1.6 (path+file:///$ROOT$ripgrep/crates/matcher)",
+ "license": "Unlicense OR MIT",
+ "license_file": null,
+ "description": "A trait for regular expressions, with a focus on line oriented search.\n",
+ "source": null,
+ "dependencies": [
+ {
+ "name": "memchr",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^2.1",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "regex",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "grep-matcher",
+ "src_path": "$ROOT$ripgrep/crates/matcher/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "integration",
+ "src_path": "$ROOT$ripgrep/crates/matcher/tests/tests.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ }
+ ],
+ "features": {},
+ "manifest_path": "$ROOT$ripgrep/crates/matcher/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Andrew Gallant <jamslam@gmail.com>"
+ ],
+ "categories": [],
+ "keywords": [
+ "regex",
+ "pattern",
+ "trait"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/BurntSushi/ripgrep/tree/master/crates/matcher",
+ "homepage": "https://github.com/BurntSushi/ripgrep/tree/master/crates/matcher",
+ "documentation": "https://docs.rs/grep-matcher",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "grep-pcre2",
+ "version": "0.1.6",
+ "id": "grep-pcre2 0.1.6 (path+file:///$ROOT$ripgrep/crates/pcre2)",
+ "license": "Unlicense OR MIT",
+ "license_file": null,
+ "description": "Use PCRE2 with the 'grep' crate.\n",
+ "source": null,
+ "dependencies": [
+ {
+ "name": "grep-matcher",
+ "source": null,
+ "req": "^0.1.6",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null,
+ "path": "$ROOT$ripgrep/crates/matcher"
+ },
+ {
+ "name": "pcre2",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.2.3",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "grep-pcre2",
+ "src_path": "$ROOT$ripgrep/crates/pcre2/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ }
+ ],
+ "features": {},
+ "manifest_path": "$ROOT$ripgrep/crates/pcre2/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Andrew Gallant <jamslam@gmail.com>"
+ ],
+ "categories": [],
+ "keywords": [
+ "regex",
+ "grep",
+ "pcre",
+ "backreference",
+ "look"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/BurntSushi/ripgrep/tree/master/crates/pcre2",
+ "homepage": "https://github.com/BurntSushi/ripgrep/tree/master/crates/pcre2",
+ "documentation": "https://docs.rs/grep-pcre2",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "grep-printer",
+ "version": "0.1.7",
+ "id": "grep-printer 0.1.7 (path+file:///$ROOT$ripgrep/crates/printer)",
+ "license": "Unlicense OR MIT",
+ "license_file": null,
+ "description": "An implementation of the grep crate's Sink trait that provides standard\nprinting of search results, similar to grep itself.\n",
+ "source": null,
+ "dependencies": [
+ {
+ "name": "base64",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.20.0",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "bstr",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.1.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "grep-matcher",
+ "source": null,
+ "req": "^0.1.6",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null,
+ "path": "$ROOT$ripgrep/crates/matcher"
+ },
+ {
+ "name": "grep-searcher",
+ "source": null,
+ "req": "^0.1.11",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null,
+ "path": "$ROOT$ripgrep/crates/searcher"
+ },
+ {
+ "name": "serde",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.77",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [
+ "derive"
+ ],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "serde_json",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.27",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "termcolor",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.4",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "grep-regex",
+ "source": null,
+ "req": "^0.1.11",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null,
+ "path": "$ROOT$ripgrep/crates/regex"
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "grep-printer",
+ "src_path": "$ROOT$ripgrep/crates/printer/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ }
+ ],
+ "features": {
+ "base64": [
+ "dep:base64"
+ ],
+ "default": [
+ "serde1"
+ ],
+ "serde": [
+ "dep:serde"
+ ],
+ "serde1": [
+ "base64",
+ "serde",
+ "serde_json"
+ ],
+ "serde_json": [
+ "dep:serde_json"
+ ]
+ },
+ "manifest_path": "$ROOT$ripgrep/crates/printer/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Andrew Gallant <jamslam@gmail.com>"
+ ],
+ "categories": [],
+ "keywords": [
+ "grep",
+ "pattern",
+ "print",
+ "printer",
+ "sink"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/BurntSushi/ripgrep/tree/master/crates/printer",
+ "homepage": "https://github.com/BurntSushi/ripgrep/tree/master/crates/printer",
+ "documentation": "https://docs.rs/grep-printer",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "grep-regex",
+ "version": "0.1.11",
+ "id": "grep-regex 0.1.11 (path+file:///$ROOT$ripgrep/crates/regex)",
+ "license": "Unlicense OR MIT",
+ "license_file": null,
+ "description": "Use Rust's regex library with the 'grep' crate.\n",
+ "source": null,
+ "dependencies": [
+ {
+ "name": "aho-corasick",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.7.3",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "bstr",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.1.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "grep-matcher",
+ "source": null,
+ "req": "^0.1.6",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null,
+ "path": "$ROOT$ripgrep/crates/matcher"
+ },
+ {
+ "name": "log",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.4.5",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "regex",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.1",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "regex-syntax",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.6.5",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "thread_local",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.1.2",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "grep-regex",
+ "src_path": "$ROOT$ripgrep/crates/regex/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ }
+ ],
+ "features": {},
+ "manifest_path": "$ROOT$ripgrep/crates/regex/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Andrew Gallant <jamslam@gmail.com>"
+ ],
+ "categories": [],
+ "keywords": [
+ "regex",
+ "grep",
+ "search",
+ "pattern",
+ "line"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/BurntSushi/ripgrep/tree/master/crates/regex",
+ "homepage": "https://github.com/BurntSushi/ripgrep/tree/master/crates/regex",
+ "documentation": "https://docs.rs/grep-regex",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "grep-searcher",
+ "version": "0.1.11",
+ "id": "grep-searcher 0.1.11 (path+file:///$ROOT$ripgrep/crates/searcher)",
+ "license": "Unlicense OR MIT",
+ "license_file": null,
+ "description": "Fast line oriented regex searching as a library.\n",
+ "source": null,
+ "dependencies": [
+ {
+ "name": "bstr",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.1.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [
+ "std"
+ ],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "bytecount",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.6",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "encoding_rs",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.8.14",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "encoding_rs_io",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.1.6",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "grep-matcher",
+ "source": null,
+ "req": "^0.1.6",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null,
+ "path": "$ROOT$ripgrep/crates/matcher"
+ },
+ {
+ "name": "log",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.4.5",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "memmap2",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.5.3",
+ "kind": null,
+ "rename": "memmap",
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "grep-regex",
+ "source": null,
+ "req": "^0.1.11",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null,
+ "path": "$ROOT$ripgrep/crates/regex"
+ },
+ {
+ "name": "regex",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "grep-searcher",
+ "src_path": "$ROOT$ripgrep/crates/searcher/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "search-stdin",
+ "src_path": "$ROOT$ripgrep/crates/searcher/examples/search-stdin.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "avx-accel": [],
+ "default": [
+ "bytecount/runtime-dispatch-simd"
+ ],
+ "simd-accel": [
+ "encoding_rs/simd-accel"
+ ]
+ },
+ "manifest_path": "$ROOT$ripgrep/crates/searcher/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Andrew Gallant <jamslam@gmail.com>"
+ ],
+ "categories": [],
+ "keywords": [
+ "regex",
+ "grep",
+ "egrep",
+ "search",
+ "pattern"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/BurntSushi/ripgrep/tree/master/crates/searcher",
+ "homepage": "https://github.com/BurntSushi/ripgrep/tree/master/crates/searcher",
+ "documentation": "https://docs.rs/grep-searcher",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "hermit-abi",
+ "version": "0.1.19",
+ "id": "hermit-abi 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT/Apache-2.0",
+ "license_file": null,
+ "description": "hermit-abi is small interface to call functions from the unikernel RustyHermit.\nIt is used to build the target `x86_64-unknown-hermit`.\n",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "compiler_builtins",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.1",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rustc-std-workspace-core",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.0",
+ "kind": null,
+ "rename": "core",
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "libc",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.2.51",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "hermit-abi",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/hermit-abi-0.1.19/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ }
+ ],
+ "features": {
+ "compiler_builtins": [
+ "dep:compiler_builtins"
+ ],
+ "core": [
+ "dep:core"
+ ],
+ "default": [],
+ "docs": [],
+ "rustc-dep-of-std": [
+ "core",
+ "compiler_builtins/rustc-dep-of-std",
+ "libc/rustc-dep-of-std"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/hermit-abi-0.1.19/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "default-target": "x86_64-unknown-hermit",
+ "features": [
+ "docs"
+ ]
+ }
+ }
+ },
+ "publish": null,
+ "authors": [
+ "Stefan Lankes"
+ ],
+ "categories": [
+ "os"
+ ],
+ "keywords": [
+ "unikernel",
+ "libos"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/hermitcore/libhermit-rs",
+ "homepage": null,
+ "documentation": "https://hermitcore.github.io/rusty-hermit/hermit_abi",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "ignore",
+ "version": "0.4.20",
+ "id": "ignore 0.4.20 (path+file:///$ROOT$ripgrep/crates/ignore)",
+ "license": "Unlicense OR MIT",
+ "license_file": null,
+ "description": "A fast library for efficiently matching ignore files such as `.gitignore`\nagainst file paths.\n",
+ "source": null,
+ "dependencies": [
+ {
+ "name": "globset",
+ "source": null,
+ "req": "^0.4.10",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null,
+ "path": "$ROOT$ripgrep/crates/globset"
+ },
+ {
+ "name": "lazy_static",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.1",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "log",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.4.5",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "memchr",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^2.1",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "regex",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.1",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "same-file",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.4",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "thread_local",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "walkdir",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^2.2.7",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "crossbeam-channel",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.5.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "winapi-util",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.1.2",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": "cfg(windows)",
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "ignore",
+ "src_path": "$ROOT$ripgrep/crates/ignore/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "walk",
+ "src_path": "$ROOT$ripgrep/crates/ignore/examples/walk.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "gitignore_matched_path_or_any_parents_tests",
+ "src_path": "$ROOT$ripgrep/crates/ignore/tests/gitignore_matched_path_or_any_parents_tests.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ }
+ ],
+ "features": {
+ "simd-accel": [
+ "globset/simd-accel"
+ ]
+ },
+ "manifest_path": "$ROOT$ripgrep/crates/ignore/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Andrew Gallant <jamslam@gmail.com>"
+ ],
+ "categories": [],
+ "keywords": [
+ "glob",
+ "ignore",
+ "gitignore",
+ "pattern",
+ "file"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/BurntSushi/ripgrep/tree/master/crates/ignore",
+ "homepage": "https://github.com/BurntSushi/ripgrep/tree/master/crates/ignore",
+ "documentation": "https://docs.rs/ignore",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "itoa",
+ "version": "1.0.6",
+ "id": "itoa 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "Fast integer primitive to string conversion",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "no-panic",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.1",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "itoa",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/itoa-1.0.6/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/itoa-1.0.6/tests/test.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "bench"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "bench",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/itoa-1.0.6/benches/bench.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "no-panic": [
+ "dep:no-panic"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/itoa-1.0.6/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "targets": [
+ "x86_64-unknown-linux-gnu"
+ ]
+ }
+ }
+ },
+ "publish": null,
+ "authors": [
+ "David Tolnay <dtolnay@gmail.com>"
+ ],
+ "categories": [
+ "value-formatting",
+ "no-std"
+ ],
+ "keywords": [
+ "integer"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/dtolnay/itoa",
+ "homepage": null,
+ "documentation": "https://docs.rs/itoa",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": "1.36"
+ },
+ {
+ "name": "jemalloc-sys",
+ "version": "0.5.3+5.3.0-patched",
+ "id": "jemalloc-sys 0.5.3+5.3.0-patched (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT/Apache-2.0",
+ "license_file": null,
+ "description": "Rust FFI bindings to jemalloc\n",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "libc",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.2.8",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "cc",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.13",
+ "kind": "build",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "jemalloc-sys",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/jemalloc-sys-0.5.3+5.3.0-patched/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "malloc_conf_empty",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/jemalloc-sys-0.5.3+5.3.0-patched/tests/malloc_conf_empty.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "malloc_conf_set",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/jemalloc-sys-0.5.3+5.3.0-patched/tests/malloc_conf_set.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "unprefixed_malloc",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/jemalloc-sys-0.5.3+5.3.0-patched/tests/unprefixed_malloc.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "custom-build"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "build-script-build",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/jemalloc-sys-0.5.3+5.3.0-patched/build.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "background_threads": [
+ "background_threads_runtime_support"
+ ],
+ "background_threads_runtime_support": [],
+ "debug": [],
+ "default": [
+ "background_threads_runtime_support"
+ ],
+ "disable_initial_exec_tls": [],
+ "profiling": [],
+ "stats": [],
+ "unprefixed_malloc_on_supported_platforms": []
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/jemalloc-sys-0.5.3+5.3.0-patched/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "rustdoc-args": [
+ "--cfg",
+ "jemallocator_docs"
+ ]
+ }
+ }
+ },
+ "publish": null,
+ "authors": [
+ "Alex Crichton <alex@alexcrichton.com>",
+ "Gonzalo Brito Gadeschi <gonzalobg88@gmail.com>",
+ "The TiKV Project Developers"
+ ],
+ "categories": [],
+ "keywords": [
+ "allocator",
+ "jemalloc"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/tikv/jemallocator",
+ "homepage": "https://github.com/tikv/jemallocator",
+ "documentation": "https://docs.rs/jemallocator-sys",
+ "edition": "2018",
+ "links": "jemalloc",
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "jemallocator",
+ "version": "0.5.0",
+ "id": "jemallocator 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT/Apache-2.0",
+ "license_file": null,
+ "description": "A Rust allocator backed by jemalloc\n",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "jemalloc-sys",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.5.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "libc",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.2.8",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "paste",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "jemallocator",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/jemallocator-0.5.0/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": false
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "background_thread_defaults",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/jemallocator-0.5.0/tests/background_thread_defaults.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "background_thread_enabled",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/jemallocator-0.5.0/tests/background_thread_enabled.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "ffi",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/jemallocator-0.5.0/tests/ffi.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "grow_in_place",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/jemallocator-0.5.0/tests/grow_in_place.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "malloctl",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/jemallocator-0.5.0/tests/malloctl.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "shrink_in_place",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/jemallocator-0.5.0/tests/shrink_in_place.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "smoke",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/jemallocator-0.5.0/tests/smoke.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "smoke_ffi",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/jemallocator-0.5.0/tests/smoke_ffi.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "usable_size",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/jemallocator-0.5.0/tests/usable_size.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "bench"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "roundtrip",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/jemallocator-0.5.0/benches/roundtrip.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "alloc_trait": [],
+ "background_threads": [
+ "jemalloc-sys/background_threads"
+ ],
+ "background_threads_runtime_support": [
+ "jemalloc-sys/background_threads_runtime_support"
+ ],
+ "debug": [
+ "jemalloc-sys/debug"
+ ],
+ "default": [
+ "background_threads_runtime_support"
+ ],
+ "disable_initial_exec_tls": [
+ "jemalloc-sys/disable_initial_exec_tls"
+ ],
+ "profiling": [
+ "jemalloc-sys/profiling"
+ ],
+ "stats": [
+ "jemalloc-sys/stats"
+ ],
+ "unprefixed_malloc_on_supported_platforms": [
+ "jemalloc-sys/unprefixed_malloc_on_supported_platforms"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/jemallocator-0.5.0/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "features": [],
+ "rustdoc-args": [
+ "--cfg",
+ "jemallocator_docs"
+ ]
+ }
+ }
+ },
+ "publish": null,
+ "authors": [
+ "Alex Crichton <alex@alexcrichton.com>",
+ "Gonzalo Brito Gadeschi <gonzalobg88@gmail.com>",
+ "Simon Sapin <simon.sapin@exyr.org>",
+ "Steven Fackler <sfackler@gmail.com>",
+ "The TiKV Project Developers"
+ ],
+ "categories": [
+ "memory-management",
+ "api-bindings"
+ ],
+ "keywords": [
+ "allocator",
+ "jemalloc"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/tikv/jemallocator",
+ "homepage": "https://github.com/tikv/jemallocator",
+ "documentation": "https://docs.rs/jemallocator",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "jobserver",
+ "version": "0.1.26",
+ "id": "jobserver 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT/Apache-2.0",
+ "license_file": null,
+ "description": "An implementation of the GNU make jobserver for Rust\n",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "futures",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "num_cpus",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "tempfile",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^3",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "tokio-core",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "tokio-process",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.2",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "libc",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.2.50",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": "cfg(unix)",
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "jobserver",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/jobserver-0.1.26/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "client",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/jobserver-0.1.26/tests/client.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "server",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/jobserver-0.1.26/tests/server.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "client-of-myself",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/jobserver-0.1.26/tests/client-of-myself.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "make-as-a-client",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/jobserver-0.1.26/tests/make-as-a-client.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "helper",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/jobserver-0.1.26/tests/helper.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ }
+ ],
+ "features": {},
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/jobserver-0.1.26/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Alex Crichton <alex@alexcrichton.com>"
+ ],
+ "categories": [],
+ "keywords": [],
+ "readme": "README.md",
+ "repository": "https://github.com/alexcrichton/jobserver-rs",
+ "homepage": "https://github.com/alexcrichton/jobserver-rs",
+ "documentation": "https://docs.rs/jobserver",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "lazy_static",
+ "version": "1.4.0",
+ "id": "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT/Apache-2.0",
+ "license_file": null,
+ "description": "A macro for declaring lazily evaluated statics in Rust.",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "spin",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.5.0",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "doc-comment",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.3.1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "lazy_static",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/lazy_static-1.4.0/src/lib.rs",
+ "edition": "2015",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "no_std",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/lazy_static-1.4.0/tests/no_std.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/lazy_static-1.4.0/tests/test.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ }
+ ],
+ "features": {
+ "spin": [
+ "dep:spin"
+ ],
+ "spin_no_std": [
+ "spin"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/lazy_static-1.4.0/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Marvin Löbel <loebel.marvin@gmail.com>"
+ ],
+ "categories": [
+ "no-std",
+ "rust-patterns",
+ "memory-management"
+ ],
+ "keywords": [
+ "macro",
+ "lazy",
+ "static"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/rust-lang-nursery/lazy-static.rs",
+ "homepage": null,
+ "documentation": "https://docs.rs/lazy_static",
+ "edition": "2015",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "libc",
+ "version": "0.2.142",
+ "id": "libc 0.2.142 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "Raw FFI bindings to platform libraries like libc.\n",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "rustc-std-workspace-core",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.0",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "libc",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/libc-0.2.142/src/lib.rs",
+ "edition": "2015",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "const_fn",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/libc-0.2.142/tests/const_fn.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "custom-build"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "build-script-build",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/libc-0.2.142/build.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "align": [],
+ "const-extern-fn": [],
+ "default": [
+ "std"
+ ],
+ "extra_traits": [],
+ "rustc-dep-of-std": [
+ "align",
+ "rustc-std-workspace-core"
+ ],
+ "rustc-std-workspace-core": [
+ "dep:rustc-std-workspace-core"
+ ],
+ "std": [],
+ "use_std": [
+ "std"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/libc-0.2.142/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "features": [
+ "const-extern-fn",
+ "extra_traits"
+ ]
+ }
+ }
+ },
+ "publish": null,
+ "authors": [
+ "The Rust Project Developers"
+ ],
+ "categories": [
+ "external-ffi-bindings",
+ "no-std",
+ "os"
+ ],
+ "keywords": [
+ "libc",
+ "ffi",
+ "bindings",
+ "operating",
+ "system"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/rust-lang/libc",
+ "homepage": "https://github.com/rust-lang/libc",
+ "documentation": "https://docs.rs/libc/",
+ "edition": "2015",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "log",
+ "version": "0.4.17",
+ "id": "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "A lightweight logging facade for Rust\n",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "cfg-if",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "serde",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "sval",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "=1.0.0-alpha.5",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "value-bag",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "=1.0.0-alpha.9",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rustversion",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "serde",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [
+ "derive"
+ ],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "serde_test",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "sval",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "=1.0.0-alpha.5",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [
+ "derive"
+ ],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "value-bag",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "=1.0.0-alpha.9",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [
+ "test"
+ ],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "log",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/log-0.4.17/src/lib.rs",
+ "edition": "2015",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "filters",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/log-0.4.17/tests/filters.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "macros",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/log-0.4.17/tests/macros.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "bench"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "value",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/log-0.4.17/benches/value.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "custom-build"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "build-script-build",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/log-0.4.17/build.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "kv_unstable": [
+ "value-bag"
+ ],
+ "kv_unstable_serde": [
+ "kv_unstable_std",
+ "value-bag/serde",
+ "serde"
+ ],
+ "kv_unstable_std": [
+ "std",
+ "kv_unstable",
+ "value-bag/error"
+ ],
+ "kv_unstable_sval": [
+ "kv_unstable",
+ "value-bag/sval",
+ "sval"
+ ],
+ "max_level_debug": [],
+ "max_level_error": [],
+ "max_level_info": [],
+ "max_level_off": [],
+ "max_level_trace": [],
+ "max_level_warn": [],
+ "release_max_level_debug": [],
+ "release_max_level_error": [],
+ "release_max_level_info": [],
+ "release_max_level_off": [],
+ "release_max_level_trace": [],
+ "release_max_level_warn": [],
+ "serde": [
+ "dep:serde"
+ ],
+ "std": [],
+ "sval": [
+ "dep:sval"
+ ],
+ "value-bag": [
+ "dep:value-bag"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/log-0.4.17/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "features": [
+ "std",
+ "serde",
+ "kv_unstable_std",
+ "kv_unstable_sval",
+ "kv_unstable_serde"
+ ]
+ }
+ }
+ },
+ "publish": null,
+ "authors": [
+ "The Rust Project Developers"
+ ],
+ "categories": [
+ "development-tools::debugging"
+ ],
+ "keywords": [
+ "logging"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/rust-lang/log",
+ "homepage": null,
+ "documentation": "https://docs.rs/log",
+ "edition": "2015",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "memchr",
+ "version": "2.5.0",
+ "id": "memchr 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "Unlicense/MIT",
+ "license_file": null,
+ "description": "Safe interface to memchr.",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "compiler_builtins",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.1.2",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rustc-std-workspace-core",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.0",
+ "kind": null,
+ "rename": "core",
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "libc",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.2.18",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "quickcheck",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.3",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "memchr",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.5.0/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "custom-build"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "build-script-build",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.5.0/build.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "compiler_builtins": [
+ "dep:compiler_builtins"
+ ],
+ "core": [
+ "dep:core"
+ ],
+ "default": [
+ "std"
+ ],
+ "libc": [
+ "dep:libc"
+ ],
+ "rustc-dep-of-std": [
+ "core",
+ "compiler_builtins"
+ ],
+ "std": [],
+ "use_std": [
+ "std"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.5.0/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Andrew Gallant <jamslam@gmail.com>",
+ "bluss"
+ ],
+ "categories": [],
+ "keywords": [
+ "memchr",
+ "char",
+ "scan",
+ "strchr",
+ "string"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/BurntSushi/memchr",
+ "homepage": "https://github.com/BurntSushi/memchr",
+ "documentation": "https://docs.rs/memchr/",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "memmap2",
+ "version": "0.5.10",
+ "id": "memmap2 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "Cross-platform Rust API for memory-mapped file IO",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "stable_deref_trait",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "owning_ref",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.4.1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "tempfile",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^3",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "libc",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.2",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": "cfg(unix)",
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "memmap2",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/memmap2-0.5.10/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "cat",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/memmap2-0.5.10/examples/cat.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "stable_deref_trait": [
+ "dep:stable_deref_trait"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/memmap2-0.5.10/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Dan Burkert <dan@danburkert.com>",
+ "Yevhenii Reizner <razrfalcon@gmail.com>"
+ ],
+ "categories": [],
+ "keywords": [
+ "mmap",
+ "memory-map",
+ "io",
+ "file"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/RazrFalcon/memmap2-rs",
+ "homepage": null,
+ "documentation": "https://docs.rs/memmap2",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "once_cell",
+ "version": "1.17.1",
+ "id": "once_cell 1.17.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "Single assignment cells and lazy values.",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "atomic-polyfill",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": null,
+ "rename": "atomic_polyfill",
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "critical-section",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": null,
+ "rename": "critical_section",
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "parking_lot_core",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.9.3",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "critical-section",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.1.1",
+ "kind": "dev",
+ "rename": "critical_section",
+ "optional": false,
+ "uses_default_features": true,
+ "features": [
+ "std"
+ ],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "crossbeam-utils",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.8.7",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "lazy_static",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "regex",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.2.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "once_cell",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.17.1/src/lib.rs",
+ "edition": "2021",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "bench",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.17.1/examples/bench.rs",
+ "edition": "2021",
+ "required-features": [
+ "std"
+ ],
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "bench_acquire",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.17.1/examples/bench_acquire.rs",
+ "edition": "2021",
+ "required-features": [
+ "std"
+ ],
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "bench_vs_lazy_static",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.17.1/examples/bench_vs_lazy_static.rs",
+ "edition": "2021",
+ "required-features": [
+ "std"
+ ],
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "lazy_static",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.17.1/examples/lazy_static.rs",
+ "edition": "2021",
+ "required-features": [
+ "std"
+ ],
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "reentrant_init_deadlocks",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.17.1/examples/reentrant_init_deadlocks.rs",
+ "edition": "2021",
+ "required-features": [
+ "std"
+ ],
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "regex",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.17.1/examples/regex.rs",
+ "edition": "2021",
+ "required-features": [
+ "std"
+ ],
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_synchronization",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.17.1/examples/test_synchronization.rs",
+ "edition": "2021",
+ "required-features": [
+ "std"
+ ],
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "it",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.17.1/tests/it.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ }
+ ],
+ "features": {
+ "alloc": [
+ "race"
+ ],
+ "atomic-polyfill": [
+ "critical-section"
+ ],
+ "atomic_polyfill": [
+ "dep:atomic_polyfill"
+ ],
+ "critical-section": [
+ "critical_section",
+ "atomic_polyfill"
+ ],
+ "critical_section": [
+ "dep:critical_section"
+ ],
+ "default": [
+ "std"
+ ],
+ "parking_lot": [
+ "parking_lot_core"
+ ],
+ "parking_lot_core": [
+ "dep:parking_lot_core"
+ ],
+ "race": [],
+ "std": [
+ "alloc"
+ ],
+ "unstable": []
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.17.1/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "all-features": true
+ }
+ }
+ },
+ "publish": null,
+ "authors": [
+ "Aleksey Kladov <aleksey.kladov@gmail.com>"
+ ],
+ "categories": [
+ "rust-patterns",
+ "memory-management"
+ ],
+ "keywords": [
+ "lazy",
+ "static"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/matklad/once_cell",
+ "homepage": null,
+ "documentation": "https://docs.rs/once_cell",
+ "edition": "2021",
+ "links": null,
+ "default_run": null,
+ "rust_version": "1.56"
+ },
+ {
+ "name": "pcre2",
+ "version": "0.2.3",
+ "id": "pcre2 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "Unlicense/MIT",
+ "license_file": null,
+ "description": "High level wrapper library for PCRE2.",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "libc",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.2.46",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "log",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.4.5",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "pcre2-sys",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.2.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "thread_local",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "pcre2",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/pcre2-0.2.3/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ }
+ ],
+ "features": {},
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/pcre2-0.2.3/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Andrew Gallant <jamslam@gmail.com>"
+ ],
+ "categories": [
+ "text-processing"
+ ],
+ "keywords": [
+ "pcre",
+ "pcre2",
+ "regex",
+ "jit",
+ "perl"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/BurntSushi/rust-pcre2",
+ "homepage": "https://github.com/BurntSushi/rust-pcre2",
+ "documentation": "https://docs.rs/pcre2",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "pcre2-sys",
+ "version": "0.2.5",
+ "id": "pcre2-sys 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "Unlicense/MIT",
+ "license_file": null,
+ "description": "Low level bindings to PCRE2.",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "libc",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.2",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "cc",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "build",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [
+ "parallel"
+ ],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "pkg-config",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.3.13",
+ "kind": "build",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "pcre2-sys",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/pcre2-sys-0.2.5/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "custom-build"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "build-script-build",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/pcre2-sys-0.2.5/build.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {},
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/pcre2-sys-0.2.5/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Andrew Gallant <jamslam@gmail.com>"
+ ],
+ "categories": [
+ "external-ffi-bindings"
+ ],
+ "keywords": [
+ "pcre",
+ "pcre2",
+ "regex",
+ "jit"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/BurntSushi/rust-pcre2",
+ "homepage": "https://github.com/BurntSushi/rust-pcre2",
+ "documentation": "https://docs.rs/pcre2-sys",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "pkg-config",
+ "version": "0.3.26",
+ "id": "pkg-config 0.3.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "A library to run the pkg-config system tool at build time in order to be used in\nCargo build scripts.\n",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "lazy_static",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "pkg-config",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/pkg-config-0.3.26/src/lib.rs",
+ "edition": "2015",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/pkg-config-0.3.26/tests/test.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ }
+ ],
+ "features": {},
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/pkg-config-0.3.26/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Alex Crichton <alex@alexcrichton.com>"
+ ],
+ "categories": [],
+ "keywords": [
+ "build-dependencies"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/rust-lang/pkg-config-rs",
+ "homepage": null,
+ "documentation": "https://docs.rs/pkg-config",
+ "edition": "2015",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "proc-macro2",
+ "version": "1.0.56",
+ "id": "proc-macro2 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "A substitute implementation of the compiler's `proc_macro` API to decouple token-based libraries from the procedural macro use case.",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "unicode-ident",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "quote",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rustversion",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "proc-macro2",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.56/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "comments",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.56/tests/comments.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "features",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.56/tests/features.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "marker",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.56/tests/marker.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.56/tests/test.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_fmt",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.56/tests/test_fmt.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_size",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.56/tests/test_size.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "custom-build"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "build-script-build",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.56/build.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "default": [
+ "proc-macro"
+ ],
+ "nightly": [],
+ "proc-macro": [],
+ "span-locations": []
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.56/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "rustc-args": [
+ "--cfg",
+ "procmacro2_semver_exempt"
+ ],
+ "rustdoc-args": [
+ "--cfg",
+ "procmacro2_semver_exempt",
+ "--cfg",
+ "doc_cfg"
+ ],
+ "targets": [
+ "x86_64-unknown-linux-gnu"
+ ]
+ }
+ },
+ "playground": {
+ "features": [
+ "span-locations"
+ ]
+ }
+ },
+ "publish": null,
+ "authors": [
+ "David Tolnay <dtolnay@gmail.com>",
+ "Alex Crichton <alex@alexcrichton.com>"
+ ],
+ "categories": [
+ "development-tools::procedural-macro-helpers"
+ ],
+ "keywords": [
+ "macros",
+ "syn"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/dtolnay/proc-macro2",
+ "homepage": null,
+ "documentation": "https://docs.rs/proc-macro2",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": "1.31"
+ },
+ {
+ "name": "quote",
+ "version": "1.0.26",
+ "id": "quote 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "Quasi-quoting macro quote!(...)",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "proc-macro2",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.52",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rustversion",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "trybuild",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.66",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [
+ "diff"
+ ],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "quote",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/quote-1.0.26/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "compiletest",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/quote-1.0.26/tests/compiletest.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/quote-1.0.26/tests/test.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "custom-build"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "build-script-build",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/quote-1.0.26/build.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "default": [
+ "proc-macro"
+ ],
+ "proc-macro": [
+ "proc-macro2/proc-macro"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/quote-1.0.26/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "targets": [
+ "x86_64-unknown-linux-gnu"
+ ]
+ }
+ }
+ },
+ "publish": null,
+ "authors": [
+ "David Tolnay <dtolnay@gmail.com>"
+ ],
+ "categories": [
+ "development-tools::procedural-macro-helpers"
+ ],
+ "keywords": [
+ "macros",
+ "syn"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/dtolnay/quote",
+ "homepage": null,
+ "documentation": "https://docs.rs/quote/",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": "1.31"
+ },
+ {
+ "name": "regex",
+ "version": "1.8.1",
+ "id": "regex 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "An implementation of regular expressions for Rust. This implementation uses\nfinite automata and guarantees linear time matching on all inputs.\n",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "aho-corasick",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.0",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "memchr",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^2.5.0",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "regex-syntax",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.7.1",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "lazy_static",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "quickcheck",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.3",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rand",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.8.3",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [
+ "getrandom",
+ "small_rng"
+ ],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "regex",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/src/lib.rs",
+ "edition": "2021",
+ "doc": true,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "shootout-regex-dna-bytes",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/examples/shootout-regex-dna-bytes.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "shootout-regex-dna-cheat",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/examples/shootout-regex-dna-cheat.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "shootout-regex-dna-replace",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/examples/shootout-regex-dna-replace.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "shootout-regex-dna-single-cheat",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/examples/shootout-regex-dna-single-cheat.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "shootout-regex-dna-single",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/examples/shootout-regex-dna-single.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "shootout-regex-dna",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/examples/shootout-regex-dna.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "default",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/tests/test_default.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "default-bytes",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/tests/test_default_bytes.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "nfa",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/tests/test_nfa.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "nfa-utf8bytes",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/tests/test_nfa_utf8bytes.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "nfa-bytes",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/tests/test_nfa_bytes.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "backtrack",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/tests/test_backtrack.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "backtrack-utf8bytes",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/tests/test_backtrack_utf8bytes.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "backtrack-bytes",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/tests/test_backtrack_bytes.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "crates-regex",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/tests/test_crates_regex.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ }
+ ],
+ "features": {
+ "aho-corasick": [
+ "dep:aho-corasick"
+ ],
+ "default": [
+ "std",
+ "perf",
+ "unicode",
+ "regex-syntax/default"
+ ],
+ "memchr": [
+ "dep:memchr"
+ ],
+ "pattern": [],
+ "perf": [
+ "perf-cache",
+ "perf-dfa",
+ "perf-inline",
+ "perf-literal"
+ ],
+ "perf-cache": [],
+ "perf-dfa": [],
+ "perf-inline": [],
+ "perf-literal": [
+ "aho-corasick",
+ "memchr"
+ ],
+ "std": [],
+ "unicode": [
+ "unicode-age",
+ "unicode-bool",
+ "unicode-case",
+ "unicode-gencat",
+ "unicode-perl",
+ "unicode-script",
+ "unicode-segment",
+ "regex-syntax/unicode"
+ ],
+ "unicode-age": [
+ "regex-syntax/unicode-age"
+ ],
+ "unicode-bool": [
+ "regex-syntax/unicode-bool"
+ ],
+ "unicode-case": [
+ "regex-syntax/unicode-case"
+ ],
+ "unicode-gencat": [
+ "regex-syntax/unicode-gencat"
+ ],
+ "unicode-perl": [
+ "regex-syntax/unicode-perl"
+ ],
+ "unicode-script": [
+ "regex-syntax/unicode-script"
+ ],
+ "unicode-segment": [
+ "regex-syntax/unicode-segment"
+ ],
+ "unstable": [
+ "pattern"
+ ],
+ "use_std": [
+ "std"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-1.8.1/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "The Rust Project Developers"
+ ],
+ "categories": [
+ "text-processing"
+ ],
+ "keywords": [],
+ "readme": "README.md",
+ "repository": "https://github.com/rust-lang/regex",
+ "homepage": "https://github.com/rust-lang/regex",
+ "documentation": "https://docs.rs/regex",
+ "edition": "2021",
+ "links": null,
+ "default_run": null,
+ "rust_version": "1.60.0"
+ },
+ {
+ "name": "regex-automata",
+ "version": "0.1.10",
+ "id": "regex-automata 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "Unlicense/MIT",
+ "license_file": null,
+ "description": "Automata construction and matching using regular expressions.",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "fst",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.4.0",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "regex-syntax",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.6.16",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "bstr",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.2",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [
+ "std"
+ ],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "lazy_static",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.2.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "regex",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "serde",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.82",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "serde_bytes",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.11",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "serde_derive",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.82",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "toml",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.4.10",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "regex-automata",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-automata-0.1.10/src/lib.rs",
+ "edition": "2015",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "default",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-automata-0.1.10/tests/tests.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ }
+ ],
+ "features": {
+ "default": [
+ "std"
+ ],
+ "fst": [
+ "dep:fst"
+ ],
+ "regex-syntax": [
+ "dep:regex-syntax"
+ ],
+ "std": [
+ "regex-syntax"
+ ],
+ "transducer": [
+ "std",
+ "fst"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-automata-0.1.10/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Andrew Gallant <jamslam@gmail.com>"
+ ],
+ "categories": [
+ "text-processing"
+ ],
+ "keywords": [
+ "regex",
+ "dfa",
+ "automata",
+ "automaton",
+ "nfa"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/BurntSushi/regex-automata",
+ "homepage": "https://github.com/BurntSushi/regex-automata",
+ "documentation": "https://docs.rs/regex-automata",
+ "edition": "2015",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "regex-syntax",
+ "version": "0.6.29",
+ "id": "regex-syntax 0.6.29 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "A regular expression parser.",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "regex-syntax",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-syntax-0.6.29/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "bench"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "bench",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-syntax-0.6.29/benches/bench.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "default": [
+ "unicode"
+ ],
+ "unicode": [
+ "unicode-age",
+ "unicode-bool",
+ "unicode-case",
+ "unicode-gencat",
+ "unicode-perl",
+ "unicode-script",
+ "unicode-segment"
+ ],
+ "unicode-age": [],
+ "unicode-bool": [],
+ "unicode-case": [],
+ "unicode-gencat": [],
+ "unicode-perl": [],
+ "unicode-script": [],
+ "unicode-segment": []
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-syntax-0.6.29/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "The Rust Project Developers"
+ ],
+ "categories": [],
+ "keywords": [],
+ "readme": "README.md",
+ "repository": "https://github.com/rust-lang/regex",
+ "homepage": "https://github.com/rust-lang/regex",
+ "documentation": "https://docs.rs/regex-syntax",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "regex-syntax",
+ "version": "0.7.1",
+ "id": "regex-syntax 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "A regular expression parser.",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "regex-syntax",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-syntax-0.7.1/src/lib.rs",
+ "edition": "2021",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "bench"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "bench",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-syntax-0.7.1/benches/bench.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "default": [
+ "std",
+ "unicode"
+ ],
+ "std": [],
+ "unicode": [
+ "unicode-age",
+ "unicode-bool",
+ "unicode-case",
+ "unicode-gencat",
+ "unicode-perl",
+ "unicode-script",
+ "unicode-segment"
+ ],
+ "unicode-age": [],
+ "unicode-bool": [],
+ "unicode-case": [],
+ "unicode-gencat": [],
+ "unicode-perl": [],
+ "unicode-script": [],
+ "unicode-segment": []
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-syntax-0.7.1/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "all-features": true,
+ "rustdoc-args": [
+ "--cfg",
+ "docsrs"
+ ]
+ }
+ }
+ },
+ "publish": null,
+ "authors": [
+ "The Rust Project Developers"
+ ],
+ "categories": [],
+ "keywords": [],
+ "readme": "README.md",
+ "repository": "https://github.com/rust-lang/regex",
+ "homepage": "https://github.com/rust-lang/regex",
+ "documentation": "https://docs.rs/regex-syntax",
+ "edition": "2021",
+ "links": null,
+ "default_run": null,
+ "rust_version": "1.60.0"
+ },
+ {
+ "name": "ripgrep",
+ "version": "13.0.0",
+ "id": "ripgrep 13.0.0 (path+file:///$ROOT$ripgrep)",
+ "license": "Unlicense OR MIT",
+ "license_file": null,
+ "description": "ripgrep is a line-oriented search tool that recursively searches the current\ndirectory for a regex pattern while respecting gitignore rules. ripgrep has\nfirst class support on Windows, macOS and Linux.\n",
+ "source": null,
+ "dependencies": [
+ {
+ "name": "bstr",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.1.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "clap",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^2.33.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [
+ "suggestions"
+ ],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "grep",
+ "source": null,
+ "req": "^0.2.11",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null,
+ "path": "$ROOT$ripgrep/crates/grep"
+ },
+ {
+ "name": "ignore",
+ "source": null,
+ "req": "^0.4.19",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null,
+ "path": "$ROOT$ripgrep/crates/ignore"
+ },
+ {
+ "name": "lazy_static",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.1.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "log",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.4.5",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "regex",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.3.5",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "serde_json",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.23",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "termcolor",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.1.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "serde",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.77",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "serde_derive",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.77",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "walkdir",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^2",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "clap",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^2.33.0",
+ "kind": "build",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [
+ "suggestions"
+ ],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "lazy_static",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.1.0",
+ "kind": "build",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "jemallocator",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.5.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": "cfg(all(target_env = \"musl\", target_pointer_width = \"64\"))",
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "bin"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "rg",
+ "src_path": "$ROOT$ripgrep/crates/core/main.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "integration",
+ "src_path": "$ROOT$ripgrep/tests/tests.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "custom-build"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "build-script-build",
+ "src_path": "$ROOT$ripgrep/build.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "pcre2": [
+ "grep/pcre2"
+ ],
+ "simd-accel": [
+ "grep/simd-accel"
+ ]
+ },
+ "manifest_path": "$ROOT$ripgrep/Cargo.toml",
+ "metadata": {
+ "deb": {
+ "assets": [
+ [
+ "target/release/rg",
+ "usr/bin/",
+ "755"
+ ],
+ [
+ "COPYING",
+ "usr/share/doc/ripgrep/",
+ "644"
+ ],
+ [
+ "LICENSE-MIT",
+ "usr/share/doc/ripgrep/",
+ "644"
+ ],
+ [
+ "UNLICENSE",
+ "usr/share/doc/ripgrep/",
+ "644"
+ ],
+ [
+ "CHANGELOG.md",
+ "usr/share/doc/ripgrep/CHANGELOG",
+ "644"
+ ],
+ [
+ "README.md",
+ "usr/share/doc/ripgrep/README",
+ "644"
+ ],
+ [
+ "FAQ.md",
+ "usr/share/doc/ripgrep/FAQ",
+ "644"
+ ],
+ [
+ "deployment/deb/rg.1",
+ "usr/share/man/man1/rg.1",
+ "644"
+ ],
+ [
+ "deployment/deb/rg.bash",
+ "usr/share/bash-completion/completions/rg",
+ "644"
+ ],
+ [
+ "deployment/deb/rg.fish",
+ "usr/share/fish/vendor_completions.d/rg.fish",
+ "644"
+ ],
+ [
+ "deployment/deb/_rg",
+ "usr/share/zsh/vendor-completions/",
+ "644"
+ ]
+ ],
+ "extended-description": "ripgrep (rg) recursively searches your current directory for a regex pattern.\nBy default, ripgrep will respect your .gitignore and automatically skip hidden\nfiles/directories and binary files.\n",
+ "features": [
+ "pcre2"
+ ],
+ "section": "utils"
+ }
+ },
+ "publish": null,
+ "authors": [
+ "Andrew Gallant <jamslam@gmail.com>"
+ ],
+ "categories": [
+ "command-line-utilities",
+ "text-processing"
+ ],
+ "keywords": [
+ "regex",
+ "grep",
+ "egrep",
+ "search",
+ "pattern"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/BurntSushi/ripgrep",
+ "homepage": "https://github.com/BurntSushi/ripgrep",
+ "documentation": "https://github.com/BurntSushi/ripgrep",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": "1.65"
+ },
+ {
+ "name": "ryu",
+ "version": "1.0.13",
+ "id": "ryu 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "Apache-2.0 OR BSL-1.0",
+ "license_file": null,
+ "description": "Fast floating point to string conversion",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "no-panic",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.1",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "num_cpus",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.8",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rand",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.8",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rand_xorshift",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.3",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "ryu",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/ryu-1.0.13/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "upstream_benchmark",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/ryu-1.0.13/examples/upstream_benchmark.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "common_test",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/ryu-1.0.13/tests/common_test.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "d2s_table_test",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/ryu-1.0.13/tests/d2s_table_test.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "d2s_test",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/ryu-1.0.13/tests/d2s_test.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "exhaustive",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/ryu-1.0.13/tests/exhaustive.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "f2s_test",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/ryu-1.0.13/tests/f2s_test.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "s2d_test",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/ryu-1.0.13/tests/s2d_test.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "s2f_test",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/ryu-1.0.13/tests/s2f_test.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "bench"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "bench",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/ryu-1.0.13/benches/bench.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "no-panic": [
+ "dep:no-panic"
+ ],
+ "small": []
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/ryu-1.0.13/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "targets": [
+ "x86_64-unknown-linux-gnu"
+ ]
+ }
+ }
+ },
+ "publish": null,
+ "authors": [
+ "David Tolnay <dtolnay@gmail.com>"
+ ],
+ "categories": [
+ "value-formatting",
+ "no-std"
+ ],
+ "keywords": [
+ "float"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/dtolnay/ryu",
+ "homepage": null,
+ "documentation": "https://docs.rs/ryu",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": "1.36"
+ },
+ {
+ "name": "same-file",
+ "version": "1.0.6",
+ "id": "same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "Unlicense/MIT",
+ "license_file": null,
+ "description": "A simple crate for determining whether two file paths point to the same file.\n",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "doc-comment",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.3",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "winapi-util",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.1.1",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": "cfg(windows)",
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "same-file",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/same-file-1.0.6/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "is_same_file",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/same-file-1.0.6/examples/is_same_file.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "is_stderr",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/same-file-1.0.6/examples/is_stderr.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {},
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/same-file-1.0.6/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Andrew Gallant <jamslam@gmail.com>"
+ ],
+ "categories": [],
+ "keywords": [
+ "same",
+ "file",
+ "equal",
+ "inode"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/BurntSushi/same-file",
+ "homepage": "https://github.com/BurntSushi/same-file",
+ "documentation": "https://docs.rs/same-file",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "serde",
+ "version": "1.0.160",
+ "id": "serde 1.0.160 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "A generic serialization/deserialization framework",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "serde_derive",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "=1.0.160",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "serde_derive",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "serde",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.160/src/lib.rs",
+ "edition": "2015",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "custom-build"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "build-script-build",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.160/build.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "alloc": [],
+ "default": [
+ "std"
+ ],
+ "derive": [
+ "serde_derive"
+ ],
+ "rc": [],
+ "serde_derive": [
+ "dep:serde_derive"
+ ],
+ "std": [],
+ "unstable": []
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.160/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "features": [
+ "derive"
+ ],
+ "targets": [
+ "x86_64-unknown-linux-gnu"
+ ]
+ }
+ },
+ "playground": {
+ "features": [
+ "derive",
+ "rc"
+ ]
+ }
+ },
+ "publish": null,
+ "authors": [
+ "Erick Tryzelaar <erick.tryzelaar@gmail.com>",
+ "David Tolnay <dtolnay@gmail.com>"
+ ],
+ "categories": [
+ "encoding",
+ "no-std"
+ ],
+ "keywords": [
+ "serde",
+ "serialization",
+ "no_std"
+ ],
+ "readme": "crates-io.md",
+ "repository": "https://github.com/serde-rs/serde",
+ "homepage": "https://serde.rs",
+ "documentation": "https://docs.rs/serde",
+ "edition": "2015",
+ "links": null,
+ "default_run": null,
+ "rust_version": "1.19"
+ },
+ {
+ "name": "serde_derive",
+ "version": "1.0.160",
+ "id": "serde_derive 1.0.160 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "Macros 1.1 implementation of #[derive(Serialize, Deserialize)]",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "proc-macro2",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "quote",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "syn",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^2.0.3",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "serde",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "proc-macro"
+ ],
+ "crate_types": [
+ "proc-macro"
+ ],
+ "name": "serde_derive",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_derive-1.0.160/src/lib.rs",
+ "edition": "2015",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "custom-build"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "build-script-build",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_derive-1.0.160/build.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "default": [],
+ "deserialize_in_place": []
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_derive-1.0.160/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "targets": [
+ "x86_64-unknown-linux-gnu"
+ ]
+ }
+ }
+ },
+ "publish": null,
+ "authors": [
+ "Erick Tryzelaar <erick.tryzelaar@gmail.com>",
+ "David Tolnay <dtolnay@gmail.com>"
+ ],
+ "categories": [
+ "no-std"
+ ],
+ "keywords": [
+ "serde",
+ "serialization",
+ "no_std",
+ "derive"
+ ],
+ "readme": "crates-io.md",
+ "repository": "https://github.com/serde-rs/serde",
+ "homepage": "https://serde.rs",
+ "documentation": "https://serde.rs/derive.html",
+ "edition": "2015",
+ "links": null,
+ "default_run": null,
+ "rust_version": "1.56"
+ },
+ {
+ "name": "serde_json",
+ "version": "1.0.96",
+ "id": "serde_json 1.0.96 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "A JSON serialization file format",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "indexmap",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.5.2",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [
+ "std"
+ ],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "itoa",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "ryu",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "serde",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.100",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "automod",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "indoc",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^2.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "ref-cast",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rustversion",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "serde",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.100",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [
+ "derive"
+ ],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "serde_bytes",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.11",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "serde_derive",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "serde_stacker",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "trybuild",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.49",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [
+ "diff"
+ ],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "serde_json",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_json-1.0.96/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "compiletest",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_json-1.0.96/tests/compiletest.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "debug",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_json-1.0.96/tests/debug.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "lexical",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_json-1.0.96/tests/lexical.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "map",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_json-1.0.96/tests/map.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "regression",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_json-1.0.96/tests/regression.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "stream",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_json-1.0.96/tests/stream.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_json-1.0.96/tests/test.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "custom-build"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "build-script-build",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_json-1.0.96/build.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "alloc": [
+ "serde/alloc"
+ ],
+ "arbitrary_precision": [],
+ "default": [
+ "std"
+ ],
+ "float_roundtrip": [],
+ "indexmap": [
+ "dep:indexmap"
+ ],
+ "preserve_order": [
+ "indexmap",
+ "std"
+ ],
+ "raw_value": [],
+ "std": [
+ "serde/std"
+ ],
+ "unbounded_depth": []
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_json-1.0.96/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "features": [
+ "raw_value",
+ "unbounded_depth"
+ ],
+ "rustdoc-args": [
+ "--cfg",
+ "docsrs"
+ ],
+ "targets": [
+ "x86_64-unknown-linux-gnu"
+ ]
+ }
+ },
+ "playground": {
+ "features": [
+ "raw_value"
+ ]
+ }
+ },
+ "publish": null,
+ "authors": [
+ "Erick Tryzelaar <erick.tryzelaar@gmail.com>",
+ "David Tolnay <dtolnay@gmail.com>"
+ ],
+ "categories": [
+ "encoding",
+ "parser-implementations",
+ "no-std"
+ ],
+ "keywords": [
+ "json",
+ "serde",
+ "serialization"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/serde-rs/json",
+ "homepage": null,
+ "documentation": "https://docs.rs/serde_json",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": "1.36"
+ },
+ {
+ "name": "strsim",
+ "version": "0.8.0",
+ "id": "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT",
+ "license_file": null,
+ "description": "Implementations of string similarity metrics.\nIncludes Hamming, Levenshtein, OSA, Damerau-Levenshtein, Jaro, and Jaro-Winkler.\n",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "strsim",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/strsim-0.8.0/src/lib.rs",
+ "edition": "2015",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "lib",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/strsim-0.8.0/tests/lib.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "bench"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "benches",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/strsim-0.8.0/benches/benches.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {},
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/strsim-0.8.0/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Danny Guo <dannyguo91@gmail.com>"
+ ],
+ "categories": [],
+ "keywords": [
+ "string",
+ "similarity",
+ "Hamming",
+ "Levenshtein",
+ "Jaro"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/dguo/strsim-rs",
+ "homepage": "https://github.com/dguo/strsim-rs",
+ "documentation": "https://docs.rs/strsim/",
+ "edition": "2015",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "syn",
+ "version": "2.0.15",
+ "id": "syn 2.0.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "Parser for Rust source code",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "proc-macro2",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.55",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "quote",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.25",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "unicode-ident",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "anyhow",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "automod",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "flate2",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "insta",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rayon",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "ref-cast",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "regex",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "reqwest",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.11",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [
+ "blocking"
+ ],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rustversion",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "syn-test-suite",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "tar",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.4.16",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "termcolor",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "walkdir",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^2.3.2",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "syn",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/src/lib.rs",
+ "edition": "2021",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "regression",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/regression.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_asyncness",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_asyncness.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_attribute",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_attribute.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_derive_input",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_derive_input.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_expr",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_expr.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_generics",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_generics.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_grouping",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_grouping.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_ident",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_ident.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_item",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_item.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_iterators",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_iterators.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_lit",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_lit.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_meta",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_meta.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_parse_buffer",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_parse_buffer.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_parse_stream",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_parse_stream.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_pat",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_pat.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_path",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_path.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_precedence",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_precedence.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_receiver",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_receiver.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_round_trip",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_round_trip.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_shebang",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_shebang.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_should_parse",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_should_parse.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_size",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_size.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_stmt",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_stmt.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_token_trees",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_token_trees.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_ty",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_ty.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_visibility",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/test_visibility.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "zzz_stable",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/tests/zzz_stable.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "bench"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "rust",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/benches/rust.rs",
+ "edition": "2021",
+ "required-features": [
+ "full",
+ "parsing"
+ ],
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "bench"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "file",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/benches/file.rs",
+ "edition": "2021",
+ "required-features": [
+ "full",
+ "parsing"
+ ],
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "clone-impls": [],
+ "default": [
+ "derive",
+ "parsing",
+ "printing",
+ "clone-impls",
+ "proc-macro"
+ ],
+ "derive": [],
+ "extra-traits": [],
+ "fold": [],
+ "full": [],
+ "parsing": [],
+ "printing": [
+ "quote"
+ ],
+ "proc-macro": [
+ "proc-macro2/proc-macro",
+ "quote/proc-macro"
+ ],
+ "quote": [
+ "dep:quote"
+ ],
+ "test": [
+ "syn-test-suite/all-features"
+ ],
+ "visit": [],
+ "visit-mut": []
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.15/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "all-features": true,
+ "rustdoc-args": [
+ "--cfg",
+ "doc_cfg"
+ ],
+ "targets": [
+ "x86_64-unknown-linux-gnu"
+ ]
+ }
+ },
+ "playground": {
+ "features": [
+ "full",
+ "visit",
+ "visit-mut",
+ "fold",
+ "extra-traits"
+ ]
+ }
+ },
+ "publish": null,
+ "authors": [
+ "David Tolnay <dtolnay@gmail.com>"
+ ],
+ "categories": [
+ "development-tools::procedural-macro-helpers",
+ "parser-implementations"
+ ],
+ "keywords": [
+ "macros",
+ "syn"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/dtolnay/syn",
+ "homepage": null,
+ "documentation": "https://docs.rs/syn",
+ "edition": "2021",
+ "links": null,
+ "default_run": null,
+ "rust_version": "1.56"
+ },
+ {
+ "name": "termcolor",
+ "version": "1.2.0",
+ "id": "termcolor 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "Unlicense OR MIT",
+ "license_file": null,
+ "description": "A simple cross platform library for writing colored text to a terminal.\n",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "winapi-util",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.1.3",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": "cfg(windows)",
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "termcolor",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/termcolor-1.2.0/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ }
+ ],
+ "features": {},
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/termcolor-1.2.0/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Andrew Gallant <jamslam@gmail.com>"
+ ],
+ "categories": [],
+ "keywords": [
+ "windows",
+ "win",
+ "color",
+ "ansi",
+ "console"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/BurntSushi/termcolor",
+ "homepage": "https://github.com/BurntSushi/termcolor",
+ "documentation": "https://docs.rs/termcolor",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "textwrap",
+ "version": "0.11.0",
+ "id": "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT",
+ "license_file": null,
+ "description": "Textwrap is a small library for word wrapping, indenting, and\ndedenting strings.\n\nYou can use it to format strings (such as help and error messages) for\ndisplay in commandline applications. It is designed to be efficient\nand handle Unicode characters correctly.\n",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "hyphenation",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.7.1",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [
+ "embed_all"
+ ],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "term_size",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.3.0",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "unicode-width",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.1.3",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "lipsum",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.6",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rand",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.6",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rand_xorshift",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "version-sync",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.6",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "textwrap",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/textwrap-0.11.0/src/lib.rs",
+ "edition": "2015",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "layout",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/textwrap-0.11.0/examples/layout.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "termwidth",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/textwrap-0.11.0/examples/termwidth.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "version-numbers",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/textwrap-0.11.0/tests/version-numbers.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "bench"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "linear",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/textwrap-0.11.0/benches/linear.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "hyphenation": [
+ "dep:hyphenation"
+ ],
+ "term_size": [
+ "dep:term_size"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/textwrap-0.11.0/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "all-features": true
+ }
+ }
+ },
+ "publish": null,
+ "authors": [
+ "Martin Geisler <martin@geisler.net>"
+ ],
+ "categories": [
+ "text-processing",
+ "command-line-interface"
+ ],
+ "keywords": [
+ "text",
+ "formatting",
+ "wrap",
+ "typesetting",
+ "hyphenation"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/mgeisler/textwrap",
+ "homepage": null,
+ "documentation": "https://docs.rs/textwrap/",
+ "edition": "2015",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "thread_local",
+ "version": "1.1.7",
+ "id": "thread_local 1.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "Per-object thread-local storage",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "cfg-if",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "once_cell",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.5.2",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "criterion",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.4.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "thread_local",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/thread_local-1.1.7/src/lib.rs",
+ "edition": "2021",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "bench"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "thread_local",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/thread_local-1.1.7/benches/thread_local.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "nightly": []
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/thread_local-1.1.7/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Amanieu d'Antras <amanieu@gmail.com>"
+ ],
+ "categories": [],
+ "keywords": [
+ "thread_local",
+ "concurrent",
+ "thread"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/Amanieu/thread_local-rs",
+ "homepage": null,
+ "documentation": "https://docs.rs/thread_local/",
+ "edition": "2021",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "unicode-ident",
+ "version": "1.0.8",
+ "id": "unicode-ident 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "(MIT OR Apache-2.0) AND Unicode-DFS-2016",
+ "license_file": null,
+ "description": "Determine whether characters have the XID_Start or XID_Continue properties according to Unicode Standard Annex #31",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "criterion",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.4",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "fst",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.4",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rand",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.8",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [
+ "small_rng"
+ ],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "roaring",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.10",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "ucd-trie",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "unicode-xid",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.2.4",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "unicode-ident",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/unicode-ident-1.0.8/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "compare",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/unicode-ident-1.0.8/tests/compare.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "static_size",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/unicode-ident-1.0.8/tests/static_size.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "bench"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "xid",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/unicode-ident-1.0.8/benches/xid.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {},
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/unicode-ident-1.0.8/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "targets": [
+ "x86_64-unknown-linux-gnu"
+ ]
+ }
+ }
+ },
+ "publish": null,
+ "authors": [
+ "David Tolnay <dtolnay@gmail.com>"
+ ],
+ "categories": [
+ "development-tools::procedural-macro-helpers",
+ "no-std"
+ ],
+ "keywords": [
+ "unicode",
+ "xid"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/dtolnay/unicode-ident",
+ "homepage": null,
+ "documentation": "https://docs.rs/unicode-ident",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": "1.31"
+ },
+ {
+ "name": "unicode-width",
+ "version": "0.1.10",
+ "id": "unicode-width 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT/Apache-2.0",
+ "license_file": null,
+ "description": "Determine displayed width of `char` and `str` types\naccording to Unicode Standard Annex #11 rules.\n",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "compiler_builtins",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.1",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rustc-std-workspace-core",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": null,
+ "rename": "core",
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rustc-std-workspace-std",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": null,
+ "rename": "std",
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "unicode-width",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/unicode-width-0.1.10/src/lib.rs",
+ "edition": "2015",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ }
+ ],
+ "features": {
+ "bench": [],
+ "compiler_builtins": [
+ "dep:compiler_builtins"
+ ],
+ "core": [
+ "dep:core"
+ ],
+ "default": [],
+ "no_std": [],
+ "rustc-dep-of-std": [
+ "std",
+ "core",
+ "compiler_builtins"
+ ],
+ "std": [
+ "dep:std"
+ ]
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/unicode-width-0.1.10/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "kwantam <kwantam@gmail.com>",
+ "Manish Goregaokar <manishsmail@gmail.com>"
+ ],
+ "categories": [],
+ "keywords": [
+ "text",
+ "width",
+ "unicode"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/unicode-rs/unicode-width",
+ "homepage": "https://github.com/unicode-rs/unicode-width",
+ "documentation": "https://unicode-rs.github.io/unicode-width",
+ "edition": "2015",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "walkdir",
+ "version": "2.3.3",
+ "id": "walkdir 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "Unlicense/MIT",
+ "license_file": null,
+ "description": "Recursively walk a directory.",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "same-file",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.1",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "doc-comment",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.3",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "winapi-util",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.1.1",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": "cfg(windows)",
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "walkdir",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/walkdir-2.3.3/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ }
+ ],
+ "features": {},
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/walkdir-2.3.3/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Andrew Gallant <jamslam@gmail.com>"
+ ],
+ "categories": [
+ "filesystem"
+ ],
+ "keywords": [
+ "directory",
+ "recursive",
+ "walk",
+ "iterator"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/BurntSushi/walkdir",
+ "homepage": "https://github.com/BurntSushi/walkdir",
+ "documentation": "https://docs.rs/walkdir/",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "winapi",
+ "version": "0.3.9",
+ "id": "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT/Apache-2.0",
+ "license_file": null,
+ "description": "Raw FFI bindings for all of Windows API.",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "winapi-i686-pc-windows-gnu",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.4",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": "i686-pc-windows-gnu",
+ "registry": null
+ },
+ {
+ "name": "winapi-x86_64-pc-windows-gnu",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.4",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": "x86_64-pc-windows-gnu",
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "winapi",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/winapi-0.3.9/src/lib.rs",
+ "edition": "2015",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "custom-build"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "build-script-build",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/winapi-0.3.9/build.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "accctrl": [],
+ "aclapi": [],
+ "activation": [],
+ "adhoc": [],
+ "appmgmt": [],
+ "audioclient": [],
+ "audiosessiontypes": [],
+ "avrt": [],
+ "basetsd": [],
+ "bcrypt": [],
+ "bits": [],
+ "bits10_1": [],
+ "bits1_5": [],
+ "bits2_0": [],
+ "bits2_5": [],
+ "bits3_0": [],
+ "bits4_0": [],
+ "bits5_0": [],
+ "bitscfg": [],
+ "bitsmsg": [],
+ "bluetoothapis": [],
+ "bluetoothleapis": [],
+ "bthdef": [],
+ "bthioctl": [],
+ "bthledef": [],
+ "bthsdpdef": [],
+ "bugcodes": [],
+ "cderr": [],
+ "cfg": [],
+ "cfgmgr32": [],
+ "cguid": [],
+ "combaseapi": [],
+ "coml2api": [],
+ "commapi": [],
+ "commctrl": [],
+ "commdlg": [],
+ "commoncontrols": [],
+ "consoleapi": [],
+ "corecrt": [],
+ "corsym": [],
+ "d2d1": [],
+ "d2d1_1": [],
+ "d2d1_2": [],
+ "d2d1_3": [],
+ "d2d1effectauthor": [],
+ "d2d1effects": [],
+ "d2d1effects_1": [],
+ "d2d1effects_2": [],
+ "d2d1svg": [],
+ "d2dbasetypes": [],
+ "d3d": [],
+ "d3d10": [],
+ "d3d10_1": [],
+ "d3d10_1shader": [],
+ "d3d10effect": [],
+ "d3d10misc": [],
+ "d3d10sdklayers": [],
+ "d3d10shader": [],
+ "d3d11": [],
+ "d3d11_1": [],
+ "d3d11_2": [],
+ "d3d11_3": [],
+ "d3d11_4": [],
+ "d3d11on12": [],
+ "d3d11sdklayers": [],
+ "d3d11shader": [],
+ "d3d11tokenizedprogramformat": [],
+ "d3d12": [],
+ "d3d12sdklayers": [],
+ "d3d12shader": [],
+ "d3d9": [],
+ "d3d9caps": [],
+ "d3d9types": [],
+ "d3dcommon": [],
+ "d3dcompiler": [],
+ "d3dcsx": [],
+ "d3dkmdt": [],
+ "d3dkmthk": [],
+ "d3dukmdt": [],
+ "d3dx10core": [],
+ "d3dx10math": [],
+ "d3dx10mesh": [],
+ "datetimeapi": [],
+ "davclnt": [],
+ "dbghelp": [],
+ "dbt": [],
+ "dcommon": [],
+ "dcomp": [],
+ "dcompanimation": [],
+ "dcomptypes": [],
+ "dde": [],
+ "ddraw": [],
+ "ddrawi": [],
+ "ddrawint": [],
+ "debug": [
+ "impl-debug"
+ ],
+ "debugapi": [],
+ "devguid": [],
+ "devicetopology": [],
+ "devpkey": [],
+ "devpropdef": [],
+ "dinput": [],
+ "dinputd": [],
+ "dispex": [],
+ "dmksctl": [],
+ "dmusicc": [],
+ "docobj": [],
+ "documenttarget": [],
+ "dot1x": [],
+ "dpa_dsa": [],
+ "dpapi": [],
+ "dsgetdc": [],
+ "dsound": [],
+ "dsrole": [],
+ "dvp": [],
+ "dwmapi": [],
+ "dwrite": [],
+ "dwrite_1": [],
+ "dwrite_2": [],
+ "dwrite_3": [],
+ "dxdiag": [],
+ "dxfile": [],
+ "dxgi": [],
+ "dxgi1_2": [],
+ "dxgi1_3": [],
+ "dxgi1_4": [],
+ "dxgi1_5": [],
+ "dxgi1_6": [],
+ "dxgidebug": [],
+ "dxgiformat": [],
+ "dxgitype": [],
+ "dxva2api": [],
+ "dxvahd": [],
+ "eaptypes": [],
+ "enclaveapi": [],
+ "endpointvolume": [],
+ "errhandlingapi": [],
+ "everything": [],
+ "evntcons": [],
+ "evntprov": [],
+ "evntrace": [],
+ "excpt": [],
+ "exdisp": [],
+ "fibersapi": [],
+ "fileapi": [],
+ "functiondiscoverykeys_devpkey": [],
+ "gl-gl": [],
+ "guiddef": [],
+ "handleapi": [],
+ "heapapi": [],
+ "hidclass": [],
+ "hidpi": [],
+ "hidsdi": [],
+ "hidusage": [],
+ "highlevelmonitorconfigurationapi": [],
+ "hstring": [],
+ "http": [],
+ "ifdef": [],
+ "ifmib": [],
+ "imm": [],
+ "impl-debug": [],
+ "impl-default": [],
+ "in6addr": [],
+ "inaddr": [],
+ "inspectable": [],
+ "interlockedapi": [],
+ "intsafe": [],
+ "ioapiset": [],
+ "ipexport": [],
+ "iphlpapi": [],
+ "ipifcons": [],
+ "ipmib": [],
+ "iprtrmib": [],
+ "iptypes": [],
+ "jobapi": [],
+ "jobapi2": [],
+ "knownfolders": [],
+ "ks": [],
+ "ksmedia": [],
+ "ktmtypes": [],
+ "ktmw32": [],
+ "l2cmn": [],
+ "libloaderapi": [],
+ "limits": [],
+ "lmaccess": [],
+ "lmalert": [],
+ "lmapibuf": [],
+ "lmat": [],
+ "lmcons": [],
+ "lmdfs": [],
+ "lmerrlog": [],
+ "lmjoin": [],
+ "lmmsg": [],
+ "lmremutl": [],
+ "lmrepl": [],
+ "lmserver": [],
+ "lmshare": [],
+ "lmstats": [],
+ "lmsvc": [],
+ "lmuse": [],
+ "lmwksta": [],
+ "lowlevelmonitorconfigurationapi": [],
+ "lsalookup": [],
+ "memoryapi": [],
+ "minschannel": [],
+ "minwinbase": [],
+ "minwindef": [],
+ "mmdeviceapi": [],
+ "mmeapi": [],
+ "mmreg": [],
+ "mmsystem": [],
+ "mprapidef": [],
+ "msaatext": [],
+ "mscat": [],
+ "mschapp": [],
+ "mssip": [],
+ "mstcpip": [],
+ "mswsock": [],
+ "mswsockdef": [],
+ "namedpipeapi": [],
+ "namespaceapi": [],
+ "nb30": [],
+ "ncrypt": [],
+ "netioapi": [],
+ "nldef": [],
+ "ntddndis": [],
+ "ntddscsi": [],
+ "ntddser": [],
+ "ntdef": [],
+ "ntlsa": [],
+ "ntsecapi": [],
+ "ntstatus": [],
+ "oaidl": [],
+ "objbase": [],
+ "objidl": [],
+ "objidlbase": [],
+ "ocidl": [],
+ "ole2": [],
+ "oleauto": [],
+ "olectl": [],
+ "oleidl": [],
+ "opmapi": [],
+ "pdh": [],
+ "perflib": [],
+ "physicalmonitorenumerationapi": [],
+ "playsoundapi": [],
+ "portabledevice": [],
+ "portabledeviceapi": [],
+ "portabledevicetypes": [],
+ "powerbase": [],
+ "powersetting": [],
+ "powrprof": [],
+ "processenv": [],
+ "processsnapshot": [],
+ "processthreadsapi": [],
+ "processtopologyapi": [],
+ "profileapi": [],
+ "propidl": [],
+ "propkey": [],
+ "propkeydef": [],
+ "propsys": [],
+ "prsht": [],
+ "psapi": [],
+ "qos": [],
+ "realtimeapiset": [],
+ "reason": [],
+ "restartmanager": [],
+ "restrictederrorinfo": [],
+ "rmxfguid": [],
+ "roapi": [],
+ "robuffer": [],
+ "roerrorapi": [],
+ "rpc": [],
+ "rpcdce": [],
+ "rpcndr": [],
+ "rtinfo": [],
+ "sapi": [],
+ "sapi51": [],
+ "sapi53": [],
+ "sapiddk": [],
+ "sapiddk51": [],
+ "schannel": [],
+ "sddl": [],
+ "securityappcontainer": [],
+ "securitybaseapi": [],
+ "servprov": [],
+ "setupapi": [],
+ "shellapi": [],
+ "shellscalingapi": [],
+ "shlobj": [],
+ "shobjidl": [],
+ "shobjidl_core": [],
+ "shtypes": [],
+ "softpub": [],
+ "spapidef": [],
+ "spellcheck": [],
+ "sporder": [],
+ "sql": [],
+ "sqlext": [],
+ "sqltypes": [],
+ "sqlucode": [],
+ "sspi": [],
+ "std": [],
+ "stralign": [],
+ "stringapiset": [],
+ "strmif": [],
+ "subauth": [],
+ "synchapi": [],
+ "sysinfoapi": [],
+ "systemtopologyapi": [],
+ "taskschd": [],
+ "tcpestats": [],
+ "tcpmib": [],
+ "textstor": [],
+ "threadpoolapiset": [],
+ "threadpoollegacyapiset": [],
+ "timeapi": [],
+ "timezoneapi": [],
+ "tlhelp32": [],
+ "transportsettingcommon": [],
+ "tvout": [],
+ "udpmib": [],
+ "unknwnbase": [],
+ "urlhist": [],
+ "urlmon": [],
+ "usb": [],
+ "usbioctl": [],
+ "usbiodef": [],
+ "usbscan": [],
+ "usbspec": [],
+ "userenv": [],
+ "usp10": [],
+ "utilapiset": [],
+ "uxtheme": [],
+ "vadefs": [],
+ "vcruntime": [],
+ "vsbackup": [],
+ "vss": [],
+ "vsserror": [],
+ "vswriter": [],
+ "wbemads": [],
+ "wbemcli": [],
+ "wbemdisp": [],
+ "wbemprov": [],
+ "wbemtran": [],
+ "wct": [],
+ "werapi": [],
+ "winbase": [],
+ "wincodec": [],
+ "wincodecsdk": [],
+ "wincon": [],
+ "wincontypes": [],
+ "wincred": [],
+ "wincrypt": [],
+ "windef": [],
+ "windot11": [],
+ "windowsceip": [],
+ "windowsx": [],
+ "winefs": [],
+ "winerror": [],
+ "winevt": [],
+ "wingdi": [],
+ "winhttp": [],
+ "wininet": [],
+ "winineti": [],
+ "winioctl": [],
+ "winnetwk": [],
+ "winnls": [],
+ "winnt": [],
+ "winreg": [],
+ "winsafer": [],
+ "winscard": [],
+ "winsmcrd": [],
+ "winsock2": [],
+ "winspool": [],
+ "winstring": [],
+ "winsvc": [],
+ "wintrust": [],
+ "winusb": [],
+ "winusbio": [],
+ "winuser": [],
+ "winver": [],
+ "wlanapi": [],
+ "wlanihv": [],
+ "wlanihvtypes": [],
+ "wlantypes": [],
+ "wlclient": [],
+ "wmistr": [],
+ "wnnc": [],
+ "wow64apiset": [],
+ "wpdmtpextensions": [],
+ "ws2bth": [],
+ "ws2def": [],
+ "ws2ipdef": [],
+ "ws2spi": [],
+ "ws2tcpip": [],
+ "wtsapi32": [],
+ "wtypes": [],
+ "wtypesbase": [],
+ "xinput": []
+ },
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/winapi-0.3.9/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "default-target": "x86_64-pc-windows-msvc",
+ "features": [
+ "everything",
+ "impl-debug",
+ "impl-default"
+ ],
+ "targets": [
+ "aarch64-pc-windows-msvc",
+ "i686-pc-windows-msvc",
+ "x86_64-pc-windows-msvc"
+ ]
+ }
+ }
+ },
+ "publish": null,
+ "authors": [
+ "Peter Atashian <retep998@gmail.com>"
+ ],
+ "categories": [
+ "external-ffi-bindings",
+ "no-std",
+ "os::windows-apis"
+ ],
+ "keywords": [
+ "windows",
+ "ffi",
+ "win32",
+ "com",
+ "directx"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/retep998/winapi-rs",
+ "homepage": null,
+ "documentation": "https://docs.rs/winapi/",
+ "edition": "2015",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "winapi-i686-pc-windows-gnu",
+ "version": "0.4.0",
+ "id": "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT/Apache-2.0",
+ "license_file": null,
+ "description": "Import libraries for the i686-pc-windows-gnu target. Please don't use this crate directly, depend on winapi instead.",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "winapi-i686-pc-windows-gnu",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/winapi-i686-pc-windows-gnu-0.4.0/src/lib.rs",
+ "edition": "2015",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "custom-build"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "build-script-build",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/winapi-i686-pc-windows-gnu-0.4.0/build.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {},
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/winapi-i686-pc-windows-gnu-0.4.0/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Peter Atashian <retep998@gmail.com>"
+ ],
+ "categories": [],
+ "keywords": [
+ "windows"
+ ],
+ "readme": null,
+ "repository": "https://github.com/retep998/winapi-rs",
+ "homepage": null,
+ "documentation": null,
+ "edition": "2015",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "winapi-util",
+ "version": "0.1.5",
+ "id": "winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "Unlicense/MIT",
+ "license_file": null,
+ "description": "A dumping ground for high level safe wrappers over winapi.",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "winapi",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.3",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [
+ "std",
+ "consoleapi",
+ "errhandlingapi",
+ "fileapi",
+ "minwindef",
+ "processenv",
+ "winbase",
+ "wincon",
+ "winerror",
+ "winnt"
+ ],
+ "target": "cfg(windows)",
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "winapi-util",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/winapi-util-0.1.5/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ }
+ ],
+ "features": {},
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/winapi-util-0.1.5/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "targets": [
+ "x86_64-pc-windows-msvc"
+ ]
+ }
+ }
+ },
+ "publish": null,
+ "authors": [
+ "Andrew Gallant <jamslam@gmail.com>"
+ ],
+ "categories": [
+ "os::windows-apis",
+ "external-ffi-bindings"
+ ],
+ "keywords": [
+ "windows",
+ "winapi",
+ "util",
+ "win"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/BurntSushi/winapi-util",
+ "homepage": "https://github.com/BurntSushi/winapi-util",
+ "documentation": "https://docs.rs/winapi-util",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "winapi-x86_64-pc-windows-gnu",
+ "version": "0.4.0",
+ "id": "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT/Apache-2.0",
+ "license_file": null,
+ "description": "Import libraries for the x86_64-pc-windows-gnu target. Please don't use this crate directly, depend on winapi instead.",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "winapi-x86_64-pc-windows-gnu",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/winapi-x86_64-pc-windows-gnu-0.4.0/src/lib.rs",
+ "edition": "2015",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "custom-build"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "build-script-build",
+ "src_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/winapi-x86_64-pc-windows-gnu-0.4.0/build.rs",
+ "edition": "2015",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {},
+ "manifest_path": "$ROOT$.cargo/registry/src/index.crates.io-6f17d22bba15001f/winapi-x86_64-pc-windows-gnu-0.4.0/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Peter Atashian <retep998@gmail.com>"
+ ],
+ "categories": [],
+ "keywords": [
+ "windows"
+ ],
+ "readme": null,
+ "repository": "https://github.com/retep998/winapi-rs",
+ "homepage": null,
+ "documentation": null,
+ "edition": "2015",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ }
+ ],
+ "workspace_members": [
+ "globset 0.4.10 (path+file:///$ROOT$ripgrep/crates/globset)",
+ "grep 0.2.11 (path+file:///$ROOT$ripgrep/crates/grep)",
+ "grep-cli 0.1.7 (path+file:///$ROOT$ripgrep/crates/cli)",
+ "grep-matcher 0.1.6 (path+file:///$ROOT$ripgrep/crates/matcher)",
+ "grep-pcre2 0.1.6 (path+file:///$ROOT$ripgrep/crates/pcre2)",
+ "grep-printer 0.1.7 (path+file:///$ROOT$ripgrep/crates/printer)",
+ "grep-searcher 0.1.11 (path+file:///$ROOT$ripgrep/crates/searcher)",
+ "grep-regex 0.1.11 (path+file:///$ROOT$ripgrep/crates/regex)",
+ "ignore 0.4.20 (path+file:///$ROOT$ripgrep/crates/ignore)",
+ "ripgrep 13.0.0 (path+file:///$ROOT$ripgrep)"
+ ],
+ "resolve": {
+ "nodes": [
+ {
+ "id": "aho-corasick 0.7.20 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "memchr 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "memchr",
+ "pkg": "memchr 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "default",
+ "std"
+ ]
+ },
+ {
+ "id": "aho-corasick 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "memchr 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "memchr",
+ "pkg": "memchr 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "default",
+ "perf-literal",
+ "std"
+ ]
+ },
+ {
+ "id": "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "hermit-abi 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.142 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "hermit_abi",
+ "pkg": "hermit-abi 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": "cfg(target_os = \"hermit\")"
+ }
+ ]
+ },
+ {
+ "name": "libc",
+ "pkg": "libc 0.2.142 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": "cfg(unix)"
+ }
+ ]
+ },
+ {
+ "name": "winapi",
+ "pkg": "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": "cfg(windows)"
+ }
+ ]
+ }
+ ],
+ "features": []
+ },
+ {
+ "id": "base64 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": [
+ "default",
+ "std"
+ ]
+ },
+ {
+ "id": "bitflags 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": [
+ "default"
+ ]
+ },
+ {
+ "id": "bstr 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "memchr 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "once_cell 1.17.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex-automata 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.160 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "memchr",
+ "pkg": "memchr 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "once_cell",
+ "pkg": "once_cell 1.17.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "regex_automata",
+ "pkg": "regex-automata 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "serde",
+ "pkg": "serde 1.0.160 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "alloc",
+ "default",
+ "std",
+ "unicode"
+ ]
+ },
+ {
+ "id": "bytecount 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": [
+ "runtime-dispatch-simd"
+ ]
+ },
+ {
+ "id": "cc 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "jobserver 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "jobserver",
+ "pkg": "jobserver 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "jobserver",
+ "parallel"
+ ]
+ },
+ {
+ "id": "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": []
+ },
+ {
+ "id": "clap 2.34.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "bitflags 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-width 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "bitflags",
+ "pkg": "bitflags 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "strsim",
+ "pkg": "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "textwrap",
+ "pkg": "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "unicode_width",
+ "pkg": "unicode-width 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "strsim",
+ "suggestions"
+ ]
+ },
+ {
+ "id": "crossbeam-channel 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "crossbeam-utils 0.8.15 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "cfg_if",
+ "pkg": "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "crossbeam_utils",
+ "pkg": "crossbeam-utils 0.8.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "crossbeam-utils",
+ "default",
+ "std"
+ ]
+ },
+ {
+ "id": "crossbeam-utils 0.8.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "cfg_if",
+ "pkg": "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "std"
+ ]
+ },
+ {
+ "id": "encoding_rs 0.8.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "cfg_if",
+ "pkg": "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "alloc",
+ "default"
+ ]
+ },
+ {
+ "id": "encoding_rs_io 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "encoding_rs 0.8.32 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "encoding_rs",
+ "pkg": "encoding_rs 0.8.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": []
+ },
+ {
+ "id": "fnv 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": [
+ "default",
+ "std"
+ ]
+ },
+ {
+ "id": "glob 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": []
+ },
+ {
+ "id": "globset 0.4.10 (path+file:///$ROOT$ripgrep/crates/globset)",
+ "dependencies": [
+ "aho-corasick 0.7.20 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bstr 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "fnv 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glob 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_json 1.0.96 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "aho_corasick",
+ "pkg": "aho-corasick 0.7.20 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "bstr",
+ "pkg": "bstr 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "fnv",
+ "pkg": "fnv 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "glob",
+ "pkg": "glob 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": "dev",
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "lazy_static",
+ "pkg": "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": "dev",
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "log",
+ "pkg": "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "regex",
+ "pkg": "regex 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "serde_json",
+ "pkg": "serde_json 1.0.96 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": "dev",
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "default",
+ "log"
+ ]
+ },
+ {
+ "id": "grep 0.2.11 (path+file:///$ROOT$ripgrep/crates/grep)",
+ "dependencies": [
+ "grep-cli 0.1.7 (path+file:///$ROOT$ripgrep/crates/cli)",
+ "grep-matcher 0.1.6 (path+file:///$ROOT$ripgrep/crates/matcher)",
+ "grep-printer 0.1.7 (path+file:///$ROOT$ripgrep/crates/printer)",
+ "grep-regex 0.1.11 (path+file:///$ROOT$ripgrep/crates/regex)",
+ "grep-searcher 0.1.11 (path+file:///$ROOT$ripgrep/crates/searcher)",
+ "termcolor 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "walkdir 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "grep_cli",
+ "pkg": "grep-cli 0.1.7 (path+file:///$ROOT$ripgrep/crates/cli)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "grep_matcher",
+ "pkg": "grep-matcher 0.1.6 (path+file:///$ROOT$ripgrep/crates/matcher)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "grep_printer",
+ "pkg": "grep-printer 0.1.7 (path+file:///$ROOT$ripgrep/crates/printer)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "grep_regex",
+ "pkg": "grep-regex 0.1.11 (path+file:///$ROOT$ripgrep/crates/regex)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "grep_searcher",
+ "pkg": "grep-searcher 0.1.11 (path+file:///$ROOT$ripgrep/crates/searcher)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "termcolor",
+ "pkg": "termcolor 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": "dev",
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "walkdir",
+ "pkg": "walkdir 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": "dev",
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": []
+ },
+ {
+ "id": "grep-cli 0.1.7 (path+file:///$ROOT$ripgrep/crates/cli)",
+ "dependencies": [
+ "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bstr 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "globset 0.4.10 (path+file:///$ROOT$ripgrep/crates/globset)",
+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "termcolor 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "atty",
+ "pkg": "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "bstr",
+ "pkg": "bstr 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "globset",
+ "pkg": "globset 0.4.10 (path+file:///$ROOT$ripgrep/crates/globset)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "lazy_static",
+ "pkg": "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "log",
+ "pkg": "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "regex",
+ "pkg": "regex 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "same_file",
+ "pkg": "same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "termcolor",
+ "pkg": "termcolor 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "winapi_util",
+ "pkg": "winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": "cfg(windows)"
+ }
+ ]
+ }
+ ],
+ "features": []
+ },
+ {
+ "id": "grep-matcher 0.1.6 (path+file:///$ROOT$ripgrep/crates/matcher)",
+ "dependencies": [
+ "memchr 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "memchr",
+ "pkg": "memchr 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "regex",
+ "pkg": "regex 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": "dev",
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": []
+ },
+ {
+ "id": "grep-pcre2 0.1.6 (path+file:///$ROOT$ripgrep/crates/pcre2)",
+ "dependencies": [
+ "grep-matcher 0.1.6 (path+file:///$ROOT$ripgrep/crates/matcher)",
+ "pcre2 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "grep_matcher",
+ "pkg": "grep-matcher 0.1.6 (path+file:///$ROOT$ripgrep/crates/matcher)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "pcre2",
+ "pkg": "pcre2 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": []
+ },
+ {
+ "id": "grep-printer 0.1.7 (path+file:///$ROOT$ripgrep/crates/printer)",
+ "dependencies": [
+ "base64 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bstr 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "grep-matcher 0.1.6 (path+file:///$ROOT$ripgrep/crates/matcher)",
+ "grep-regex 0.1.11 (path+file:///$ROOT$ripgrep/crates/regex)",
+ "grep-searcher 0.1.11 (path+file:///$ROOT$ripgrep/crates/searcher)",
+ "serde 1.0.160 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_json 1.0.96 (registry+https://github.com/rust-lang/crates.io-index)",
+ "termcolor 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "base64",
+ "pkg": "base64 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "bstr",
+ "pkg": "bstr 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "grep_matcher",
+ "pkg": "grep-matcher 0.1.6 (path+file:///$ROOT$ripgrep/crates/matcher)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "grep_regex",
+ "pkg": "grep-regex 0.1.11 (path+file:///$ROOT$ripgrep/crates/regex)",
+ "dep_kinds": [
+ {
+ "kind": "dev",
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "grep_searcher",
+ "pkg": "grep-searcher 0.1.11 (path+file:///$ROOT$ripgrep/crates/searcher)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "serde",
+ "pkg": "serde 1.0.160 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "serde_json",
+ "pkg": "serde_json 1.0.96 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "termcolor",
+ "pkg": "termcolor 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "base64",
+ "default",
+ "serde",
+ "serde1",
+ "serde_json"
+ ]
+ },
+ {
+ "id": "grep-regex 0.1.11 (path+file:///$ROOT$ripgrep/crates/regex)",
+ "dependencies": [
+ "aho-corasick 0.7.20 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bstr 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "grep-matcher 0.1.6 (path+file:///$ROOT$ripgrep/crates/matcher)",
+ "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex-syntax 0.6.29 (registry+https://github.com/rust-lang/crates.io-index)",
+ "thread_local 1.1.7 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "aho_corasick",
+ "pkg": "aho-corasick 0.7.20 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "bstr",
+ "pkg": "bstr 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "grep_matcher",
+ "pkg": "grep-matcher 0.1.6 (path+file:///$ROOT$ripgrep/crates/matcher)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "log",
+ "pkg": "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "regex",
+ "pkg": "regex 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "regex_syntax",
+ "pkg": "regex-syntax 0.6.29 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "thread_local",
+ "pkg": "thread_local 1.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": []
+ },
+ {
+ "id": "grep-searcher 0.1.11 (path+file:///$ROOT$ripgrep/crates/searcher)",
+ "dependencies": [
+ "bstr 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bytecount 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "encoding_rs 0.8.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "encoding_rs_io 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "grep-matcher 0.1.6 (path+file:///$ROOT$ripgrep/crates/matcher)",
+ "grep-regex 0.1.11 (path+file:///$ROOT$ripgrep/crates/regex)",
+ "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "memmap2 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "bstr",
+ "pkg": "bstr 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "bytecount",
+ "pkg": "bytecount 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "encoding_rs",
+ "pkg": "encoding_rs 0.8.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "encoding_rs_io",
+ "pkg": "encoding_rs_io 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "grep_matcher",
+ "pkg": "grep-matcher 0.1.6 (path+file:///$ROOT$ripgrep/crates/matcher)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "grep_regex",
+ "pkg": "grep-regex 0.1.11 (path+file:///$ROOT$ripgrep/crates/regex)",
+ "dep_kinds": [
+ {
+ "kind": "dev",
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "log",
+ "pkg": "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "memmap",
+ "pkg": "memmap2 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "regex",
+ "pkg": "regex 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": "dev",
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "default"
+ ]
+ },
+ {
+ "id": "hermit-abi 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "libc 0.2.142 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "libc",
+ "pkg": "libc 0.2.142 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "default"
+ ]
+ },
+ {
+ "id": "ignore 0.4.20 (path+file:///$ROOT$ripgrep/crates/ignore)",
+ "dependencies": [
+ "crossbeam-channel 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "globset 0.4.10 (path+file:///$ROOT$ripgrep/crates/globset)",
+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "memchr 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "thread_local 1.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "walkdir 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "crossbeam_channel",
+ "pkg": "crossbeam-channel 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": "dev",
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "globset",
+ "pkg": "globset 0.4.10 (path+file:///$ROOT$ripgrep/crates/globset)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "lazy_static",
+ "pkg": "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "log",
+ "pkg": "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "memchr",
+ "pkg": "memchr 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "regex",
+ "pkg": "regex 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "same_file",
+ "pkg": "same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "thread_local",
+ "pkg": "thread_local 1.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "walkdir",
+ "pkg": "walkdir 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "winapi_util",
+ "pkg": "winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": "cfg(windows)"
+ }
+ ]
+ }
+ ],
+ "features": []
+ },
+ {
+ "id": "itoa 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": []
+ },
+ {
+ "id": "jemalloc-sys 0.5.3+5.3.0-patched (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "cc 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.142 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "cc",
+ "pkg": "cc 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": "build",
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "libc",
+ "pkg": "libc 0.2.142 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "background_threads_runtime_support"
+ ]
+ },
+ {
+ "id": "jemallocator 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "jemalloc-sys 0.5.3+5.3.0-patched (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.142 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "jemalloc_sys",
+ "pkg": "jemalloc-sys 0.5.3+5.3.0-patched (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "libc",
+ "pkg": "libc 0.2.142 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "background_threads_runtime_support",
+ "default"
+ ]
+ },
+ {
+ "id": "jobserver 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "libc 0.2.142 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "libc",
+ "pkg": "libc 0.2.142 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": "cfg(unix)"
+ }
+ ]
+ }
+ ],
+ "features": []
+ },
+ {
+ "id": "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": []
+ },
+ {
+ "id": "libc 0.2.142 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": [
+ "default",
+ "std"
+ ]
+ },
+ {
+ "id": "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "cfg_if",
+ "pkg": "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": []
+ },
+ {
+ "id": "memchr 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": [
+ "default",
+ "std"
+ ]
+ },
+ {
+ "id": "memmap2 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "libc 0.2.142 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "libc",
+ "pkg": "libc 0.2.142 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": "cfg(unix)"
+ }
+ ]
+ }
+ ],
+ "features": []
+ },
+ {
+ "id": "once_cell 1.17.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": [
+ "alloc",
+ "default",
+ "race",
+ "std"
+ ]
+ },
+ {
+ "id": "pcre2 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "libc 0.2.142 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "pcre2-sys 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "thread_local 1.1.7 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "libc",
+ "pkg": "libc 0.2.142 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "log",
+ "pkg": "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "pcre2_sys",
+ "pkg": "pcre2-sys 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "thread_local",
+ "pkg": "thread_local 1.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": []
+ },
+ {
+ "id": "pcre2-sys 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "cc 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.142 (registry+https://github.com/rust-lang/crates.io-index)",
+ "pkg-config 0.3.26 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "cc",
+ "pkg": "cc 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": "build",
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "libc",
+ "pkg": "libc 0.2.142 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "pkg_config",
+ "pkg": "pkg-config 0.3.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": "build",
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": []
+ },
+ {
+ "id": "pkg-config 0.3.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": []
+ },
+ {
+ "id": "proc-macro2 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "unicode-ident 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "unicode_ident",
+ "pkg": "unicode-ident 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "default",
+ "proc-macro"
+ ]
+ },
+ {
+ "id": "quote 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "proc-macro2 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "proc_macro2",
+ "pkg": "proc-macro2 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "default",
+ "proc-macro"
+ ]
+ },
+ {
+ "id": "regex 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "aho-corasick 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "memchr 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex-syntax 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "aho_corasick",
+ "pkg": "aho-corasick 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "memchr",
+ "pkg": "memchr 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "regex_syntax",
+ "pkg": "regex-syntax 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "aho-corasick",
+ "default",
+ "memchr",
+ "perf",
+ "perf-cache",
+ "perf-dfa",
+ "perf-inline",
+ "perf-literal",
+ "std",
+ "unicode",
+ "unicode-age",
+ "unicode-bool",
+ "unicode-case",
+ "unicode-gencat",
+ "unicode-perl",
+ "unicode-script",
+ "unicode-segment"
+ ]
+ },
+ {
+ "id": "regex-automata 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": []
+ },
+ {
+ "id": "regex-syntax 0.6.29 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": [
+ "default",
+ "unicode",
+ "unicode-age",
+ "unicode-bool",
+ "unicode-case",
+ "unicode-gencat",
+ "unicode-perl",
+ "unicode-script",
+ "unicode-segment"
+ ]
+ },
+ {
+ "id": "regex-syntax 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": [
+ "default",
+ "std",
+ "unicode",
+ "unicode-age",
+ "unicode-bool",
+ "unicode-case",
+ "unicode-gencat",
+ "unicode-perl",
+ "unicode-script",
+ "unicode-segment"
+ ]
+ },
+ {
+ "id": "ripgrep 13.0.0 (path+file:///$ROOT$ripgrep)",
+ "dependencies": [
+ "bstr 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "clap 2.34.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "grep 0.2.11 (path+file:///$ROOT$ripgrep/crates/grep)",
+ "ignore 0.4.20 (path+file:///$ROOT$ripgrep/crates/ignore)",
+ "jemallocator 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.160 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_derive 1.0.160 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_json 1.0.96 (registry+https://github.com/rust-lang/crates.io-index)",
+ "termcolor 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "walkdir 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "bstr",
+ "pkg": "bstr 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "clap",
+ "pkg": "clap 2.34.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ },
+ {
+ "kind": "build",
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "grep",
+ "pkg": "grep 0.2.11 (path+file:///$ROOT$ripgrep/crates/grep)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "ignore",
+ "pkg": "ignore 0.4.20 (path+file:///$ROOT$ripgrep/crates/ignore)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "jemallocator",
+ "pkg": "jemallocator 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": "cfg(all(target_env = \"musl\", target_pointer_width = \"64\"))"
+ }
+ ]
+ },
+ {
+ "name": "lazy_static",
+ "pkg": "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ },
+ {
+ "kind": "build",
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "log",
+ "pkg": "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "regex",
+ "pkg": "regex 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "serde",
+ "pkg": "serde 1.0.160 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": "dev",
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "serde_derive",
+ "pkg": "serde_derive 1.0.160 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": "dev",
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "serde_json",
+ "pkg": "serde_json 1.0.96 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "termcolor",
+ "pkg": "termcolor 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "walkdir",
+ "pkg": "walkdir 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": "dev",
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": []
+ },
+ {
+ "id": "ryu 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": []
+ },
+ {
+ "id": "same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "winapi_util",
+ "pkg": "winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": "cfg(windows)"
+ }
+ ]
+ }
+ ],
+ "features": []
+ },
+ {
+ "id": "serde 1.0.160 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "serde_derive 1.0.160 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "serde_derive",
+ "pkg": "serde_derive 1.0.160 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "alloc",
+ "default",
+ "derive",
+ "serde_derive",
+ "std"
+ ]
+ },
+ {
+ "id": "serde_derive 1.0.160 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "proc-macro2 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quote 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "syn 2.0.15 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "proc_macro2",
+ "pkg": "proc-macro2 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "quote",
+ "pkg": "quote 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "syn",
+ "pkg": "syn 2.0.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "default"
+ ]
+ },
+ {
+ "id": "serde_json 1.0.96 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "itoa 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ryu 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.160 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "itoa",
+ "pkg": "itoa 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "ryu",
+ "pkg": "ryu 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "serde",
+ "pkg": "serde 1.0.160 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "default",
+ "std"
+ ]
+ },
+ {
+ "id": "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": []
+ },
+ {
+ "id": "syn 2.0.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "proc-macro2 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quote 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-ident 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "proc_macro2",
+ "pkg": "proc-macro2 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "quote",
+ "pkg": "quote 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "unicode_ident",
+ "pkg": "unicode-ident 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "clone-impls",
+ "default",
+ "derive",
+ "parsing",
+ "printing",
+ "proc-macro",
+ "quote"
+ ]
+ },
+ {
+ "id": "termcolor 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "winapi_util",
+ "pkg": "winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": "cfg(windows)"
+ }
+ ]
+ }
+ ],
+ "features": []
+ },
+ {
+ "id": "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "unicode-width 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "unicode_width",
+ "pkg": "unicode-width 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": []
+ },
+ {
+ "id": "thread_local 1.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "once_cell 1.17.1 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "cfg_if",
+ "pkg": "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "once_cell",
+ "pkg": "once_cell 1.17.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": []
+ },
+ {
+ "id": "unicode-ident 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": []
+ },
+ {
+ "id": "unicode-width 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": [
+ "default"
+ ]
+ },
+ {
+ "id": "walkdir 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "same_file",
+ "pkg": "same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "winapi_util",
+ "pkg": "winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": "cfg(windows)"
+ }
+ ]
+ }
+ ],
+ "features": []
+ },
+ {
+ "id": "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "winapi_i686_pc_windows_gnu",
+ "pkg": "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": "i686-pc-windows-gnu"
+ }
+ ]
+ },
+ {
+ "name": "winapi_x86_64_pc_windows_gnu",
+ "pkg": "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": "x86_64-pc-windows-gnu"
+ }
+ ]
+ }
+ ],
+ "features": [
+ "consoleapi",
+ "errhandlingapi",
+ "fileapi",
+ "minwinbase",
+ "minwindef",
+ "processenv",
+ "std",
+ "winbase",
+ "wincon",
+ "winerror",
+ "winnt"
+ ]
+ },
+ {
+ "id": "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": []
+ },
+ {
+ "id": "winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "winapi",
+ "pkg": "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": "cfg(windows)"
+ }
+ ]
+ }
+ ],
+ "features": []
+ },
+ {
+ "id": "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": []
+ }
+ ],
+ "root": "ripgrep 13.0.0 (path+file:///$ROOT$ripgrep)"
+ },
+ "target_directory": "$ROOT$ripgrep/target",
+ "version": 1,
+ "workspace_root": "$ROOT$ripgrep",
+ "metadata": null
+}