Rust 中的细化:优化、算术和有状态谓词

2025 年 3 月 8 日发布了refined库的 v0.0.4 版本,包含以下重要内容:

  • 主要发布内容optimized(通过unsafe优化可省略运行时边界检查的特性标志)、arithmetic(允许直接将Refinement结构的相关特化用于std::ops的算术 trait)、Stateful 谓词(用户可定义StatefulPredicate实现,在纯且计算密集的谓词逻辑应用情况下更高效)。
  • Optimized 详解:初始发布后有人提出通过hint::assert_unchecked省略边界检查的问题,开启optimized特性后生成代码变快,如在month_name函数示例中,未开启时有边界检查生成的汇编代码,开启后则不再生成,此优化移除了生成代码中的分支点,若代码路径使用不频繁,能显著提高性能,待测试证明其安全性后可能成为默认特性。
  • Arithmetic 详解refined中的许多提供的谓词是数字相关的,arithmetic特性可在启用时在编译时验证而不是运行时验证提供“精炼算术”,类似implication需使用generic_const_exprs,稳定性不能保证,示例展示了如何使用该特性进行区间算术运算。
  • Stateful 谓词详解:如其名,可使用包含状态的谓词,如Regex谓词在多次使用相同正则表达式进行精炼时可缓存编译后的谓词以解决重复编译问题,正则表达式功能通过regex特性标志控制,不影响核心的有状态功能。
  • 其他更新:还包括新贡献者的贡献指南CONTRIBUTING.md和完整变更列表的变更日志CHANGELOG.md#004---2025-03-02,库正快速趋于稳定,将发布主版本表示对现有功能的持续稳定支持,欢迎提出未来改进和添加的想法。
阅读 7
0 条评论