Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ra-salsa/src/storage.rs')
| -rw-r--r-- | crates/ra-salsa/src/storage.rs | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/crates/ra-salsa/src/storage.rs b/crates/ra-salsa/src/storage.rs deleted file mode 100644 index e0acf44041..0000000000 --- a/crates/ra-salsa/src/storage.rs +++ /dev/null @@ -1,53 +0,0 @@ -use crate::{plumbing::DatabaseStorageTypes, Runtime}; -use triomphe::Arc; - -/// Stores the cached results and dependency information for all the queries -/// defined on your salsa database. Also embeds a [`Runtime`] which is used to -/// manage query execution. Every database must include a `storage: -/// Storage<Self>` field. -pub struct Storage<DB: DatabaseStorageTypes> { - query_store: Arc<DB::DatabaseStorage>, - runtime: Runtime, -} - -impl<DB: DatabaseStorageTypes> Default for Storage<DB> { - fn default() -> Self { - Self { query_store: Default::default(), runtime: Default::default() } - } -} - -impl<DB: DatabaseStorageTypes> Storage<DB> { - /// Gives access to the underlying salsa runtime. - pub fn salsa_runtime(&self) -> &Runtime { - &self.runtime - } - - /// Gives access to the underlying salsa runtime. - pub fn salsa_runtime_mut(&mut self) -> &mut Runtime { - &mut self.runtime - } - - /// Access the query storage tables. Not meant to be used directly by end - /// users. - pub fn query_store(&self) -> &DB::DatabaseStorage { - &self.query_store - } - - /// Access the query storage tables. Not meant to be used directly by end - /// users. - pub fn query_store_mut(&mut self) -> (&DB::DatabaseStorage, &mut Runtime) { - (&self.query_store, &mut self.runtime) - } - - /// Returns a "snapshotted" storage, suitable for use in a forked database. - /// This snapshot hold a read-lock on the global state, which means that any - /// attempt to `set` an input will block until the forked runtime is - /// dropped. See `ParallelDatabase::snapshot` for more information. - /// - /// **Warning.** This second handle is intended to be used from a separate - /// thread. Using two database handles from the **same thread** can lead to - /// deadlock. - pub fn snapshot(&self) -> Self { - Storage { query_store: self.query_store.clone(), runtime: self.runtime.snapshot() } - } -} |