mirror of
https://github.com/salsa-rs/salsa.git
synced 2025-02-02 09:46:06 +00:00
add a test
This commit is contained in:
parent
03a27a7054
commit
815bf6003b
1 changed files with 43 additions and 0 deletions
43
salsa-2022-tests/tests/cycles.rs
Normal file
43
salsa-2022-tests/tests/cycles.rs
Normal file
|
@ -0,0 +1,43 @@
|
|||
|
||||
#![allow(warnings)]
|
||||
|
||||
#[salsa::jar(db = Db)]
|
||||
struct Jar(MyInput, memoized_a, memoized_b);
|
||||
|
||||
trait Db: salsa::DbWithJar<Jar> {}
|
||||
|
||||
#[salsa::db(Jar)]
|
||||
#[derive(Default)]
|
||||
struct Database {
|
||||
storage: salsa::Storage<Self>,
|
||||
}
|
||||
|
||||
impl salsa::Database for Database {
|
||||
fn salsa_runtime(&self) -> &salsa::Runtime {
|
||||
self.storage.runtime()
|
||||
}
|
||||
}
|
||||
|
||||
impl Db for Database {}
|
||||
|
||||
#[salsa::tracked(jar = Jar)]
|
||||
struct MyInput {
|
||||
|
||||
}
|
||||
|
||||
#[salsa::tracked(jar = Jar)]
|
||||
fn memoized_a(db: &dyn Db, input: MyInput) -> () {
|
||||
memoized_b(db, input)
|
||||
}
|
||||
|
||||
#[salsa::tracked(jar = Jar)]
|
||||
fn memoized_b(db: &dyn Db, input: MyInput) -> () {
|
||||
memoized_a(db, input)
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn execute() {
|
||||
let mut db = Database::default();
|
||||
let input = MyInput::new(&mut db);
|
||||
memoized_a(&db, input);
|
||||
}
|
Loading…
Reference in a new issue