From e30c533eb67ba8a24708a94385849854c17e67f9 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 8 Jan 2019 15:19:37 +0300 Subject: move stuct to code_model_api --- crates/ra_hir/src/code_model_api.rs | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'crates/ra_hir/src/code_model_api.rs') diff --git a/crates/ra_hir/src/code_model_api.rs b/crates/ra_hir/src/code_model_api.rs index 43cddb504..12947da2d 100644 --- a/crates/ra_hir/src/code_model_api.rs +++ b/crates/ra_hir/src/code_model_api.rs @@ -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 @@ impl Module { 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> { + Ok(self.struct_data(db)?.variant_data.clone()) + } + + pub fn name(&self, db: &impl HirDatabase) -> Cancelable> { + Ok(self.struct_data(db)?.name.clone()) + } +} -- cgit v1.2.3