aboutsummaryrefslogtreecommitdiff
path: root/src/deprecated.rs
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-06-29 03:31:44 +0800
committer魏曹先生 <1992414357@qq.com>2026-06-29 03:31:44 +0800
commitff70307869a547b13850d1eec3f72e8ca3bca265 (patch)
treea6cc55e7cb993697dce95b3d449538ec296693fc /src/deprecated.rs
parent03003aec99fc00c2a079bad9fb4e721432a6e6f0 (diff)
feat: add display block support and refactor tests
Deprecate old macros in favor of new deprecated module, replace the external file-based test with inline unit tests, and introduce the `??? >>>` / `??? <<<` display block syntax for conditional content inclusion per arm or globally.
Diffstat (limited to 'src/deprecated.rs')
-rw-r--r--src/deprecated.rs45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/deprecated.rs b/src/deprecated.rs
new file mode 100644
index 0000000..b218969
--- /dev/null
+++ b/src/deprecated.rs
@@ -0,0 +1,45 @@
+#[macro_export]
+macro_rules! tmpl_param {
+ ($template:ident, $($key:ident = $value:expr),* $(,)?) => {{
+ $(
+ $template.insert_param(stringify!($key).to_string(), $value.to_string());
+ )*
+ }};
+}
+
+#[macro_export]
+macro_rules! tmpl {
+ ($template:ident, $($name:ident {
+ $($key:ident = $value:expr),* $(,)?
+ }),* $(,)?) => {{
+ $(
+ let $name = $template.add_impl(stringify!($name).to_string());
+ $(
+ $name.push({
+ let mut params = std::collections::HashMap::new();
+ params.insert(stringify!($key).to_string(), $value.to_string());
+ params
+ });
+ )*
+ )*
+ }};
+
+ // Old syntax
+ ($template:ident += {
+ $($name:ident {
+ $(($($key:ident = $value:expr),* $(,)?)),*
+ $(,)?
+ }),*
+ }) => {{
+ $(
+ let $name = $template.add_impl(stringify!($name).to_string());
+ $(
+ $name.push({
+ let mut params = std::collections::HashMap::new();
+ $(params.insert(stringify!($key).to_string(), $value.to_string());)*
+ params
+ });
+ )*
+ )*
+ }};
+}