🔥 [macros] Elimina innecesaria ComponentClasses
This commit is contained in:
parent
a3657fef9f
commit
cfb96135df
5 changed files with 4 additions and 57 deletions
|
|
@ -127,8 +127,8 @@ pub fn fn_builder(_: TokenStream, item: TokenStream) -> TokenStream {
|
||||||
|
|
||||||
// Genera el método alter_...() con el código del método with_...().
|
// Genera el método alter_...() con el código del método with_...().
|
||||||
let fn_alter_doc = format!(
|
let fn_alter_doc = format!(
|
||||||
"Permite modificar la instancia actual en los mismos términos que el método \
|
"Modifica la instancia en los mismos términos que para el patrón <em>builder</em> hace el \
|
||||||
<em>builder</em> `{}()` al que está asociado.",
|
método asociado `{}()`.",
|
||||||
fn_with_name_str,
|
fn_with_name_str,
|
||||||
);
|
);
|
||||||
let fn_alter = quote! {
|
let fn_alter = quote! {
|
||||||
|
|
@ -171,37 +171,6 @@ pub fn derive_auto_default(input: TokenStream) -> TokenStream {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[proc_macro_derive(ComponentClasses)]
|
|
||||||
pub fn derive_component_classes(input: TokenStream) -> TokenStream {
|
|
||||||
let input = parse_macro_input!(input as DeriveInput);
|
|
||||||
let name = &input.ident;
|
|
||||||
|
|
||||||
#[rustfmt::skip]
|
|
||||||
let fn_alter_doc = format!(r##"
|
|
||||||
<p id="method.with_classes">Use
|
|
||||||
<code class="code-header"><span class="fn" href="#method.with_classes">with_classes</span>(self, …) -> Self</code>
|
|
||||||
to apply the <a href="#method.new">builder pattern</a>.
|
|
||||||
</p>
|
|
||||||
"##);
|
|
||||||
|
|
||||||
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);
|
|
||||||
self
|
|
||||||
}
|
|
||||||
|
|
||||||
fn classes(&self) -> &OptionClasses {
|
|
||||||
&self.classes
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
TokenStream::from(expanded)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Define una función `main` asíncrona como punto de entrada de `PageTop`.
|
/// Define una función `main` asíncrona como punto de entrada de `PageTop`.
|
||||||
///
|
///
|
||||||
/// # Ejemplos
|
/// # Ejemplos
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,6 @@ pub type FnContextualPath = fn(cx: &Context) -> &str;
|
||||||
mod definition;
|
mod definition;
|
||||||
pub use definition::{ComponentBase, ComponentTrait};
|
pub use definition::{ComponentBase, ComponentTrait};
|
||||||
|
|
||||||
mod classes;
|
|
||||||
pub use classes::{ComponentClasses, ComponentClassesOp};
|
|
||||||
|
|
||||||
mod children;
|
mod children;
|
||||||
pub use children::Children;
|
pub use children::Children;
|
||||||
pub use children::{ChildComponent, ChildOp};
|
pub use children::{ChildComponent, ChildOp};
|
||||||
|
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
use crate::core::component::ComponentBase;
|
|
||||||
use crate::html::{ClassesOp, OptionClasses};
|
|
||||||
|
|
||||||
pub trait ComponentClassesOp {
|
|
||||||
fn with_classes(self, op: ClassesOp, classes: impl Into<String>) -> Self;
|
|
||||||
}
|
|
||||||
|
|
||||||
pub trait ComponentClasses: ComponentBase + ComponentClassesOp {
|
|
||||||
fn alter_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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -85,7 +85,7 @@
|
||||||
|
|
||||||
// RE-EXPORTED *************************************************************************************
|
// RE-EXPORTED *************************************************************************************
|
||||||
|
|
||||||
pub use pagetop_macros::{fn_builder, html, main, test, AutoDefault, ComponentClasses};
|
pub use pagetop_macros::{fn_builder, html, main, test, AutoDefault};
|
||||||
|
|
||||||
pub type StaticResources = std::collections::HashMap<&'static str, static_files::Resource>;
|
pub type StaticResources = std::collections::HashMap<&'static str, static_files::Resource>;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
pub use crate::{fn_builder, html, main, test};
|
pub use crate::{fn_builder, html, main, test};
|
||||||
|
|
||||||
pub use crate::{AutoDefault, ComponentClasses, StaticResources, UniqueId, Weight};
|
pub use crate::{AutoDefault, StaticResources, UniqueId, Weight};
|
||||||
|
|
||||||
// MACROS.
|
// MACROS.
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue