如何将箱子作为子模块导入?

时间:2015-10-20 19:45:59

标签: module rust rust-crates

我想将一个箱子导入我的库,然后使用该箱子就好像它是我库中的模块一样。如果我这样做:

extern crate sdl2;
pub use sdl2;

这给了我一个错误,建议我使用sdl2::*,但我不想将包中的所有名称拖到我的库中,我希望它们作为子模块进行寻址,例如:< / p>

my_library::sdl2::init()

我也试过这个:

pub extern crate sdl2;

编译,但我不知道它做了什么。它似乎并没有让我的图书馆公开访问箱子。

2 个答案:

答案 0 :(得分:1)

您可以在useextern crate中使用重命名:

extern crate sdl2 as sdl2_;
pub use sdl2_ as sdl2;

我个人发现如何在stdx crate中进行此操作(但似乎已弃用/放弃,至少目前为止)。

答案 1 :(得分:0)

另一种解决方法:

extern crate sdl2;
mod sdl2 {
    pub use ::sdl2::*;
}

应该工作 - 虽然未经测试。