Rollup merge of #104528 - WaffleLapkin:lazy_lock_docfix, r=matklad

Properly link `{Once,Lazy}{Cell,Lock}` in docs

See https://github.com/rust-lang/rust/issues/74465#issuecomment-1317947443
This commit is contained in:
Dylan DPC
2022-11-19 11:54:44 +05:30
committed by GitHub
4 changed files with 19 additions and 5 deletions

View File

@@ -4,6 +4,10 @@ use crate::ops::Deref;
/// A value which is initialized on the first access. /// A value which is initialized on the first access.
/// ///
/// For a thread-safe version of this struct, see [`std::sync::LazyLock`].
///
/// [`std::sync::LazyLock`]: ../../std/sync/struct.LazyLock.html
///
/// # Examples /// # Examples
/// ///
/// ``` /// ```

View File

@@ -4,8 +4,14 @@ use crate::mem;
/// A cell which can be written to only once. /// A cell which can be written to only once.
/// ///
/// Unlike `RefCell`, a `OnceCell` only provides shared `&T` references to its value. /// Unlike [`RefCell`], a `OnceCell` only provides shared `&T` references to its value.
/// Unlike `Cell`, a `OnceCell` doesn't require copying or replacing the value to access it. /// Unlike [`Cell`], a `OnceCell` doesn't require copying or replacing the value to access it.
///
/// For a thread-safe version of this struct, see [`std::sync::OnceLock`].
///
/// [`RefCell`]: crate::cell::RefCell
/// [`Cell`]: crate::cell::Cell
/// [`std::sync::OnceLock`]: ../../std/sync/struct.OnceLock.html
/// ///
/// # Examples /// # Examples
/// ///

View File

@@ -6,7 +6,9 @@ use crate::sync::OnceLock;
/// A value which is initialized on the first access. /// A value which is initialized on the first access.
/// ///
/// This type is a thread-safe `Lazy`, and can be used in statics. /// This type is a thread-safe [`LazyCell`], and can be used in statics.
///
/// [`LazyCell`]: crate::cell::LazyCell
/// ///
/// # Examples /// # Examples
/// ///

View File

@@ -7,7 +7,9 @@ use crate::sync::Once;
/// A synchronization primitive which can be written to only once. /// A synchronization primitive which can be written to only once.
/// ///
/// This type is a thread-safe `OnceCell`. /// This type is a thread-safe [`OnceCell`], and can be used in statics.
///
/// [`OnceCell`]: crate::cell::OnceCell
/// ///
/// # Examples /// # Examples
/// ///
@@ -33,7 +35,7 @@ use crate::sync::Once;
#[unstable(feature = "once_cell", issue = "74465")] #[unstable(feature = "once_cell", issue = "74465")]
pub struct OnceLock<T> { pub struct OnceLock<T> {
once: Once, once: Once,
// Whether or not the value is initialized is tracked by `state_and_queue`. // Whether or not the value is initialized is tracked by `once.is_completed()`.
value: UnsafeCell<MaybeUninit<T>>, value: UnsafeCell<MaybeUninit<T>>,
/// `PhantomData` to make sure dropck understands we're dropping T in our Drop impl. /// `PhantomData` to make sure dropck understands we're dropping T in our Drop impl.
/// ///