oncelock 0.1.0-alpha.0

A fast and simple implementation of OnceLock
Documentation
//! Implements the lazy initialization primitives [`OnceLock`] and [`OnceCell`].
//!
//! These mirror the standard library types [`std::sync::OnceLock`] and [`std::cell::OnceCell`],
//! but work on much older versions of the rust compiler.
//!
//! Optionally uses [`parking_lot`] or [`spin`] for synchronization.
//!
//! Consider using the [`once_cell`] crate if you are not worried about supporting old rust versions.
//! It offers many more features.
//!
//! [`once_cell`]: https://docs.rs/once_cell/latest/once_cell/
//! [`parking_lot`]: https://docs.rs/parking_lot/latest/parking_lot/
//! [`spin`]: https://docs.rs/spin/latest/spin/
#![cfg_attr(not(feature = "std"), no_std)]
#![deny(missing_docs)]

pub mod cell;
#[cfg(not(missing_sync_backend))]
pub mod sync;

pub use self::cell::{LazyCell, OnceCell};
#[cfg(not(missing_sync_backend))]
pub use self::sync::{LazyLock, OnceLock};

pub(crate) mod polyfill;