aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_assists/src/test_db.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_assists/src/test_db.rs')
-rw-r--r--crates/ra_assists/src/test_db.rs43
1 files changed, 43 insertions, 0 deletions
diff --git a/crates/ra_assists/src/test_db.rs b/crates/ra_assists/src/test_db.rs
new file mode 100644
index 000000000..7b196561a
--- /dev/null
+++ b/crates/ra_assists/src/test_db.rs
@@ -0,0 +1,43 @@
1use std::sync::Arc;
2
3use ra_db::{salsa, CrateId, FileId, FileLoader, FileLoaderDelegate, RelativePath};
4
5#[salsa::database(
6 ra_db::SourceDatabaseExtStorage,
7 ra_db::SourceDatabaseStorage,
8 hir::db::InternDatabaseStorage,
9 hir::db::AstDatabaseStorage,
10 hir::db::DefDatabaseStorage,
11 hir::db::DefDatabase2Storage,
12 hir::db::HirDatabaseStorage
13)]
14#[derive(Debug, Default)]
15pub struct TestDB {
16 runtime: salsa::Runtime<TestDB>,
17}
18
19impl salsa::Database for TestDB {
20 fn salsa_runtime(&self) -> &salsa::Runtime<Self> {
21 &self.runtime
22 }
23}
24
25impl std::panic::RefUnwindSafe for TestDB {}
26
27impl FileLoader for TestDB {
28 fn file_text(&self, file_id: FileId) -> Arc<String> {
29 FileLoaderDelegate(self).file_text(file_id)
30 }
31 fn resolve_relative_path(
32 &self,
33 anchor: FileId,
34 relative_path: &RelativePath,
35 ) -> Option<FileId> {
36 FileLoaderDelegate(self).resolve_relative_path(anchor, relative_path)
37 }
38 fn relevant_crates(&self, file_id: FileId) -> Arc<Vec<CrateId>> {
39 FileLoaderDelegate(self).relevant_crates(file_id)
40 }
41}
42
43impl hir::debug::HirDebugHelper for TestDB {}