为了整齐,我将我的铁 rust 项目分成了同一文件夹中的多个文件.现在,每个文件都被认为是它自己的一个模块,我必须将所有文件都标记为pub(crate).有没有办法公布文件中的所有符号以供同一机箱使用,或者将文件标记为不是它们自己的模块,而是My main.rs的一部分?

推荐答案

Ruust有一个内置的宏include!,它的工作方式类似于c中的#include,但请记住,这不是它的预期用途.该宏通常用于包含生成的文件,如不用于编辑的OpenGL绑定.铁 rust 分析器不会在包含的文件中提供智能许可.正如@Chayim Friedman提到的那样,使用pub(crate)是一种方法,但:

struct A; // private struct
pub(crate) struct B; // public to whole crate
pub struct C; // public to other crates, but only if this is library
pub(super) struct D; // public to parent module

如果你有main个,我假设你的项目是应用程序而不是库,所以你只需要pub个.

Rust相关问答推荐

为什么是!为Rust中的RwLockReadGuard和RwLockWriteGuard实现的发送特征?

使用pyo3::Types::PyIterator的无限内存使用量

如何使用 list 在Rust for Windows中编译?

获取字符串切片(&;str)上的切片([ia..ib])返回字符串

像这样的铁 rust 图案除了‘选项’之外,还有其他 Select 吗?

铁 rust 中双倍或更多换行符的更好练习?

在铁 rust 中,如何一次只引用几件事中的一件?

什么时候使用FuturesOrdered?

为什么rustc会自动降级其版本?

找不到 .has_func 或 .get_func 的 def

tokio::spawn 有和没有异步块

为什么是&mut发送?线程如何在安全的 Rust 中捕获 &mut?

在Rust中实现Trie数据 struct 的更好方式

Rust与_有何区别?

当在lambda中通过引用传递时,为什么会出现终身/类型不匹配错误?

如何刷新 TcpStream

为什么 i32 Box 类型可以在 Rust 中向下转换?

我如何将 google_gmail1::Gmail> 传递给线程生成?

您如何使用枚举反序列化字符串,其中任何其他值反序列化为新类型变体同时保留字符串?

如何迭代调用可能会失败的函数?操作员?