#撤销 #历史 #跟踪

cset-derive

细粒度且可逆的结构体事务

2个版本

0.1.1 2022年12月24日
0.1.0 2022年12月22日

#42 in #撤销


用于 cset

MIT/Apache

14KB
272 代码行

drates.io docs.rs

cset

细粒度且可逆的结构体事务。

此crate提供了一个Track宏,结构体可以通过该宏生成跟踪字段变更所需的底层管道。调用Trackable::edit()返回一个Draft,该Draft将编辑与底层结构体分开存储,从而不写入任何值。

当在草稿上调用.commit()时,编辑将应用到基础结构体上。每个替换的值都会以ChangeSet中的Change形式返回给调用者。这个changeset可以重新应用到同一类型的结构体上,用changeset中的值替换字段。这个操作产生一个新的ChangeSet,允许实现撤销-重做的范式。

项目状态

此项目处于早期开发阶段,API更改应予以期待。

依赖关系

~1.5MB
~35K SLoC