From 420b17bb836074f0ca7a7b4a76f00f511c7745c2 Mon Sep 17 00:00:00 2001 From: Manuel Cillero Date: Mon, 14 Nov 2022 00:09:42 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=8F=B7=EF=B8=8FNuevo=20tipo=20"NameValue"?= =?UTF-8?q?=20para=20atributo=20"name"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/base/component/form_element/hidden.rs | 4 +-- .../src/base/component/form_element/input.rs | 4 +-- pagetop/src/html.rs | 9 ++++-- pagetop/src/html/name.rs | 32 +++++++++++++++++++ 4 files changed, 42 insertions(+), 7 deletions(-) create mode 100644 pagetop/src/html/name.rs diff --git a/pagetop/src/base/component/form_element/hidden.rs b/pagetop/src/base/component/form_element/hidden.rs index 88584cdd..2d105bf0 100644 --- a/pagetop/src/base/component/form_element/hidden.rs +++ b/pagetop/src/base/component/form_element/hidden.rs @@ -6,7 +6,7 @@ pub_handle!(COMPONENT_HIDDEN); #[derive(Default)] pub struct Hidden { weight: isize, - name : IdentifierValue, + name : NameValue, value : AttributeValue, } @@ -80,7 +80,7 @@ impl Hidden { // Hidden GETTERS. - pub fn name(&self) -> &IdentifierValue { + pub fn name(&self) -> &NameValue { &self.name } diff --git a/pagetop/src/base/component/form_element/input.rs b/pagetop/src/base/component/form_element/input.rs index 1109ac3b..edbf171a 100644 --- a/pagetop/src/base/component/form_element/input.rs +++ b/pagetop/src/base/component/form_element/input.rs @@ -20,7 +20,7 @@ pub struct Input { renderable : Renderable, classes : Classes, input_type : InputType, - name : IdentifierValue, + name : NameValue, value : AttributeValue, label : AttributeValue, size : Option, @@ -369,7 +369,7 @@ impl Input { &self.input_type } - pub fn name(&self) -> &IdentifierValue { + pub fn name(&self) -> &NameValue { &self.name } diff --git a/pagetop/src/html.rs b/pagetop/src/html.rs index 3551caa2..6792820c 100644 --- a/pagetop/src/html.rs +++ b/pagetop/src/html.rs @@ -8,11 +8,14 @@ pub use assets::Assets; mod favicon; pub use favicon::Favicon; -mod attribute; -pub use attribute::AttributeValue; - mod identifier; pub use identifier::IdentifierValue; +mod name; +pub use name::NameValue; + +mod attribute; +pub use attribute::AttributeValue; + mod classes; pub use classes::{Classes, ClassesOp}; diff --git a/pagetop/src/html/name.rs b/pagetop/src/html/name.rs new file mode 100644 index 00000000..5f8f2195 --- /dev/null +++ b/pagetop/src/html/name.rs @@ -0,0 +1,32 @@ +#[derive(Default)] +pub struct NameValue(String); + +impl NameValue { + pub fn new() -> Self { + NameValue::default() + } + + // NameValue BUILDER. + + pub fn with_value(mut self, value: &str) -> Self { + self.alter_value(value); + self + } + + // NameValue ALTER. + + pub fn alter_value(&mut self, value: &str) -> &mut Self { + self.0 = value.trim().replace(' ', "_"); + self + } + + // NameValue GETTERS. + + pub fn get(&self) -> Option { + if self.0.is_empty() { + None + } else { + Some(self.0.to_owned()) + } + } +}