p` takes an [`Ordering`] argument which describes the memory ordering of this operation. All ordering modes are possible. Note that using [`Acquire`] makes the store part of this operation [`Relaxed`], and using [`Release`] makes the load part [`Relaxed`]. # Examples ``` use portable_atomic::{AtomicU16, Ordering}; let some_var = AtomicU16::new(5); assert_eq!(some_var.swap(10, Ordering::Relaxed), 5); ```