From: Andrea Zagli Date: Wed, 27 Sep 2023 13:39:54 +0000 (+0200) Subject: Form validate. X-Git-Url: https://saetta.ns0.it/gitweb?a=commitdiff_plain;h=4711e20d94d9ea7de61604808205fc146813fbdd;p=rust%2Fzakform Form validate. --- diff --git a/src/fields.rs b/src/fields.rs index 98615d5..5cd958d 100644 --- a/src/fields.rs +++ b/src/fields.rs @@ -81,16 +81,25 @@ pub trait TField { } fn validate_std(f: &Field) -> String { - let mut s = String::from(""); + } s } diff --git a/src/form.rs b/src/form.rs index a01558c..7257c17 100644 --- a/src/form.rs +++ b/src/form.rs @@ -1,3 +1,5 @@ +use crate::fields; + pub struct Form { fields: Vec>, } @@ -43,4 +45,18 @@ impl Form { Err(()) } + + pub fn validate(&mut self) -> bool { + let mut r = true; + + for f in &mut self.fields { + let msg = f.validate(); + if msg != "" { + r = false; + f.set_help(&msg); + } + } + + r + } } diff --git a/src/validators.rs b/src/validators.rs index 65428a3..23fdc10 100644 --- a/src/validators.rs +++ b/src/validators.rs @@ -34,7 +34,7 @@ impl TValidator for ValidatorNotEmpty { } fn validate(&self, value: &String) -> String { - if value != "" { + if value == "" { self.get_message() } else { String::from("") @@ -43,7 +43,7 @@ impl TValidator for ValidatorNotEmpty { } impl ValidatorNotEmpty { - pub fn new(name: &String) -> Self { + pub fn new(name: &str) -> Self { let mut v: ValidatorNotEmpty = Default::default(); v.validator.name = String::from(name); v.validator.message = String::from("Mandatory field"); @@ -77,7 +77,7 @@ impl TValidator for ValidatorRegex { } impl ValidatorRegex { - pub fn new(name: &String, regex: &str) -> Self { + pub fn new(name: &str, regex: &str) -> Self { let mut v: ValidatorRegex = Default::default(); v.validator.name = String::from(name); v.validator.message = String::from("Invalid value");