aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/adt.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir/src/adt.rs')
-rw-r--r--crates/ra_hir/src/adt.rs24
1 files changed, 4 insertions, 20 deletions
diff --git a/crates/ra_hir/src/adt.rs b/crates/ra_hir/src/adt.rs
index b75adda84..4b35c01b3 100644
--- a/crates/ra_hir/src/adt.rs
+++ b/crates/ra_hir/src/adt.rs
@@ -4,41 +4,25 @@ use ra_db::Cancelable;
4use ra_syntax::ast::{self, NameOwner, StructFlavor}; 4use ra_syntax::ast::{self, NameOwner, StructFlavor};
5 5
6use crate::{ 6use crate::{
7 DefId, Name, AsName, 7 DefId, Name, AsName, Struct,
8 db::HirDatabase, 8 db::HirDatabase,
9 type_ref::TypeRef, 9 type_ref::TypeRef,
10}; 10};
11 11
12pub struct Struct {
13 def_id: DefId,
14}
15
16impl Struct { 12impl Struct {
17 pub(crate) fn new(def_id: DefId) -> Self { 13 pub(crate) fn new(def_id: DefId) -> Self {
18 Struct { def_id } 14 Struct { def_id }
19 } 15 }
20 16
21 pub fn def_id(&self) -> DefId { 17 pub(crate) fn struct_data(&self, db: &impl HirDatabase) -> Cancelable<Arc<StructData>> {
22 self.def_id
23 }
24
25 pub fn variant_data(&self, db: &impl HirDatabase) -> Cancelable<Arc<VariantData>> {
26 Ok(db.struct_data(self.def_id)?.variant_data.clone())
27 }
28
29 pub fn struct_data(&self, db: &impl HirDatabase) -> Cancelable<Arc<StructData>> {
30 Ok(db.struct_data(self.def_id)?) 18 Ok(db.struct_data(self.def_id)?)
31 } 19 }
32
33 pub fn name(&self, db: &impl HirDatabase) -> Cancelable<Option<Name>> {
34 Ok(db.struct_data(self.def_id)?.name.clone())
35 }
36} 20}
37 21
38#[derive(Debug, Clone, PartialEq, Eq)] 22#[derive(Debug, Clone, PartialEq, Eq)]
39pub struct StructData { 23pub struct StructData {
40 name: Option<Name>, 24 pub(crate) name: Option<Name>,
41 variant_data: Arc<VariantData>, 25 pub(crate) variant_data: Arc<VariantData>,
42} 26}
43 27
44impl StructData { 28impl StructData {