Fundamentals29 / 42
Up next

Overflow handling

fn main() {
    // 255
    let max = u8::MAX;
    // None: would overflow
    println!("{:?}", max.checked_add(1));
    // 0: wraps around
    println!("{}", max.wrapping_add(1));
    // 255: clamps
    println!("{}", max.saturating_add(1));
}
What you're solving

checked, wrapping, and saturating math