Skip to content

Commit 03bad24

Browse files
tisonkuntgross35
andcommitted
Apply suggestions from code review
Co-authored-by: Trevor Gross <[email protected]>
1 parent 5cc60f5 commit 03bad24

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed

library/core/src/cell/once.rs

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -184,11 +184,13 @@ impl<T> OnceCell<T> {
184184
///
185185
/// let mut cell = OnceCell::new();
186186
/// let value = cell.get_mut_or_init(|| 92);
187-
/// assert_eq!(value, &92);
187+
/// assert_eq!(*value, 92);
188+
///
188189
/// *value += 2;
189-
/// assert_eq!(value, &94);
190+
/// assert_eq!(*value, 94);
191+
///
190192
/// let value = cell.get_mut_or_init(|| unreachable!());
191-
/// assert_eq!(value, &94);
193+
/// assert_eq!(*value, 94);
192194
/// ```
193195
#[inline]
194196
#[unstable(feature = "once_cell_get_mut", issue = "121641")]
@@ -259,15 +261,16 @@ impl<T> OnceCell<T> {
259261
///
260262
/// use std::cell::OnceCell;
261263
///
262-
/// let mut cell = OnceCell::new();
263-
/// assert_eq!(cell.get_mut_or_try_init(|| Err(())), Err(()));
264+
/// let mut cell: OnceCell<u32> = OnceCell::new();
265+
///
266+
/// // Failed initializers do not change the value
267+
/// assert!(cell.get_mut_or_try_init(|| "not a number!".parse()).is_err());
264268
/// assert!(cell.get().is_none());
265-
/// let value = cell.get_mut_or_try_init(|| -> Result<i32, ()> {
266-
/// Ok(92)
267-
/// });
268-
/// assert_eq!(value, Ok(&mut 92));
269+
///
270+
/// let value = cell.get_mut_or_try_init(|| "1234".parse());
271+
/// assert_eq!(value, Ok(&mut 1234));
269272
/// *value.unwrap() += 2;
270-
/// assert_eq!(cell.get(), Some(&94))
273+
/// assert_eq!(cell.get(), Some(&1236))
271274
/// ```
272275
#[unstable(feature = "once_cell_get_mut", issue = "121641")]
273276
pub fn get_mut_or_try_init<F, E>(&mut self, f: F) -> Result<&mut T, E>

0 commit comments

Comments
 (0)