module - Rust 参考模块
问题描述
我在工作区中有一组文件,我想从另一个目录引用这些文件,但我找不到需要使用的语法。
例子是:
Primary
|_______ First
| |_____ src
| |______ Cool_thing.rs
|_______ Second
|_____ src
|______ main.rs
我想Cool_things
从 main.rs引用一个结构
在 Primary 的 Cargo.toml 中,我输入:
[workspace]
members= ["First","Second", "Third"]
[dependencies.Second]
First= { path = "First" }
在Second
我拥有的目录中的 Cargo.toml
[dependencies]
First = { path = "../First" }
我一直在我的 main.rs 中尝试一些事情,例如:
extern crate First;
use First::Cool_things::Cool_things;
没有变化use
或mod
似乎允许我引用 mod 中的 struct 或 impl 或函数Cool_things
。
解决方案
问题是它需要第一个 src 目录中的“lib.rs”。基本上,rust 的文档似乎有点疏忽,如果你想使用本地依赖项,那么你必须有一个 lib.rs 文件,其中列出了你计划访问的所有模块。因此,在 First src 目录中创建一个 lib.rs,并列出“Mod Cool_things”将允许其他包引用该目录中的 mod 文件。
cargo.toml 文件:在上面的问题中插入有正确的路径和依赖关系,问题在于缺少 lib.rs 文件。
因此,如果您正在计划一个多二进制程序,您需要记住在分解代码然后从工作区的其他部分访问模块时拥有一个 lib.rs 文件。
推荐阅读
- php - php - 检查条件中的命名空间
- ms-access - 筛选日期以搜索 PLC 项目
- groovy - 如何使用 Groovy 更改单个测试套件中的两个端点?
- python - 需要帮助使用 BeautifulSoup/requests 解析漫画图像
- javascript - 如何合并具有不同颜色的网格并且只有一个绘制调用?
- microsoft-graph-api - Azure Graph API - 无法使用各种 $Filter 语句检索 SSPR 数据
- python - 有没有办法将自定义别名添加到 pipenv shell 中?
- excel - Vlookup表将工作表复制到其他工作簿vba
- javascript - 调整浏览器大小时我的导航消失了
- temenos-quantum - Kony:从 android 设备访问主机名