});
zakform_fields.extend(quote! {
- pub #id: zakform::fields::FieldText,
+ pub #id: &mut zakform::fields::FieldText,
});
match field.ty {
syn::Type::Path(p) => {
- get_form_struct_fields.extend(quote! {
- #id = zakform::fields::FieldText::new(stringify!(#id)),
- });
-
let s = p.path.segments.last().unwrap();
println!("PATH {:?}", s.ident.to_string());
if s.ident.to_string() == "u32" {
get_form.extend(quote!{
- zf.#id.set_db_type(zakform::fields::FieldDbType::Integer);
+ let mut #id = zakform::fields::FieldText::new(stringify!(#id));
+ #id.set_db_type(zakform::fields::FieldDbType::Integer);
+ f.add_field(Box::new(#id));
});
} else if s.ident.to_string() == "NaiveDate" {
get_form.extend(quote!{
- zf.#id.set_db_type(zakform::fields::FieldDbType::Date);
+ let mut #id = zakform::fields::FieldText::new(stringify!(#id));
+ #id.set_db_type(zakform::fields::FieldDbType::Date);
+ f.add_field(Box::new(#id));
+ });
+ } else {
+ get_form.extend(quote!{
+ let mut #id = zakform::fields::FieldText::new(stringify!(#id));
+ f.add_field(Box::new(#id));
});
}
+ get_form_struct_fields.extend(quote! {
+ #id: f.get_field(stringify!(#id)).unwrap().any().downcast_mut::<zakform::fields::FieldText>().unwrap(),
+ });
+
get_form.extend(quote! {
- f.add_field(Box::new(zf.#id));
+ //f.add_field(Box::new(zf.#id));
});
},
_ => {},
impl #zakform_ident {
pub fn new () -> (#zakform_ident, zakform::form::Form) {
- let mut zf = UserZakForm{
- #get_form_struct_fields
- };
-
let mut f = zakform::form::Form::new();
#get_form
+ let mut zf = UserZakForm{
+ #get_form_struct_fields
+ };
+
(zf, f)
}
}