Chr*_*oph 7 namespaces module rust rust-crates
所有的例子,我发现创建一个lib.rs,然后将该文件中创建mod foo;,mod bar;为每个文件foo.rs,bar.rs等等.
基本上我想要的是将我的箱子分成多个文件,但不必为每个文件引入大量模块.Rust不可能做到这一点吗?
Bur*_*hi5 10
为了包含另一个源文件,它必须是它自己的模块.
但是,这并不意味着您必须在API中公开此事实.例如,假设您想将一些代码放在一个名为的文件中hidden.rs:
pub fn inside_hidden() {}
Run Code Online (Sandbox Code Playgroud)
现在在您的lib.rs文件中,您可以公开此模块:
#![crate_type = "lib"]
pub mod hidden;
Run Code Online (Sandbox Code Playgroud)
但是,如果您的库不需要子模块,那么最好保密hidden模块,而是将其内容作为顶级模块的成员公开:
#![crate_type = "lib"]
pub use hidden::inside_hidden;
mod hidden;
Run Code Online (Sandbox Code Playgroud)
这样,用户就不会知道你有一个hidden子模块.他们会看到inside_hidden它是您的顶级模块的成员.