这是我的演示项目的文件树:
.
├── Cargo.lock
├── Cargo.toml
├── src
├── lib.rs
├── ooo.rs
└── xxx.rs
在lib.rs
中:
mod xxx;
mod ooo;
在xxx.rs
中:
pub fn hello() {
println!("hello!");
}
在ooo.rs
中:
use xxx::hello;
pub fn world() {
hello();
println!("world!");
}
当我执行cargo build
时,它不会成功:
Compiling ooo v0.1.0 (/Users/eric/ooo)
error[E0432]: unresolved import `xxx`
--> src/ooo.rs:1:5
|
1 | use xxx::hello;
| ^^^ Could not find `xxx` in `{{root}}`
我知道,如果我使用super::ooo::hello
而不是ooo::hello
,它将成功,但是有什么方法可以使用ooo::hello
并成功?
例如,这在redis-rs
的{{1}}项目中有效,其中src/client.rs
和connection
是此板条箱中的模块:
types
答案 0 :(得分:4)
您似乎正在使用Rust的2018版beta版而不是稳定版。在新版本中,您需要使用crate
关键字显式标记从当前板条箱中的导入:
use crate::xxx::hello;
有关更多详细信息,请参见the section on "path clarity" in the edition guide。