如何使物品在我的二进制板条箱目标中可见,但在任何其他板条箱中不可见?



我想使用许多相同的通用代码生成多个二进制文件。如果我用src/main.rs编写所有内容,我可以简单地在pub(crate)处标记项目并访问代码而无需导出它。但是,如果我将二进制文件放在src/bin/foo.rs那么我找不到一种方法来访问它而不将所有内容标记为pub。我不想标记所有内容,不仅因为我不希望其他人依赖它,还因为它使可见性检查无效。

我找到的唯一解决方法是将文件放在src目录中,然后在bin/foo-bar.rs中放置一个简单的填充程序,该填充程序仅调用my_crate::bin_foo_bar::main()。这不是很整洁,需要一堆开销。

在你的包中,你可以定义一个lib crate和多个二进制crate。如果你在库箱内将一个类型声明为 pub(crate(,那么它显然不会从你的二进制箱子中看到。所以修改定义。包装不是板条箱,它是板条箱的包裹。pub(crate(类型仅在它们所属的crate内可见。

相关内容

  • 没有找到相关文章

最新更新