31 lines
680 B
Rust
31 lines
680 B
Rust
use std::sync::Arc;
|
|
|
|
use ra_db::{
|
|
FilePosition, FileId, CrateGraph, SourceRoot, SourceRootId, SourceDatabase, salsa,
|
|
};
|
|
use ra_hir::{db, HirInterner};
|
|
|
|
#[salsa::database(
|
|
ra_db::SourceDatabaseStorage,
|
|
db::HirDatabaseStorage,
|
|
db::PersistentHirDatabaseStorage
|
|
)]
|
|
#[derive(Debug)]
|
|
pub(crate) struct BatchDatabase {
|
|
runtime: salsa::Runtime<BatchDatabase>,
|
|
interner: Arc<HirInterner>,
|
|
file_counter: u32,
|
|
}
|
|
|
|
impl salsa::Database for BatchDatabase {
|
|
fn salsa_runtime(&self) -> &salsa::Runtime<BatchDatabase> {
|
|
&self.runtime
|
|
}
|
|
}
|
|
|
|
impl AsRef<HirInterner> for BatchDatabase {
|
|
fn as_ref(&self) -> &HirInterner {
|
|
&self.interner
|
|
}
|
|
}
|