在Rust宏2.0中使用内部规则

时间:2018-10-15 02:23:31

标签: macros rust

我无法理解在哪里定义了惰性静态@TAIL@MAKE及其特定用例。

如果我正确理解了internal rules,则本示例中@as_expr的主要用法是隐藏as_expr!(或通常来说,以前定义的宏),使其不被导出,即更改全局宏名称空间的方法。然后,@TAIL@MAKE应该已经是宏,而我在lazy_static source中找不到它们。

1 个答案:

答案 0 :(得分:2)

链接到定义。 @TAIL就在137下方三行,@MAKE在162上。

@name在任何方面都不特殊。绝对没有特殊行为。这只是一个令牌序列,无法显示在“正常”代码中,因此不太可能意外地与其他规则匹配。 @as_expr不会隐藏as_expr!宏,而是使用 来定义公开可见的as_expr!宏。