Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ra-salsa/tests/storage_varieties/queries.rs')
| -rw-r--r-- | crates/ra-salsa/tests/storage_varieties/queries.rs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/crates/ra-salsa/tests/storage_varieties/queries.rs b/crates/ra-salsa/tests/storage_varieties/queries.rs new file mode 100644 index 0000000000..bc9b10ae7b --- /dev/null +++ b/crates/ra-salsa/tests/storage_varieties/queries.rs @@ -0,0 +1,22 @@ +pub(crate) trait Counter: ra_salsa::Database { + fn increment(&self) -> usize; +} + +#[ra_salsa::query_group(GroupStruct)] +pub(crate) trait Database: Counter { + fn memoized(&self) -> usize; + fn volatile(&self) -> usize; +} + +/// Because this query is memoized, we only increment the counter +/// the first time it is invoked. +fn memoized(db: &dyn Database) -> usize { + db.volatile() +} + +/// Because this query is volatile, each time it is invoked, +/// we will increment the counter. +fn volatile(db: &dyn Database) -> usize { + db.salsa_runtime().report_untracked_read(); + db.increment() +} |