Skip to content

Commit

Permalink
Rollup merge of #118450 - marcin-serwin:master, r=workingjubilee
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
compiler-errors authored Dec 5, 2023
2 parents aa5f251 + 13c16e3 commit 6fa93e8
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions library/core/src/cell.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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()
//! }
//!
Expand Down

0 comments on commit 6fa93e8

Please sign in to comment.