如何在宏中导入类型?

Rom*_*her 3 macros rust

是否use允许在函数中间使用 -statements?

如果是这样,我怎么参阅模块(selfsuper?完整路径?)

如果没有,在我调用宏的文件中导入结构/枚举和宏是唯一的选择吗?

Luk*_*odt 6

是否use允许在函数中间使用 -statements?

是的。

如果是这样,我怎么参阅模块(selfsuper?完整路径?)

[来自评论]如何引用定义宏和类型的模块?

AFAIK,这真的不可能。唯一的希望是特殊的$crate元变量,它引用定义宏的crate。因此,您可以并且必须指定要引用的类型的整个路径,例如:

use $crate::path::to::MyType;
Run Code Online (Sandbox Code Playgroud)

请注意,此类型必须是公开的,才能在使用您的宏的其他 crate 中访问!这意味着该类型属于您的 crate 的公共接口,更改其路径被视为破坏性更改。由于很少发生重大更改,因此您不必经常更改宏定义中的路径;-)