This crate implements the core::ops::Try
trait with a thin wrapper over u32
.
You may use it to implement ergonomic error handling for FFI functions that return non-zero values on failure,
or as a lightweight Result
.
``rust
use u32err::ErrCode;
extern "C" {
/// This is a function that does something (via FFI).
///
/// It returns either a 0 on success, or a non-zero number on failure.
/// The real FFI signature of this function returns [
u32`], but the types are compatible.
fn returnszeroon_success() -> ErrCode;
}
fn foo() -> ErrCode { unsafe { returnszeroon_success()?; } ErrCode(0) } ```