From 4711e20d94d9ea7de61604808205fc146813fbdd Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Wed, 27 Sep 2023 15:39:54 +0200 Subject: [PATCH] Form validate. --- src/fields.rs | 13 +++++++++++-- src/form.rs | 16 ++++++++++++++++ src/validators.rs | 6 +++--- 3 files changed, 30 insertions(+), 5 deletions(-) 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"); -- 2.49.0