| Crates.io | wrapping_arithmetic |
| lib.rs | wrapping_arithmetic |
| version | 0.1.0 |
| created_at | 2019-10-17 14:52:03.849715+00 |
| updated_at | 2019-10-17 14:52:03.849715+00 |
| description | Proc macro #[wrappit] to rewrite operators into their wrapping equivalents. |
| homepage | |
| repository | https://github.com/franziskuskiefer/wrapping-arithmetic |
| max_upload_size | |
| id | 173370 |
| size | 8,772 |
This crate provides a proc macro that rewrites arithemtic operators +,-,* into their wrapping equivalents wrapping_add, wrapping_sub, wrapping_mul as well as their assigning versions +=,-=,*=.
The following function for example
#[wrappit]
fn mix(a: u32, b: u32, c: [u32; 8]) -> u32 {
let mut r = a + b;
for u in c {
r *= u;
}
r
}
is rewritten to
fn mix(a: u32, b: u32, c: [u32; 8]) -> u32 {
let mut r = a.wrapping_add(b);
for u in c {
r = r.wrapping_mul(u);
}
r
}