如何为模块指定与板条箱不同的名称

Ric*_*ter 2 rust rust-cargo

我有一个相当大的库,我想将其分成多个较小的板条箱,但我仍然想保留相同的模块名称。

假设我有一个名为 的库xyz,我想将它分成以下几个箱子:

  • xyz-core
  • xyz-graphics
  • xyz-audio
  • xyz-input

我怎样才能使模块仍然可用,如下所示:

  • xyz::core::*
  • xyz::graphics::*
  • xyz::audio::*
  • xyz::input::*

而不是把它变成这样:

  • xyz_core::*
  • xyz_graphics::*
  • xyz_audio::*
  • xyz_input::*

我还希望能够使用xyz::*包内的语法来引用包内容。所以xyz-graphics可以参考xyz-core使用xyz::core::*等。

Cha*_*man 7

创建一个将这些作为依赖项的主箱xyz,并从其中的子箱中重新导出所有项目:

pub mod core {
    #[doc(inline)]
    pub use xyz_core::*;
}
pub mod graphics {
    #[doc(inline)]
    pub use xyz_graphics::*;
}
pub mod audio {
    #[doc(inline)]
    pub use xyz_audio::*;
}
pub mod input {
    #[doc(inline)]
    pub use xyz_input::*;
}
Run Code Online (Sandbox Code Playgroud)

  • 我想到了!对于外部消耗,我使用您的解决方案创建一个“主”板条箱。在内部,我将`[依赖项]`中的包重命名为:`graphics = { path = "../xyz-graphics", package = "xyz-graphics" }` (2认同)