module - 引用兄弟模块(例如 Diesel 生成的模式)的正确方法是什么?
问题描述
我正在构建一个使用 Diesel 访问 MySQL 数据库的 Web 服务。一切都设置正确,Diesel 正在生成schema.rs
包含反映我的数据库模式的内容的文件:
table! {
user (id) {
// ...
}
}
我创建了一个store.rs
位于main.rs
. 如果我对模块的理解是正确的,那么我放入store.rs
文件中的任何代码都将属于一个名为store
该模块的子crate
模块。我的目的是将所有处理数据库内容的代码放在store
模块中。但是,我似乎无法use
从schema
我的模块中的store
模块开始使用 Diesel API 进行一些查询。
我试过了:
use schema;
use crate::schema;
use super::schema;
use super::schema::user;
没有任何效果。编译器总是说它无法解析路径的一部分或另一部分。
在 Rust 中引用兄弟模块的正确方法是什么?
解决方案
在你的 main.rs 中,确保你为 #[macro_use] 设置了柴油并导入了模式 mod。
#[macro_use]
extern crate diesel;
mod schema;
在 store.rs 中,您应该能够使用您认为合适的模式。
use crate::schema::user;
推荐阅读
- json - 根据角度 2 中存储数组的索引更新项目属性
- netty - 来自与套接字不同源的 Netty 通道输入
- php - 使用 BETWEEN 在 MySQL 中存储为字符串的日期
- angularjs - AngularJS 1.5+ 将转换表达式绑定到子组件控制器
- javascript - 如何在 Node js 中执行多个 Post 请求
- javascript - 在更新查询中使用 `$expr`
- c# - COM 库给出问题
- csv - BigQ 将日期从 DD/MM 更改为 MM/DD 少于 12 天
- php - 如何将 PHP 逗号分隔的字符串集成到 SQL 查询中?
- android - 如何使用工作室设置环境变量以在android中激活uiautomatorviewer