#safe #goto #instructions #value #emulating #branch #spirit

safe-goto

在Rust中模仿类似于“安全goto值”的指令,灵感来源于IRLO的“安全goto值”预RFC。

2个不稳定版本

0.2.0 2022年12月4日
0.1.0 2022年12月2日

#8 in #emulating

MIT/Apache

16KB
320 代码行

safe-goto

在Rust中模仿类似于IRLO的“安全goto值”预RFC的类似安全goto指令。

该包包含一个宏,safe_goto,它通过在枚举上的match操作包装循环来模仿使用值的goto。

目标

本包的目的是双重的

  • 提供一个测试平台,用于在Rust中实验安全版本goto的模式
  • 突出rust编译器在分支相关优化方面可以改进的领域

非目标

  • 该包不追求最大性能。内联汇编违背了目标
  • 该包不旨在成为其他构建的基础。语法可能会改变以反映stdlib或语言中可能最终实现的内容。此外,宏非常脆弱,因为它必须处理几乎任意的rust代码

示例

测试和示例包含一些功能示例。您可以使用cargo-expand等工具查看展开的宏。

依赖项

~1.5MB
~36K SLoC