mirror of
https://github.com/salsa-rs/salsa.git
synced 2025-02-02 09:46:06 +00:00
replace $crate with salsa in proc macro and make hello_world run
This commit is contained in:
parent
1526206e4b
commit
3b15a09b8e
3 changed files with 17 additions and 15 deletions
|
@ -108,7 +108,7 @@ pub(crate) fn database_storage(input: TokenStream) -> TokenStream {
|
||||||
impl ::salsa::plumbing::DatabaseOps for #database_name {
|
impl ::salsa::plumbing::DatabaseOps for #database_name {
|
||||||
fn for_each_query(
|
fn for_each_query(
|
||||||
&self,
|
&self,
|
||||||
mut op: impl FnMut(&dyn $crate::plumbing::QueryStorageMassOps<Self>),
|
mut op: impl FnMut(&dyn salsa::plumbing::QueryStorageMassOps<Self>),
|
||||||
) {
|
) {
|
||||||
#for_each_ops
|
#for_each_ops
|
||||||
}
|
}
|
||||||
|
@ -123,9 +123,9 @@ pub(crate) fn database_storage(input: TokenStream) -> TokenStream {
|
||||||
{
|
{
|
||||||
for_each_query_desc.extend(quote! {
|
for_each_query_desc.extend(quote! {
|
||||||
__SalsaQueryDescriptorKind::#query_name(key) => {
|
__SalsaQueryDescriptorKind::#query_name(key) => {
|
||||||
let runtime = $crate::Database::salsa_runtime(db);
|
let runtime = salsa::Database::salsa_runtime(db);
|
||||||
let storage = &runtime.storage().#query_name;
|
let storage = &runtime.storage().#query_name;
|
||||||
<_ as $crate::plumbing::QueryStorageOps<#database_name, #query_type>>::maybe_changed_since(
|
<_ as salsa::plumbing::QueryStorageOps<#database_name, #query_type>>::maybe_changed_since(
|
||||||
storage,
|
storage,
|
||||||
db,
|
db,
|
||||||
revision,
|
revision,
|
||||||
|
@ -141,7 +141,7 @@ pub(crate) fn database_storage(input: TokenStream) -> TokenStream {
|
||||||
fn maybe_changed_since(
|
fn maybe_changed_since(
|
||||||
&self,
|
&self,
|
||||||
db: &#database_name,
|
db: &#database_name,
|
||||||
revision: $crate::plumbing::Revision,
|
revision: salsa::plumbing::Revision,
|
||||||
) -> bool {
|
) -> bool {
|
||||||
match &self.kind {
|
match &self.kind {
|
||||||
#for_each_query_desc
|
#for_each_query_desc
|
||||||
|
@ -157,13 +157,13 @@ pub(crate) fn database_storage(input: TokenStream) -> TokenStream {
|
||||||
} in each_query()
|
} in each_query()
|
||||||
{
|
{
|
||||||
for_each_query_table.extend(quote! {
|
for_each_query_table.extend(quote! {
|
||||||
impl $crate::plumbing::GetQueryTable<#query_type> for #database_name {
|
impl salsa::plumbing::GetQueryTable<#query_type> for #database_name {
|
||||||
fn get_query_table(
|
fn get_query_table(
|
||||||
db: &Self,
|
db: &Self,
|
||||||
) -> $crate::QueryTable<'_, Self, #query_type> {
|
) -> salsa::QueryTable<'_, Self, #query_type> {
|
||||||
$crate::QueryTable::new(
|
salsa::QueryTable::new(
|
||||||
db,
|
db,
|
||||||
&$crate::Database::salsa_runtime(db)
|
&salsa::Database::salsa_runtime(db)
|
||||||
.storage()
|
.storage()
|
||||||
.#query_name,
|
.#query_name,
|
||||||
)
|
)
|
||||||
|
@ -171,11 +171,11 @@ pub(crate) fn database_storage(input: TokenStream) -> TokenStream {
|
||||||
|
|
||||||
fn get_query_table_mut(
|
fn get_query_table_mut(
|
||||||
db: &mut Self,
|
db: &mut Self,
|
||||||
) -> $crate::QueryTableMut<'_, Self, #query_type> {
|
) -> salsa::QueryTableMut<'_, Self, #query_type> {
|
||||||
let db = &*db;
|
let db = &*db;
|
||||||
$crate::QueryTableMut::new(
|
salsa::QueryTableMut::new(
|
||||||
db,
|
db,
|
||||||
&$crate::Database::salsa_runtime(db)
|
&salsa::Database::salsa_runtime(db)
|
||||||
.storage()
|
.storage()
|
||||||
.#query_name,
|
.#query_name,
|
||||||
)
|
)
|
||||||
|
@ -183,8 +183,8 @@ pub(crate) fn database_storage(input: TokenStream) -> TokenStream {
|
||||||
|
|
||||||
fn descriptor(
|
fn descriptor(
|
||||||
db: &Self,
|
db: &Self,
|
||||||
key: <#query_type as $crate::Query<Self>>::Key,
|
key: <#query_type as salsa::Query<Self>>::Key,
|
||||||
) -> <Self as $crate::plumbing::DatabaseStorageTypes>::QueryDescriptor {
|
) -> <Self as salsa::plumbing::DatabaseStorageTypes>::QueryDescriptor {
|
||||||
__SalsaQueryDescriptor {
|
__SalsaQueryDescriptor {
|
||||||
kind: __SalsaQueryDescriptorKind::#query_name(key),
|
kind: __SalsaQueryDescriptorKind::#query_name(key),
|
||||||
}
|
}
|
||||||
|
|
|
@ -85,7 +85,9 @@ salsa::database_storage! {
|
||||||
fn main() {
|
fn main() {
|
||||||
let mut db = DatabaseStruct::default();
|
let mut db = DatabaseStruct::default();
|
||||||
|
|
||||||
println!("Initially, the length is {}.", db.length(()));
|
// You cannot access input_string yet, because it does not have a value. If you do, it will
|
||||||
|
// panic. You could create an Option interface by maintaining a HashSet of inserted keys.
|
||||||
|
// println!("Initially, the length is {}.", db.length(()));
|
||||||
|
|
||||||
db.query_mut(InputString)
|
db.query_mut(InputString)
|
||||||
.set((), Arc::new(format!("Hello, world")));
|
.set((), Arc::new(format!("Hello, world")));
|
||||||
|
|
|
@ -500,7 +500,7 @@ where
|
||||||
/// [`salsa::Runtime`]: struct.Runtime.html
|
/// [`salsa::Runtime`]: struct.Runtime.html
|
||||||
/// [hw]: https://github.com/salsa-rs/salsa/tree/master/examples/hello_world
|
/// [hw]: https://github.com/salsa-rs/salsa/tree/master/examples/hello_world
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
macro_rules! database_storage {
|
macro_rules! database_storage_old {
|
||||||
(
|
(
|
||||||
$(#[$attr:meta])*
|
$(#[$attr:meta])*
|
||||||
$v:vis struct $Storage:ident for $Database:ty {
|
$v:vis struct $Storage:ident for $Database:ty {
|
||||||
|
|
Loading…
Reference in a new issue