#arithmetic #crypto #proc-macro #wrapping #operator #u32 #equivalents

wrapping_arithmetic

过程宏 #[wrappit] 用于将运算符重写为其包装等价物

1 个不稳定版本

0.1.0 2019 年 10 月 17 日

#5 in #equivalents

Download history 16/week @ 2024-04-29 13/week @ 2024-05-06 20/week @ 2024-05-13 15/week @ 2024-05-20 23/week @ 2024-05-27 17/week @ 2024-06-03 8/week @ 2024-06-10 14/week @ 2024-06-17 21/week @ 2024-06-24 16/week @ 2024-07-15 23/week @ 2024-07-22 16/week @ 2024-07-29 9/week @ 2024-08-05 19/week @ 2024-08-12

68 每月下载量
用于 rand_krull

Apache-2.0

7KB
95

此包提供了一个过程宏,该宏将算术运算符 +,-,* 重写为其包装等价物 wrapping_add, wrapping_sub, wrapping_mul 以及它们的赋值版本 +=,-=,*=

以下函数示例

#[wrappit]
fn mix(a: u32, b: u32, c: [u32; 8]) -> u32 {
    let mut r = a + b;
    for u in c {
        r *= u;
    }
    r
}

被重写为

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
}

依赖项

~1.5MB
~35K SLoC