4个版本 (重大变更)
0.3.0 | 2024年8月13日 |
---|---|
0.2.0 | 2024年7月24日 |
0.1.0 | 2024年7月8日 |
0.0.0-release | 2024年7月8日 |
#572 in Rust模式
每月504次下载
在 9 个crate中使用 (直接使用4个)
170KB
4K SLoC
essential-constraint-vm
基本约束检查虚拟机。
lib.rs
:
基本约束检查实现。
检查谓词
此crate的主要入口点是check_predicate
函数,它允许并行检查与单个谓词相关联的约束契约与提供的解决方案数据和状态槽变异。
检查单个约束
还公开了检查单个约束的函数。
exec_bytecode
、exec_bytecode_iter
和exec_ops
函数允许执行约束并返回结果Stack
。eval_bytecode
、eval_bytecode_iter
和eval_ops
函数与它们的exec_*
对应函数类似,但期望栈顶包含一个布尔值,指示约束是否得到满足(0
表示false
,1
表示true
)并返回此值。
执行单个操作
函数 step_op
(以及相关的 step_op_*
函数)被公开,允许对给定的堆栈应用单个操作。这在将约束操作集成到下游虚拟机(例如基本状态读取虚拟机)的情况下非常有用。
理解汇编
essential-constraint-asm
库作为 [asm
] 模块被重新导出。有关单个操作预期行为的详细信息,请参阅[该模块的文档][asm]。
依赖项
~12MB
~181K SLoC