diff --git a/components/salsa-macros/src/query_group.rs b/components/salsa-macros/src/query_group.rs index 8ca133c..511ada9 100644 --- a/components/salsa-macros/src/query_group.rs +++ b/components/salsa-macros/src/query_group.rs @@ -373,7 +373,7 @@ pub(crate) fn query_group(args: TokenStream, input: TokenStream) -> TokenStream /// single input. You can also use it to invoke this query, though /// it's more common to use the trait method on the database /// itself. - #trait_vis fn in_db<'me, 'd>(self, db: &'me (#dyn_db + 'd)) -> salsa::QueryTable<'me, Self, (#dyn_db + 'd)> + #trait_vis fn in_db(self, db: &#dyn_db) -> salsa::QueryTable<'_, Self> { salsa::plumbing::get_query_table::<#qt>(db) } diff --git a/src/debug.rs b/src/debug.rs index 3db589f..f5f0697 100644 --- a/src/debug.rs +++ b/src/debug.rs @@ -4,7 +4,7 @@ use crate::durability::Durability; use crate::plumbing::QueryStorageOps; use crate::Query; -use crate::{QueryDb, QueryTable}; +use crate::QueryTable; use std::iter::FromIterator; /// Additional methods on queries that can be used to "peek into" @@ -49,7 +49,7 @@ impl TableEntry { } } -impl<'d, Q> DebugQueryTable for QueryTable<'_, Q, >::DynDb> +impl<'d, Q> DebugQueryTable for QueryTable<'_, Q> where Q: Query, Q::Storage: QueryStorageOps, diff --git a/src/lib.rs b/src/lib.rs index a574341..4f296f5 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -463,22 +463,21 @@ pub trait Query: Debug + Default + Sized + for<'d> QueryDb<'d> { /// Gives access to various less common operations on queries. /// /// [the `query` method]: trait.Database.html#method.query -pub struct QueryTable<'me, Q, DB> +pub struct QueryTable<'me, Q> where Q: Query, - DB: ?Sized, { - db: &'me DB, + db: &'me >::DynDb, storage: &'me Q::Storage, } -impl<'me, 'd, Q> QueryTable<'me, Q, >::DynDb> +impl<'me, Q> QueryTable<'me, Q> where Q: Query, Q::Storage: QueryStorageOps, { /// Constructs a new `QueryTable`. - pub fn new(db: &'me >::DynDb, storage: &'me Q::Storage) -> Self { + pub fn new(db: &'me >::DynDb, storage: &'me Q::Storage) -> Self { Self { db, storage } } diff --git a/src/plumbing.rs b/src/plumbing.rs index e5d4e59..b82ceac 100644 --- a/src/plumbing.rs +++ b/src/plumbing.rs @@ -85,11 +85,8 @@ pub trait QueryFunction: Query { /// Create a query table, which has access to the storage for the query /// and offers methods like `get`. -pub fn get_query_table<'d, 'me, Q>( - db: &'me >::DynDb, -) -> QueryTable<'me, Q, >::DynDb> +pub fn get_query_table<'me, Q>(db: &'me >::DynDb) -> QueryTable<'me, Q> where - 'd: 'me, Q: Query + 'me, Q::Storage: QueryStorageOps, {