如何从src目录之外的目录导入模块?

时间:2019-11-05 16:05:42

标签: module rust rust-cargo

在学习如何访问模块时,我陷入了困境。我正在尝试将src以外的文件夹插入src中。它不起作用,给我一个错误。这是我的项目树。

$ Project1
.
|-- src
|       |-- main.rs
|   |--FolderinSrcFolder 
|       |--folderinsrcmodule.rs    
|
|--anothersrc
|   |--mod.rs
|
|-- rootmodule.rs
|-- Cargo.toml
|-- Cargo.lock

如何访问anothersrc/mod.rs src/main.rs?如何从rootmodule.rs访问src/main.rs

我已经阅读了Rust文档。

1 个答案:

答案 0 :(得分:4)

不要。将所有源代码放入src目录中。不要与这些习语和惯例作斗争,这根本不值得。


这是字面上的答案,但实际上不使用它

布局

.
├── Cargo.toml
├── bad_location.rs
└── src
    └── main.rs

src / main.rs

#[path = "../bad_location.rs"]
mod bad_location;

fn main() {
    println!("Was this a bad idea? {}", bad_location::dont_do_this());
}

badlocation.rs

pub fn dont_do_this() -> bool {
    true
}

关键是#[path]注释。

另请参阅: