我正在关注Diesel示例指南,我的项目看起来完全like this。我想更改它,以便您使用cargo run --bin publish_post 1
而不是运行cargo run
,并显示一个循环,提示您要执行的操作。
我已将所有内容从bin/
移到controllers/
目录中。我想在main.rs
中将此作为use controllers::post
引用,以便我可以访问post::delete()
等。
将文件移出bin/
后,所有导入都会中断。同样,我无法从lib.rs
引用它。
为什么移动文件时我的导入都不起作用?我如何从这些文件中访问方法?
我想要一个这样的结构:
├── controllers
│ └── posts.rs
├── lib.rs
├── main.rs
├── models.rs
├── schema.rs
在main.rs
内,我希望能够做到这样的事情:
use controllers::posts;
pub fn main() {
// pseudocode
loop {
println!("what action would you like to perform?");
let ans = capture_input();
if ans == "insert" {
posts::insert();
} else if ans == "delete" {
posts::delete();
}
}
}
答案 0 :(得分:2)
制作文件夹不会自动生成Rust子模块。你需要做两件事:
在包根(lib.rs
或main.rs
)中明确声明模块:
mod controllers;
创建controllers/mod.rs
文件并在其中声明子模块:
mod posts;