如何给模块取一个不同于 crate 的名字
How to give a modules a different name than a crate
我有一个相当大的库,我想将其分成多个较小的 crate,但我仍想保留相同的模块名称。
假设我有一个名为 xyz
的库,我想将它分成以下 crate:
xyz-core
xyz-graphics
xyz-audio
xyz-input
我怎样才能使模块像这样仍然可用:
xyz::core::*
xyz::graphics::*
xyz::audio::*
xyz::input::*
而不是把它变成这样:
xyz_core::*
xyz_graphics::*
xyz_audio::*
xyz_input::*
我还希望能够在 crate 中使用 xyz::*
语法引用 crate 内容。所以 xyz-graphics
可以引用 xyz-core
使用 xyz::core::*
等等
创建一个主 crate xyz
将它们作为依赖项,re-export 其内的子 crate 中的所有项目:
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::*;
}
我有一个相当大的库,我想将其分成多个较小的 crate,但我仍想保留相同的模块名称。
假设我有一个名为 xyz
的库,我想将它分成以下 crate:
xyz-core
xyz-graphics
xyz-audio
xyz-input
我怎样才能使模块像这样仍然可用:
xyz::core::*
xyz::graphics::*
xyz::audio::*
xyz::input::*
而不是把它变成这样:
xyz_core::*
xyz_graphics::*
xyz_audio::*
xyz_input::*
我还希望能够在 crate 中使用 xyz::*
语法引用 crate 内容。所以 xyz-graphics
可以引用 xyz-core
使用 xyz::core::*
等等
创建一个主 crate xyz
将它们作为依赖项,re-export 其内的子 crate 中的所有项目:
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::*;
}