用 declarative macro 做了个小东西
💡
原文中文,约4200字,阅读约需10分钟。
📝
内容提要
本文介绍了使用 ddnspod 时如何利用宏减少重复代码的编写,分享了编写符合预期且行为复杂的 declarative macro 的挑战性和成就感。
🎯
关键要点
-
文章介绍了如何使用 ddnspod 的宏来减少重复代码的编写。
-
定义了一个名为 custom_meta_struct 的宏,用于处理多个 Action 的共同属性和字段。
-
通过 trait CommonParams 来统一处理 url 和 version 的获取。
-
提供了简单和复杂的宏用法示例,展示了如何定义和实现结构体。
-
使用了回调宏 define_structs 来格式化和展开代码。
-
overriding_method 宏用于重载 trait 方法,以便为特定结构体提供自定义的 url 和 version。
-
最终实现的 custom_meta_struct 代码量约为 300 行,编写过程具有挑战性但也带来了成就感。
➡️