Clarify example in Pin::new_unchecked docs
This commit is contained in:
parent
959b2c703d
commit
0f248d8ea9
1 changed files with 4 additions and 1 deletions
|
|
@ -572,7 +572,10 @@ impl<P: Deref> Pin<P> {
|
|||
/// // though we have previously pinned it! We have violated the pinning API contract.
|
||||
/// }
|
||||
/// ```
|
||||
/// A value, once pinned, must remain pinned forever (unless its type implements `Unpin`).
|
||||
/// A value, once pinned, must remain pinned until it is dropped (unless its type implements
|
||||
/// `Unpin`). Because `Pin<&mut T>` does not own the value, dropping the `Pin` will not drop
|
||||
/// the value and will not end the pinning contract. So moving the value after dropping the
|
||||
/// `Pin<&mut T>` is still a violation of the API contract.
|
||||
///
|
||||
/// Similarly, calling `Pin::new_unchecked` on an `Rc<T>` is unsafe because there could be
|
||||
/// aliases to the same data that are not subject to the pinning restrictions:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue