我具有以下结构:
|-- Cargo.toml
|-- src
| |-- file1.rs
| |-- file2.rs
| `-- main.rs
src / file1.rs
pub fn function1() {}
src / file2.rs
// ERROR (1): error[E0583]: file not found for module `file1`
// mod file1;
use crate::file1;
pub fn function2() {
file1::function1();
}
src / main.rs
// ERROR (2): no `file1` in the root
// use crate::file1;
mod file1;
mod file2;
fn main() {
file1::function1();
file2::function2();
}
基本上,我有另一种导入function1
的方式,这取决于我位于板条箱根目录或任意Rust文件中(请参见ERROR (1)
和ERROR (2)
) 。
我对Rust如何管理文件感到有些迷惑:它们的行为与根箱不同,后者只是一个简单的mod
关键字。
因此,上面提到的答案是重复项,仅部分回答了如何从板条箱根目录引用文件,而不是为什么从另一个文件箱引用同一文件(use crate::<filename>
)。