1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use crate::Integer;
use std::ops::Not;

impl Not for Integer {
    type Output = Self;
    fn not(self) -> Self::Output {
        !&self
    }
}

impl Not for &Integer {
    type Output = Integer;
    fn not(self) -> Integer {
        let not_bits = self.0.iter().map(|x| !x).collect();
        Integer(not_bits)
    }
}