4 个版本
0.2.0 | 2021 年 5 月 4 日 |
---|---|
0.1.2 | 2018 年 1 月 23 日 |
0.1.1 | 2018 年 1 月 11 日 |
0.1.0 | 2017 年 12 月 16 日 |
#1247 in Rust 模式
每月 35 次下载
在 diesel_derives_extra 中使用
3KB
diesel_derives_extra
为您的 Diesel 模型自动派生一些简单的 CRUD 方法。
基本用法
- 将
diesel_derives_extra
和diesel_derives_traits
添加到您的Cargo.toml
- 将
#[macro_use] extern crate diesel_derives_extra;
和extern crate diesel_derives_traits;
添加到项目的入口点
模型
对于用于在数据库中表示数据的模型,您可以使用以下内容
#[derive(Debug, Queryable, Identifiable, AsChangeset, Model)]
pub struct User {
// fields omitted
}
Model
是此crate添加的新派生。其他的是为了使 Model
特性正常工作所必需的。
这生成了以下方法
fn save(self, conn: &PgConnection) -> QueryResult<Self>;
fn find_all(conn: &PgConnection) -> QueryResult<Vec<Self>>;
fn find_one(
conn: &PgConnection,
id: <&'a Self as Identifiable>::Id,
) -> QueryResult<Option<Self>>;
fn exists(conn: &PgConnection, id: <&'a Self as Identifiable>::Id) -> QueryResult<bool>;
fn count_all(conn: &PgConnection) -> QueryResult<i64>;
fn destroy(self, conn: &PgConnection) -> QueryResult<()>;
新模型
对于用于将新数据插入到表中模型的模型,您可以使用以下内容
#[derive(Debug, Insertable, NewModel)]
#[model(User)]
struct NewUser {
// fields omitted
}
这生成一个方法
fn save(self, conn: &PgConnection) -> QueryResult<T>;
依赖关系
~3.5MB
~73K SLoC