【发布时间】:2021-03-22 19:11:55
【问题描述】:
我意识到这是一件非常奇怪的事情,但我正在编写一个宏,我希望它可以在尽可能多的地方使用。拍下following code:
mod outer {
struct OuterTestStruct {}
fn do_thing() {
struct InnerTestStruct {}
mod inner {
use super::OuterTestStruct;
use super::InnerTestStruct;
}
}
}
由于use super::InnerTestStruct 行,这无法编译。但是use super::OuterTestStruct 行工作正常,所以我在这里的假设是super 跳过fn 上下文并直接转到父mod。
有什么方法可以从mod inner 内部获得对InnerTestStruct 的引用?尤其是在事先不知道任何上下文的情况下(即想象在fn do_thing() 中的宏调用,它不会知道它在 fn 中)
【问题讨论】:
-
你可以把
mod放在fn里面吗? -
当您说“不编译”时,包含您遇到的确切错误会有所帮助。
标签: rust