0

我的理解是,extern crate foo;根模块中的声明可以在任何带有use foo::bar. 虽然这适用于一个子模块,但它不适用于另一个子模块。任何想法为什么这可能不起作用?

|--- main.rs
|--- module1
     |--- mod.rs
     |--- submod1.rs
|--- module2
     |--- mod.rs
     |--- submod2.rs

// main.rs
extern crate rustc_serialize;
mod module1;
mod module2;

// module1/mod.rs
mod submod1;

// module1/submod1.rs
use rustc_serialize::json; // WORKS

// module2/mod.rs
mod submod2;

// module2/submod2.rs
use rustc_serialize::json; // DOESN'T WORK

编辑:我忘记了在我的项目中,module1它被定义为一个库箱,它将它与通常的导入命名空间分离

4

0 回答 0