pub type ArcSwapOption<T> = ArcSwapAny<Option<Arc<T>>>;Expand description
An atomic storage for Option<Arc>.
This is very similar to ArcSwap, but allows storing NULL values, which
is useful in some situations.
This is a type alias only. Most of the methods are described on
ArcSwapAny. Even though the examples there often use ArcSwap,
they are applicable to ArcSwapOption with appropriate changes.
§Examples
use std::sync::Arc;
use arc_swap::ArcSwapOption;
let shared = ArcSwapOption::from(None);
assert!(shared.load_full().is_none());
assert!(shared.swap(Some(Arc::new(42))).is_none());
assert_eq!(42, **shared.load_full().as_ref().unwrap());Aliased Type§
struct ArcSwapOption<T> { /* private fields */ }Implementations§
Source§impl<T> ArcSwapOption<T>
impl<T> ArcSwapOption<T>
Sourcepub const fn const_empty() -> Self
pub const fn const_empty() -> Self
A const-fn equivalent of empty.
Just like empty, this creates an None-holding ArcSwapOption. The empty is, however,
more general ‒ this is available only for the default strategy, while empty is for any
Default-constructible strategy (current or future one).
§Examples
static GLOBAL_DATA: ArcSwapOption<usize> = ArcSwapOption::const_empty();
assert!(GLOBAL_DATA.load().is_none());
GLOBAL_DATA.store(Some(Arc::new(42)));
assert_eq!(42, **GLOBAL_DATA.load().as_ref().unwrap());