17 个不稳定版本 (3 个破坏性版本)
0.5.12 | 2024年2月22日 |
---|---|
0.5.8 | 2023年12月12日 |
0.5.7 | 2023年10月26日 |
0.2.2 | 2023年7月17日 |
0.2.0 | 2023年3月23日 |
#120 在 魔力豆
每月46次 下载
在 4 个crate中(通过 aquavm-air)使用
105KB
2K SLoC
AIR 跟踪处理器
该crate包含基于CRDT的合并数据算法的实现。它公开了基于访问者模式的 TraceHandler
结构体,并在 AIR 指令执行的一些特定位置调用其公共方法。内部 TraceHandler
包含多个有限状态机,每个公共方法都会进行一个或多个这些有限状态机的状态转换。以下是所有指令的状态转换序列,调用者必须遵循。
Ap 指令
TraceHandler
对 ap
指令的预期调用序列
meet_ap_start
-> meet_ap_end
Call 指令
TraceHandler
对 call
指令的预期调用序列
meet_call_start
-> meet_call_end
Par 指令
TraceHandler
对 par
指令的预期调用序列
meet_par_start
-> meet_par_subgraph_end(..., SubgraphType::Left)
-> meet_par_subgraph_end(..., SubgraphType::Right)
Fold 指令
TraceHandler
对 fold
指令的预期调用序列
meet_fold_start.1 ->
meet_generation_start.N ->
meet_next.M ->
meet_prev.M ->
meet_generation_end.N ->
meet_fold_end.1
其中 .T 表示这个函数应该被调用 T 次。
依赖项
~14–29MB
~449K SLoC