eds. `failure` describes the required ordering for the load operation that takes place when the comparison fails. Using [`Acquire`] as success ordering makes the store part of this operation [`Relaxed`], and using [`Release`] makes the successful load [`Relaxed`]. The failure ordering can only be [`SeqCst`], [`Acquire`] or [`Relaxed`]. # Panics Panics if `failure` is [`Release`], [`AcqRel`]. # Examples ``` use portable_atomic::{AtomicI64, Ordering}; let some_var = AtomicI64::new(5); assert_eq!( some_var.compare_exchange(5, 10, Ordering::Acquire, Ordering::Relaxed), Ok(5), ); assert_eq!(some_var.load(Ordering::Relaxed), 10); assert_eq!( some_var.compare_exchange(6, 12, Ordering::SeqCst, Ordering::Acquire), Err(10), ); assert_eq!(some_var.load(Ordering::Relaxed), 10); ```