Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ra-salsa/tests/variadic.rs')
| -rw-r--r-- | crates/ra-salsa/tests/variadic.rs | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/crates/ra-salsa/tests/variadic.rs b/crates/ra-salsa/tests/variadic.rs new file mode 100644 index 0000000000..11a6d13ebe --- /dev/null +++ b/crates/ra-salsa/tests/variadic.rs @@ -0,0 +1,51 @@ +#[ra_salsa::query_group(HelloWorld)] +trait HelloWorldDatabase: ra_salsa::Database { + #[ra_salsa::input] + fn input(&self, a: u32, b: u32) -> u32; + + fn none(&self) -> u32; + + fn one(&self, k: u32) -> u32; + + fn two(&self, a: u32, b: u32) -> u32; + + fn trailing(&self, a: u32, b: u32) -> u32; +} + +fn none(_db: &dyn HelloWorldDatabase) -> u32 { + 22 +} + +fn one(_db: &dyn HelloWorldDatabase, k: u32) -> u32 { + k * 2 +} + +fn two(_db: &dyn HelloWorldDatabase, a: u32, b: u32) -> u32 { + a * b +} + +fn trailing(_db: &dyn HelloWorldDatabase, a: u32, b: u32) -> u32 { + a - b +} + +#[ra_salsa::database(HelloWorld)] +#[derive(Default)] +struct DatabaseStruct { + storage: ra_salsa::Storage<Self>, +} + +impl ra_salsa::Database for DatabaseStruct {} + +#[test] +fn execute() { + let mut db = DatabaseStruct::default(); + + // test what happens with inputs: + db.set_input(1, 2, 3); + assert_eq!(db.input(1, 2), 3); + + assert_eq!(db.none(), 22); + assert_eq!(db.one(11), 22); + assert_eq!(db.two(11, 2), 22); + assert_eq!(db.trailing(24, 2), 22); +} |