@@ -491,9 +491,9 @@ impl<P: Deref<Target: Unpin>> Pin<P> {
491
491
/// ```
492
492
/// use std::pin::Pin;
493
493
///
494
- /// let val: u8 = 5;
494
+ /// let mut val: u8 = 5;
495
495
/// // We can pin the value, since it doesn't care about being moved
496
- /// let pinned: Pin<&u8> = Pin::new(&val);
496
+ /// let mut pinned: Pin<&mut u8> = Pin::new(&mut val);
497
497
/// ```
498
498
#[ inline( always) ]
499
499
#[ rustc_const_unstable( feature = "const_pin" , issue = "76654" ) ]
@@ -514,7 +514,8 @@ impl<P: Deref<Target: Unpin>> Pin<P> {
514
514
/// ```
515
515
/// use std::pin::Pin;
516
516
///
517
- /// let pinned: Pin<&u8> = Pin::new(&5);
517
+ /// let mut val: u8 = 5;
518
+ /// let pinned: Pin<&mut u8> = Pin::new(&mut val);
518
519
/// // Unwrap the pin to get a reference to the value
519
520
/// let r = Pin::into_inner(pinned);
520
521
/// assert_eq!(*r, 5);
@@ -728,6 +729,18 @@ impl<P: DerefMut> Pin<P> {
728
729
///
729
730
/// This overwrites pinned data, but that is okay: its destructor gets
730
731
/// run before being overwritten, so no pinning guarantee is violated.
732
+ ///
733
+ /// # Example
734
+ ///
735
+ /// ```
736
+ /// use std::pin::Pin;
737
+ ///
738
+ /// let mut val: u8 = 5;
739
+ /// let mut pinned: Pin<&mut u8> = Pin::new(&mut val);
740
+ /// println!("{}", pinned); // 5
741
+ /// pinned.as_mut().set(10);
742
+ /// println!("{}", pinned); // 10
743
+ /// ```
731
744
#[ stable( feature = "pin" , since = "1.33.0" ) ]
732
745
#[ inline( always) ]
733
746
pub fn set ( & mut self , value : P :: Target )
0 commit comments