繁体   English   中英

在 Rust 的同一个项目中,如何保持一个 mod 私有并在另一个模块中使用它?

[英]How do I keep a mod private and use it in another module within the same project in Rust?

所以我想在lib.rs中定义一些模块,但不公开它们,而只在项目中使用。

在我的lib.rs中,如果我有这样的定义:

pub mod args;

在我的main.rs中,我可以这样使用args模块:

use my_lib::args::Cli;

其中my_libCargo.tml中定义为

[lib]
name = "my_lib"
path = "src/lib.rs"

但我不想要pub mod args; . 我尝试更改为pub(crate) mod args; 但这会导致无法找到args模块的编译错误。

如何使lib.rs中定义的args之类的模块可用,而不必为其提供最宽松的可见性?

由于 Rust 将库lib.rs和二进制main.rs分离到单独的板条箱中,因此没有简单的方法来包含 lib.rs 中的lib.rs而不是来自main.rspub

我建议你按照大板条箱的方式( serde )并添加一个pub mod __private; 这传达了意义。 您还可以使用#[doc(hidden)]对其进行注释,以将其隐藏在文档中,使其更加明显。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM