mirror of
https://github.com/joshuadavidthomas/django-language-server.git
synced 2025-09-26 20:09:29 +00:00
31 lines
612 B
Rust
31 lines
612 B
Rust
use crate::meta::ProjectMetadata;
|
|
|
|
#[salsa::db]
|
|
pub trait Db: salsa::Database {
|
|
fn metadata(&self) -> &ProjectMetadata;
|
|
}
|
|
|
|
#[salsa::db]
|
|
#[derive(Clone)]
|
|
pub struct ProjectDatabase {
|
|
storage: salsa::Storage<ProjectDatabase>,
|
|
metadata: ProjectMetadata,
|
|
}
|
|
|
|
impl ProjectDatabase {
|
|
pub fn new(metadata: ProjectMetadata) -> Self {
|
|
let storage = salsa::Storage::new(None);
|
|
|
|
Self { storage, metadata }
|
|
}
|
|
}
|
|
|
|
#[salsa::db]
|
|
impl Db for ProjectDatabase {
|
|
fn metadata(&self) -> &ProjectMetadata {
|
|
&self.metadata
|
|
}
|
|
}
|
|
|
|
#[salsa::db]
|
|
impl salsa::Database for ProjectDatabase {}
|