5个不稳定版本
新版本 0.3.0 | 2024年8月19日 |
---|---|
0.2.0 | 2024年8月18日 |
0.1.2 | 2024年8月1日 |
0.1.1 | 2024年8月1日 |
0.1.0 | 2024年8月1日 |
#312 在 调试
734 每月下载量
在 pyri_tooltip 中使用
21KB
487 行
tiny_bail
退出是介于 unwrap
和 ?
之间的错误处理模式
- 与
unwrap
相比:退出将return
、continue
或break
而不是panic。 - 与
?
相比:退出将记录或忽略错误而不是传播它。
中间路径避免了使用 ?
传播错误时的不便。
入门指南
此crate提供六个宏变体
以及它们的微型别名: r!
、rq!
、c!
、cq!
、b!
和 bq!
。
这些宏支持 bool
、Option
和 Result
类型,开箱即用。通过实现 Success
来扩展其他类型。
您可以将返回值作为宏的可选第一个参数进行指定,或者省略它以默认为 Default::default()
—这在没有返回值的函数中也能正常工作。
示例
use tiny_bail::prelude::*;
// With `tiny_bail`:
fn increment_last(arr: &mut [i32]) {
*r!(arr.last_mut()) += 1;
}
// Without `tiny_bail`:
fn increment_last_manually(arr: &mut [i32]) {
if let Some(x) = arr.last_mut() {
*x += 1;
} else {
println!("Bailed at src/example.rs:34:18: `arr.last_mut()`");
return;
}
}
许可证
此crate可供您选择以下任一协议下使用:MIT 或 Apache-2.0。
依赖
~355–500KB