#ffi #error #result #no-std

no-std integer-result

Convert primitive and non-zero integer types to a Result

1 stable release

1.0.0 Sep 27, 2020

#50 in #result

MIT license

5KB
60 lines

integer-result-rs

๐Ÿ”ขโœ…๐Ÿšซ

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))
}

lib.rs:

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

No runtime deps

Features