h_neg` 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::{AtomicU64, Ordering}; let foo = AtomicU64::new(5); assert_eq!(foo.fetch_neg(Ordering::Relaxed), 5); assert_eq!(foo.load(Ordering::Relaxed), 5_u64.wrapping_neg()); assert_eq!(foo.fetch_neg(Ordering::Relaxed), 5_u64.wrapping_neg()); assert_eq!(foo.load(Ordering::Relaxed), 5); ```