#result #ffi #error #no-std

no-std integer-result

将原始和非零整数类型转换为 Result

1 个稳定版本

1.0.0 2020 年 9 月 27 日

#result 中排名第 53

MIT 许可证

5KB
60 行(不包括注释)

integer-result-rs

🔢✅🚫

在 Rust 中使用标量类型来表示失败是不推荐的,但在 C 中却很常见。当从 Rust 调用 C 函数时,您必须像在 C 中那样检查表示成功或失败的返回值。此库为原始和非零整数类型添加了方法,以减轻痛苦。

现在您可以编写这样的代码 🧼

use integer_result::Ext;

unsafe { some_c_function() }
  .ok_equal(0)
  .map_err(|val| YourRustyErrorType::from(val)) // or somethin' ..

而不是这样的代码 🤢

let val = unsafe { some_c_function() };

if val == 0 {
  Ok(())
} else {
  Err(YourRustyErrorType::from(val))
}

lib.rs:

A Rust library for converting the primitive and non-zero integer types to a Result through comparison.

无运行时依赖

功能