🚚 Rename alter_...(...) functions to set_...(...)

This commit is contained in:
Manuel Cillero 2024-07-27 14:17:45 +02:00
parent dfb34d2e36
commit fea6c2f69e
42 changed files with 314 additions and 312 deletions

View file

@ -13,28 +13,54 @@ pub fn html(input: TokenStream) -> TokenStream {
maud::expand(input.into()).into()
}
/// Macro attribute to generate builder methods from `set_` methods.
///
/// This macro takes a method with the `set_` prefix and generates a corresponding method with the
/// `with_` prefix to use in the builder pattern.
///
/// # Panics
///
/// This function will panic if a parameter identifier is not found in the argument list.
///
/// # Examples
///
/// ```
/// #[fn_builder]
/// pub fn set_example(&mut self) -> &mut Self {
/// // implementation
/// }
/// ```
///
/// Will generate:
///
/// ```
/// pub fn with_example(mut self) -> Self {
/// self.set_example();
/// self
/// }
/// ```
#[proc_macro_attribute]
pub fn fn_builder(_: TokenStream, item: TokenStream) -> TokenStream {
let fn_alter = parse_macro_input!(item as ItemFn);
let fn_alter_name = fn_alter.sig.ident.to_string();
let fn_set = parse_macro_input!(item as ItemFn);
let fn_set_name = fn_set.sig.ident.to_string();
if !fn_alter_name.starts_with("alter_") {
if !fn_set_name.starts_with("set_") {
let expanded = quote_spanned! {
fn_alter.sig.ident.span() =>
compile_error!("expected a \"pub fn alter_...() -> &mut Self\" method");
fn_set.sig.ident.span() =>
compile_error!("expected a \"pub fn set_...() -> &mut Self\" method");
};
return expanded.into();
}
let fn_with_name = fn_alter_name.replace("alter_", "with_");
let fn_with_generics = if fn_alter.sig.generics.params.is_empty() {
fn_with_name.to_owned()
let fn_with_name = fn_set_name.replace("set_", "with_");
let fn_with_generics = if fn_set.sig.generics.params.is_empty() {
fn_with_name.clone()
} else {
let g = &fn_alter.sig.generics;
let g = &fn_set.sig.generics;
concat_string!(fn_with_name, quote! { #g }.to_string())
};
let where_clause = fn_alter
let where_clause = fn_set
.sig
.generics
.where_clause
@ -43,7 +69,7 @@ pub fn fn_builder(_: TokenStream, item: TokenStream) -> TokenStream {
concat_string!(quote! { #where_clause }.to_string(), " ")
});
let args: Vec<String> = fn_alter
let args: Vec<String> = fn_set
.sig
.inputs
.iter()
@ -65,17 +91,17 @@ pub fn fn_builder(_: TokenStream, item: TokenStream) -> TokenStream {
#[rustfmt::skip]
let fn_with = parse_str::<ItemFn>(concat_string!("
pub fn ", fn_with_generics, "(mut self, ", args.join(", "), ") -> Self ", where_clause, "{
self.", fn_alter_name, "(", params.join(", "), ");
self.", fn_set_name, "(", params.join(", "), ");
self
}
").as_str()).unwrap();
#[rustfmt::skip]
let fn_alter_doc = concat_string!(
"<p id=\"method.", fn_with_name, "\">",
"Use <code class=\"code-header\"> <span class=\"fn\" href=\"#method.", fn_with_name, "\">",
let fn_set_doc = concat_string!(
"<p id=\"method.", fn_with_name, "\" style=\"margin-bottom: 12px;\">Use ",
"<code class=\"code-header\">pub fn <span class=\"fn\" href=\"#method.", fn_with_name, "\">",
fn_with_name,
"</span>(self, …) -> Self </code> to apply the <a href=\"#method.new\">builder pattern</a>.",
"</span>(self, …) -> Self</code> for the <a href=\"#method.new\">builder pattern</a>.",
"</p>"
);
@ -83,13 +109,13 @@ pub fn fn_builder(_: TokenStream, item: TokenStream) -> TokenStream {
#[doc(hidden)]
#fn_with
#[inline]
#[doc = #fn_alter_doc]
#fn_alter
#[doc = #fn_set_doc]
#fn_set
};
expanded.into()
}
/// Marks async main function as the PageTop entry-point.
/// Marks async main function as the `PageTop` entry-point.
///
/// # Examples
/// ```
@ -109,7 +135,7 @@ pub fn main(_: TokenStream, item: TokenStream) -> TokenStream {
output
}
/// Marks async test functions to use the PageTop entry-point.
/// Marks async test functions to use the `PageTop` entry-point.
///
/// # Examples
/// ```
@ -143,7 +169,7 @@ pub fn derive_component_classes(input: TokenStream) -> TokenStream {
let input = parse_macro_input!(input as DeriveInput);
let name = &input.ident;
let fn_alter_doc = concat_string!(
let fn_set_doc = concat_string!(
"<p id=\"method.with_classes\">",
"Use <code class=\"code-header\">",
" <span class=\"fn\" href=\"#method.with_classes\">with_classes</span>(self, …) -> Self ",
@ -154,9 +180,9 @@ pub fn derive_component_classes(input: TokenStream) -> TokenStream {
let expanded = quote! {
impl ComponentClasses for #name {
#[inline]
#[doc = #fn_alter_doc]
fn alter_classes(&mut self, op: ClassesOp, classes: impl Into<String>) -> &mut Self {
self.classes.alter_value(op, classes);
#[doc = #fn_set_doc]
fn set_classes(&mut self, op: ClassesOp, classes: impl Into<String>) -> &mut Self {
self.classes.set_value(op, classes);
self
}

View file

@ -34,7 +34,7 @@ impl<C: ComponentTrait> AfterPrepare<C> {
}
pub fn filter_by_referer_id(mut self, id: impl Into<String>) -> Self {
self.referer_id.alter_value(id);
self.referer_id.set_value(id);
self
}

View file

@ -34,7 +34,7 @@ impl<C: ComponentTrait> BeforePrepare<C> {
}
pub fn filter_by_referer_id(mut self, id: impl Into<String>) -> Self {
self.referer_id.alter_value(id);
self.referer_id.set_value(id);
self
}

View file

@ -34,7 +34,7 @@ impl<C: ComponentTrait> IsRenderable<C> {
}
pub fn filter_by_referer_id(mut self, id: impl Into<String>) -> Self {
self.referer_id.alter_value(id);
self.referer_id.set_value(id);
self
}

View file

@ -11,24 +11,24 @@ pub const PARAM_BASE_INCLUDE_MENU_ASSETS: &str = "base.include.menu";
pub(crate) fn add_base_assets(cx: &mut Context) {
let weight = cx.get_param::<Weight>(PARAM_BASE_WEIGHT).unwrap_or(-90);
cx.alter_assets(AssetsOp::AddStyleSheet(
cx.set_assets(AssetsOp::AddStyleSheet(
StyleSheet::at("/base/css/root.css")
.with_version("0.0.1")
.with_weight(weight),
))
.alter_assets(AssetsOp::AddStyleSheet(
.set_assets(AssetsOp::AddStyleSheet(
StyleSheet::at("/base/css/looks.css")
.with_version("0.0.1")
.with_weight(weight),
))
.alter_assets(AssetsOp::AddStyleSheet(
.set_assets(AssetsOp::AddStyleSheet(
StyleSheet::at("/base/css/buttons.css")
.with_version("0.0.2")
.with_weight(weight),
));
if let Ok(true) = cx.get_param::<bool>(PARAM_BASE_INCLUDE_ICONS) {
cx.alter_assets(AssetsOp::AddStyleSheet(
cx.set_assets(AssetsOp::AddStyleSheet(
StyleSheet::at("/base/css/icons.min.css")
.with_version("1.11.1")
.with_weight(weight),
@ -36,7 +36,7 @@ pub(crate) fn add_base_assets(cx: &mut Context) {
}
if let Ok(true) = cx.get_param::<bool>(PARAM_BASE_INCLUDE_FLEX_ASSETS) {
cx.alter_assets(AssetsOp::AddStyleSheet(
cx.set_assets(AssetsOp::AddStyleSheet(
StyleSheet::at("/base/css/flex.css")
.with_version("0.0.1")
.with_weight(weight),
@ -44,12 +44,12 @@ pub(crate) fn add_base_assets(cx: &mut Context) {
}
if let Ok(true) = cx.get_param::<bool>(PARAM_BASE_INCLUDE_MENU_ASSETS) {
cx.alter_assets(AssetsOp::AddStyleSheet(
cx.set_assets(AssetsOp::AddStyleSheet(
StyleSheet::at("/base/css/menu.css")
.with_version("0.0.1")
.with_weight(weight),
))
.alter_assets(AssetsOp::AddJavaScript(
.set_assets(AssetsOp::AddJavaScript(
JavaScript::at("/base/js/menu.js")
.with_version("0.0.1")
.with_weight(weight),

View file

@ -18,7 +18,7 @@ impl Fluent {
Fluent(l10n)
}
pub fn alter_l10n(&mut self, l10n: L10n) -> &mut Self {
pub fn set_l10n(&mut self, l10n: L10n) -> &mut Self {
self.0 = l10n;
self
}

View file

@ -18,7 +18,7 @@ impl Html {
Html(html)
}
pub fn alter_html(&mut self, html: Markup) -> &mut Self {
pub fn set_html(&mut self, html: Markup) -> &mut Self {
self.0 = html;
self
}

View file

@ -20,7 +20,7 @@ impl ComponentTrait for Block {
}
fn setup_before_prepare(&mut self, _cx: &mut Context) {
self.alter_classes(
self.set_classes(
ClassesOp::Prepend,
["block__container".to_string(), self.style().to_string()].join(" "),
);
@ -50,32 +50,32 @@ impl Block {
// Block BUILDER.
#[fn_builder]
pub fn alter_id(&mut self, id: impl Into<String>) -> &mut Self {
self.id.alter_value(id);
pub fn set_id(&mut self, id: impl Into<String>) -> &mut Self {
self.id.set_value(id);
self
}
#[fn_builder]
pub fn alter_style(&mut self, style: StyleBase) -> &mut Self {
pub fn set_style(&mut self, style: StyleBase) -> &mut Self {
self.style = style;
self
}
#[fn_builder]
pub fn alter_title(&mut self, title: L10n) -> &mut Self {
self.title.alter_value(title);
pub fn set_title(&mut self, title: L10n) -> &mut Self {
self.title.set_value(title);
self
}
#[fn_builder]
pub fn alter_components(&mut self, op: AnyOp) -> &mut Self {
self.mixed.alter_value(op);
pub fn set_components(&mut self, op: AnyOp) -> &mut Self {
self.mixed.set_value(op);
self
}
#[rustfmt::skip]
pub fn add_component(mut self, component: impl ComponentTrait) -> Self {
self.mixed.alter_value(AnyOp::Add(AnyComponent::with(component)));
self.mixed.set_value(AnyOp::Add(AnyComponent::with(component)));
self
}

View file

@ -53,31 +53,31 @@ impl Branding {
// Branding BUILDER.
#[fn_builder]
pub fn alter_id(&mut self, id: impl Into<String>) -> &mut Self {
self.id.alter_value(id);
pub fn set_id(&mut self, id: impl Into<String>) -> &mut Self {
self.id.set_value(id);
self
}
#[fn_builder]
pub fn alter_app_name(&mut self, app_name: impl Into<String>) -> &mut Self {
pub fn set_app_name(&mut self, app_name: impl Into<String>) -> &mut Self {
self.app_name = app_name.into();
self
}
#[fn_builder]
pub fn alter_slogan(&mut self, slogan: L10n) -> &mut Self {
self.slogan.alter_value(slogan);
pub fn set_slogan(&mut self, slogan: L10n) -> &mut Self {
self.slogan.set_value(slogan);
self
}
#[fn_builder]
pub fn alter_logo(&mut self, logo: Option<Image>) -> &mut Self {
self.logo.alter_value(logo);
pub fn set_logo(&mut self, logo: Option<Image>) -> &mut Self {
self.logo.set_value(logo);
self
}
#[fn_builder]
pub fn alter_frontpage(&mut self, frontpage: FnContextualPath) -> &mut Self {
pub fn set_frontpage(&mut self, frontpage: FnContextualPath) -> &mut Self {
self.frontpage = frontpage;
self
}

View file

@ -34,7 +34,7 @@ impl ComponentTrait for Button {
}
fn setup_before_prepare(&mut self, _cx: &mut Context) {
self.alter_classes(
self.set_classes(
ClassesOp::Prepend,
[
"button__tap".to_string(),
@ -48,11 +48,11 @@ impl ComponentTrait for Button {
#[rustfmt::skip]
fn prepare_component(&self, cx: &mut Context) -> PrepareMarkup {
let target = match &self.target() {
ButtonTarget::Blank => Some("_blank"),
ButtonTarget::Parent => Some("_parent"),
ButtonTarget::Top => Some("_top"),
ButtonTarget::Default => None,
ButtonTarget::Blank => Some("_blank"),
ButtonTarget::Parent => Some("_parent"),
ButtonTarget::Top => Some("_top"),
ButtonTarget::Context(name) => Some(name.as_str()),
_ => None,
};
PrepareMarkup::With(html! {
a
@ -77,49 +77,49 @@ impl Button {
// Button BUILDER.
#[fn_builder]
pub fn alter_id(&mut self, id: impl Into<String>) -> &mut Self {
self.id.alter_value(id);
pub fn set_id(&mut self, id: impl Into<String>) -> &mut Self {
self.id.set_value(id);
self
}
#[fn_builder]
pub fn alter_style(&mut self, style: StyleBase) -> &mut Self {
pub fn set_style(&mut self, style: StyleBase) -> &mut Self {
self.style = style;
self
}
#[fn_builder]
pub fn alter_font_size(&mut self, font_size: FontSize) -> &mut Self {
pub fn set_font_size(&mut self, font_size: FontSize) -> &mut Self {
self.font_size = font_size;
self
}
#[fn_builder]
pub fn alter_left_icon(&mut self, icon: Option<Icon>) -> &mut Self {
self.left_icon.alter_value(icon);
pub fn set_left_icon(&mut self, icon: Option<Icon>) -> &mut Self {
self.left_icon.set_value(icon);
self
}
#[fn_builder]
pub fn alter_right_icon(&mut self, icon: Option<Icon>) -> &mut Self {
self.right_icon.alter_value(icon);
pub fn set_right_icon(&mut self, icon: Option<Icon>) -> &mut Self {
self.right_icon.set_value(icon);
self
}
#[fn_builder]
pub fn alter_href(&mut self, href: impl Into<String>) -> &mut Self {
self.href.alter_value(href);
pub fn set_href(&mut self, href: impl Into<String>) -> &mut Self {
self.href.set_value(href);
self
}
#[fn_builder]
pub fn alter_html(&mut self, html: L10n) -> &mut Self {
self.html.alter_value(html);
pub fn set_html(&mut self, html: L10n) -> &mut Self {
self.html.set_value(html);
self
}
#[fn_builder]
pub fn alter_target(&mut self, target: ButtonTarget) -> &mut Self {
pub fn set_target(&mut self, target: ButtonTarget) -> &mut Self {
self.target = target;
self
}

View file

@ -35,7 +35,7 @@ impl ComponentTrait for Container {
}
fn setup_before_prepare(&mut self, cx: &mut Context) {
self.alter_classes(
self.set_classes(
ClassesOp::Prepend,
[
"flex__container".to_string(),
@ -134,49 +134,49 @@ impl Container {
// Container BUILDER.
#[fn_builder]
pub fn alter_id(&mut self, id: impl Into<String>) -> &mut Self {
self.id.alter_value(id);
pub fn set_id(&mut self, id: impl Into<String>) -> &mut Self {
self.id.set_value(id);
self
}
#[fn_builder]
pub fn alter_direction(&mut self, direction: flex::Direction) -> &mut Self {
pub fn set_direction(&mut self, direction: flex::Direction) -> &mut Self {
self.direction = direction;
self
}
#[fn_builder]
pub fn alter_wrap(&mut self, wrap: flex::Wrap) -> &mut Self {
pub fn set_wrap(&mut self, wrap: flex::Wrap) -> &mut Self {
self.flex_wrap = wrap;
self
}
#[fn_builder]
pub fn alter_justify(&mut self, justify: flex::Justify) -> &mut Self {
pub fn set_justify(&mut self, justify: flex::Justify) -> &mut Self {
self.flex_justify = justify;
self
}
#[fn_builder]
pub fn alter_align(&mut self, align: flex::Align) -> &mut Self {
pub fn set_align(&mut self, align: flex::Align) -> &mut Self {
self.flex_align = align;
self
}
#[fn_builder]
pub fn alter_gap(&mut self, gap: flex::Gap) -> &mut Self {
pub fn set_gap(&mut self, gap: flex::Gap) -> &mut Self {
self.flex_gap = gap;
self
}
#[fn_builder]
pub fn alter_items(&mut self, op: TypedOp<flex::Item>) -> &mut Self {
self.items.alter_typed(op);
pub fn set_items(&mut self, op: TypedOp<flex::Item>) -> &mut Self {
self.items.set_typed(op);
self
}
pub fn add_item(mut self, item: flex::Item) -> Self {
self.items.alter_value(AnyOp::Add(AnyComponent::with(item)));
self.items.set_value(AnyOp::Add(AnyComponent::with(item)));
self
}

View file

@ -33,7 +33,7 @@ impl ComponentTrait for Item {
}
fn setup_before_prepare(&mut self, _cx: &mut Context) {
self.alter_classes(
self.set_classes(
ClassesOp::Prepend,
[
"flex__item".to_string(),
@ -119,19 +119,19 @@ impl Item {
// Item BUILDER.
#[fn_builder]
pub fn alter_id(&mut self, id: impl Into<String>) -> &mut Self {
self.id.alter_value(id);
pub fn set_id(&mut self, id: impl Into<String>) -> &mut Self {
self.id.set_value(id);
self
}
#[fn_builder]
pub fn alter_grow(&mut self, grow: flex::Grow) -> &mut Self {
pub fn set_grow(&mut self, grow: flex::Grow) -> &mut Self {
self.flex_grow = grow;
self
}
#[fn_builder]
pub fn alter_shrink(&mut self, shrink: flex::Shrink) -> &mut Self {
pub fn set_shrink(&mut self, shrink: flex::Shrink) -> &mut Self {
self.flex_shrink = shrink;
self
}
@ -139,32 +139,32 @@ impl Item {
#[fn_builder]
// Ensures the item occupies the exact specified width, neither growing nor shrinking,
// regardless of the available space in the container or the size of other items.
pub fn alter_size(&mut self, size: flex::Size) -> &mut Self {
pub fn set_size(&mut self, size: flex::Size) -> &mut Self {
self.flex_size = size;
self
}
#[fn_builder]
pub fn alter_offset(&mut self, offset: flex::Offset) -> &mut Self {
pub fn set_offset(&mut self, offset: flex::Offset) -> &mut Self {
self.flex_offset = offset;
self
}
#[fn_builder]
pub fn alter_align(&mut self, align: flex::Align) -> &mut Self {
pub fn set_align(&mut self, align: flex::Align) -> &mut Self {
self.flex_align = align;
self
}
#[fn_builder]
pub fn alter_components(&mut self, op: AnyOp) -> &mut Self {
self.mixed.alter_value(op);
pub fn set_components(&mut self, op: AnyOp) -> &mut Self {
self.mixed.set_value(op);
self
}
#[rustfmt::skip]
pub fn add_component(mut self, component: impl ComponentTrait) -> Self {
self.mixed.alter_value(AnyOp::Add(AnyComponent::with(component)));
self.mixed.set_value(AnyOp::Add(AnyComponent::with(component)));
self
}

View file

@ -38,7 +38,7 @@ impl ComponentTrait for ActionButton {
}
fn setup_before_prepare(&mut self, _cx: &mut Context) {
self.alter_classes(
self.set_classes(
ClassesOp::Prepend,
[
"button__tap".to_string(),
@ -91,56 +91,52 @@ impl ActionButton {
// Button BUILDER.
#[fn_builder]
pub fn alter_style(&mut self, style: StyleBase) -> &mut Self {
pub fn set_style(&mut self, style: StyleBase) -> &mut Self {
self.style = style;
self
}
#[fn_builder]
pub fn alter_font_size(&mut self, font_size: FontSize) -> &mut Self {
pub fn set_font_size(&mut self, font_size: FontSize) -> &mut Self {
self.font_size = font_size;
self
}
#[fn_builder]
pub fn alter_left_icon(&mut self, icon: Option<Icon>) -> &mut Self {
self.left_icon.alter_value(icon);
pub fn set_left_icon(&mut self, icon: Option<Icon>) -> &mut Self {
self.left_icon.set_value(icon);
self
}
#[fn_builder]
pub fn alter_right_icon(&mut self, icon: Option<Icon>) -> &mut Self {
self.right_icon.alter_value(icon);
pub fn set_right_icon(&mut self, icon: Option<Icon>) -> &mut Self {
self.right_icon.set_value(icon);
self
}
#[fn_builder]
pub fn alter_name(&mut self, name: &str) -> &mut Self {
self.name.alter_value(name);
pub fn set_name(&mut self, name: &str) -> &mut Self {
self.name.set_value(name);
self
}
#[fn_builder]
pub fn alter_value(&mut self, value: L10n) -> &mut Self {
self.value.alter_value(value);
pub fn set_value(&mut self, value: L10n) -> &mut Self {
self.value.set_value(value);
self
}
#[fn_builder]
pub fn alter_autofocus(&mut self, toggle: bool) -> &mut Self {
self.autofocus.alter_value(match toggle {
true => "autofocus",
false => "",
});
pub fn set_autofocus(&mut self, toggle: bool) -> &mut Self {
self.autofocus
.set_value(if toggle { "autofocus" } else { "" });
self
}
#[fn_builder]
pub fn alter_disabled(&mut self, toggle: bool) -> &mut Self {
self.disabled.alter_value(match toggle {
true => "disabled",
false => "",
});
pub fn set_disabled(&mut self, toggle: bool) -> &mut Self {
self.disabled
.set_value(if toggle { "disabled" } else { "" });
self
}

View file

@ -59,77 +59,66 @@ impl Date {
// Date BUILDER.
#[fn_builder]
pub fn alter_name(&mut self, name: &str) -> &mut Self {
self.name.alter_value(name);
pub fn set_name(&mut self, name: &str) -> &mut Self {
self.name.set_value(name);
self
}
#[fn_builder]
pub fn alter_value(&mut self, value: &str) -> &mut Self {
self.value.alter_value(value);
pub fn set_value(&mut self, value: &str) -> &mut Self {
self.value.set_value(value);
self
}
#[fn_builder]
pub fn alter_label(&mut self, label: &str) -> &mut Self {
self.label.alter_value(label);
pub fn set_label(&mut self, label: &str) -> &mut Self {
self.label.set_value(label);
self
}
#[fn_builder]
pub fn alter_placeholder(&mut self, placeholder: &str) -> &mut Self {
self.placeholder.alter_value(placeholder);
pub fn set_placeholder(&mut self, placeholder: &str) -> &mut Self {
self.placeholder.set_value(placeholder);
self
}
#[fn_builder]
pub fn alter_autofocus(&mut self, toggle: bool) -> &mut Self {
self.autofocus.alter_value(match toggle {
true => "autofocus",
false => "",
});
pub fn set_autofocus(&mut self, toggle: bool) -> &mut Self {
self.autofocus
.set_value(if toggle { "autofocus" } else { "" });
self
}
#[fn_builder]
pub fn alter_autocomplete(&mut self, toggle: bool) -> &mut Self {
self.autocomplete.alter_value(match toggle {
true => "",
false => "off",
});
pub fn set_autocomplete(&mut self, toggle: bool) -> &mut Self {
self.autocomplete.set_value(if toggle { "" } else { "off" });
self
}
#[fn_builder]
pub fn alter_disabled(&mut self, toggle: bool) -> &mut Self {
self.disabled.alter_value(match toggle {
true => "disabled",
false => "",
});
pub fn set_disabled(&mut self, toggle: bool) -> &mut Self {
self.disabled
.set_value(if toggle { "disabled" } else { "" });
self
}
#[fn_builder]
pub fn alter_readonly(&mut self, toggle: bool) -> &mut Self {
self.readonly.alter_value(match toggle {
true => "readonly",
false => "",
});
pub fn set_readonly(&mut self, toggle: bool) -> &mut Self {
self.readonly
.set_value(if toggle { "readonly" } else { "" });
self
}
#[fn_builder]
pub fn alter_required(&mut self, toggle: bool) -> &mut Self {
self.required.alter_value(match toggle {
true => "required",
false => "",
});
pub fn set_required(&mut self, toggle: bool) -> &mut Self {
self.required
.set_value(if toggle { "required" } else { "" });
self
}
#[fn_builder]
pub fn alter_help_text(&mut self, help_text: &str) -> &mut Self {
self.help_text.alter_value(help_text);
pub fn set_help_text(&mut self, help_text: &str) -> &mut Self {
self.help_text.set_value(help_text);
self
}

View file

@ -52,38 +52,38 @@ impl Form {
// Form BUILDER.
#[fn_builder]
pub fn alter_id(&mut self, id: impl Into<String>) -> &mut Self {
self.id.alter_value(id);
pub fn set_id(&mut self, id: impl Into<String>) -> &mut Self {
self.id.set_value(id);
self
}
#[fn_builder]
pub fn alter_action(&mut self, action: &str) -> &mut Self {
self.action.alter_value(action);
pub fn set_action(&mut self, action: &str) -> &mut Self {
self.action.set_value(action);
self
}
#[fn_builder]
pub fn alter_charset(&mut self, charset: &str) -> &mut Self {
self.charset.alter_value(charset);
pub fn set_charset(&mut self, charset: &str) -> &mut Self {
self.charset.set_value(charset);
self
}
#[fn_builder]
pub fn alter_method(&mut self, method: FormMethod) -> &mut Self {
pub fn set_method(&mut self, method: FormMethod) -> &mut Self {
self.method = method;
self
}
#[fn_builder]
pub fn alter_elements(&mut self, op: AnyOp) -> &mut Self {
self.mixed.alter_value(op);
pub fn set_elements(&mut self, op: AnyOp) -> &mut Self {
self.mixed.set_value(op);
self
}
#[rustfmt::skip]
pub fn add_element(mut self, element: impl ComponentTrait) -> Self {
self.mixed.alter_value(AnyOp::Add(AnyComponent::with(element)));
self.mixed.set_value(AnyOp::Add(AnyComponent::with(element)));
self
}

View file

@ -28,14 +28,14 @@ impl Hidden {
// Hidden BUILDER.
#[fn_builder]
pub fn alter_name(&mut self, name: &str) -> &mut Self {
self.name.alter_value(name);
pub fn set_name(&mut self, name: &str) -> &mut Self {
self.name.set_value(name);
self
}
#[fn_builder]
pub fn alter_value(&mut self, value: &str) -> &mut Self {
self.value.alter_value(value);
pub fn set_value(&mut self, value: &str) -> &mut Self {
self.value.set_value(value);
self
}

View file

@ -138,99 +138,88 @@ impl Input {
// Input BUILDER.
#[fn_builder]
pub fn alter_name(&mut self, name: &str) -> &mut Self {
pub fn set_name(&mut self, name: &str) -> &mut Self {
if let Some(previous) = self.name.get() {
self.alter_classes(ClassesOp::Remove, concat_string!("form-item-", previous));
self.set_classes(ClassesOp::Remove, concat_string!("form-item-", previous));
}
self.alter_classes(ClassesOp::Add, concat_string!("form-item-", name));
self.name.alter_value(name);
self.set_classes(ClassesOp::Add, concat_string!("form-item-", name));
self.name.set_value(name);
self
}
#[fn_builder]
pub fn alter_value(&mut self, value: &str) -> &mut Self {
self.value.alter_value(value);
pub fn set_value(&mut self, value: &str) -> &mut Self {
self.value.set_value(value);
self
}
#[fn_builder]
pub fn alter_label(&mut self, label: L10n) -> &mut Self {
self.label.alter_value(label);
pub fn set_label(&mut self, label: L10n) -> &mut Self {
self.label.set_value(label);
self
}
#[fn_builder]
pub fn alter_size(&mut self, size: Option<u16>) -> &mut Self {
pub fn set_size(&mut self, size: Option<u16>) -> &mut Self {
self.size = size;
self
}
#[fn_builder]
pub fn alter_minlength(&mut self, minlength: Option<u16>) -> &mut Self {
pub fn set_minlength(&mut self, minlength: Option<u16>) -> &mut Self {
self.minlength = minlength;
self
}
#[fn_builder]
pub fn alter_maxlength(&mut self, maxlength: Option<u16>) -> &mut Self {
pub fn set_maxlength(&mut self, maxlength: Option<u16>) -> &mut Self {
self.maxlength = maxlength;
self
}
#[fn_builder]
pub fn alter_placeholder(&mut self, placeholder: &str) -> &mut Self {
self.placeholder.alter_value(placeholder);
pub fn set_placeholder(&mut self, placeholder: &str) -> &mut Self {
self.placeholder.set_value(placeholder);
self
}
#[fn_builder]
pub fn alter_autofocus(&mut self, toggle: bool) -> &mut Self {
self.autofocus.alter_value(match toggle {
true => "autofocus",
false => "",
});
pub fn set_autofocus(&mut self, toggle: bool) -> &mut Self {
self.autofocus
.set_value(if toggle { "autofocus" } else { "" });
self
}
#[fn_builder]
pub fn alter_autocomplete(&mut self, toggle: bool) -> &mut Self {
self.autocomplete.alter_value(match toggle {
true => "",
false => "off",
});
pub fn set_autocomplete(&mut self, toggle: bool) -> &mut Self {
self.autocomplete.set_value(if toggle { "" } else { "off" });
self
}
#[fn_builder]
pub fn alter_disabled(&mut self, toggle: bool) -> &mut Self {
self.disabled.alter_value(match toggle {
true => "disabled",
false => "",
});
pub fn set_disabled(&mut self, toggle: bool) -> &mut Self {
self.disabled
.set_value(if toggle { "disabled" } else { "" });
self
}
#[fn_builder]
pub fn alter_readonly(&mut self, toggle: bool) -> &mut Self {
self.readonly.alter_value(match toggle {
true => "readonly",
false => "",
});
pub fn set_readonly(&mut self, toggle: bool) -> &mut Self {
self.readonly
.set_value(if toggle { "readonly" } else { "" });
self
}
#[fn_builder]
pub fn alter_required(&mut self, toggle: bool) -> &mut Self {
self.required.alter_value(match toggle {
true => "required",
false => "",
});
pub fn set_required(&mut self, toggle: bool) -> &mut Self {
self.required
.set_value(if toggle { "required" } else { "" });
self
}
#[fn_builder]
pub fn alter_help_text(&mut self, help_text: L10n) -> &mut Self {
self.help_text.alter_value(help_text);
pub fn set_help_text(&mut self, help_text: L10n) -> &mut Self {
self.help_text.set_value(help_text);
self
}

View file

@ -58,7 +58,7 @@ impl ComponentTrait for Heading {
}
fn setup_before_prepare(&mut self, _cx: &mut Context) {
self.alter_classes(ClassesOp::Add, self.size().to_string());
self.set_classes(ClassesOp::Add, self.size().to_string());
}
fn prepare_component(&self, cx: &mut Context) -> PrepareMarkup {
@ -116,26 +116,26 @@ impl Heading {
// Heading BUILDER.
#[fn_builder]
pub fn alter_id(&mut self, id: impl Into<String>) -> &mut Self {
self.id.alter_value(id);
pub fn set_id(&mut self, id: impl Into<String>) -> &mut Self {
self.id.set_value(id);
self
}
#[fn_builder]
pub fn alter_heading_type(&mut self, heading_type: HeadingType) -> &mut Self {
pub fn set_heading_type(&mut self, heading_type: HeadingType) -> &mut Self {
self.heading_type = heading_type;
self
}
#[fn_builder]
pub fn alter_size(&mut self, size: HeadingSize) -> &mut Self {
pub fn set_size(&mut self, size: HeadingSize) -> &mut Self {
self.size = size;
self
}
#[fn_builder]
pub fn alter_text(&mut self, text: L10n) -> &mut Self {
self.text.alter_value(text);
pub fn set_text(&mut self, text: L10n) -> &mut Self {
self.text.set_value(text);
self
}

View file

@ -16,10 +16,10 @@ impl ComponentTrait for Icon {
#[rustfmt::skip]
fn setup_before_prepare(&mut self, cx: &mut Context) {
if let Some(icon_name) = self.icon_name().get() {
self.alter_classes(ClassesOp::Prepend,
self.set_classes(ClassesOp::Prepend,
concat_string!("bi-", icon_name, " ", self.font_size().to_string()),
);
cx.set_param::<bool>(PARAM_BASE_INCLUDE_ICONS, true);
cx.set_param::<bool>(PARAM_BASE_INCLUDE_ICONS, &true);
}
}
@ -39,13 +39,13 @@ impl Icon {
// Icon BUILDER.
#[fn_builder]
pub fn alter_icon_name(&mut self, name: impl Into<String>) -> &mut Self {
self.icon_name.alter_value(name);
pub fn set_icon_name(&mut self, name: impl Into<String>) -> &mut Self {
self.icon_name.set_value(name);
self
}
#[fn_builder]
pub fn alter_font_size(&mut self, font_size: FontSize) -> &mut Self {
pub fn set_font_size(&mut self, font_size: FontSize) -> &mut Self {
self.font_size = font_size;
self
}

View file

@ -73,19 +73,19 @@ impl Image {
// Image BUILDER.
#[fn_builder]
pub fn alter_id(&mut self, id: impl Into<String>) -> &mut Self {
self.id.alter_value(id);
pub fn set_id(&mut self, id: impl Into<String>) -> &mut Self {
self.id.set_value(id);
self
}
#[fn_builder]
pub fn alter_source(&mut self, source: &str) -> &mut Self {
self.source.alter_value(source);
pub fn set_source(&mut self, source: &str) -> &mut Self {
self.source.set_value(source);
self
}
#[fn_builder]
pub fn alter_size(&mut self, size: ImageSize) -> &mut Self {
pub fn set_size(&mut self, size: ImageSize) -> &mut Self {
self.size = size;
self
}

View file

@ -31,20 +31,20 @@ impl Group {
// Group BUILDER.
#[fn_builder]
pub fn alter_id(&mut self, id: impl Into<String>) -> &mut Self {
self.id.alter_value(id);
pub fn set_id(&mut self, id: impl Into<String>) -> &mut Self {
self.id.set_value(id);
self
}
#[fn_builder]
pub fn alter_elements(&mut self, op: TypedOp<Element>) -> &mut Self {
self.elements.alter_typed(op);
pub fn set_elements(&mut self, op: TypedOp<Element>) -> &mut Self {
self.elements.set_typed(op);
self
}
#[rustfmt::skip]
pub fn add_element(mut self, element: Element) -> Self {
self.elements.alter_value(AnyOp::Add(AnyComponent::with(element)));
self.elements.set_value(AnyOp::Add(AnyComponent::with(element)));
self
}

View file

@ -147,20 +147,20 @@ impl Item {
// Item BUILDER.
#[fn_builder]
pub fn alter_description(&mut self, text: L10n) -> &mut Self {
self.description.alter_value(text);
pub fn set_description(&mut self, text: L10n) -> &mut Self {
self.description.set_value(text);
self
}
#[fn_builder]
pub fn alter_left_icon(&mut self, icon: Option<Icon>) -> &mut Self {
self.left_icon.alter_value(icon);
pub fn set_left_icon(&mut self, icon: Option<Icon>) -> &mut Self {
self.left_icon.set_value(icon);
self
}
#[fn_builder]
pub fn alter_right_icon(&mut self, icon: Option<Icon>) -> &mut Self {
self.right_icon.alter_value(icon);
pub fn set_right_icon(&mut self, icon: Option<Icon>) -> &mut Self {
self.right_icon.set_value(icon);
self
}

View file

@ -31,20 +31,20 @@ impl Megamenu {
// Megamenu BUILDER.
#[fn_builder]
pub fn alter_id(&mut self, id: impl Into<String>) -> &mut Self {
self.id.alter_value(id);
pub fn set_id(&mut self, id: impl Into<String>) -> &mut Self {
self.id.set_value(id);
self
}
#[fn_builder]
pub fn alter_groups(&mut self, op: TypedOp<Group>) -> &mut Self {
self.groups.alter_typed(op);
pub fn set_groups(&mut self, op: TypedOp<Group>) -> &mut Self {
self.groups.set_typed(op);
self
}
#[rustfmt::skip]
pub fn add_group(mut self, group: Group) -> Self {
self.groups.alter_value(AnyOp::Add(AnyComponent::with(group)));
self.groups.set_value(AnyOp::Add(AnyComponent::with(group)));
self
}

View file

@ -59,20 +59,20 @@ impl Menu {
// Menu BUILDER.
#[fn_builder]
pub fn alter_id(&mut self, id: impl Into<String>) -> &mut Self {
self.id.alter_value(id);
pub fn set_id(&mut self, id: impl Into<String>) -> &mut Self {
self.id.set_value(id);
self
}
#[fn_builder]
pub fn alter_items(&mut self, op: TypedOp<Item>) -> &mut Self {
self.items.alter_typed(op);
pub fn set_items(&mut self, op: TypedOp<Item>) -> &mut Self {
self.items.set_typed(op);
self
}
#[rustfmt::skip]
pub fn add_item(mut self, item: Item) -> Self {
self.items.alter_value(AnyOp::Add(AnyComponent::with(item)));
self.items.set_value(AnyOp::Add(AnyComponent::with(item)));
self
}

View file

@ -37,26 +37,26 @@ impl Submenu {
// Submenu BUILDER.
#[fn_builder]
pub fn alter_id(&mut self, id: impl Into<String>) -> &mut Self {
self.id.alter_value(id);
pub fn set_id(&mut self, id: impl Into<String>) -> &mut Self {
self.id.set_value(id);
self
}
#[fn_builder]
pub fn alter_title(&mut self, title: L10n) -> &mut Self {
self.title.alter_value(title);
pub fn set_title(&mut self, title: L10n) -> &mut Self {
self.title.set_value(title);
self
}
#[fn_builder]
pub fn alter_items(&mut self, op: TypedOp<Item>) -> &mut Self {
self.items.alter_typed(op);
pub fn set_items(&mut self, op: TypedOp<Item>) -> &mut Self {
self.items.set_typed(op);
self
}
#[rustfmt::skip]
pub fn add_item(mut self, item: Item) -> Self {
self.items.alter_value(AnyOp::Add(AnyComponent::with(item)));
self.items.set_value(AnyOp::Add(AnyComponent::with(item)));
self
}

View file

@ -19,7 +19,7 @@ impl ComponentTrait for Paragraph {
}
fn setup_before_prepare(&mut self, _cx: &mut Context) {
self.alter_classes(ClassesOp::Prepend, self.font_size().to_string());
self.set_classes(ClassesOp::Prepend, self.font_size().to_string());
}
fn prepare_component(&self, cx: &mut Context) -> PrepareMarkup {
@ -46,26 +46,26 @@ impl Paragraph {
// Paragraph BUILDER.
#[fn_builder]
pub fn alter_id(&mut self, id: impl Into<String>) -> &mut Self {
self.id.alter_value(id);
pub fn set_id(&mut self, id: impl Into<String>) -> &mut Self {
self.id.set_value(id);
self
}
#[fn_builder]
pub fn alter_font_size(&mut self, font_size: FontSize) -> &mut Self {
pub fn set_font_size(&mut self, font_size: FontSize) -> &mut Self {
self.font_size = font_size;
self
}
#[fn_builder]
pub fn alter_components(&mut self, op: AnyOp) -> &mut Self {
self.mixed.alter_value(op);
pub fn set_components(&mut self, op: AnyOp) -> &mut Self {
self.mixed.set_value(op);
self
}
#[rustfmt::skip]
pub fn add_component(mut self, component: impl ComponentTrait) -> Self {
self.mixed.alter_value(AnyOp::Add(AnyComponent::with(component)));
self.mixed.set_value(AnyOp::Add(AnyComponent::with(component)));
self
}

View file

@ -1,5 +1,7 @@
use crate::prelude::*;
use std::convert::Into;
#[derive(Default, Eq, PartialEq)]
pub enum PoweredByLogo {
#[default]
@ -58,13 +60,13 @@ impl PoweredBy {
// PoweredBy BUILDER.
#[fn_builder]
pub fn alter_copyright(&mut self, copyright: Option<impl Into<String>>) -> &mut Self {
self.copyright = copyright.map(|c| c.into());
pub fn set_copyright(&mut self, copyright: Option<impl Into<String>>) -> &mut Self {
self.copyright = copyright.map(Into::into);
self
}
#[fn_builder]
pub fn alter_logo(&mut self, logo: PoweredByLogo) -> &mut Self {
pub fn set_logo(&mut self, logo: PoweredByLogo) -> &mut Self {
self.logo = logo;
self
}

View file

@ -14,14 +14,14 @@ impl PackageTrait for Basic {
impl ThemeTrait for Basic {
fn after_prepare_body(&self, page: &mut Page) {
page.alter_favicon(Some(Favicon::new().with_icon("/base/favicon.ico")))
.alter_assets(AssetsOp::AddStyleSheet(
page.set_favicon(Some(Favicon::new().with_icon("/base/favicon.ico")))
.set_assets(AssetsOp::AddStyleSheet(
StyleSheet::at("/base/css/normalize.min.css")
.with_version("8.0.1")
.with_weight(-90),
))
.alter_assets(AssetsOp::AddBaseAssets)
.alter_assets(AssetsOp::AddStyleSheet(
.set_assets(AssetsOp::AddBaseAssets)
.set_assets(AssetsOp::AddStyleSheet(
StyleSheet::at("/base/css/basic.css")
.with_version("0.0.1")
.with_weight(-90),

View file

@ -14,14 +14,14 @@ impl PackageTrait for Chassis {
impl ThemeTrait for Chassis {
fn after_prepare_body(&self, page: &mut Page) {
page.alter_favicon(Some(Favicon::new().with_icon("/base/favicon.ico")))
.alter_assets(AssetsOp::AddStyleSheet(
page.set_favicon(Some(Favicon::new().with_icon("/base/favicon.ico")))
.set_assets(AssetsOp::AddStyleSheet(
StyleSheet::at("/base/css/normalize.min.css")
.with_version("8.0.1")
.with_weight(-90),
))
.alter_assets(AssetsOp::AddBaseAssets)
.alter_assets(AssetsOp::AddStyleSheet(
.set_assets(AssetsOp::AddBaseAssets)
.set_assets(AssetsOp::AddStyleSheet(
StyleSheet::at("/base/css/chassis.css")
.with_version("0.0.1")
.with_weight(-90),

View file

@ -14,14 +14,14 @@ impl PackageTrait for Inception {
impl ThemeTrait for Inception {
fn after_prepare_body(&self, page: &mut Page) {
page.alter_favicon(Some(Favicon::new().with_icon("/base/favicon.ico")))
.alter_assets(AssetsOp::AddStyleSheet(
page.set_favicon(Some(Favicon::new().with_icon("/base/favicon.ico")))
.set_assets(AssetsOp::AddStyleSheet(
StyleSheet::at("/base/css/normalize.min.css")
.with_version("8.0.1")
.with_weight(-90),
))
.alter_assets(AssetsOp::AddBaseAssets)
.alter_assets(AssetsOp::AddStyleSheet(
.set_assets(AssetsOp::AddBaseAssets)
.set_assets(AssetsOp::AddStyleSheet(
StyleSheet::at("/base/css/inception.css")
.with_version("0.0.1")
.with_weight(-90),

View file

@ -6,14 +6,14 @@ pub trait ComponentClassesOp {
}
pub trait ComponentClasses: ComponentBase + ComponentClassesOp {
fn alter_classes(&mut self, op: ClassesOp, classes: impl Into<String>) -> &mut Self;
fn set_classes(&mut self, op: ClassesOp, classes: impl Into<String>) -> &mut Self;
fn classes(&self) -> &OptionClasses;
}
impl<C: ComponentBase + ComponentClasses> ComponentClassesOp for C {
fn with_classes(mut self, op: ClassesOp, classes: impl Into<String>) -> Self {
self.alter_classes(op, classes);
self.set_classes(op, classes);
self
}
}

View file

@ -85,7 +85,7 @@ impl Context {
}
#[rustfmt::skip]
pub fn alter_assets(&mut self, op: AssetsOp) -> &mut Self {
pub fn set_assets(&mut self, op: AssetsOp) -> &mut Self {
match op {
AssetsOp::LangId(langid) => {
self.langid = langid;
@ -116,8 +116,8 @@ impl Context {
self
}
pub fn alter_regions(&mut self, region: &'static str, op: AnyOp) -> &mut Self {
self.regions.alter_components(region, op);
pub fn set_regions(&mut self, region: &'static str, op: AnyOp) -> &mut Self {
self.regions.set_components(region, op);
self
}

View file

@ -102,7 +102,7 @@ impl MixedComponents {
// MixedComponents BUILDER.
#[fn_builder]
pub fn alter_value(&mut self, op: AnyOp) -> &mut Self {
pub fn set_value(&mut self, op: AnyOp) -> &mut Self {
match op {
AnyOp::Add(any) => self.add(any),
AnyOp::InsertAfterId(id, any) => self.insert_after_id(id, any),
@ -116,7 +116,7 @@ impl MixedComponents {
}
#[fn_builder]
pub fn alter_typed<C: ComponentTrait + Default>(&mut self, op: TypedOp<C>) -> &mut Self {
pub fn set_typed<C: ComponentTrait + Default>(&mut self, op: TypedOp<C>) -> &mut Self {
match op {
TypedOp::Add(typed) => self.add(typed.to_any()),
TypedOp::InsertAfterId(id, typed) => self.insert_after_id(id, typed.to_any()),
@ -164,7 +164,7 @@ impl MixedComponents {
#[inline]
fn replace_by_id(&mut self, id: &str, any: AnyComponent) {
for c in self.0.iter_mut() {
for c in &mut self.0 {
if c.id() == id {
*c = any;
break;
@ -205,7 +205,7 @@ impl MixedComponents {
pub fn render(&self, cx: &mut Context) -> Markup {
html! {
@for c in self.0.iter() {
@for c in &self.0 {
(c.render(cx))
}
}

View file

@ -71,7 +71,7 @@ pub trait ThemeTrait: PackageTrait + Send + Sync {
fn after_prepare_body(&self, page: &mut Page) {
if page.favicon().is_none() {
page.alter_favicon(Some(Favicon::new().with_icon("/base/favicon.ico")));
page.set_favicon(Some(Favicon::new().with_icon("/base/favicon.ico")));
}
}

View file

@ -20,9 +20,9 @@ impl ComponentsInRegions {
}
#[fn_builder]
pub fn alter_components(&mut self, region: &'static str, op: AnyOp) -> &mut Self {
pub fn set_components(&mut self, region: &'static str, op: AnyOp) -> &mut Self {
if let Some(region) = self.0.get_mut(region) {
region.alter_value(op);
region.set_value(op);
} else {
self.0.insert(region, MixedComponents::new().with_value(op));
}
@ -52,18 +52,18 @@ impl InRegion {
COMMON_REGIONS
.write()
.unwrap()
.alter_components("content", AnyOp::Add(any));
.set_components("content", AnyOp::Add(any));
}
InRegion::Named(name) => {
COMMON_REGIONS
.write()
.unwrap()
.alter_components(name, AnyOp::Add(any));
.set_components(name, AnyOp::Add(any));
}
InRegion::OfTheme(region, theme) => {
let mut regions = THEME_REGIONS.write().unwrap();
if let Some(r) = regions.get_mut(&theme.type_id()) {
r.alter_components(region, AnyOp::Add(any));
r.set_components(region, AnyOp::Add(any));
} else {
regions.insert(theme.type_id(), ComponentsInRegions::new(region, any));
}

View file

@ -31,7 +31,7 @@ impl OptionClasses {
// OptionClasses BUILDER.
#[fn_builder]
pub fn alter_value(&mut self, op: ClassesOp, classes: impl Into<String>) -> &mut Self {
pub fn set_value(&mut self, op: ClassesOp, classes: impl Into<String>) -> &mut Self {
let classes: String = classes.into();
let classes: Vec<&str> = classes.split_ascii_whitespace().collect();

View file

@ -18,7 +18,7 @@ impl<C: ComponentTrait> OptionComponent<C> {
// OptionComponent BUILDER.
#[fn_builder]
pub fn alter_value(&mut self, component: Option<C>) -> &mut Self {
pub fn set_value(&mut self, component: Option<C>) -> &mut Self {
if let Some(component) = component {
self.0 = Some(TypedComponent::with(component));
} else {

View file

@ -11,7 +11,7 @@ impl OptionId {
// OptionId BUILDER.
#[fn_builder]
pub fn alter_value(&mut self, value: impl Into<String>) -> &mut Self {
pub fn set_value(&mut self, value: impl Into<String>) -> &mut Self {
self.0 = Some(value.into().trim().replace(' ', "_"));
self
}

View file

@ -11,7 +11,7 @@ impl OptionName {
// OptionName BUILDER.
#[fn_builder]
pub fn alter_value(&mut self, value: impl Into<String>) -> &mut Self {
pub fn set_value(&mut self, value: impl Into<String>) -> &mut Self {
self.0 = Some(value.into().trim().replace(' ', "_"));
self
}

View file

@ -11,7 +11,7 @@ impl OptionString {
// OptionString BUILDER.
#[fn_builder]
pub fn alter_value(&mut self, value: impl Into<String>) -> &mut Self {
pub fn set_value(&mut self, value: impl Into<String>) -> &mut Self {
self.0 = Some(value.into().trim().to_owned());
self
}

View file

@ -13,7 +13,7 @@ impl OptionTranslated {
// OptionTranslated BUILDER.
#[fn_builder]
pub fn alter_value(&mut self, value: L10n) -> &mut Self {
pub fn set_value(&mut self, value: L10n) -> &mut Self {
self.0 = value;
self
}

View file

@ -46,74 +46,74 @@ impl Page {
// Page BUILDER.
#[fn_builder]
pub fn alter_title(&mut self, title: L10n) -> &mut Self {
self.title.alter_value(title);
pub fn set_title(&mut self, title: L10n) -> &mut Self {
self.title.set_value(title);
self
}
#[fn_builder]
pub fn alter_description(&mut self, description: L10n) -> &mut Self {
self.description.alter_value(description);
pub fn set_description(&mut self, description: L10n) -> &mut Self {
self.description.set_value(description);
self
}
#[fn_builder]
pub fn alter_metadata(&mut self, name: &'static str, content: &'static str) -> &mut Self {
pub fn set_metadata(&mut self, name: &'static str, content: &'static str) -> &mut Self {
self.metadata.push((name, content));
self
}
#[fn_builder]
pub fn alter_property(&mut self, property: &'static str, content: &'static str) -> &mut Self {
pub fn set_property(&mut self, property: &'static str, content: &'static str) -> &mut Self {
self.metadata.push((property, content));
self
}
#[fn_builder]
pub fn alter_favicon(&mut self, favicon: Option<Favicon>) -> &mut Self {
pub fn set_favicon(&mut self, favicon: Option<Favicon>) -> &mut Self {
self.favicon = favicon;
self
}
#[fn_builder]
pub fn alter_assets(&mut self, op: AssetsOp) -> &mut Self {
self.context.alter_assets(op);
pub fn set_assets(&mut self, op: AssetsOp) -> &mut Self {
self.context.set_assets(op);
self
}
#[fn_builder]
pub fn alter_body_id(&mut self, id: impl Into<String>) -> &mut Self {
self.body_id.alter_value(id);
pub fn set_body_id(&mut self, id: impl Into<String>) -> &mut Self {
self.body_id.set_value(id);
self
}
#[fn_builder]
pub fn alter_body_classes(&mut self, op: ClassesOp, classes: impl Into<String>) -> &mut Self {
self.body_classes.alter_value(op, classes);
pub fn set_body_classes(&mut self, op: ClassesOp, classes: impl Into<String>) -> &mut Self {
self.body_classes.set_value(op, classes);
self
}
#[fn_builder]
pub fn alter_body_skip_to(&mut self, id: impl Into<String>) -> &mut Self {
self.body_skip_to.alter_value(id);
pub fn set_body_skip_to(&mut self, id: impl Into<String>) -> &mut Self {
self.body_skip_to.set_value(id);
self
}
#[fn_builder]
pub fn alter_layout(&mut self, layout: &'static str) -> &mut Self {
self.context.alter_assets(AssetsOp::Layout(layout));
pub fn set_layout(&mut self, layout: &'static str) -> &mut Self {
self.context.set_assets(AssetsOp::Layout(layout));
self
}
#[fn_builder]
pub fn alter_regions(&mut self, region: &'static str, op: AnyOp) -> &mut Self {
self.context.alter_regions(region, op);
pub fn set_regions(&mut self, region: &'static str, op: AnyOp) -> &mut Self {
self.context.set_regions(region, op);
self
}
pub fn with_component(mut self, component: impl ComponentTrait) -> Self {
self.context
.alter_regions("content", AnyOp::Add(AnyComponent::with(component)));
.set_regions("content", AnyOp::Add(AnyComponent::with(component)));
self
}
@ -123,7 +123,7 @@ impl Page {
component: impl ComponentTrait,
) -> Self {
self.context
.alter_regions(region, AnyOp::Add(AnyComponent::with(component)));
.set_regions(region, AnyOp::Add(AnyComponent::with(component)));
self
}