🔥 [macros] Elimina innecesaria ComponentClasses

This commit is contained in:
Manuel Cillero 2025-01-02 11:49:10 +01:00
parent a3657fef9f
commit cfb96135df
5 changed files with 4 additions and 57 deletions

View file

@ -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_...().
let fn_alter_doc = format!(
"Permite modificar la instancia actual en los mismos términos que el método \
<em>builder</em> `{}()` al que está asociado.",
"Modifica la instancia en los mismos términos que para el patrón <em>builder</em> hace el \
método asociado `{}()`.",
fn_with_name_str,
);
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`.
///
/// # Ejemplos

View file

@ -5,9 +5,6 @@ pub type FnContextualPath = fn(cx: &Context) -> &str;
mod definition;
pub use definition::{ComponentBase, ComponentTrait};
mod classes;
pub use classes::{ComponentClasses, ComponentClassesOp};
mod children;
pub use children::Children;
pub use children::{ChildComponent, ChildOp};

View file

@ -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
}
}

View file

@ -85,7 +85,7 @@
// 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>;

View file

@ -4,7 +4,7 @@
pub use crate::{fn_builder, html, main, test};
pub use crate::{AutoDefault, ComponentClasses, StaticResources, UniqueId, Weight};
pub use crate::{AutoDefault, StaticResources, UniqueId, Weight};
// MACROS.