#repository #transactional #traits #abstract #safe #persistence

typesafe_repository

以安全和统一的方式实现抽象数据持久化

12 个版本

0.5.6 2024年7月4日
0.5.5 2024年6月11日
0.5.4 2023年6月23日
0.5.3 2023年4月28日
0.1.2 2023年1月20日

413数据库接口 中排名

34 每月下载量
用于 typesafe_repository_macro

MIT 许可证

89KB
2K SLoC

功能

  • 身份特征(包括如 ValidIdentityIdentityOf 的辅助类型)
  • AddGetList 之类的存储库特征
  • 无需使用 unimplemented!() 或泛型实现 - 基于一系列特征构建自己的存储库
  • 没有繁重的宏魔法
  • 基于 HCons 的可回滚特性的事务存储库特征
  • 存储库的事务包装器,可以用作继承内部存储库行为的普通存储库或事务存储库
  • 在一次事务中执行多个存储库的操作

目标

  • 提供灵活且基于抽象泛型的存储库特征
  • 易于实现事务
  • 非必要功能是可选的
  • 无不安全操作和 panic
  • 无由库引起的运行时错误
  • 无强制错误类型

路线图

  • 事务特征和 RepositoryWrapper
  • RepositoryWrapper 支持回滚
  • RepositoryWrapper 无缝的事务性和非事务性互操作
  • 类似 IdentityBy 的特征用于标记结构体
  • 可选的 serde 支持
  • 同步/异步操作,可选功能
  • 同步事务支持
  • 基于指针的 ValidIdentity
  • 将前一个操作结果作为下一个操作参数传递到事务中
  • HCons 包装器,便于提取输出
  • TransactionRunner 设置和不同的映射器
  • 事务日志
  • 基于方法名称(如 Spring 存储库中)的特剧行为生成

注意

许多泛型限制是基于启发式方法做出的,因此请随时提出合理的限制更改建议

项目处于早期阶段,预计会有破坏性的 API 更改

依赖关系

~3–12MB
~127K SLoC