Expand description
A trait describing things that can be turned into a raw pointer.
This is just an abstraction of things that can be passed to the
compare_and_swap
.
Examples
use std::ptr;
use std::sync::Arc;
use arc_swap::ArcSwapOption;
let a = Arc::new(42);
let shared = ArcSwapOption::from(Some(Arc::clone(&a)));
shared.compare_and_swap(&a, Some(Arc::clone(&a)));
shared.compare_and_swap(&None::<Arc<_>>, Some(Arc::clone(&a)));
shared.compare_and_swap(shared.load(), Some(Arc::clone(&a)));
shared.compare_and_swap(&shared.load(), Some(Arc::clone(&a)));
shared.compare_and_swap(ptr::null(), Some(Arc::clone(&a)));
Due to technical limitation, this is not implemented for owned Arc
/Option<Arc<_>>
, they
need to be borrowed.