Вот дерево файлов моего демонстрационного проекта:
.
├── 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
в src/client.rs
, где connection
и types
являютсямодулей в этом ящике:
use connection::{connect, Connection, ConnectionInfo, ConnectionLike, IntoConnectionInfo};
use types::{RedisFuture, RedisResult, Value};