内容介绍

  • 掌握 rust 过程宏的编写
  • 实现对数据模型结构体的 CRUD Derive宏
    • 实现 CRUD,基于 sqlx
    • 实现自定义表名、主键及是否为视图
    • 实现某些字段跳过插入
    • 实现某些字段跳过更新
    • 实现查找单条记录的过滤条件,并可指定过滤条件是使用 ILIKE 进行模糊查询,还是使用 = 进行精确匹配。
    • 实现记录列表的过滤条件,并可指定过滤条件是使用 ILIKE 进行模糊查询,还是使用 = 进行精确匹配。
    • 实现分页

本专题使用的是 PostgreSQL 数据库,并未对其它数据库做兼容处理。

最终,我们希望达到的效果是:

User 为例,将自动为其生成以下方法:

以及配套的数据结构:

pub enum UserFindBy {
    Id(String),
    Email(String),
}

pub struct UserFindFilter {
    pub by: UserFindBy,
}

pub struct UserListFilter {
    pub page: u32,
    pub page_size: u32,
    pub email: Option<String>,
    pub nickname: Option<String>,
}

pub struct UserPaginate {
    pub page: u32,
    pub page_size: u32,
    pub total: u32,
    pub total_page: u32,
    pub data: Vec<User>,
}
要查看完整内容,请先登录