From a0ab8e0b6d7929b58648f5e6a47f1bc62a3cf536 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Fri, 10 May 2024 09:12:10 +0200 Subject: [PATCH] c2rs: added form struct. --- src/bin/c2rs.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) 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,\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); + } -- 2.49.0