From d37b2e09abc8797ccfa5baed0d06ca06cbecb01a Mon Sep 17 00:00:00 2001 From: Manuel Cillero Date: Tue, 19 Apr 2022 01:32:42 +0200 Subject: [PATCH] =?UTF-8?q?A=C3=B1ade=20nueva=20macro=20module=5Fname!()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Devuelve el nombre del módulo actual en el que se ejecuta la macro. --- pagetop/src/db.rs | 1 + pagetop/src/prelude.rs | 1 + pagetop/src/util.rs | 11 +++++++++++ 3 files changed, 13 insertions(+) diff --git a/pagetop/src/db.rs b/pagetop/src/db.rs index d68a5aac..550f8f66 100644 --- a/pagetop/src/db.rs +++ b/pagetop/src/db.rs @@ -11,6 +11,7 @@ pub mod entity { pub mod migration { pub use sea_schema::migration::prelude::*; + pub use crate::module_name; } #[macro_export] diff --git a/pagetop/src/prelude.rs b/pagetop/src/prelude.rs index 429c9449..55c9681e 100644 --- a/pagetop/src/prelude.rs +++ b/pagetop/src/prelude.rs @@ -4,6 +4,7 @@ pub use crate::{ args, concat_string, + module_name, theme_static_files, }; diff --git a/pagetop/src/util.rs b/pagetop/src/util.rs index c2fd58d3..02bb584e 100644 --- a/pagetop/src/util.rs +++ b/pagetop/src/util.rs @@ -18,6 +18,17 @@ macro_rules! args { }}; } +#[macro_export] +macro_rules! module_name { + () => {{ + let name = module_path!(); + match name.rfind("::") { + Some(position) => &name[(position + 2)..], + None => name + } + }}; +} + #[macro_export] macro_rules! theme_static_files { ( $cfg:ident, $dir:expr ) => {{