Crates.io | u32err |
lib.rs | u32err |
version | 0.1.1 |
source | src |
created_at | 2022-12-03 18:40:11.181995 |
updated_at | 2022-12-03 19:06:42.14377 |
description | A neat error type for FFI functions (where non-zero = failure) |
homepage | https://github.com/Wazzaps/u32err/ |
repository | https://github.com/Wazzaps/u32err/ |
max_upload_size | |
id | 729206 |
size | 6,243 |
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
.
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 returns_zero_on_success() -> ErrCode;
}
fn foo() -> ErrCode {
unsafe {
returns_zero_on_success()?;
}
ErrCode(0)
}