首页 > 解决方案 > 引用兄弟模块(例如 Diesel 生成的模式)的正确方法是什么?

问题描述

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

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

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

我试过了:

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

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

标签: modulerustschemarust-diesel

解决方案


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

#[macro_use]
extern crate diesel;
mod schema;

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

use crate::schema::user;

推荐阅读