aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_project_model/src
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2020-03-19 15:00:11 +0000
committerAleksey Kladov <[email protected]>2020-03-19 17:46:30 +0000
commitf840fcb2f525c13809d6a736e434155edf075a06 (patch)
treece3eb047dd9fe9005750a3b1417d95b1aa8fe01e /crates/ra_project_model/src
parent988f1dda6bde576ec2457dd97a7525014609c771 (diff)
Simplify Arena to use a generic index
Diffstat (limited to 'crates/ra_project_model/src')
-rw-r--r--crates/ra_project_model/src/cargo_workspace.rs14
-rw-r--r--crates/ra_project_model/src/sysroot.rs8
2 files changed, 8 insertions, 14 deletions
diff --git a/crates/ra_project_model/src/cargo_workspace.rs b/crates/ra_project_model/src/cargo_workspace.rs
index 43dbd096a..c2857dbfc 100644
--- a/crates/ra_project_model/src/cargo_workspace.rs
+++ b/crates/ra_project_model/src/cargo_workspace.rs
@@ -7,7 +7,7 @@ use std::{
7 7
8use anyhow::{Context, Result}; 8use anyhow::{Context, Result};
9use cargo_metadata::{CargoOpt, Message, MetadataCommand, PackageId}; 9use cargo_metadata::{CargoOpt, Message, MetadataCommand, PackageId};
10use ra_arena::{impl_arena_id, Arena, RawId}; 10use ra_arena::{Arena, Idx};
11use ra_cargo_watch::run_cargo; 11use ra_cargo_watch::run_cargo;
12use ra_db::Edition; 12use ra_db::Edition;
13use rustc_hash::FxHashMap; 13use rustc_hash::FxHashMap;
@@ -22,8 +22,8 @@ use serde::Deserialize;
22/// concepts. 22/// concepts.
23#[derive(Debug, Clone)] 23#[derive(Debug, Clone)]
24pub struct CargoWorkspace { 24pub struct CargoWorkspace {
25 packages: Arena<Package, PackageData>, 25 packages: Arena<PackageData>,
26 targets: Arena<Target, TargetData>, 26 targets: Arena<TargetData>,
27 workspace_root: PathBuf, 27 workspace_root: PathBuf,
28} 28}
29 29
@@ -69,13 +69,9 @@ impl Default for CargoFeatures {
69 } 69 }
70} 70}
71 71
72#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] 72pub type Package = Idx<PackageData>;
73pub struct Package(RawId);
74impl_arena_id!(Package);
75 73
76#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] 74pub type Target = Idx<TargetData>;
77pub struct Target(RawId);
78impl_arena_id!(Target);
79 75
80#[derive(Debug, Clone)] 76#[derive(Debug, Clone)]
81pub struct PackageData { 77pub struct PackageData {
diff --git a/crates/ra_project_model/src/sysroot.rs b/crates/ra_project_model/src/sysroot.rs
index 4ac4fa14d..55ff5ad80 100644
--- a/crates/ra_project_model/src/sysroot.rs
+++ b/crates/ra_project_model/src/sysroot.rs
@@ -7,16 +7,14 @@ use std::{
7 process::{Command, Output}, 7 process::{Command, Output},
8}; 8};
9 9
10use ra_arena::{impl_arena_id, Arena, RawId}; 10use ra_arena::{Arena, Idx};
11 11
12#[derive(Default, Debug, Clone)] 12#[derive(Default, Debug, Clone)]
13pub struct Sysroot { 13pub struct Sysroot {
14 crates: Arena<SysrootCrate, SysrootCrateData>, 14 crates: Arena<SysrootCrateData>,
15} 15}
16 16
17#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] 17pub type SysrootCrate = Idx<SysrootCrateData>;
18pub struct SysrootCrate(RawId);
19impl_arena_id!(SysrootCrate);
20 18
21#[derive(Debug, Clone)] 19#[derive(Debug, Clone)]
22pub struct SysrootCrateData { 20pub struct SysrootCrateData {