From d9f35618320fc19b44ed6c37884b770fc0fe1862 Mon Sep 17 00:00:00 2001 From: Manuel Cillero Date: Sun, 19 Nov 2023 21:17:16 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=A7=91=E2=80=8D=F0=9F=92=BB=20Major=20upd?= =?UTF-8?q?ate=20to=20enhance=20Handle=20usage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- drust/src/main.rs | 3 +- examples/basics/hello-name/src/main.rs | 3 +- examples/basics/hello-world/src/main.rs | 3 +- pagetop-admin/src/lib.rs | 3 +- pagetop-bootsier/src/lib.rs | 13 ++-- pagetop-bulmix/src/lib.rs | 13 ++-- pagetop-homedemo/src/lib.rs | 3 +- pagetop-macros/src/lib.rs | 68 ++++++++++++++++++- pagetop-node/src/lib.rs | 3 +- pagetop-user/src/lib.rs | 3 +- .../component/after_prepare_component.rs | 4 +- .../component/before_prepare_component.rs | 4 +- .../base/action/page/after_prepare_body.rs | 4 +- .../base/action/page/before_prepare_body.rs | 4 +- pagetop/src/base/component.rs | 26 +++---- pagetop/src/base/component/block.rs | 16 +---- pagetop/src/base/component/branding.rs | 5 +- pagetop/src/base/component/button.rs | 16 +---- pagetop/src/base/component/flex.rs | 4 +- pagetop/src/base/component/flex/container.rs | 16 +---- pagetop/src/base/component/flex/item.rs | 18 +---- pagetop/src/base/component/form.rs | 10 +-- pagetop/src/base/component/form/button.rs | 16 +---- pagetop/src/base/component/form/date.rs | 16 +---- pagetop/src/base/component/form/form_main.rs | 16 +---- pagetop/src/base/component/form/hidden.rs | 5 +- pagetop/src/base/component/form/input.rs | 16 +---- pagetop/src/base/component/heading.rs | 16 +---- pagetop/src/base/component/html.rs | 5 +- pagetop/src/base/component/icon.rs | 16 +---- pagetop/src/base/component/image.rs | 16 +---- pagetop/src/base/component/menu.rs | 12 ++-- pagetop/src/base/component/menu/element.rs | 5 +- pagetop/src/base/component/menu/group.rs | 5 +- pagetop/src/base/component/menu/item.rs | 5 +- pagetop/src/base/component/menu/megamenu.rs | 5 +- pagetop/src/base/component/menu/menu_main.rs | 5 +- pagetop/src/base/component/menu/submenu.rs | 5 +- pagetop/src/base/component/paragraph.rs | 16 +---- pagetop/src/base/component/powered_by.rs | 5 +- pagetop/src/base/component/translate.rs | 5 +- pagetop/src/base/component/wrapper.rs | 16 +---- pagetop/src/base/theme.rs | 6 +- pagetop/src/base/theme/basic.rs | 4 +- pagetop/src/base/theme/chassis.rs | 4 +- pagetop/src/base/theme/inception.rs | 4 +- pagetop/src/core/action/definition.rs | 4 +- pagetop/src/core/component/definition.rs | 4 +- pagetop/src/core/module/definition.rs | 4 +- pagetop/src/lib.rs | 17 ++--- pagetop/src/prelude.rs | 4 +- pagetop/src/response/fatal_error.rs | 4 +- pagetop/src/response/fatal_error/error403.rs | 5 +- pagetop/src/response/fatal_error/error404.rs | 5 +- pagetop/src/util.rs | 38 ----------- pagetop/tests/server/health_check.rs | 3 +- 56 files changed, 201 insertions(+), 353 deletions(-) diff --git a/drust/src/main.rs b/drust/src/main.rs index 2314c934..87973883 100644 --- a/drust/src/main.rs +++ b/drust/src/main.rs @@ -1,9 +1,8 @@ use pagetop::prelude::*; +#[derive(AssignHandle)] struct Drust; -impl_handle!(APP_DRUST for Drust); - impl ModuleTrait for Drust { fn dependencies(&self) -> Vec { vec![ diff --git a/examples/basics/hello-name/src/main.rs b/examples/basics/hello-name/src/main.rs index cf216f1f..e248d7ff 100644 --- a/examples/basics/hello-name/src/main.rs +++ b/examples/basics/hello-name/src/main.rs @@ -1,9 +1,8 @@ use pagetop::prelude::*; +#[derive(AssignHandle)] struct HelloName; -impl_handle!(APP_HELLO_NAME for HelloName); - impl ModuleTrait for HelloName { fn configure_service(&self, scfg: &mut service::web::ServiceConfig) { scfg.service(hello_name); diff --git a/examples/basics/hello-world/src/main.rs b/examples/basics/hello-world/src/main.rs index 516bade2..95b28647 100644 --- a/examples/basics/hello-world/src/main.rs +++ b/examples/basics/hello-world/src/main.rs @@ -1,9 +1,8 @@ use pagetop::prelude::*; +#[derive(AssignHandle)] struct HelloWorld; -impl_handle!(APP_HELLO_WORLD for HelloWorld); - impl ModuleTrait for HelloWorld { fn configure_service(&self, scfg: &mut service::web::ServiceConfig) { scfg.route("/", service::web::get().to(hello_world)); diff --git a/pagetop-admin/src/lib.rs b/pagetop-admin/src/lib.rs index db70f468..acf69fa6 100644 --- a/pagetop-admin/src/lib.rs +++ b/pagetop-admin/src/lib.rs @@ -4,10 +4,9 @@ static_locales!(LOCALES_ADMIN); mod summary; +#[derive(AssignHandle)] pub struct Admin; -impl_handle!(MODULE_ADMIN for Admin); - impl ModuleTrait for Admin { fn name(&self) -> L10n { L10n::t("module_name", &LOCALES_ADMIN) diff --git a/pagetop-bootsier/src/lib.rs b/pagetop-bootsier/src/lib.rs index 7a45a904..52c52e4b 100644 --- a/pagetop-bootsier/src/lib.rs +++ b/pagetop-bootsier/src/lib.rs @@ -4,10 +4,9 @@ static_locales!(LOCALES_BOOTSIER); static_files!(bootsier); +#[derive(AssignHandle)] pub struct Bootsier; -impl_handle!(THEME_BOOTSIER for Bootsier); - impl ModuleTrait for Bootsier { fn theme(&self) -> Option { Some(&Bootsier) @@ -83,7 +82,7 @@ impl ThemeTrait for Bootsier { fn before_prepare_component(&self, component: &mut dyn ComponentTrait, _cx: &mut Context) { match component.handle() { - COMPONENT_BASE_ICON => { + h if Icon::matches_handle(h) => { if let Some(i) = component_as_mut::(component) { match i.font_size() { FontSize::ExtraLarge => { @@ -105,7 +104,7 @@ impl ThemeTrait for Bootsier { }; } } - COMPONENT_BASE_BUTTON => { + h if Button::matches_handle(h) => { if let Some(b) = component_as_mut::