gpt4 book ai didi

rust - 将 Diesel 方法移动到其他目录

转载 作者:行者123 更新时间:2023-11-29 08:27:16 27 4
gpt4 key购买 nike

我正在遵循 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();
}
}
}

最佳答案

创建文件夹不会自动创建 Rust 子模块。你需要做两件事:

  1. 在 crate root 中显式声明模块(lib.rsmain.rs):

    mod controllers;
  2. 创建 controllers/mod.rs 文件并在其中声明一个子模块:

    mod posts;

关于rust - 将 Diesel 方法移动到其他目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44810825/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com