1 个不稳定版本

0.1.0 2024 年 6 月 7 日

#947Rust 模式

自定义许可

4KB

warrant

类似于 Swift 中 guard 的担保宏。它在检查条件时有助于更好地表达代码逻辑,避免心理扭曲。

它实现了我所称的“过程性担保”。

用法

warrant = "0.1.0" 添加到您的 Cargo.toml 文件中。

之前

// if some condition is not satisfied, early return.
let condition = is_satisfied();
if ! condition {
return;
}
// proceed

之后

use warrant::warrant;
let condition = is_satisfied();
warrant!(condition, else {
    return;
});
// proceed

warrant::warrant 也被别名为 warrant::guard,如果您来自 Swift 并且更喜欢 guard

许可

MIT

其他参考资料

  • 模式匹配担保:考虑直接使用 if-let-else
  • "结构化担保":为了在结构体上强制执行条件,nutype 是一个好的选择。

无运行时依赖