about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLukas Wirth <lukastw97@gmail.com>2023-04-03 18:10:38 +0200
committerLukas Wirth <lukastw97@gmail.com>2023-04-25 10:49:48 +0200
commit980c75bc91c1d7648498f28e4ba89be520eb6a52 (patch)
treecd3972812a7ab0c825d709090519e1adafda29fc
parent707382c21dff9f7a00dc91fadbd1363838b7d71b (diff)
downloadrust-980c75bc91c1d7648498f28e4ba89be520eb6a52.tar.gz
rust-980c75bc91c1d7648498f28e4ba89be520eb6a52.zip
Add more complex project-model test
-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 3e5234afc81..3c0d53b26b8 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 00000000000..914c7db038c
--- /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 00000000000..6046e16d7d5
--- /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 <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": "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 <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": "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
+}