Unnamed repository; edit this file 'description' to name the repository.
Add more complex project-model test
Lukas Wirth 2023-04-25
parent 707382c · commit 980c75b
-rw-r--r--crates/project-model/src/tests.rs16
-rw-r--r--crates/project-model/test_data/cargo_dev_dependencies-crate-graph.txt584
-rw-r--r--crates/project-model/test_data/complex-with-dev-deps.json985
3 files changed, 1584 insertions, 1 deletions
diff --git a/crates/project-model/src/tests.rs b/crates/project-model/src/tests.rs
index 3e5234afc8..3c0d53b26b 100644
--- a/crates/project-model/src/tests.rs
+++ b/crates/project-model/src/tests.rs
@@ -5,7 +5,7 @@ use std::{
use base_db::{CrateGraph, FileId, ProcMacroPaths};
use cfg::{CfgAtom, CfgDiff};
-use expect_test::{expect, Expect};
+use expect_test::{expect, expect_file, Expect, ExpectFile};
use paths::{AbsPath, AbsPathBuf};
use serde::de::DeserializeOwned;
@@ -114,6 +114,11 @@ fn check_crate_graph(crate_graph: CrateGraph, expect: Expect) {
replace_root(&mut crate_graph, false);
expect.assert_eq(&crate_graph);
}
+fn check_crate_graph_f(crate_graph: CrateGraph, expect: ExpectFile) {
+ let mut crate_graph = format!("{crate_graph:#?}");
+ replace_root(&mut crate_graph, false);
+ expect.assert_eq(&crate_graph);
+}
#[test]
fn cargo_hello_world_project_model_with_wildcard_overrides() {
@@ -1666,3 +1671,12 @@ 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 cargo_dev_dependencies() {
+ let (crate_graph, _proc_macros) = load_cargo("complex-with-dev-deps.json");
+ check_crate_graph_f(
+ crate_graph,
+ expect_file!["../test_data/cargo_dev_dependencies-crate-graph.txt"],
+ )
+}
diff --git a/crates/project-model/test_data/cargo_dev_dependencies-crate-graph.txt b/crates/project-model/test_data/cargo_dev_dependencies-crate-graph.txt
new file mode 100644
index 0000000000..914c7db038
--- /dev/null
+++ b/crates/project-model/test_data/cargo_dev_dependencies-crate-graph.txt
@@ -0,0 +1,584 @@
+CrateGraph {
+ arena: {
+ CrateId(
+ 0,
+ ): CrateData {
+ root_file_id: FileId(
+ 1,
+ ),
+ edition: Edition2018,
+ version: Some(
+ "0.7.20",
+ ),
+ display_name: Some(
+ CrateDisplayName {
+ crate_name: CrateName(
+ "aho_corasick",
+ ),
+ canonical_name: "aho_corasick",
+ },
+ ),
+ cfg_options: CfgOptions(
+ [
+ "debug_assertions",
+ "feature=default",
+ "feature=std",
+ ],
+ ),
+ potential_cfg_options: Some(
+ CfgOptions(
+ [
+ "debug_assertions",
+ "feature=default",
+ "feature=std",
+ ],
+ ),
+ ),
+ env: Env {
+ entries: {
+ "CARGO_PKG_LICENSE": "",
+ "CARGO_PKG_VERSION_MAJOR": "0",
+ "CARGO_MANIFEST_DIR": "$ROOT$.cargo/registry/src/github.com-1ecc6299db9ec823/aho-corasick-0.7.20",
+ "CARGO_PKG_VERSION": "0.7.20",
+ "CARGO_PKG_AUTHORS": "",
+ "CARGO_CRATE_NAME": "aho_corasick",
+ "CARGO_PKG_LICENSE_FILE": "",
+ "CARGO_PKG_HOMEPAGE": "",
+ "CARGO_PKG_DESCRIPTION": "",
+ "CARGO_PKG_NAME": "aho-corasick",
+ "CARGO_PKG_VERSION_PATCH": "20",
+ "CARGO": "cargo",
+ "CARGO_PKG_REPOSITORY": "",
+ "CARGO_PKG_VERSION_MINOR": "7",
+ "CARGO_PKG_VERSION_PRE": "",
+ },
+ },
+ dependencies: [
+ Dependency {
+ crate_id: CrateId(
+ 2,
+ ),
+ name: CrateName(
+ "memchr",
+ ),
+ prelude: true,
+ },
+ ],
+ origin: Library {
+ repo: Some(
+ "https://github.com/BurntSushi/aho-corasick",
+ ),
+ name: "aho-corasick",
+ },
+ is_proc_macro: false,
+ target_layout: Err(
+ "target_data_layout not loaded",
+ ),
+ channel: None,
+ },
+ CrateId(
+ 1,
+ ): CrateData {
+ root_file_id: FileId(
+ 2,
+ ),
+ edition: Edition2021,
+ version: Some(
+ "0.3.0",
+ ),
+ display_name: Some(
+ CrateDisplayName {
+ crate_name: CrateName(
+ "la_arena",
+ ),
+ canonical_name: "la-arena",
+ },
+ ),
+ cfg_options: CfgOptions(
+ [
+ "debug_assertions",
+ ],
+ ),
+ potential_cfg_options: None,
+ env: Env {
+ entries: {
+ "CARGO_PKG_LICENSE": "",
+ "CARGO_PKG_VERSION_MAJOR": "0",
+ "CARGO_MANIFEST_DIR": "$ROOT$.cargo/registry/src/github.com-1ecc6299db9ec823/la-arena-0.3.0",
+ "CARGO_PKG_VERSION": "0.3.0",
+ "CARGO_PKG_AUTHORS": "",
+ "CARGO_CRATE_NAME": "la_arena",
+ "CARGO_PKG_LICENSE_FILE": "",
+ "CARGO_PKG_HOMEPAGE": "",
+ "CARGO_PKG_DESCRIPTION": "",
+ "CARGO_PKG_NAME": "la-arena",
+ "CARGO_PKG_VERSION_PATCH": "0",
+ "CARGO": "cargo",
+ "CARGO_PKG_REPOSITORY": "",
+ "CARGO_PKG_VERSION_MINOR": "3",
+ "CARGO_PKG_VERSION_PRE": "",
+ },
+ },
+ dependencies: [],
+ origin: Library {
+ repo: Some(
+ "https://github.com/rust-lang/rust-analyzer/tree/master/lib/la-arena",
+ ),
+ name: "la-arena",
+ },
+ is_proc_macro: false,
+ target_layout: Err(
+ "target_data_layout not loaded",
+ ),
+ channel: None,
+ },
+ CrateId(
+ 2,
+ ): CrateData {
+ root_file_id: FileId(
+ 3,
+ ),
+ edition: Edition2018,
+ version: Some(
+ "2.5.0",
+ ),
+ display_name: Some(
+ CrateDisplayName {
+ crate_name: CrateName(
+ "memchr",
+ ),
+ canonical_name: "memchr",
+ },
+ ),
+ cfg_options: CfgOptions(
+ [
+ "debug_assertions",
+ "feature=default",
+ "feature=std",
+ ],
+ ),
+ potential_cfg_options: Some(
+ CfgOptions(
+ [
+ "debug_assertions",
+ "feature=compiler_builtins",
+ "feature=core",
+ "feature=default",
+ "feature=libc",
+ "feature=rustc-dep-of-std",
+ "feature=std",
+ "feature=use_std",
+ ],
+ ),
+ ),
+ env: Env {
+ entries: {
+ "CARGO_PKG_LICENSE": "",
+ "CARGO_PKG_VERSION_MAJOR": "2",
+ "CARGO_MANIFEST_DIR": "$ROOT$.cargo/registry/src/github.com-1ecc6299db9ec823/memchr-2.5.0",
+ "CARGO_PKG_VERSION": "2.5.0",
+ "CARGO_PKG_AUTHORS": "",
+ "CARGO_CRATE_NAME": "memchr",
+ "CARGO_PKG_LICENSE_FILE": "",
+ "CARGO_PKG_HOMEPAGE": "",
+ "CARGO_PKG_DESCRIPTION": "",
+ "CARGO_PKG_NAME": "memchr",
+ "CARGO_PKG_VERSION_PATCH": "0",
+ "CARGO": "cargo",
+ "CARGO_PKG_REPOSITORY": "",
+ "CARGO_PKG_VERSION_MINOR": "5",
+ "CARGO_PKG_VERSION_PRE": "",
+ },
+ },
+ dependencies: [],
+ origin: Library {
+ repo: Some(
+ "https://github.com/BurntSushi/memchr",
+ ),
+ name: "memchr",
+ },
+ is_proc_macro: false,
+ target_layout: Err(
+ "target_data_layout not loaded",
+ ),
+ channel: None,
+ },
+ CrateId(
+ 3,
+ ): CrateData {
+ root_file_id: FileId(
+ 4,
+ ),
+ edition: Edition2021,
+ version: Some(
+ "0.1.0",
+ ),
+ display_name: Some(
+ CrateDisplayName {
+ crate_name: CrateName(
+ "ra_playground",
+ ),
+ canonical_name: "ra-playground",
+ },
+ ),
+ 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$ra-playground",
+ "CARGO_PKG_VERSION": "0.1.0",
+ "CARGO_PKG_AUTHORS": "",
+ "CARGO_CRATE_NAME": "ra_playground",
+ "CARGO_PKG_LICENSE_FILE": "",
+ "CARGO_PKG_HOMEPAGE": "",
+ "CARGO_PKG_DESCRIPTION": "",
+ "CARGO_PKG_NAME": "ra-playground",
+ "CARGO_PKG_VERSION_PATCH": "0",
+ "CARGO": "cargo",
+ "CARGO_PKG_REPOSITORY": "",
+ "CARGO_PKG_VERSION_MINOR": "1",
+ "CARGO_PKG_VERSION_PRE": "",
+ },
+ },
+ dependencies: [
+ Dependency {
+ crate_id: CrateId(
+ 1,
+ ),
+ name: CrateName(
+ "la_arena",
+ ),
+ prelude: true,
+ },
+ Dependency {
+ crate_id: CrateId(
+ 5,
+ ),
+ name: CrateName(
+ "regex",
+ ),
+ prelude: true,
+ },
+ ],
+ origin: Local {
+ repo: None,
+ name: Some(
+ "ra-playground",
+ ),
+ },
+ is_proc_macro: false,
+ target_layout: Err(
+ "target_data_layout not loaded",
+ ),
+ channel: None,
+ },
+ CrateId(
+ 4,
+ ): CrateData {
+ root_file_id: FileId(
+ 5,
+ ),
+ edition: Edition2021,
+ version: Some(
+ "0.1.0",
+ ),
+ display_name: Some(
+ CrateDisplayName {
+ crate_name: CrateName(
+ "ra_playground",
+ ),
+ canonical_name: "ra-playground",
+ },
+ ),
+ 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$ra-playground",
+ "CARGO_PKG_VERSION": "0.1.0",
+ "CARGO_PKG_AUTHORS": "",
+ "CARGO_CRATE_NAME": "ra_playground",
+ "CARGO_PKG_LICENSE_FILE": "",
+ "CARGO_PKG_HOMEPAGE": "",
+ "CARGO_PKG_DESCRIPTION": "",
+ "CARGO_PKG_NAME": "ra-playground",
+ "CARGO_PKG_VERSION_PATCH": "0",
+ "CARGO": "cargo",
+ "CARGO_PKG_REPOSITORY": "",
+ "CARGO_PKG_VERSION_MINOR": "1",
+ "CARGO_PKG_VERSION_PRE": "",
+ },
+ },
+ dependencies: [
+ Dependency {
+ crate_id: CrateId(
+ 3,
+ ),
+ name: CrateName(
+ "ra_playground",
+ ),
+ prelude: true,
+ },
+ Dependency {
+ crate_id: CrateId(
+ 1,
+ ),
+ name: CrateName(
+ "la_arena",
+ ),
+ prelude: true,
+ },
+ Dependency {
+ crate_id: CrateId(
+ 3,
+ ),
+ name: CrateName(
+ "ra_playground",
+ ),
+ prelude: true,
+ },
+ Dependency {
+ crate_id: CrateId(
+ 5,
+ ),
+ name: CrateName(
+ "regex",
+ ),
+ prelude: true,
+ },
+ ],
+ origin: Local {
+ repo: None,
+ name: Some(
+ "ra-playground",
+ ),
+ },
+ is_proc_macro: false,
+ target_layout: Err(
+ "target_data_layout not loaded",
+ ),
+ channel: None,
+ },
+ CrateId(
+ 5,
+ ): CrateData {
+ root_file_id: FileId(
+ 6,
+ ),
+ edition: Edition2018,
+ version: Some(
+ "1.7.3",
+ ),
+ display_name: Some(
+ CrateDisplayName {
+ crate_name: CrateName(
+ "regex",
+ ),
+ canonical_name: "regex",
+ },
+ ),
+ cfg_options: CfgOptions(
+ [
+ "debug_assertions",
+ "feature=aho-corasick",
+ "feature=default",
+ "feature=memchr",
+ "feature=perf",
+ "feature=perf-cache",
+ "feature=perf-dfa",
+ "feature=perf-inline",
+ "feature=perf-literal",
+ "feature=std",
+ "feature=unicode",
+ "feature=unicode-age",
+ "feature=unicode-bool",
+ "feature=unicode-case",
+ "feature=unicode-gencat",
+ "feature=unicode-perl",
+ "feature=unicode-script",
+ "feature=unicode-segment",
+ ],
+ ),
+ potential_cfg_options: Some(
+ CfgOptions(
+ [
+ "debug_assertions",
+ "feature=aho-corasick",
+ "feature=default",
+ "feature=memchr",
+ "feature=pattern",
+ "feature=perf",
+ "feature=perf-cache",
+ "feature=perf-dfa",
+ "feature=perf-inline",
+ "feature=perf-literal",
+ "feature=std",
+ "feature=unicode",
+ "feature=unicode-age",
+ "feature=unicode-bool",
+ "feature=unicode-case",
+ "feature=unicode-gencat",
+ "feature=unicode-perl",
+ "feature=unicode-script",
+ "feature=unicode-segment",
+ "feature=unstable",
+ "feature=use_std",
+ ],
+ ),
+ ),
+ env: Env {
+ entries: {
+ "CARGO_PKG_LICENSE": "",
+ "CARGO_PKG_VERSION_MAJOR": "1",
+ "CARGO_MANIFEST_DIR": "$ROOT$.cargo/registry/src/github.com-1ecc6299db9ec823/regex-1.7.3",
+ "CARGO_PKG_VERSION": "1.7.3",
+ "CARGO_PKG_AUTHORS": "",
+ "CARGO_CRATE_NAME": "regex",
+ "CARGO_PKG_LICENSE_FILE": "",
+ "CARGO_PKG_HOMEPAGE": "",
+ "CARGO_PKG_DESCRIPTION": "",
+ "CARGO_PKG_NAME": "regex",
+ "CARGO_PKG_VERSION_PATCH": "3",
+ "CARGO": "cargo",
+ "CARGO_PKG_REPOSITORY": "",
+ "CARGO_PKG_VERSION_MINOR": "7",
+ "CARGO_PKG_VERSION_PRE": "",
+ },
+ },
+ dependencies: [
+ Dependency {
+ crate_id: CrateId(
+ 0,
+ ),
+ name: CrateName(
+ "aho_corasick",
+ ),
+ prelude: true,
+ },
+ Dependency {
+ crate_id: CrateId(
+ 2,
+ ),
+ name: CrateName(
+ "memchr",
+ ),
+ prelude: true,
+ },
+ Dependency {
+ crate_id: CrateId(
+ 6,
+ ),
+ name: CrateName(
+ "regex_syntax",
+ ),
+ prelude: true,
+ },
+ ],
+ origin: Library {
+ repo: Some(
+ "https://github.com/rust-lang/regex",
+ ),
+ name: "regex",
+ },
+ is_proc_macro: false,
+ target_layout: Err(
+ "target_data_layout not loaded",
+ ),
+ channel: None,
+ },
+ CrateId(
+ 6,
+ ): CrateData {
+ root_file_id: FileId(
+ 7,
+ ),
+ edition: Edition2018,
+ version: Some(
+ "0.6.29",
+ ),
+ display_name: Some(
+ CrateDisplayName {
+ crate_name: CrateName(
+ "regex_syntax",
+ ),
+ canonical_name: "regex-syntax",
+ },
+ ),
+ cfg_options: CfgOptions(
+ [
+ "debug_assertions",
+ "feature=default",
+ "feature=unicode",
+ "feature=unicode-age",
+ "feature=unicode-bool",
+ "feature=unicode-case",
+ "feature=unicode-gencat",
+ "feature=unicode-perl",
+ "feature=unicode-script",
+ "feature=unicode-segment",
+ ],
+ ),
+ potential_cfg_options: Some(
+ CfgOptions(
+ [
+ "debug_assertions",
+ "feature=default",
+ "feature=unicode",
+ "feature=unicode-age",
+ "feature=unicode-bool",
+ "feature=unicode-case",
+ "feature=unicode-gencat",
+ "feature=unicode-perl",
+ "feature=unicode-script",
+ "feature=unicode-segment",
+ ],
+ ),
+ ),
+ env: Env {
+ entries: {
+ "CARGO_PKG_LICENSE": "",
+ "CARGO_PKG_VERSION_MAJOR": "0",
+ "CARGO_MANIFEST_DIR": "$ROOT$.cargo/registry/src/github.com-1ecc6299db9ec823/regex-syntax-0.6.29",
+ "CARGO_PKG_VERSION": "0.6.29",
+ "CARGO_PKG_AUTHORS": "",
+ "CARGO_CRATE_NAME": "regex_syntax",
+ "CARGO_PKG_LICENSE_FILE": "",
+ "CARGO_PKG_HOMEPAGE": "",
+ "CARGO_PKG_DESCRIPTION": "",
+ "CARGO_PKG_NAME": "regex-syntax",
+ "CARGO_PKG_VERSION_PATCH": "29",
+ "CARGO": "cargo",
+ "CARGO_PKG_REPOSITORY": "",
+ "CARGO_PKG_VERSION_MINOR": "6",
+ "CARGO_PKG_VERSION_PRE": "",
+ },
+ },
+ dependencies: [],
+ origin: Library {
+ repo: Some(
+ "https://github.com/rust-lang/regex",
+ ),
+ name: "regex-syntax",
+ },
+ is_proc_macro: false,
+ target_layout: Err(
+ "target_data_layout not loaded",
+ ),
+ channel: None,
+ },
+ },
+} \ No newline at end of file
diff --git a/crates/project-model/test_data/complex-with-dev-deps.json b/crates/project-model/test_data/complex-with-dev-deps.json
new file mode 100644
index 0000000000..6046e16d7d
--- /dev/null
+++ b/crates/project-model/test_data/complex-with-dev-deps.json
@@ -0,0 +1,985 @@
+{
+ "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/github.com-1ecc6299db9ec823/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/github.com-1ecc6299db9ec823/aho-corasick-0.7.20/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Andrew Gallant <[email protected]>"
+ ],
+ "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": "la-arena",
+ "version": "0.3.0",
+ "id": "la-arena 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "Simple index-based arena without deletion.",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "la-arena",
+ "src_path": "$ROOT$.cargo/registry/src/github.com-1ecc6299db9ec823/la-arena-0.3.0/src/lib.rs",
+ "edition": "2021",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ }
+ ],
+ "features": {},
+ "manifest_path": "$ROOT$.cargo/registry/src/github.com-1ecc6299db9ec823/la-arena-0.3.0/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [],
+ "categories": [
+ "data-structures",
+ "memory-management",
+ "rust-patterns"
+ ],
+ "keywords": [],
+ "readme": null,
+ "repository": "https://github.com/rust-lang/rust-analyzer/tree/master/lib/la-arena",
+ "homepage": null,
+ "documentation": "https://docs.rs/la-arena",
+ "edition": "2021",
+ "links": null,
+ "default_run": null,
+ "rust_version": "1.56"
+ },
+ {
+ "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/github.com-1ecc6299db9ec823/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/github.com-1ecc6299db9ec823/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/github.com-1ecc6299db9ec823/memchr-2.5.0/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Andrew Gallant <[email protected]>",
+ "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": "ra-playground",
+ "version": "0.1.0",
+ "id": "ra-playground 0.1.0 (path+file:///$ROOT$ra-playground)",
+ "license": null,
+ "license_file": null,
+ "description": null,
+ "source": null,
+ "dependencies": [
+ {
+ "name": "la-arena",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "*",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "ra-playground",
+ "source": null,
+ "req": "*",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null,
+ "path": "$ROOT$ra-playground"
+ },
+ {
+ "name": "regex",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "*",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "ra-playground",
+ "src_path": "$ROOT$ra-playground/src/lib.rs",
+ "edition": "2021",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "bin"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "ra-playground",
+ "src_path": "$ROOT$ra-playground/src/main.rs",
+ "edition": "2021",
+ "doc": true,
+ "doctest": false,
+ "test": true
+ }
+ ],
+ "features": {},
+ "manifest_path": "$ROOT$ra-playground/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [],
+ "categories": [],
+ "keywords": [],
+ "readme": null,
+ "repository": null,
+ "homepage": null,
+ "documentation": null,
+ "edition": "2021",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "regex",
+ "version": "1.7.3",
+ "id": "regex 1.7.3 (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": "^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": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.6.29",
+ "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/github.com-1ecc6299db9ec823/regex-1.7.3/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "shootout-regex-dna-bytes",
+ "src_path": "$ROOT$.cargo/registry/src/github.com-1ecc6299db9ec823/regex-1.7.3/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$.cargo/registry/src/github.com-1ecc6299db9ec823/regex-1.7.3/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$.cargo/registry/src/github.com-1ecc6299db9ec823/regex-1.7.3/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$.cargo/registry/src/github.com-1ecc6299db9ec823/regex-1.7.3/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$.cargo/registry/src/github.com-1ecc6299db9ec823/regex-1.7.3/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$.cargo/registry/src/github.com-1ecc6299db9ec823/regex-1.7.3/examples/shootout-regex-dna.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "default",
+ "src_path": "$ROOT$.cargo/registry/src/github.com-1ecc6299db9ec823/regex-1.7.3/tests/test_default.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "default-bytes",
+ "src_path": "$ROOT$.cargo/registry/src/github.com-1ecc6299db9ec823/regex-1.7.3/tests/test_default_bytes.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "nfa",
+ "src_path": "$ROOT$.cargo/registry/src/github.com-1ecc6299db9ec823/regex-1.7.3/tests/test_nfa.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "nfa-utf8bytes",
+ "src_path": "$ROOT$.cargo/registry/src/github.com-1ecc6299db9ec823/regex-1.7.3/tests/test_nfa_utf8bytes.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "nfa-bytes",
+ "src_path": "$ROOT$.cargo/registry/src/github.com-1ecc6299db9ec823/regex-1.7.3/tests/test_nfa_bytes.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "backtrack",
+ "src_path": "$ROOT$.cargo/registry/src/github.com-1ecc6299db9ec823/regex-1.7.3/tests/test_backtrack.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "backtrack-utf8bytes",
+ "src_path": "$ROOT$.cargo/registry/src/github.com-1ecc6299db9ec823/regex-1.7.3/tests/test_backtrack_utf8bytes.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "backtrack-bytes",
+ "src_path": "$ROOT$.cargo/registry/src/github.com-1ecc6299db9ec823/regex-1.7.3/tests/test_backtrack_bytes.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "crates-regex",
+ "src_path": "$ROOT$.cargo/registry/src/github.com-1ecc6299db9ec823/regex-1.7.3/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$.cargo/registry/src/github.com-1ecc6299db9ec823/regex-1.7.3/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-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/github.com-1ecc6299db9ec823/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/github.com-1ecc6299db9ec823/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/github.com-1ecc6299db9ec823/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
+ }
+ ],
+ "workspace_members": [
+ "ra-playground 0.1.0 (path+file:///$ROOT$ra-playground)"
+ ],
+ "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": "la-arena 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": []
+ },
+ {
+ "id": "memchr 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [],
+ "deps": [],
+ "features": [
+ "default",
+ "std"
+ ]
+ },
+ {
+ "id": "ra-playground 0.1.0 (path+file:///$ROOT$ra-playground)",
+ "dependencies": [
+ "la-arena 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ra-playground 0.1.0 (path+file:///$ROOT$ra-playground)",
+ "regex 1.7.3 (registry+https://github.com/rust-lang/crates.io-index)"
+ ],
+ "deps": [
+ {
+ "name": "la_arena",
+ "pkg": "la-arena 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "ra_playground",
+ "pkg": "ra-playground 0.1.0 (path+file:///$ROOT$ra-playground)",
+ "dep_kinds": [
+ {
+ "kind": "dev",
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "regex",
+ "pkg": "regex 1.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dep_kinds": [
+ {
+ "kind": "dev",
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": []
+ },
+ {
+ "id": "regex 1.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dependencies": [
+ "aho-corasick 0.7.20 (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.6.29 (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": "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.6.29 (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-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"
+ ]
+ }
+ ],
+ "root": "ra-playground 0.1.0 (path+file:///$ROOT$ra-playground)"
+ },
+ "target_directory": "$ROOT$ra-playground/target",
+ "version": 1,
+ "workspace_root": "$ROOT$ra-playground",
+ "metadata": null
+}