From 14662fabeb69fe5ab6c6e68051bf9f80d4aaaa35 Mon Sep 17 00:00:00 2001 From: Ruan Comelli Date: Sun, 13 Apr 2025 09:15:16 -0300 Subject: [PATCH 1/2] docs(library/core/src/pin): fix typo "necessarily" -> "necessary" --- library/core/src/pin.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/core/src/pin.rs b/library/core/src/pin.rs index 2ef1bbfd1fa70..504801f3e4e5f 100644 --- a/library/core/src/pin.rs +++ b/library/core/src/pin.rs @@ -12,7 +12,7 @@ //! "pinned," in that it has been permanently (until the end of its lifespan) attached to its //! location in memory, as though pinned to a pinboard. Pinning a value is an incredibly useful //! building block for [`unsafe`] code to be able to reason about whether a raw pointer to the -//! pinned value is still valid. [As we'll see later][drop-guarantee], this is necessarily from the +//! pinned value is still valid. [As we'll see later][drop-guarantee], this is necessary from the //! time the value is first pinned until the end of its lifespan. This concept of "pinning" is //! necessary to implement safe interfaces on top of things like self-referential types and //! intrusive data structures which cannot currently be modeled in fully safe Rust using only From 6f23f167af57af26543fa93f87a12f637e66c5e8 Mon Sep 17 00:00:00 2001 From: Ruan Comelli Date: Sun, 13 Apr 2025 16:11:55 -0300 Subject: [PATCH 2/2] docs(library/core/src/pin): rewrite for clarity --- library/core/src/pin.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/library/core/src/pin.rs b/library/core/src/pin.rs index 504801f3e4e5f..9ee5369139ff9 100644 --- a/library/core/src/pin.rs +++ b/library/core/src/pin.rs @@ -12,11 +12,11 @@ //! "pinned," in that it has been permanently (until the end of its lifespan) attached to its //! location in memory, as though pinned to a pinboard. Pinning a value is an incredibly useful //! building block for [`unsafe`] code to be able to reason about whether a raw pointer to the -//! pinned value is still valid. [As we'll see later][drop-guarantee], this is necessary from the -//! time the value is first pinned until the end of its lifespan. This concept of "pinning" is -//! necessary to implement safe interfaces on top of things like self-referential types and -//! intrusive data structures which cannot currently be modeled in fully safe Rust using only -//! borrow-checked [references][reference]. +//! pinned value is still valid. [As we'll see later][drop-guarantee], once a value is pinned, +//! it is necessarily valid at its memory location until the end of its lifespan. This concept +//! of "pinning" is necessary to implement safe interfaces on top of things like self-referential +//! types and intrusive data structures which cannot currently be modeled in fully safe Rust using +//! only borrow-checked [references][reference]. //! //! "Pinning" allows us to put a *value* which exists at some location in memory into a state where //! safe code cannot *move* that value to a different location in memory or otherwise invalidate it