aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide_api/src/db.rs
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2019-06-07 18:49:29 +0100
committerAleksey Kladov <[email protected]>2019-06-12 11:36:24 +0100
commitfed52706def9a9f5d33edc7dd9848a02ae475ba5 (patch)
treebe508002355e87b97bd98a64f1678f431ed4b3ae /crates/ra_ide_api/src/db.rs
parent15668119de40b97011a1f2e2d065d11f25a5833a (diff)
make LRU cache configurable
Diffstat (limited to 'crates/ra_ide_api/src/db.rs')
-rw-r--r--crates/ra_ide_api/src/db.rs12
1 files changed, 9 insertions, 3 deletions
diff --git a/crates/ra_ide_api/src/db.rs b/crates/ra_ide_api/src/db.rs
index cccf0ada4..b3f395502 100644
--- a/crates/ra_ide_api/src/db.rs
+++ b/crates/ra_ide_api/src/db.rs
@@ -41,6 +41,12 @@ impl salsa::Database for RootDatabase {
41 41
42impl Default for RootDatabase { 42impl Default for RootDatabase {
43 fn default() -> RootDatabase { 43 fn default() -> RootDatabase {
44 RootDatabase::new(None)
45 }
46}
47
48impl RootDatabase {
49 pub fn new(lru_capacity: Option<usize>) -> RootDatabase {
44 let mut db = RootDatabase { 50 let mut db = RootDatabase {
45 runtime: salsa::Runtime::default(), 51 runtime: salsa::Runtime::default(),
46 last_gc: time::Instant::now(), 52 last_gc: time::Instant::now(),
@@ -49,9 +55,9 @@ impl Default for RootDatabase {
49 db.set_crate_graph(Default::default()); 55 db.set_crate_graph(Default::default());
50 db.set_local_roots(Default::default()); 56 db.set_local_roots(Default::default());
51 db.set_library_roots(Default::default()); 57 db.set_library_roots(Default::default());
52 let lru_cap = ra_db::DEFAULT_LRU_CAP; 58 let lru_capacity = lru_capacity.unwrap_or(ra_db::DEFAULT_LRU_CAP);
53 db.query_mut(ra_db::ParseQuery).set_lru_capacity(lru_cap); 59 db.query_mut(ra_db::ParseQuery).set_lru_capacity(lru_capacity);
54 db.query_mut(hir::db::ParseMacroQuery).set_lru_capacity(lru_cap); 60 db.query_mut(hir::db::ParseMacroQuery).set_lru_capacity(lru_capacity);
55 db 61 db
56 } 62 }
57} 63}