[英]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_lib
在Cargo.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.rs
的pub
。
我建议你按照大板条箱的方式( serde
)并添加一个pub mod __private;
这传达了意义。 您还可以使用#[doc(hidden)]
对其进行注释,以将其隐藏在文档中,使其更加明显。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.