| Crates.io | hierr |
| lib.rs | hierr |
| version | 0.2.4 |
| created_at | 2023-08-22 08:54:10.013634+00 |
| updated_at | 2025-02-07 07:04:25.881498+00 |
| description | RUST Error |
| homepage | |
| repository | https://gitcode.com/xuanwu/hierr |
| max_upload_size | |
| id | 950818 |
| size | 40,893 |
原来的名字为hun_error. 包装OS的错误码, 统一错误码的查询和获取接口
错误码有两种使用场景:
target提供接口,需要调用者显示区分target.Result<T, Error>.
这里就会存在Error具体取值的构造尽可能和Target无关,因此为此场景定义了几个常用业务下需要使用到的错误码(v0.2.4):Target定义的错误码来表达业务层的常见错误.
因为此场景并不鼓励基于具体错误码进行容错处理,因此并不提供对应的is_***接口.0.2.4版本: 针对无需细分错误码场景提供常见错误构造函数0.2.3版本: 支持mingw(target_os = "windows", target_env = "gnu"), 同linux.0.2.2版本: 解决widows下无法正确输出中文信息的bug1. fn errno() -> i32;
2. fn set_errno(i32);
3. fn errmsg(i32, &mut [u8]) -> &str;
封装i32为Error
use hierr;
let err = hierr::Error::last();
println!("{}", err);
let mut buf = [0_u8; 64];
println!("{}: {}", hierr::errno(), hierr::errmsg(hierr::errno(), &mut buf[..]));
hierr::set_errno(100);
let err = hierr::Error::last();
assert_eq!(err, 100.into());
assert_eq!(hierr::errno(), 100);