13个版本
0.5.0 | 2022年3月27日 |
---|---|
0.4.2 | 2021年1月20日 |
0.3.3 | 2020年4月20日 |
0.2.1 | 2020年3月28日 |
0.1.0 | 2020年1月25日 |
#1310 在 数据库接口
每月55次下载
在 2 crates 中使用
45KB
1.5K SLoC
debil
ORM旨在提供表宏和自动迁移
表宏
您需要指定 sql_type
,使其成为每个DB crate提供的内容。
#[derive(Table)]
#[sql(table_name = "ex_1", sql_type = "...", primary_key = "pk")]
struct Ex1 {
#[sql(size = 50, unique = true, not_null = true)]
field1: String,
aaaa: i32,
pk: i32,
}
此示例为该结构体派生了一些有用的映射函数。请参阅debil的文档中的函数。
访问器宏
访问器宏提供了一种安全访问每一列的方式。这对于构建查询很有用。
// Use Accessor derive here!
#[derive(Table, Accessor)]
#[sql(table_name = "ex_1", sql_type = "...", primary_key = "pk")]
struct Ex1 {
field1: String,
aaaa: i32,
pk: i32,
}
// Use accessor! macro to access to a field with table_name prefixed
assert_eq!(accessor!(Ex1::field1), "ex_1.field1");
// If you only need field name, use accessor_name! macro
assert_eq!(accessor_name!(Ex1::aaaa), "aaaa");
// Or you can just call the field name function directly, which is derived by Accessor derive
assert_eq!(Ex1::field1(), "field1");
// accessor!(Ex1::foobar) <- compile error!
依赖
~2–19MB
~263K SLoC