diff options
| author | Michael Goulet <michael@errs.io> | 2023-12-05 14:52:43 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-12-05 14:52:43 -0500 |
| commit | 6fa93e83c96ac3e52e5093687a88ef8f64bd5f47 (patch) | |
| tree | fa5107fdb66bdd36efc6a9ff2dbd72f1414d1494 | |
| parent | aa5f25174dfce3b445f38adff0094724542cdd16 (diff) | |
| parent | 13c16e3afc09746bc0b6fd0f467c4a0f33d1dcc1 (diff) | |
| download | rust-6fa93e83c96ac3e52e5093687a88ef8f64bd5f47.tar.gz rust-6fa93e83c96ac3e52e5093687a88ef8f64bd5f47.zip | |
Rollup merge of #118450 - marcin-serwin:master, r=workingjubilee
Use OnceCell in cell module documentation The spanning tree example in the std cell module implementation was created before `OnceCell` was added to Rust so it uses `RefCell`. However, in this case using `OnceCell` seems more appropriate and produces simpler code. As a bonus, this also means that all three cell types are presented in the examples of std cell module.
| -rw-r--r-- | library/core/src/cell.rs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/library/core/src/cell.rs b/library/core/src/cell.rs index f10a82c5694..030040ba09a 100644 --- a/library/core/src/cell.rs +++ b/library/core/src/cell.rs @@ -143,17 +143,17 @@ //! //! ``` //! # #![allow(dead_code)] -//! use std::cell::RefCell; +//! use std::cell::OnceCell; //! //! struct Graph { //! edges: Vec<(i32, i32)>, -//! span_tree_cache: RefCell<Option<Vec<(i32, i32)>>> +//! span_tree_cache: OnceCell<Vec<(i32, i32)>> //! } //! //! impl Graph { //! fn minimum_spanning_tree(&self) -> Vec<(i32, i32)> { -//! self.span_tree_cache.borrow_mut() -//! .get_or_insert_with(|| self.calc_span_tree()) +//! self.span_tree_cache +//! .get_or_init(|| self.calc_span_tree()) //! .clone() //! } //! |
