Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ra-salsa/tests/storage_varieties/implementation.rs')
-rw-r--r--crates/ra-salsa/tests/storage_varieties/implementation.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/crates/ra-salsa/tests/storage_varieties/implementation.rs b/crates/ra-salsa/tests/storage_varieties/implementation.rs
new file mode 100644
index 0000000000..39b2befd15
--- /dev/null
+++ b/crates/ra-salsa/tests/storage_varieties/implementation.rs
@@ -0,0 +1,19 @@
+use crate::queries;
+use std::cell::Cell;
+
+#[ra_salsa::database(queries::GroupStruct)]
+#[derive(Default)]
+pub(crate) struct DatabaseImpl {
+ storage: ra_salsa::Storage<Self>,
+ counter: Cell<usize>,
+}
+
+impl queries::Counter for DatabaseImpl {
+ fn increment(&self) -> usize {
+ let v = self.counter.get();
+ self.counter.set(v + 1);
+ v
+ }
+}
+
+impl ra_salsa::Database for DatabaseImpl {}