Crates.io | wrapping_in_range |
lib.rs | wrapping_in_range |
version | 0.1.1 |
created_at | 2025-09-10 21:21:14.478907+00 |
updated_at | 2025-09-10 21:28:44.751029+00 |
description | Wrapping arithmetic for any range |
homepage | |
repository | https://github.com/nik-rev/wrapping-in-range |
max_upload_size | |
id | 1833023 |
size | 29,412 |
Wrapping-in-range arithmetic for custom ranges via the WrappingInRange
type
These arithmetic operations act just like std
's .wrapping_sub()
, .wrapping_add()
, etc. but for a custom user-provided range.
use wrapping_in_range::WrappingInRange;
let w = |i: i16| WrappingInRange(i, -1..=1);
assert_eq!(
[-2, -1, 0, 1, 2].map(|i| w(i) - 1),
[ 0, 1, -1, 0, 1]
);
assert_eq!(
[-2, -1, 0, 1, 2].map(|i| w(i) + 1),
[-1, 0, 1, -1, 0]
);