Module 我可以在不为每个文件引入模块的情况下将板条箱拆分为多个文件吗?
我找到的所有示例都创建一个Module 我可以在不为每个文件引入模块的情况下将板条箱拆分为多个文件吗?,module,namespaces,rust,rust-crates,Module,Namespaces,Rust,Rust Crates,我找到的所有示例都创建一个lib.rs,然后在该文件中创建mod foo,模块条用于每个文件foo.rs,bar.rs等等 基本上我想要的是将我的板条箱分割成多个文件,但不必为每个文件引入大量模块。Rust不能这样做吗?为了包含另一个源文件,它必须是自己的模块 但是,这并不意味着您必须在API中公开这一事实。例如,假设您想将一些代码放入名为hidden.rs的文件中: pub fn inside_hidden() {} 现在,在lib.rs文件中,您可以公开此模块: #![crate_type
lib.rs
,然后在该文件中创建mod foo代码>,模块条代码>用于每个文件foo.rs
,bar.rs
等等
基本上我想要的是将我的板条箱分割成多个文件,但不必为每个文件引入大量模块。Rust不能这样做吗?为了包含另一个源文件,它必须是自己的模块
但是,这并不意味着您必须在API中公开这一事实。例如,假设您想将一些代码放入名为hidden.rs的文件中:
pub fn inside_hidden() {}
现在,在lib.rs
文件中,您可以公开此模块:
#![crate_type = "lib"]
pub mod hidden;
但是,如果您的库不需要子模块,则最好将隐藏模块保密,并将其内容作为顶级模块的成员公开:
#![crate_type = "lib"]
pub use hidden::inside_hidden;
mod hidden;
这样,用户就不会知道您有一个隐藏的子模块。他们将看到内部隐藏的,就好像它是顶级模块的成员一样。你可以有单独的子模块,你可以在你想导出的模块中使用它们,就像往常一样:谢谢!