3

我正在构建一个使用 Diesel 访问 MySQL 数据库的 Web 服务。一切都设置正确,Diesel 正在生成schema.rs包含反映我的数据库模式的内容的文件:

table! {
    user (id) {
        // ...
    }
}

我创建了一个store.rs位于main.rs. 如果我对模块的理解是正确的,那么我放入store.rs文件中的任何代码都将属于一个名为store该模块的子crate模块。我的目的是将所有处理数据库内容的代码放在store模块中。但是,我似乎无法useschema我的模块中的store模块开始使用 Diesel API 进行一些查询。

我试过了:

  • use schema;
  • use crate::schema;
  • use super::schema;
  • use super::schema::user;

没有任何效果。编译器总是说它无法解析路径的一部分或另一部分。

在 Rust 中引用兄弟模块的正确方法是什么?

4

2 回答 2

1

在你的 main.rs 中,确保你为 #[macro_use] 设置了柴油并导入了模式 mod。

#[macro_use]
extern crate diesel;
mod schema;

在 store.rs 中,您应该能够使用您认为合适的模式。

use crate::schema::user;
于 2021-01-06T15:15:45.993 回答
0

我希望这会有所帮助。

在 store.rs

use crate::schema::*;

// … any other diesel related code you want to put here

在 main.rs 中

pub mod schema;
mod store;
于 2020-06-15T17:47:24.377 回答