This站点在Rust中从1.0开始超过六种类型的语法扩展。 Decorator
,Modifier
,MultiModifier
,NormalTT
,IdentTT
和MacroRulesTT
。
不幸的是,它们与这些(以及相关编译器扩展)项目的文档的所有链接似乎都已不存在。实际上,即使手动搜索Rust文档中SyntaxExtension甚至syntax模块也不会产生任何结果。它still似乎位于主分支的主要Rust存储库中,所以它显然不仅仅是在托儿所的某个地方。
值得注意的是,那个页面在某个时刻提到了#34;很快" (从1.0开始)MultiModifier
和Modifier
可以合并,但由于文档消失,我无法确认当前的Nightly。
book仅记录基本lints和"程序宏",它们的范围似乎相当有限。
那么,截至目前,还有6种语法扩展类型吗?他们的文档是否在某个新位置保持最新?他们每个人的表现是否与1.0左右的表现大致相同?
答案 0 :(得分:1)
那个网站已经过时了 - 从Rust稳定之前就已经过时了。唯一的#34;插件/语法扩展" Rust 1.20支持的是宏示例和自定义派生,两者都在The Rust Programming Language中。不稳定的Rust还有custom attributes和procedural macros,但这些都可能在稳定之前发生变化。
该站点中列出的扩展类型与当前类型的宏的粗略映射类似于:
通过示例的宏示例很容易找到(例如std
和log
crate广泛使用它们)。 serde_derive
包可能是使用自定义派生的最佳示例。
<强>更新强>
在Rust 1.30中稳定了Procederual宏(包括自定义属性)。见https://doc.rust-lang.org/stable/book/ch19-06-macros.html