Crate try_lazy_init[−][src]
Expand description
A crate for things that are
- Lazily initialized
- Expensive to create
- Immutable after creation
- Used on multiple threads
Lazy<T>
is better than Mutex<Option<T>>
because after creation accessing
T
does not require any locking, just a single boolean load with
Ordering::Acquire
(which on x86 is just a compiler barrier, not an actual
memory barrier).
Structs
Lazy<T>
is a lazily initialized synchronized holder type. You can think
of it as a LazyTransform
where the initial type doesn’t exist.
LazyTransform<T, U>
is a synchronized holder type, that holds a value of
type T until it is lazily converted into a value of type U.