7个版本

0.1.4 2023年5月3日
0.1.3 2023年3月30日
0.1.2 2022年9月13日
0.1.1 2021年9月22日
0.0.1 2020年11月23日

#1390数据库接口

每月 28 次下载

MIT/Apache

36KB
734

ergol

CI Docs 书籍

这个crate提供了#[ergol]宏。它允许将数据持久化到数据库中。例如,你只需写下

use ergol::prelude::*;

#[ergol]
pub struct User {
    #[id] pub id: i32,
    #[unique] pub username: String,
    pub password: String,
    pub age: Option<i32>,
}

然后#[ergol]宏将生成你所需的大部分代码。然后你可以运行如下代码

// Drop the user table if it exists
User::drop_table().execute(&client).await.ok();

// Create the user table
User::create_table().execute(&client).await?;

// Create a user and save it into the database
let mut user: User = User::create("thomas", "pa$$w0rd", Some(28)).save(&client).await?;

// Change some of its fields
*user.age.as_mut().unwrap() += 1;

// Update the user in the database
user.save(&client).await?;

// Fetch a user by its username thanks to the unique attribute
let user: Option<User> = User::get_by_username("thomas", &client).await?;

// Select all users
let users: Vec<User> = User::select().execute(&client).await?;

有关更多信息,请参阅该书籍

依赖关系

~8–41MB
~669K SLoC