From 69bbe79c5037eb3cd00744593d1836e45a6f56e1 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Thu, 22 Aug 2019 14:44:16 +0300 Subject: implement feature flags --- crates/ra_ide_api/src/db.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'crates/ra_ide_api/src/db.rs') diff --git a/crates/ra_ide_api/src/db.rs b/crates/ra_ide_api/src/db.rs index fc8252e4b..f2e6b8f12 100644 --- a/crates/ra_ide_api/src/db.rs +++ b/crates/ra_ide_api/src/db.rs @@ -7,7 +7,7 @@ use ra_db::{ use crate::{ symbol_index::{self, SymbolsDatabase}, - LineIndex, + FeatureFlags, LineIndex, }; #[salsa::database( @@ -22,6 +22,7 @@ use crate::{ #[derive(Debug)] pub(crate) struct RootDatabase { runtime: salsa::Runtime, + pub(crate) feature_flags: Arc, pub(crate) last_gc: time::Instant, pub(crate) last_gc_check: time::Instant, } @@ -46,16 +47,17 @@ impl salsa::Database for RootDatabase { impl Default for RootDatabase { fn default() -> RootDatabase { - RootDatabase::new(None) + RootDatabase::new(None, FeatureFlags::default()) } } impl RootDatabase { - pub fn new(lru_capacity: Option) -> RootDatabase { + pub fn new(lru_capacity: Option, feature_flags: FeatureFlags) -> RootDatabase { let mut db = RootDatabase { runtime: salsa::Runtime::default(), last_gc: time::Instant::now(), last_gc_check: time::Instant::now(), + feature_flags: Arc::new(feature_flags), }; db.set_crate_graph_with_durability(Default::default(), Durability::HIGH); db.set_local_roots_with_durability(Default::default(), Durability::HIGH); @@ -74,6 +76,7 @@ impl salsa::ParallelDatabase for RootDatabase { runtime: self.runtime.snapshot(self), last_gc: self.last_gc, last_gc_check: self.last_gc_check, + feature_flags: Arc::clone(&self.feature_flags), }) } } -- cgit v1.2.3