Crates.io | integer-result |
lib.rs | integer-result |
version | 1.0.0 |
source | src |
created_at | 2020-09-27 21:03:33.668806 |
updated_at | 2020-09-27 21:03:33.668806 |
description | Convert primitive and non-zero integer types to a Result |
homepage | |
repository | https://github.com/wasaylor/integer-result-rs |
max_upload_size | |
id | 293529 |
size | 4,332 |
๐ขโ ๐ซ
Using scalar types to indicate failure in Rust is discouraged, yet not uncommon in C. When calling C functions from Rust, you have to check return values that indicate success or failure like you would in C. This library adds methods to the primitive and non-zero integer types to ease the pain.
Now you can write this ๐งผ
use integer_result::Ext;
unsafe { some_c_function() }
.ok_equal(0)
.map_err(|val| YourRustyErrorType::from(val)) // or somethin' ..
Rather than this ๐คข
let val = unsafe { some_c_function() };
if val == 0 {
Ok(())
} else {
Err(YourRustyErrorType::from(val))
}