#overflow #arithmetic-operations #panic #unwrap #no-alloc #checked-arithmetic #strict-overflow-ops

no-std unwrap-overflow-ops

arithmetic operations that always panic on overflow

1 unstable release

0.1.0 Aug 29, 2024

#921 in Rust patterns

Apache-2.0 OR MIT

15KB
215 lines

unwrap-overflow-ops

Crates.io Version docs.rs

Arithmetic operations that always panic overflow, providing a polyfill for the [unwrap_overflow_ops feature].

To avoid conflicts with the standard library, methods are prefixed with unwrap_ instead of strict_. For example i32::strict_add becomes UnwrapOverflowOps::unwrap_add.

Methods are available through the UnwrapOverflowOps extension trait. Some methods are only supported for signed/unsigned integers, and require UnwrapOverflowOpsSigned or UnwrapOverflowOpsUnsigned.

Import the entire crate to use all three traits: use strict_overflow_ops::*;

Example

use unwrap_overflow_ops::*;

assert_eq!(0i32.unwrap_add(5), 5);
assert_eq!(7u32.unwrap_add_signed(-3), 4);
assert_eq!(-7i32.unwrap_neg(), 7);

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option. Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Serde by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies