18 个版本
0.2.1 | 2023年1月30日 |
---|---|
0.2.0-beta.9 | 2022年12月25日 |
0.2.0-beta.8 | 2022年11月8日 |
0.0.0 | 2022年5月10日 |
#1426 在 数据库接口
170KB
1.5K SLoC
Teil,Postgres/Sqlite 的基本数据映射器
Teil (发音为 /tail/) 是一个库,旨在尽可能简化与 postgres (或 sqlite) 的连接(并带有此含义的限制)。 Teil 在德语中意为 部分、份额 或 块。
use teil::{Teil, fields::Serial};
#[derive(Teil, Debug)]
struct Account {
#[teil(auto, primary_key)]
id: Serial,
#[teil(unique)]
owner: String,
#[teil(rename = "account_balance")]
balance: f64
}
teil::config()
.user("example")
.password("password")
.dbname("example_db")
.host("127.0.0.1")
.port(5432)
.set().unwrap();
teil::create!(Account);
(Account {id: Serial::new(), owner: "Carlos".into(), balance: 420.00}).save().await.unwrap();
let account = Account::retrieve(1).await.unwrap();
println!("{:?}", account);
teil::destroy!(Account);
此 crate 可用的功能
sync
:启用库的同步版本的使用(即,SyncTeil 和 SyncFilter 特性和 derive 宏)iter
:允许使用基于事务的多次保存功能(请参阅 save_iter 和 save_iter 的同步版本)chrono
:允许将一些 chrono 字段用作 Teil-deriving 结构的字段。有关更多信息,请参阅 TeilField 和 SyncTeilField。partial
:启用数据库表中行的部分更新字段。有关更多信息,请参阅 update 方法(或同步版本,update)uuid
:允许使用 derive 宏与 Uuid 类型serde
:在使用 derive 宏时实现了 Serialize 和 Deserialize 对于 Serial、BigSerial、SmallSerial 和 Update 相关类型fs
:通过辅助元数据表,启用一些文件系统管理功能以在本地存储文件
依赖项
~7–20MB
~305K SLoC