3个版本 (1个稳定版)
1.0.0 | 2022年12月21日 |
---|---|
0.3.0 | 2022年9月23日 |
0.2.0 |
|
0.1.0 | 2022年6月30日 |
#1569 在 进程宏 中
每月57次下载
9KB
142 行
diesel-selectable-macro
在插入时,Diesel允许你派生Insertable
特性,通过名称插入键
use diesel::prelude::*;
#[derive(Insertable)]
#[diesel(table_name = users)]
struct User {
email: String,
password_hash: String,
// There's another field, `phone`, but we are not writing it.
}
// later on...
fn write(user: User) -> QueryResult<usize> {
diesel::insert_into(users::table).values(user).execute(conn)
}
这个crate提供了一个类似的派生特性用于读取数据。Diesel的Queryable
特性通过位置而不是字段名来读取,但有时字段名更方便
use diesel::prelude::*;
use diesel_selectable_macro::Selectable;
#[derive(Queryable, Selectable)]
#[diesel(table_name = users)]
struct User {
email: String,
password_hash: String,
// There's another field, `phone`, but we do not need to read it.
}
// later on...
fn read(email: String) -> QueryResult<User> {
User::select().filter(crate::schema::users::email.eq(&email)).get_result(conn)
}
自动派生的select
方法向Diesel提供了显式的字段,对应于结构体字段。
依赖关系
~2MB
~43K SLoC