ggles the bit at the specified bit-position. Returns `true` if the specified bit was previously set to 1. `bit_toggle` 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`]. This corresponds to x86's `lock btc`, and the implementation calls them on x86/x86_64. # Examples ``` use portable_atomic::{AtomicU8, Ordering}; let foo = AtomicU8::new(0b0000); assert!(!foo.bit_toggle(0, Ordering::Relaxed)); assert_eq!(foo.load(Ordering::Relaxed), 0b0001); assert!(foo.bit_toggle(0, Ordering::Relaxed)); assert_eq!(foo.load(Ordering::Relaxed), 0b0000); ```