]> git.lizzy.rs Git - rust.git/commitdiff
move stuct to code_model_api
authorAleksey Kladov <aleksey.kladov@gmail.com>
Tue, 8 Jan 2019 12:19:37 +0000 (15:19 +0300)
committerAleksey Kladov <aleksey.kladov@gmail.com>
Tue, 8 Jan 2019 12:19:37 +0000 (15:19 +0300)
crates/ra_hir/src/adt.rs
crates/ra_hir/src/code_model_api.rs
crates/ra_hir/src/lib.rs

index b75adda84e70126a1d631a241462aa4b89f3d623..4b35c01b3ff7b4def79e076b3f20735d96db8b47 100644 (file)
@@ -4,41 +4,25 @@
 use ra_syntax::ast::{self, NameOwner, StructFlavor};
 
 use crate::{
-    DefId, Name, AsName,
+    DefId, Name, AsName, Struct,
     db::HirDatabase,
     type_ref::TypeRef,
 };
 
-pub struct Struct {
-    def_id: DefId,
-}
-
 impl Struct {
     pub(crate) fn new(def_id: DefId) -> Self {
         Struct { def_id }
     }
 
-    pub fn def_id(&self) -> DefId {
-        self.def_id
-    }
-
-    pub fn variant_data(&self, db: &impl HirDatabase) -> Cancelable<Arc<VariantData>> {
-        Ok(db.struct_data(self.def_id)?.variant_data.clone())
-    }
-
-    pub fn struct_data(&self, db: &impl HirDatabase) -> Cancelable<Arc<StructData>> {
+    pub(crate) fn struct_data(&self, db: &impl HirDatabase) -> Cancelable<Arc<StructData>> {
         Ok(db.struct_data(self.def_id)?)
     }
-
-    pub fn name(&self, db: &impl HirDatabase) -> Cancelable<Option<Name>> {
-        Ok(db.struct_data(self.def_id)?.name.clone())
-    }
 }
 
 #[derive(Debug, Clone, PartialEq, Eq)]
 pub struct StructData {
-    name: Option<Name>,
-    variant_data: Arc<VariantData>,
+    pub(crate) name: Option<Name>,
+    pub(crate) variant_data: Arc<VariantData>,
 }
 
 impl StructData {
index 43cddb5044e95fa12839fe0830f3a403f090631c..12947da2d308a03747be6dd9d94a890f035a26ac 100644 (file)
@@ -1,8 +1,10 @@
+use std::sync::Arc;
+
 use relative_path::RelativePathBuf;
 use ra_db::{CrateId, Cancelable, FileId};
 use ra_syntax::{ast, TreePtr, SyntaxNode};
 
-use crate::{Name, db::HirDatabase, DefId, Path, PerNs, nameres::ModuleScope};
+use crate::{Name, db::HirDatabase, DefId, Path, PerNs, nameres::ModuleScope, adt::VariantData};
 
 /// hir::Crate describes a single crate. It's the main inteface with which
 /// crate's dependencies interact. Mostly, it should be just a proxy for the
@@ -111,3 +113,21 @@ pub fn problems(
         self.problems_impl(db)
     }
 }
+
+pub struct Struct {
+    pub(crate) def_id: DefId,
+}
+
+impl Struct {
+    pub fn def_id(&self) -> DefId {
+        self.def_id
+    }
+
+    pub fn variant_data(&self, db: &impl HirDatabase) -> Cancelable<Arc<VariantData>> {
+        Ok(self.struct_data(db)?.variant_data.clone())
+    }
+
+    pub fn name(&self, db: &impl HirDatabase) -> Cancelable<Option<Name>> {
+        Ok(self.struct_data(db)?.name.clone())
+    }
+}
index 9f133f1749156ac46306e43aa04a91baaf377ed8..9b66f5bb7c48e3b4df990fee1d8835aa1253a2c6 100644 (file)
@@ -50,7 +50,7 @@ macro_rules! ctry {
     module_tree::ModuleId,
     nameres::{ItemMap, PerNs, Namespace, Resolution},
     function::{Function, FnSignature, FnScopes, ScopesWithSyntaxMapping},
-    adt::{Struct, Enum},
+    adt::Enum,
     ty::Ty,
     impl_block::{ImplBlock, ImplItem},
 };
@@ -60,6 +60,7 @@ macro_rules! ctry {
 pub use self::code_model_api::{
     Crate, CrateDependency,
     Module, ModuleSource, Problem,
+    Struct,
 };
 
 pub enum Def {