fix missing paths in ECS SystemParam derive macro v2 (#2550)
This is an updated version of #1434 PR. I've encountered this macro problem while trying to use @woubuc's bevy-event-set crate. Co-authored-by: Piotr Balcer <piotr@balcer.eu>
This commit is contained in:
parent
a023b687dd
commit
b13472dae4
@ -384,7 +384,7 @@ pub fn derive_system_param(input: TokenStream) -> TokenStream {
|
|||||||
|
|
||||||
TokenStream::from(quote! {
|
TokenStream::from(quote! {
|
||||||
impl #impl_generics #path::system::SystemParam for #struct_name#ty_generics #where_clause {
|
impl #impl_generics #path::system::SystemParam for #struct_name#ty_generics #where_clause {
|
||||||
type Fetch = #fetch_struct_name <(#(<#field_types as SystemParam>::Fetch,)*), #punctuated_generic_idents>;
|
type Fetch = #fetch_struct_name <(#(<#field_types as #path::system::SystemParam>::Fetch,)*), #punctuated_generic_idents>;
|
||||||
}
|
}
|
||||||
|
|
||||||
#[doc(hidden)]
|
#[doc(hidden)]
|
||||||
@ -415,7 +415,7 @@ pub fn derive_system_param(input: TokenStream) -> TokenStream {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl #impl_generics #path::system::SystemParamFetch<'a> for #fetch_struct_name <(#(<#field_types as SystemParam>::Fetch,)*), #punctuated_generic_idents> {
|
impl #impl_generics #path::system::SystemParamFetch<'a> for #fetch_struct_name <(#(<#field_types as #path::system::SystemParam>::Fetch,)*), #punctuated_generic_idents> {
|
||||||
type Item = #struct_name#ty_generics;
|
type Item = #struct_name#ty_generics;
|
||||||
unsafe fn get_param(
|
unsafe fn get_param(
|
||||||
state: &'a mut Self,
|
state: &'a mut Self,
|
||||||
@ -424,7 +424,7 @@ pub fn derive_system_param(input: TokenStream) -> TokenStream {
|
|||||||
change_tick: u32,
|
change_tick: u32,
|
||||||
) -> Self::Item {
|
) -> Self::Item {
|
||||||
#struct_name {
|
#struct_name {
|
||||||
#(#fields: <<#field_types as SystemParam>::Fetch as #path::system::SystemParamFetch>::get_param(&mut state.state.#field_indices, system_meta, world, change_tick),)*
|
#(#fields: <<#field_types as #path::system::SystemParam>::Fetch as #path::system::SystemParamFetch>::get_param(&mut state.state.#field_indices, system_meta, world, change_tick),)*
|
||||||
#(#ignored_fields: <#ignored_field_types>::default(),)*
|
#(#ignored_fields: <#ignored_field_types>::default(),)*
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user