From 1f2db3ddfcc1af86221bcffbcbc0ac789cabe89b Mon Sep 17 00:00:00 2001 From: Takashiidobe Date: Fri, 16 Feb 2024 20:21:34 -0500 Subject: [PATCH] Add an example to demonstrate how Rc::into_inner works --- library/alloc/src/rc.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/library/alloc/src/rc.rs b/library/alloc/src/rc.rs index 2cc38d90ffe..5c408f573bf 100644 --- a/library/alloc/src/rc.rs +++ b/library/alloc/src/rc.rs @@ -944,6 +944,21 @@ pub fn try_unwrap(this: Self) -> Result { /// is in fact equivalent to [Rc::try_unwrap]\(this).[ok][Result::ok](). /// (Note that the same kind of equivalence does **not** hold true for /// [`Arc`](crate::sync::Arc), due to race conditions that do not apply to `Rc`!) + /// + /// # Examples + /// + /// ``` + /// use std::rc::Rc; + /// + /// let x = Rc::new(3); + /// assert_eq!(Rc::into_inner(x), Some(3)); + /// + /// let x = Rc::new(4); + /// let y = Rc::clone(&x); + /// + /// assert_eq!(Rc::into_inner(y), None); + /// assert_eq!(Rc::into_inner(x), Some(4)); + /// ``` #[inline] #[stable(feature = "rc_into_inner", since = "1.70.0")] pub fn into_inner(this: Self) -> Option {