From 11168c464cd962af3336a2cc68295496066edd6c Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Wed, 28 Nov 2018 03:25:20 +0300 Subject: move db basics to ra_db This should allow to move hir to a separate crate --- crates/ra_analysis/src/input.rs | 75 ----------------------------------------- 1 file changed, 75 deletions(-) delete mode 100644 crates/ra_analysis/src/input.rs (limited to 'crates/ra_analysis/src/input.rs') diff --git a/crates/ra_analysis/src/input.rs b/crates/ra_analysis/src/input.rs deleted file mode 100644 index e601cd58a..000000000 --- a/crates/ra_analysis/src/input.rs +++ /dev/null @@ -1,75 +0,0 @@ -use std::{fmt, sync::Arc}; - -use relative_path::RelativePath; -use rustc_hash::FxHashMap; -use rustc_hash::FxHashSet; -use salsa; - -use crate::FileResolverImp; - -#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] -pub struct FileId(pub u32); - -#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] -pub struct CrateId(pub u32); - -#[derive(Debug, Clone, Default, PartialEq, Eq)] -pub struct CrateGraph { - pub(crate) crate_roots: FxHashMap, -} - -impl CrateGraph { - pub fn new() -> CrateGraph { - CrateGraph::default() - } - pub fn add_crate_root(&mut self, file_id: FileId) -> CrateId { - let crate_id = CrateId(self.crate_roots.len() as u32); - let prev = self.crate_roots.insert(crate_id, file_id); - assert!(prev.is_none()); - crate_id - } -} - -pub trait FileResolver: fmt::Debug + Send + Sync + 'static { - fn file_stem(&self, file_id: FileId) -> String; - fn resolve(&self, file_id: FileId, path: &RelativePath) -> Option; - fn debug_path(&self, _1file_id: FileId) -> Option { - None - } -} - -salsa::query_group! { - pub(crate) trait FilesDatabase: salsa::Database { - fn file_text(file_id: FileId) -> Arc { - type FileTextQuery; - storage input; - } - fn file_source_root(file_id: FileId) -> SourceRootId { - type FileSourceRootQuery; - storage input; - } - fn source_root(id: SourceRootId) -> Arc { - type SourceRootQuery; - storage input; - } - fn libraries() -> Arc> { - type LibrariesQuery; - storage input; - } - fn crate_graph() -> Arc { - type CrateGraphQuery; - storage input; - } - } -} - -#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord)] -pub(crate) struct SourceRootId(pub(crate) u32); - -#[derive(Default, Clone, Debug, PartialEq, Eq)] -pub(crate) struct SourceRoot { - pub(crate) file_resolver: FileResolverImp, - pub(crate) files: FxHashSet, -} - -pub(crate) const WORKSPACE: SourceRootId = SourceRootId(0); -- cgit v1.2.3