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日 |
#646 in 过程宏
11KB
166 行
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添加的新derive。其他的是为了使 Model
trait工作所必需的。
这会生成以下方法
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
~75K SLoC