blob: 676c1bafef1a2032b6a8790e15fea9f1aa7d51e2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
|
pub struct Overflow;
/// Negate `u64` checking for overflow.
pub fn neg(value: u64) -> Result<i64, Overflow> {
if value <= 0x7fff_ffff_ffff_ffff {
Ok(-(value as i64))
} else if value == 0x8000_0000_0000_0000 {
Ok(-0x8000_0000_0000_0000)
} else {
Err(Overflow)
}
}
|