protobuf_support/lexer/
int.rs

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