我有一个模块csv,正在尝试使用外部csv库(use csv::ReaderBuilder;)。我有点矛盾。
显示错误的最小代码
mod csv {
use ::csv::ReaderBuilder;
}错误消息
--> src/csv.rs:4:5
|
4 | use csv::ReaderBuilder;
| ^^^ help: a similar path exists: `crate::csv`
|
= note: `use` statements changed in Rust 2018; read more at <https://doc.rust-lang.org/edition-guide/rust-2018/module-system/path-clarity.html>我的问题是如何避免这样的冲突?在创建模块时,知道我可能通过use使用的所有模块的名称似乎是不合理的。我做错了什么?我可以从my_开始命名我的所有模块,但这很难看,而且几乎不是最好的解决方案。
对不起,如果我的一些术语是错误的,我是生锈的。
发布于 2022-09-03 15:57:50
您可以在use中消除它们的歧义。前导crate路径元素指示模块属于当前机箱。前导空path元素表示模块属于命名空间根,就像引导/字符使文件系统路径成为绝对路径一样。
use ::csv::Foo; // Uses Foo from the external csv crate
use crate::csv::Foo; // Uses Foo from the csv module of the current crate发布于 2022-09-03 18:40:20
似乎我没有将依赖项添加到Cargo.toml文件中。
在进一步的检查中,我看到错误信息解释了。然而,我被帮助弄糊涂了。它假定use命令中存在语法错误。
在未来,我需要认识到,帮助部分是一个建议,而不是对问题的描述。
https://stackoverflow.com/questions/73593278
复制相似问题