将 Diesel 方法移动到其他目录
Move Diesel methods into other directories
我正在遵循 Diesel 示例指南,我的项目看起来完全 like this。我想更改它,以便您使用 cargo run
而不是 运行ning cargo run --bin publish_post 1
,并且会出现一个循环提示您要执行的操作 运行。
我已将所有内容从 bin/
移出并移至 controllers/
目录。我想在 main.rs
中将其引用为 use controllers::post
,因此我可以访问 post::delete()
,等等
一旦我将文件移出 bin/
,所有导入都会中断。同样,我无法从 lib.rs
.
引用它
为什么我的 none 导入在文件移动后仍然有效?我如何从这些文件中访问方法?
我想要这样的结构:
├── 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();
}
}
}
创建文件夹不会自动创建 Rust 子模块。你需要做两件事:
在 crate 根目录中显式声明模块(lib.rs
或 main.rs
):
mod controllers;
创建controllers/mod.rs
文件并在其中声明一个子模块:
mod posts;
我正在遵循 Diesel 示例指南,我的项目看起来完全 like this。我想更改它,以便您使用 cargo run
而不是 运行ning cargo run --bin publish_post 1
,并且会出现一个循环提示您要执行的操作 运行。
我已将所有内容从 bin/
移出并移至 controllers/
目录。我想在 main.rs
中将其引用为 use controllers::post
,因此我可以访问 post::delete()
,等等
一旦我将文件移出 bin/
,所有导入都会中断。同样,我无法从 lib.rs
.
为什么我的 none 导入在文件移动后仍然有效?我如何从这些文件中访问方法?
我想要这样的结构:
├── 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();
}
}
}
创建文件夹不会自动创建 Rust 子模块。你需要做两件事:
在 crate 根目录中显式声明模块(
lib.rs
或main.rs
):mod controllers;
创建
controllers/mod.rs
文件并在其中声明一个子模块:mod posts;