From: Andrea Zagli <azagli@libero.it> Date: Fri, 10 May 2024 07:12:10 +0000 (+0200) Subject: c2rs: added form struct. X-Git-Url: https://saetta.ns0.it/gitweb?a=commitdiff_plain;h=a0ab8e0b6d7929b58648f5e6a47f1bc62a3cf536;p=rust%2Fzakform c2rs: added form struct. --- diff --git a/src/bin/c2rs.rs b/src/bin/c2rs.rs index 084f727..9ce1c2f 100644 --- a/src/bin/c2rs.rs +++ b/src/bin/c2rs.rs @@ -158,6 +158,9 @@ fn main() { println!("{:?}", form); + writeln!(output, "use serde::{{Serialize, Deserialize}};"); + writeln!(output, ""); + writeln!(output, "use zakform::fields::{{TField, FOption}};"); writeln!(output, ""); @@ -166,9 +169,17 @@ fn main() { writeln!(output, "let mut f = zakform::form::Form::new();"); + let mut struct_form = String::new(); + for e in form.elements { writeln!(output, ""); + if e.etype.as_str() == "zak_form_cgi_form_element_submit" { + struct_form.push_str(&format!("pub {}: Option<String>,\n", e.id)); + } else { + struct_form.push_str(&format!("pub {}: String,\n", e.id)); + } + match e.etype.as_str() { "zak_form_cgi_form_element_text" | "zak_form_cgi_form_element_email" => { writeln!(output, r#"let mut fi = zakform::fields::FieldText::new("{}");"#, e.id); }, @@ -314,4 +325,11 @@ fn main() { writeln!(output, ""); writeln!(output, "f"); writeln!(output, "}}"); + + /* form struct */ + writeln!(output, ""); + writeln!(output, "#[derive(Debug, Serialize, Deserialize)]"); + writeln!(output, "pub struct DomandaForm {{"); + writeln!(output, "{}}}", struct_form); + }