aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_analysis/src/loc2id.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_analysis/src/loc2id.rs')
-rw-r--r--crates/ra_analysis/src/loc2id.rs69
1 files changed, 0 insertions, 69 deletions
diff --git a/crates/ra_analysis/src/loc2id.rs b/crates/ra_analysis/src/loc2id.rs
deleted file mode 100644
index 7956431ab..000000000
--- a/crates/ra_analysis/src/loc2id.rs
+++ /dev/null
@@ -1,69 +0,0 @@
1use ra_db::SourceRootId;
2
3use crate::{
4 hir::{SourceItemId, ModuleId},
5};
6
7use ra_db::{NumericId, LocationIntener};
8
9macro_rules! impl_numeric_id {
10 ($id:ident) => {
11 impl NumericId for $id {
12 fn from_u32(id: u32) -> Self {
13 $id(id)
14 }
15 fn to_u32(self) -> u32 {
16 self.0
17 }
18 }
19 };
20}
21
22#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
23pub(crate) struct FnId(u32);
24impl_numeric_id!(FnId);
25
26impl FnId {
27 pub(crate) fn from_loc(
28 db: &impl AsRef<LocationIntener<SourceItemId, FnId>>,
29 loc: &SourceItemId,
30 ) -> FnId {
31 db.as_ref().loc2id(loc)
32 }
33 pub(crate) fn loc(self, db: &impl AsRef<LocationIntener<SourceItemId, FnId>>) -> SourceItemId {
34 db.as_ref().id2loc(self)
35 }
36}
37
38#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
39pub(crate) struct DefId(u32);
40impl_numeric_id!(DefId);
41
42#[derive(Clone, Debug, PartialEq, Eq, Hash)]
43pub(crate) enum DefLoc {
44 Module {
45 id: ModuleId,
46 source_root: SourceRootId,
47 },
48 Item {
49 source_item_id: SourceItemId,
50 },
51}
52
53impl DefId {
54 pub(crate) fn loc(self, db: &impl AsRef<LocationIntener<DefLoc, DefId>>) -> DefLoc {
55 db.as_ref().id2loc(self)
56 }
57}
58
59impl DefLoc {
60 pub(crate) fn id(&self, db: &impl AsRef<LocationIntener<DefLoc, DefId>>) -> DefId {
61 db.as_ref().loc2id(&self)
62 }
63}
64
65#[derive(Debug, Default)]
66pub(crate) struct IdMaps {
67 pub(crate) fns: LocationIntener<SourceItemId, FnId>,
68 pub(crate) defs: LocationIntener<DefLoc, DefId>,
69}