From 9a820dc0ee23051137e4909d4698fe71930c04bc Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sat, 5 Jan 2019 00:02:05 +0300 Subject: move crate to code_model_api --- crates/ra_hir/src/code_model_api.rs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 crates/ra_hir/src/code_model_api.rs (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 new file mode 100644 index 000000000..e8b3a1fb6 --- /dev/null +++ b/crates/ra_hir/src/code_model_api.rs @@ -0,0 +1,26 @@ +use ra_db::{CrateId, Cancelable}; + +use crate::{Module, Name, db::HirDatabase}; + +/// 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 +/// root module. +#[derive(Debug, Clone, PartialEq, Eq, Hash)] +pub struct Crate { + pub(crate) crate_id: CrateId, +} + +#[derive(Debug)] +pub struct CrateDependency { + pub krate: Crate, + pub name: Name, +} + +impl Crate { + pub fn dependencies(&self, db: &impl HirDatabase) -> Vec { + self.dependencies_impl(db) + } + pub fn root_module(&self, db: &impl HirDatabase) -> Cancelable> { + self.root_module_impl(db) + } +} -- cgit v1.2.3