The ! operator is implemented for many primitive types and it’s equivalent to the ~ operator in C. See this example (playground):
let x = 0b10101010u8;
let y = !x;
println!("x: {:0>8b}", x);
println!("y: {:0>8b}", y);
Outputs:
x: 10101010 y: 01010101
See also:
- How do you set, clear and toggle a single bit in Rust?