Fix store macro with struct bounds (#4572)

* Fix store macro with struct bounds

* fix where clause
This commit is contained in:
Evan Almloff authored and GitHub committed 2025-08-19 12:19:56 -07:00
1 parent 8a07a24704
commit 6cd4453662
2 files changed
+116 -6

No files matched your search

+6 -6
View File
@@ -121,19 +121,19 @@ fn derive_store_struct(
// Generate the transposed struct definition
let transposed_struct = match &structure.fields {
Fields::Named(_) => {
quote! { #visibility struct #transposed_name #extension_generics #extension_where_clause {#(#transposed_fields),*} }
quote! { #visibility struct #transposed_name #extension_impl_generics #extension_where_clause {#(#transposed_fields),*} }
}
Fields::Unnamed(_) => {
quote! { #visibility struct #transposed_name #extension_generics (#(#transposed_fields),*) #extension_where_clause; }
quote! { #visibility struct #transposed_name #extension_impl_generics (#(#transposed_fields),*) #extension_where_clause; }
}
Fields::Unit => {
quote! {#visibility struct #transposed_name #extension_generics #extension_where_clause;}
quote! {#visibility struct #transposed_name #extension_impl_generics #extension_where_clause;}
}
};
// Expand to the extension trait and its implementation for the store alongside the transposed struct
Ok(quote! {
#visibility trait #extension_trait_name #extension_generics where #extension_where_clause {
#visibility trait #extension_trait_name #extension_impl_generics #extension_where_clause {
#(
#definitions
)*
@@ -358,11 +358,11 @@ fn derive_store_enum(
};
implementations.push(implementation);
let transposed_enum = quote! { #visibility enum #transposed_name #extension_generics #extension_where_clause {#(#transposed_variants),*} };
let transposed_enum = quote! { #visibility enum #transposed_name #extension_impl_generics #extension_where_clause {#(#transposed_variants),*} };
// Expand to the extension trait and its implementation for the store alongside the transposed enum
Ok(quote! {
#visibility trait #extension_trait_name #extension_generics where #extension_where_clause {
#visibility trait #extension_trait_name #extension_impl_generics #extension_where_clause {
#(
#definitions
)*