rust-analyzer/crates/query-group-macro/tests/multiple_dbs.rs
Chayim Refael Friedman c58ddafe90 Make HirFileId, EditionedFileId and macro files Salsa struct
And make more queries non-interned.

Also flip the default for queries, now the default is to not intern and to intern a query you need to say `invoke_interned`.
2025-04-19 22:10:52 +03:00

25 lines
577 B
Rust

use query_group_macro::query_group;
#[query_group]
pub trait DatabaseOne: salsa::Database {
#[salsa::input]
fn input_string(&self) -> String;
// unadorned query
#[salsa::invoke_interned(length)]
fn length(&self, key: ()) -> usize;
}
#[query_group]
pub trait DatabaseTwo: DatabaseOne {
#[salsa::invoke_interned(second_length)]
fn second_length(&self, key: ()) -> usize;
}
fn length(db: &dyn DatabaseOne, _key: ()) -> usize {
db.input_string().len()
}
fn second_length(db: &dyn DatabaseTwo, _key: ()) -> usize {
db.input_string().len()
}