]> saetta.ns0.it Git - rust/zakform_macro/commitdiff
Setted struct members as zakform members.
authorAndrea Zagli <azagli@libero.it>
Tue, 7 Jul 2026 10:05:46 +0000 (12:05 +0200)
committerAndrea Zagli <azagli@libero.it>
Tue, 7 Jul 2026 10:05:46 +0000 (12:05 +0200)
zakform_macro/src/lib.rs

index e674ac1da959573a8b6b904335031e3752e73a0e..51e2be205087dd44d4cdf7103a61e0a03b50b721 100644 (file)
@@ -42,11 +42,11 @@ pub fn derive_into_hash_map(input: TokenStream) -> TokenStream {
         let id = field.ident.unwrap();
 
                form_fields.extend(quote! {
-            #id: String,
+            pub #id: String,
         });
 
                zakform_fields.extend(quote! {
-            #id: zakform::fields::FieldText,
+            pub #id: zakform::fields::FieldText,
                });
 
                match field.ty {
@@ -57,18 +57,21 @@ pub fn derive_into_hash_map(input: TokenStream) -> TokenStream {
                                        get_form.extend(quote!{
                                                let mut fi = zakform::fields::FieldText::new(stringify!(#id));
                                                fi.set_db_type(zakform::fields::FieldDbType::Integer);
-                                               f.add_field(Box::new(fi));
+                                               self.#id = fi;
+                                               f.add_field(Box::new(self.#id));
                                        });
                                } else if s.ident.to_string() == "NaiveDate" {
                                        get_form.extend(quote!{
                                                let mut fi = zakform::fields::FieldText::new(stringify!(#id));
                                                fi.set_db_type(zakform::fields::FieldDbType::Date);
-                                               f.add_field(Box::new(fi));
+                                               self.#id = fi;
+                                               f.add_field(Box::new(self.#id));
                                        });
                                } else {
                                        get_form.extend(quote!{
                                                let mut fi = zakform::fields::FieldText::new(stringify!(#id));
-                                               f.add_field(Box::new(fi));
+                                               self.#id = fi;
+                                               f.add_field(Box::new(self.#id));
                                        });
                                }
                        },
@@ -85,10 +88,12 @@ pub fn derive_into_hash_map(input: TokenStream) -> TokenStream {
                }
 
                impl #zakform_ident {
-                       pub fn get_form () -> zakform::form::Form {
+                       pub fn get_form (&self) -> (Self, zakform::form::Form) {
                                let mut f = zakform::form::Form::new();
+
                                #get_form
-                               f
+
+                               (&self, f)
                        }
                }
        };