1 unstable release
0.1.0 | Oct 17, 2019 |
---|
#52 in #arithmetic
103 downloads per month
Used in rand_krull
7KB
95 lines
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
}
Dependencies
~1–1.2MB
~30K SLoC