1 个稳定版本
1.0.0 | 2019年5月9日 |
---|
#2400 in 开发工具
12KB
50 行
context-attribute
使用文档注释设置错误 context
。
这非常有用,因为它不需要手动编写错误消息来提供错误上下文,而是自动从文档注释中推导出来。这对于异步上下文特别有效,因为堆栈跟踪可能在让步点和线程边界之后无法保留,而上下文则可以。
示例
use context_attribute::context;
use failure::{ensure, ResultExt};
/// Square a number if it's less than 10.
#[context]
fn square(num: usize) -> Result<usize, failure::Error> {
ensure!(num < 10, "Number was too large");
Ok(num * num)
}
fn main() -> Result<(), failure::Error> {
let args = std::env::args();
ensure!(args.len() == 2, "usage: square <num>");
let input = args.skip(1).next().unwrap().parse()?;
println!("result is {}", square(input)?);
Ok(())
}
$ cargo run --example square 12
Error: ErrorMessage { msg: "Number was too large" }
Square a number if it's less than 10.
安装
$ cargo add context-attribute
安全性
此 crate 使用 #![deny(unsafe_code)]
来确保所有内容都在 100% 安全的 Rust 中实现。
贡献
想要加入我们?查看我们的 "贡献" 指南 并查看一些这些问题
参考文献
无。
许可证
MIT OR Apache-2.0
依赖
~2MB
~47K SLoC