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) } }