zuobaoquan / salsa-inline-query

Support inline query definitions in salsa query group traits

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

salsa-inline-query

Support inline query definitions in salsa query group trait

Example

use salsa_inline_query::salsa_inline_query;

#[salsa_inline_query]
#[salsa::query_group(SourceDatabaseStorage)]
trait SourceDatabase: std::fmt::Debug {
    #[salsa::input]
    fn source_text(&self, file_id: u32) -> Arc<String>;
    fn source_len(&self, file_id: u32) -> usize {
        let text = self.source_text(file_id);
        text.len()
    }
}

The above code will be transformed to:

#[salsa::query_group(SourceDatabaseStorage)]
trait SourceDatabase: std::fmt::Debug {
    #[salsa::input]
    fn source_text(&self, file_id: u32) -> Arc<String>;
    fn source_len(&self, file_id: u32) -> usize;
}

fn source_len(__salsa_db: &impl SourceDatabase, file_id: u32) -> usize {
    let text = __salsa_db.source_text(file_id);
    text.len()
}

About

Support inline query definitions in salsa query group traits

License:Apache License 2.0


Languages

Language:Rust 100.0%