swap — exchange values. exchange — atomic exchange.
swap:
exchange:
1let mut v = vec![1, 2, 3];2v.swap(0, 2); // v: [3, 2, 1]34use std::sync::atomic::{AtomicUsize, Ordering};5let a = AtomicUsize::new(5);6let old = a.swap(10, Ordering::SeqCst);7// old: 5, a: 10
Key: swap for slices, exchange for atomics.