我想使用大量相同的通用代码生成多个二进制文件。如果我在
src/main.rs
中编写所有内容,我可以简单地在 pub(crate)
处标记项目并访问代码而不导出它。但是,如果我将二进制文件放入 src/bin/foo.rs
中,那么我无法找到一种方法来访问它而不标记所有内容 pub
。我不想将所有内容都标记为 pub,不仅因为我不希望其他人依赖它,还因为它会使可见性检查无效。
我发现的唯一解决方法是将文件放入
src
目录中,然后在 bin/foo-bar.rs
中放置一个简单的填充程序,仅调用 my_crate::bin_foo_bar::main()
。这不是很整洁并且需要大量开销。
在你的包中,你可以定义一个 lib crate 和多个二进制 crate。如果您将库板条箱内的类型声明为 pub(crate) ,那么它显然从您的二进制板条箱中不可见。因此修改定义。包裹不是板条箱,而是板条箱的包裹。并且 pub(crate) 类型仅在它们所属的板条箱内可见。