@@ -247,6 +247,8 @@ pub fn derive_query_data_impl(input: TokenStream) -> TokenStream {
247247 }
248248 }
249249
250+
251+
250252 fn provide_extra_access(
251253 state: & mut Self :: State ,
252254 access: & mut #path:: query:: Access ,
@@ -269,6 +271,22 @@ pub fn derive_query_data_impl(input: TokenStream) -> TokenStream {
269271 }
270272 }
271273
274+ impl #user_impl_generics #path:: query:: ReborrowQueryData
275+ for #read_only_struct_name #user_ty_generics #user_where_clauses
276+ // Make these HRTBs with an unused lifetime parameter to allow trivial constraints
277+ // See https://github.com/rust-lang/rust/issues/48214
278+ where #( for <' __a> #field_types: #path:: query:: ReborrowQueryData , ) * {
279+ fn reborrow<' wlong: ' short, ' slong: ' short, ' short>(
280+ item: & ' short mut Self :: Item <' wlong, ' slong>,
281+ ) -> Self :: Item <' short, ' short> {
282+ #read_only_item_struct_name {
283+ #(
284+ #field_members: <#read_only_field_types>:: reborrow( & mut item. #field_members) ,
285+ ) *
286+ }
287+ }
288+ }
289+
272290 impl #user_impl_generics #path:: query:: ReleaseStateQueryData
273291 for #read_only_struct_name #user_ty_generics #user_where_clauses
274292 // Make these HRTBs with an unused lifetime parameter to allow trivial constraints
@@ -334,6 +352,22 @@ pub fn derive_query_data_impl(input: TokenStream) -> TokenStream {
334352 }
335353 }
336354
355+ impl #user_impl_generics #path:: query:: ReborrowQueryData
356+ for #struct_name #user_ty_generics #user_where_clauses
357+ // Make these HRTBs with an unused lifetime parameter to allow trivial constraints
358+ // See https://github.com/rust-lang/rust/issues/48214
359+ where #( for <' __a> #field_types: #path:: query:: ReborrowQueryData , ) * {
360+ fn reborrow<' wlong: ' short, ' slong: ' short, ' short>(
361+ item: & ' short mut Self :: Item <' wlong, ' slong>,
362+ ) -> Self :: Item <' short, ' short> {
363+ #item_struct_name {
364+ #(
365+ #field_members: <#field_types>:: reborrow( & mut item. #field_members) ,
366+ ) *
367+ }
368+ }
369+ }
370+
337371 impl #user_impl_generics #path:: query:: ReleaseStateQueryData
338372 for #struct_name #user_ty_generics #user_where_clauses
339373 // Make these HRTBs with an unused lifetime parameter to allow trivial constraints
0 commit comments